I need a little help or explanation about using the McBsp in a x5509A DSP.
I am using the McBsp in clock stop mode and clocking out 24 bits to 2 slave devices. Both devices share the same chip select. One is
read only (A/D) and the other is a PLL which is write only.
I intend to use DMA to write values to the PLL and read ADC samples. I have tried eliminating the DMA and just used ISR's. I
also have tried 24 and 32 bit transfers.
My question is this, given the nature of how the data moves from the DR pin thru the shift registers/buffers and data
registers, how do you move the 24 bit samples via DMA into an array declared as a Uint32 and not have the data all mixed up?
I showed the data wrong
here is the correct observed data
Here is what I see on scope (this was 32 clock bits )
from ADC
MISO 000D 8000 3FFD C000 3FFB 4000 0012 C000 000B 8000
Thru a watch window here is what my array holds.
Uint32 Samples[5]
Ix 0 = 000D 8000
1 = 8000 3FFD
2 = 3FFD C000
3 = C000 3FFB
4 = 3FFB 4000
The behavior is the same for using just RX and TX ISR's and using DMA
What am I doing wrong or what piece of the puzzle am I missing? Can the McBsp move SPI data transfers greater then 16 bits with no data manipulation after
N number of packets sent?
Chris