I have a 25 kHz control loop kicked off by an A/D conversion. At the beginning of this loop I set a GPIO chip select line, and transmit six 16-bit words of data over SPI. With the 2809 processor, I configured the SPI to use the transmit FIFO. At the beginning of my control cycle I set the chip select I/O pin and write the six words to SPITXBUF. The six words of data stream out over SPI in the order I wrote them to SPITXBUF. This works well.
I'm struggling with how to duplicate this functionality with the 28235's McBSP in SPI mode. It's set to have a frame size of six words, 16 bits per word. I'm very close to having it set up properly because I'm receiving data on the other end. However, I don't know how to get the six different words of data to be sent. When I write the words to DXR1 as I would have to SPITXBUF, it just sends the last word I write to DXR1 six times. My understanding from the reference guide is that there is no FIFO for the McBSP.
Is there any way I can do what the SPI transmit FIFO does using the McBSP? If not, what use is it to set the transmit frame size? Do I have to use DMA to do this? If so, how can I configure it to trigger properly and keep the correct timing of the chip select line? Note that all I'm doing is streaming out these six words of data; I'm not receiving anything.
If there are any examples or application notes that could help out with this, that would be great. The McBSP is pretty flexible and I found the reference guide to be kind of confusing and not clear about how buffering and DMA interaction work.
Thanks in advance for any insight anyone can provide.