Not applicable
Aug 17, 2016
08:16 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 17, 2016
08:16 AM
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?
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?
1 Reply
Not applicable
Aug 18, 2016
04:33 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 18, 2016
04:33 AM
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.
Seems like the TB event doesn't work the way I imagined.