I am using the McBSP in SPI (clockstop) mode and DMA. Because the slave device I'm talking to doesn't like the chip select line being deasserted between bytes when XFRLEN1 = 0, I tried setting that register in my write function to <number of bytes to write> - 1. However, when I do that, the McBSP mangles the data!
Here is a screenshot of a correct transfer of bytes 0x09, 0x82, 0xFF. In this trace I'm manually controlling the CS signal, which is very much not ideal.
And then here is the result if I set XFRLEN1 = 2 (3 bytes are sent per frame).
As you can see, the it transmits the wrong thing. Does anyone know why this is happening, and how I can prevent it?
Thank you.