DMA transfer to USIC TBUF won't start

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
I've configured GPDMA to transfer data from memory to the Transmit Buffer (TBUF) register in USIC.

USIC.CCR.TBIEN is set to 1 and USIC.INPR.TBINP is set to 1 as to generate service request 1 to DMA when TBUF is empty.
USIC is configured for SPI master operation. The Receive Buffer (RBUF) is read by software while not empty.

Unfortunately, no DMA transaction occurs unless I trigger one by writing to USIC.FMR.SIO1. If repeatedly triggered for each word in this way, all data is transferred to TBUF correctly.

Why doesn't the USIC trigger the DMA request on its own once TBUF is empty?
0 Likes
1 Reply
Not applicable
I reconfigured the USIC to use the TxFIFO instead of TBUF. The DMA request was changed from Transmit Buffer (TB) event to the Standard TxFIFO (STB) event (issued when TxFIFO becomes empty). This worked.

Seems like the TB event doesn't work the way I imagined.
0 Likes