Part Number: TMS570LC4357
Hello,
I am working on TMS570LC4357 eval board and developing the SCI1 RX DMA interface without interrupts for variable byte length packets. I read and am aware of this ticket which mentions the device does not support receiving variable packet lengths: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/838614/tms570lc4357-how-to-configure-sci-dma-for-receiving-varying-sized-packets
However, I tried a simple test with WCP CTCOUNT and I could see that it gets updated once DMA receives some bytes. I was able to use it to track if I received new bytes, however it does not get updated unless a new DMA trigger occurs, so it always holds stale values until arbitrated.
I went through this ticket which mentions using PortA/B TR Count as a way to know how many bytes were received: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1237441/sci-with-dma/4681424?tisearch=e2e-sitesearch&keymatch=%22DMA%22%20AND%20%22length%22%20AND%20%22dynamic%22%20AND%20%22Jagadish%22
However, I observed that the Port A/B values always reflect the current transfer the DMA plans to do. In the likely scenario I am using multiple DMA channels with different peripherals, how do I use Port A/B TR count as a way to know how many bytes I have received on a specific SCI RX DMA channel? I tried using FIFOSTAT registers, but they don't get updated when bytes are received either.
From the other tickets I read on the forum, I am aware that using a protocol is the only way to make this work, however, I would like to know if the FIFO TR or WCP CNT can actually make it work.
Regards,
Surabhi