ADSP571/ADAU1777 Slave/Master Relationship

Hello everyone,

I am using an ADSP571 connected to an ADAU1777. I can get SPORT Tx and Rx playback to work properly when the DSP is Master and CODEC is slave, but as soon as I switch the relationship around, I no longer get any playback.

Here is my SRU initialization:

void initSRU(){

SRU(SPT2_AFS_O, DAI0_PB01_I); /* SPTA_2_BFS */
SRU(SPT2_AFS_PBEN_O, DAI0_PBEN01_I);
SRU(DAI0_PB01_O, SPT2_AFS_I);
SRU(LOW,DAI0_PBEN01_I); /* AFS Input (DSP = Slave, CODEC = Master) */

SRU(SPT2_ACLK_O, DAI0_PB04_I); /* SPTA_2_BCLK */
SRU(SPT2_ACLK_PBEN_O, DAI0_PBEN04_I);
SRU(DAI0_PB04_O, SPT2_ACLK_I);
SRU(LOW,DAI0_PBEN04_I); /* BCLK Input (DSP = Slave, CODEC = Master) */

SRU(SPT2_AD0_O, DAI0_PB03_I); /* SPTA_2_ADO (DAC DATA) */
SRU(SPT2_AD0_PBEN_O, DAI0_PBEN03_I);
SRU(HIGH,DAI0_PBEN03_I); /* DAC Output */

SRU(DAI0_PB05_O,SPT2_BD0_I); /* SPTB_2_BDO (ADC DATA) */
SRU(LOW, DAI0_PBEN05_I);
SRU(LOW, DAI0_PB05_I); /* ADC Input */

}

I have attached a file that contains SPORT initialization as well as buffer processing. Can anyone spot any issues as to why making the DSP Slave to the CODEC is not working?DOCX

  • I was able to fix this issue by fully configuring SPORT 2A and 2B as follows:


    /* SPORT 2A Configuration: DAC */
    SRU(SPT2_AFS_O, DAI0_PB01_I); /* SPTA_2_BFS */
    SRU(SPT2_AFS_PBEN_O, DAI0_PBEN01_I);
    SRU(DAI0_PB01_O, SPT2_AFS_I);
    SRU(LOW,DAI0_PBEN01_I); /* AFS Input (DSP = Slave, CODEC = Master) */

    SRU(SPT2_ACLK_O, DAI0_PB04_I); /* SPTA_2_BCLK */
    SRU(SPT2_ACLK_PBEN_O, DAI0_PBEN04_I);
    SRU(DAI0_PB04_O, SPT2_ACLK_I);
    SRU(LOW,DAI0_PBEN04_I); /* BCLK Input (DSP = Slave, CODEC = Master) */

    SRU(HIGH, DAI0_PBEN03_I);
    SRU(SPT2_AD0_O, DAI0_PB03_I); /* SPTA_2_ADO (DAC DATA) */
    SRU(HIGH,DAI0_PBEN03_I); /* DAC Output */

    /* SPORT 2B Configuration: ADC */
    SRU(SPT2_BFS_O, DAI0_PB01_I); /* SPTA_2_BFS */
    SRU(SPT2_BFS_PBEN_O, DAI0_PBEN01_I);
    SRU(DAI0_PB01_O, SPT2_BFS_I);
    SRU(LOW,DAI0_PBEN01_I); /* AFS Input (DSP = Slave, CODEC = Master) */

    SRU(SPT2_BCLK_O, DAI0_PB04_I); /* SPTA_2_BCLK */
    SRU(SPT2_BCLK_PBEN_O, DAI0_PBEN04_I);
    SRU(DAI0_PB04_O, SPT2_BCLK_I);
    SRU(LOW,DAI0_PBEN04_I); /* BCLK Input (DSP = Slave, CODEC = Master) */

    SRU(LOW, DAI0_PBEN05_I);
    SRU(DAI0_PB05_O,SPT2_BD0_I); /* SPTB_2_BDO (ADC DATA) */
    SRU(LOW, DAI0_PB05_I);