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.

TM4C1290NCPDT: Advanced Bi-SSI Function with uDMA

Hi 
Here again trying to make it work bi-mode with udma the main problem is when i work without udma it work well but with udma always i got just have of the word .. 
normally to read in bi-mode i was doing:

SSIDataPut(SSI2_BASE, 0x00);
data = HWREG(SSI2_BASE + SSI_O_DR);

it was working perfect but with udma;

uDMAChannelTransferSet(UDMA_CH12_SSI2RX | UDMA_PRI_SELECT, UDMA_MODE_BASIC, (void *) (SSI2_BASE + SSI_O_DR), data,48);
uDMAChannelEnable(UDMA_CH12_SSI2RX);

for me it look like with udma still reading as legacy mode .. but usually i "write" to be able to read when i work without udma .. but with udma i dont "write" is it correct ? 
I am missing some configuration to make udma read in mode bi-mode.

  • No, as a master you still need to do a "write" to generate the clocks for the read. In SSI_ADV_MODE_BI_READ mode, the write to the TX FIFO only generates clocks for the slave. To read data from the slave using only uDMA you need to setup two uDMA channels, one to write to the SSIDR and one to read from that register.