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.

McASP buffer format for Multiserializer and multislot configuration

Other Parts Discussed in Thread: OMAPL138, PCM3168A

Hi,

We have PCM3168A codecs interfaced on McASP of OMAPL138. I have configured McASP  in following way for transmit.

Mcasp_ChanParams  mcasp_chanparam[1] = {

{
0x0002, /* number of serialisers */
{Mcasp_SerializerNum_10,Mcasp_SerializerNum_11},
&mcaspXmtSetup,
TRUE,
Mcasp_OpMode_TDM,
Mcasp_WordLength_32, /* word width */
&loopJobBuff, /*Loop job buffer*/
16, /*Loop job buffer length*/
NULL,
NULL,
1, /* number of TDM channels */
Mcasp_BufferFormat_MULTISER_MULTISLOT_SEMI_INTERLEAVED_1,

TRUE,
TRUE
},

The codec is configured in 24-bit right justified mode, so I have to output 32 bits for each channel. 

So on single serializer I am having 2 slots of 32 bits each.  I am successfully send data if I configured single serializer with multislot (non interleaved slot data ), but when I am configuring multiple serializers I am not getting data output on speakers connected to PCM3168A. 

I have doubt about data format  Mcasp_BufferFormat_MULTISER_MULTISLOT_SEMI_INTERLEAVED_1 which says , 

/* This is used for transfer of data with multiple serializers and *
* also multiple slots enabled.please note that the serializer data is*
* interleaved in this format. The slot data is also interleaved *
* Refer to the user guide to view the sample data format. */

But my slot data is not interleaved, in buffer format   Mcasp_BufferFormat_MULTISER_MULTISLOT_SEMI_INTERLEAVED_2 description it says slot data is interleaved .

So which buffer format I should use If I am not having interleaved slot data but having multiple serializers with multiple slots. 

I will appreciate any help.

  • Hi Yogesh,

    Could you please specify which BIOS PSP version are you using?

    When you tried wih data format "Mcasp_BufferFormat_MULTISER_MULTISLOT_SEMI_INTERLEAVED_1", have you observed data at the output of the McASP Tx (or at the input of the codec)?

    Could you please mention the data in which format you want to send out?

    Regards,

    Sandeep

  • Hi Sandeep,

    Thanks for the reply. I am using biospsp_01_30_01.  I have total 8  speakers connected to 8 outputs. Codec wants data for two speakers on single serializer. Data is 24 bit right justified.  So I want to send data on each serializer as two slots and each slot is of 32 bits. Here slot 1 should go to say speaker 1 and slot 2 should go to say speaker 2. I am using TDM format. For transmit McASP is master. Same arrangement I have to make to receive data but right now I am looking on transmit part first. 

    Thanks you. 

  • Some more info, I am trying to prepare transmit buffer like, consider 3 serializers with 2 slots each,

    Ser1slot1-Ser2-Slot1-Ser3-Slot1 -- Ser1-slot2,Sre2slot2,Ser3slot2......

    I have checked just configuring 1 serializer and then I can hear audio, so my McASP clocks, codec configuration is fine, I am struggling with transmit buffer format I have to prepare. 

    Thanks

  • Hi Yogesh,

    Could you please check the serializer pin (on the CRO) considering 3 serializers with 2 slots each? Check the data format at the output.

    How did you pack the data in the application before giving it to Audio/Mcasp to transmit? Please post it for reference.

    Regards,

    Sandeep