PCM9211: AUXIN0 to MPO0

Part Number: PCM9211

Tool/software:

Hello E2E,

I have a circuit where PCM is receiving (BCK, LRCK and DIN) on its AUXIN0 port and SPDIF output is connected to MPO0.
So far i have setup the registers correctly the best of my knowledge but there is no sound on soundbar.

I have tried generating a script from EVM codec control software but i could not setup DIT to receive data from AUXIN0.
Here are the configurations that i have performed.

REG   ->   Value

0x60           33h
0x78           DDh

With the configuration mentioned above there was no signal on MPO0 so i researched and found that i had to provide MCK to DIT, since there was no MCK on input side i routed the XTI from ADC to the DIT as such

0x60          23h

I started receiving output on MPO0 but still no audio on soundbar.

https://imgur.com/zlZLErY

Can someone point out what im missing or where im messing up please

Here are the schematic of my project

https://imgur.com/Ll88vdp

Thank you

  • Hello Farhan, 

    I will take a look at it and will get back to you today.

    Regards,

    Arash

  • Hello Farhan, 

    Per your description, the  TX output is routed to both  MPO0 and MPO1   ( DD at reg 0x78) and you confirmed you see the signal at MPO0.

    Out of curiosity, do you see any difference if you keep the default value for reg 78  0xD3 or  anything  else) .

    The Main Output Port and Aux Output Port( MPIO_B) are both PCM outputs , capable of I2S, RJ, and LJ formats , whereas the DIT output is an S/PDIF signal output.  So I don't see any problem unless the generated signal  to the soundbar is not the correct format for the sound bar. Can you try the sound bar with another source that works and then compare the formats. 

    Regards,

    Arash

  • Hello Arash,

    Here is the sound flow for my system
    S/PDIF(input) -->  PCM9211(receiver) --> I2S --> MCU(Data processing) --> I2S --> PCM9211(transmitter/ IC in discussion atm) --> S/PDIF(signal connected to soundbar).
    So when the input spdif signal is connected with the soundbar it plays the sound perfectly but not when transferred through the MCU. For debugging, we are not currently manipulating the data in MCU but rather only passing it through to output PCM IC. Next we tried generating 1KHz sine wave and transmitting that to transmitting PCM IC but still no sound.

    When i set reg 78 with 0xD3 or any other value other than 0xXD i get the the corresponding output of that particular interface, suppose if i route XMCKO i get 24.576MHz signal on MPO0, if i select HI i get Vdd and so on, when i select TXOUT for MPO0 (0xXD) i get an spdif signal shown above but again no output on soundbar.

    As for the soundbar, it is working correctly with the S/PDIF(input) signal.

    Regards

  • Hello Farhan,

    From above description, my guess would be to compare the SPDIF signal that you tested the soundbar with (and worked fine) , and  compare it with the SPDIF coming out of PCM9211. I think somehow the format is not what you think it is and soundbar does not like it. I don't have any other explanation for it, except somehow the format coming out is not what you think it is.

    You can even test the I2S before going to MCU and verify it is what you expect. Then when it comes out of MCU, compare it again with the original I2S. 

    Regards,

    Arash 

  • Hello Arash,

    Here are the two signals, the spdif(input) have a pk-pk voltage of 6.72V while generated spdif(output) signal have 3.36V. Maybe its because DIT on PCM IC is operating on 3V3.
    Here are the images of the two signals
    SPDIF(input)

    SPDIF(output)


    After further testing and connecting my circuit in loopback mode (i.e. output spdif signal connected to the input pcm ic), i was able to receive the correct channel buffer on the receiving pcm ic which concludes that the spdif signal is good that is why channel buffers are sucessfully transmitted. So now the issue is why AUXIN0 audio data is not encapsulated within the spdif signal, like i mentioned above there is no MCLK signal on AUXIN0 and as a workaround i used ADC clk to the DIT setting register value for DIT as (0x23 --> 60h reg).

    So, as far as i understand i only had to configure DIT to take AUXIN0 as input but Is there anything else that i need to configure to route AUXIN0 signal to the DIT other than register 60h?

    Regards

  • Hello Farhan,

    Regarding the monitored voltages . For S/PDIF Coaxial Input , the max voltage is (VDDRX + 0.3) < 4.0 and for S/PDIF TTL / OPTICAL input  max is 6.5V , so you are okay (Please refer to Absolute Maximum Ratings of datasheet for the range  of SPDIF optical vs coaxial) 

    My opinion has been that all your tests are pointing that you are getting the signal routed correctly but format has an issue for the sound bar. I would do a simple test, send a 1KHz sinewave in and pass the generated  S/PDIF out to a DAC with S/PDIF input and reconstruct the sinewave.

    Another test is to check the standalone operation of DIT ( read more in 7.3.8.7.9 Standalone Operation) along with Table 7-23. Audio Clock and Data I/O.

    Another note is that RX0DIS or RX1DIS must be set to 0, even when an S/PDIF, TTL, or OPTICAL input is provided into
    RXIN0 or RXIN1, without use of the built-in COAX amplifier.

    It might be good to check few other things such as  Register 37h/PFSTGT[3:0] ( read more in section 7.3.8.6.10). Also note that  DIT can accept a 128fS, 256fS, or 512fS system clock. May be it is a good idea to  verify this is achieved. 

    Regards,

    Arash

  • Hello Arash,

    Sorry for late update but i have fixed the issue.

    I had to provide MCLK to AUXIN0 whereas previously i was providing MCLK through the ADC. So, the signal i was providing was in correct format. Not sure why it was not correctly getting routed when using MCLK from ADC though. So i would suggest anyone to try this out and see if this was indeed my configuration fault or if this is a hardware issue.

    Regards.

  • Hello Farhan,

    Thanks for sharing your update. Since  you did not change anything in the above schematic , it was just matter of configuration. So It would be nice if you share your configuration so others can benefit from it. Thanks again.

    Regards,

    Arash