Hey together,
we have the ADSP-21569 SOM with the EV-SOMCRR-EZLITE and we want to understand the SPORT handling more in detail. So far we are able to run the example code for the ADAU1372 and receive and transmit 2 channels from and to the mini jacks. We are also able to switch the configuration from slave to master and so on.
As the ADAU1372 offers 4 channels in total which are provided as 2x 2CH I2S stream we want to receive all 4 channels via DMA in the ADSP.
ADAU1372 LRCLK <- DAI_PIN01 <- SPORT3A LRCLK
ADAU1372 BCLK <- DAI_PIN02 <- SPORT3A BCLK
ADAU1372 DAC DATA <- DAI_PIN03 <- SPORT3A DATA_D0
ADAU1372 ADC DATA 0 -> DAI_PIN04 -> SPORT3B DATA_D0
ADAU1372 ADC DATA 1 -> DAI_PIN05 -> SPORT3B DATA_D1
Depending on the configuration we can receive either channel 1&2 or channel 3&4. This works perfectly fine. We provided 2 compile options here to switch.
Compile to receive channel 1&2:
eResult = adi_sport_DMATransfer(hSPORTDev3BRx,&iSRC_LIST_1_SP3B,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_PRIM);
Compile to receive channel 3&4
eResult = adi_sport_DMATransfer(hSPORTDev3BRx,&iSRC_LIST_3_SP3B,(DMA_NUM_DESC),ADI_PDMA_DESCRIPTOR_LIST, ADI_SPORT_CHANNEL_SEC);
But what to we have to do to receive all 4 channels? If we call both functions, even with different descriptors, we dont receive anything. Then we thought about the option ADI_SPORT_CHANNEL_PRIM_SEC, this seems not to work. What do we have to do to receive via both data lines SDATA_D0 and SDATA_D1 in one half SPORT?
The examples es checked always use different half SPORTs or only one dataline.
Best regards,
Eric