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.

Mcbsp can't generate transmit synchronization event (XEVT) signal to DMA

Hi, 

I'm using the Mcbsp module of 28335 to communicate with an DA chip, and I set Mcbsp in SPI mode, with the frame length as 24 bit.

I use DMA to send data to DXR[1,2] registers of Mcbsp. The burst size is 1 word, and the transfer size is 2 bursts. At the beginning, I keep the One Shot Mode and Continuous Mode enabled, and it works well. But when I turn off the One Shot Mode, It can't finish a whole transfer. It seems that the DMA just has finished a burst transfer and stops.

The PERINTSEL bits in DMA Mode register is 16(MXEVTB). Is it possible that the DMA hasn't received one more XEVT signal from Mcbsp since it got the initial one (after reset)? 

And at the same time, The XRDY bit in SPCR2 register of Mcbspb is 1, So it should have generated the XEVT signal to DMA, but it hasn't. 

Can you give me some suggestions ?

Best Regards

Thank you

Mark

  • Hi Mark,

    Can you check the value of your RUNSTS bit on the DMA channel you are using after the first burst completes?  Let's go ahead and include BURST_COUNT and TRANSFER_COUNT also.  

    How do you have the McBSP TX interrupt generation configured?  I believe this is decided by the value of SPCR2[XINTM].  Thanks,

    Kris