This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: How to receive variable length of uart's data in dma mode?

Part Number: TDA4VM

Hi, we currently developing uart driver for tda4 mcu's,we want to use dma to transmit and receive variable length of data, like other mcu we developed.and there is some question we have:

1.do tda4 have implement dma stream number of data(DMA counter) like stm32(DMA stream x number of data register (DMA_SxNDTR)),to get how many data is remain to transfer or receive?

ps: I found the register call PDMA_PSILCFG_TX_BYTE_COUNT ,PDMA_PSILCFG_RX_BYTE_COUNT ,the tx channel works well for me,it increase by 1 for every byte send, but in the rx channel, it only increase every 64 when 64bytes is receive, but we want the counter increase 1 for each byte receive  ,so we can calculate dma receive memory for receive data buffer.

2.do tda4 uart‘s dma have circular mode like stm32?

3.what is the relation between fifo and dma? can we disable fifo to achieve our purpose?how to do that?

The description of stm32 dma counter:

The description of stm32 dma circular mode:

Regards,

JasonZhang