I have a project that requires a 24 bit codec on McMSP3 configured in I2S/PCM mode. We have the driver for McBSP2/TPS65930 16 bit interface and that works fine. What I am finding is that even though the McBSP3 port is setup with a 32 bit frame width and a 24 bit word length, the data that is being outputted seems to be :-
1st frame (right) - 32 bits of data
2nd frame ) left - 16 bits of data and 16 1's
This gives the result of audio from the left speaker and a high pitched squeal from the right.
Couple of questions:-
In what format is the data placed in the DXR register? Is the padding required ( 24bits + 8 padding zeros) already in place, as there seems to be no setting in the McBSP setup to set the number of padding bits.
How is that data clocked out into the McBSP shift register? If you set the word length to 24 bits, will 24 bits be clocked out of the DXR, if so where do the padding bits come from, or are the entire 32 bits of the DXR register clocked out.