Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: C2000WARE
Tool/software:
Hello!
We have a TMS320F28P650DK6 exchanging messages (~512-bytes) with another MCU over a UART. About 10% of the time, the TMS misses a byte when transmitting or sees an extra byte of 0's when receiving.
CPU1 on the TMS is clocked at 200MHz, and the UART runs at 1MHz (8 bits/word, 1 stop bit). A logic analyzer trace shows nothing abnormal. Incoming messages look perfectly fine, and outgoing messages look perfect except that they're missing a random byte in the middle. The missing byte appears at both even and odd offsets from the start of the packet.
TX is driven by a DMA -- burst size 2, triggered by 14 bytes or less in the TX FIFO. The DMA is set up to send the entire transfer in one operation.
RX is also driven by a DMA -- burst size 4, triggered by 4 or more bytes in the RX FIFO. The DMA runs continuously, and the buffer is large enough to fit an entire message. I can see that we're receiving spurious zeroes by observing the buffer with a debugger.
I could use some help figuring out what could be causing this behavior. Since the TX DMA's burst size is 2, it shouldn't even be possible to send an odd number of bytes -- but the logic analyzer clearly shows that we are occasionally sending 519 instead of 520. I would appreciate any insight.
Thank you!

