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.

[FAQ] AM2754-Q1: McASP Audio Data Interleaving on Single vs Multiple Serializers Configuration

Part Number: AM2754-Q1

How does McASP interleaving work when it is configured with 1 serilalizer vs multiple serializers?
How is the audio data stored in the mcasp buffers? 

  • -----------------------------------------------------------------------------------------------------------------------

    Understanding McASP Interleaving

    -----------------------------------------------------------------------------------------------------------------------

    Case 1: Multiple-slot Single Serializer

    To understand how the slot interleaving is done, lets take a TDM-4 as example configured with 1 serializer. 

    Frame Structure:

    |-- Slot 0 --|-- Slot 1 --|-- Slot 2 --|-- Slot 3 --|
    |    Ch 0    |    Ch 1     |    Ch 2    |    Ch 3     |

    Buffer Layout:

    In the beginning the first sample of every channel will be filled and then the 2nd sample of every channel will get filled and this pattern will continue. So, the filled buffer will look like this - 

    McASP Buffer: [ Ch0_S0, Ch1_S0, Ch2_S0, Ch3_S0, Ch0_S1, Ch1_S1, Ch2_S1, Ch3_S1, ...]

    where ChX_SY represents  Y th Sample of  X th channel. 

    -----------------------------------------------------------------------------------------------------------------------

    Case 2: Multiple-slot Multiple Serializers

    When an extra serializer is added, then it will fill with the first data from all the serializers, then with the second data from all the serializers ..... upto k th serializer. 

    To understand this, lets take a TDM-4 example configured with 3 serializers. 

    Frame Structure per Serializer:

    AXR0 Frame: |-- Slot 0 --|-- Slot 1 --|-- Slot 2 --|-- Slot 3 --|
                           |    Ch 0    |     Ch 3   |     Ch 6    |    Ch 9    |
    AXR1 Frame: |-- Slot 0 --|-- Slot 1 --|-- Slot 2 --|-- Slot 3 --|
                           |   Ch 1     |     Ch 4    |      Ch 7  |    Ch 10  |
    AXR2 Frame: |-- Slot 0 --|-- Slot 1 --|-- Slot 2 --|-- Slot 3 --|
                           |    Ch 2    |    Ch 5     |    Ch 8    |    Ch 11   |


    Buffer Layout (Interleaved):

    McASP Buffer Organization: [AXR0_Ch0_S0, AXR1_Ch1_S0, AXR2_Ch2_S0, AXR0_Ch3_S0, AXR1_Ch4_S0, AXR2_Ch5_S0,
    AXR0_Ch6_S0, AXR1_Ch7_S0, AXR2_Ch8_S0, AXR0_Ch9_S0, AXR1_Ch10_S0, AXR2_Ch11_S0,
    AXR0_Ch0_S1, AXR1_Ch1_S1, AXR2_Ch2_S1, AXR0_Ch3_S1, AXR1_Ch4_S1, AXR2_Ch5_S1, ...]