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.

PCM5121: stays in mute mode

Part Number: PCM5121

the communication via I2C to PCM5121 is working, with SCLK=24.576MHz and BCLK=12.288MHz, Sample Rate is 48kHz.

There are 8 TDM Slots with 32-Bit Samples (the other 6 Slots are used by three TAS 6422, which are working well.)

The PCM5121 is configured accordingly, while using its Auto Clock function. BUT, the PCM5121 does stay in the mode of 'Volume Up Ramp' and so keeps to be muted. (Register 0x76 shows the value 0x84) - Do you know why and how to solve this issue? 

The customer tried to switch from active to standby and back again, but PSM5121 stays muted. 

Thanks for your support! 
ciao
Hanno 

  • Hi Hanno,

    Can you confirm if they have configured the device for TDM mode? Can the verify with a scope that that DIN, BCK, LRCK, and SCLK pins have the expected inputs? Can they confirm the voltage of the XSMT pin?

    Thanks,

    Paul

  • XSMT pin is 3.3V, DIN, BCK, LRCK and SCLK have all the correct level and frequency

    (SCLK = 24.576MHz, BCK=12.288MHz, LRCLK=48kHz).

    We also tried to short SCLK with BCK (so we only have 12.288MHz) but result was the same.

  • What is the voltage on the VNEG pin? Also, can they share the register commands they are using to configure the device?

  • Hi, please see our sequence attached.

    We also tried activating sleep mode before init and waking it up again afterwards but this did not help either.

    VNEG is ~ -3V


      unsigned char Buf[2] = {0x00,0x00};

      retVal &= mpI2CDrv->WriteRead(mI2CAddr,Buf,sizeof(Buf),0,0);   



      Buf[0] = 40;
      Buf[1] = 0x13; //TDM Mode 32 Bits
      retVal &= mpI2CDrv->WriteRead(mI2CAddr,Buf,sizeof(Buf),0,0);

      Buf[0] = 41;
      Buf[1] = 4*32; //TDM Slot 4 as first slot to use
      retVal &= mpI2CDrv->WriteRead(mI2CAddr,Buf,sizeof(Buf),0,0);

      Buf[0] = 43;  //FIR Interpolator
      Buf[1] = 0x07;

      retVal &= mpI2CDrv->WriteRead(mI2CAddr,Buf,sizeof(Buf),0,0);


  • This is the register dump using Linux

    i2cdump -y 0 0x4c

        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 00 01 01 00 00 00 00 00 01 7c 00 00 00    ....??.....?|...
    10: 00 00 00 10 00 00 00 00 00 00 80 00 00 00 00 04    ...?......?....?
    20: 00 00 00 01 00 00 f3 04 13 80 11 07 00 00 00 00    ...?..???.??....
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 22    .............00"
    40: 02 07 14 05 00 00 00 00 55 00 00 00 00 00 00 00    ????....U.......
    50: 00 00 00 00 00 00 00 00 61 00 00 38 01 00 00 00    ........a..8?...
    60: 02 0c 00 00 00 01 0f 03 07 10 d9 d3 00 00 01 00    ??...???????..?.
    70: 81 01 03 00 04 00 84 21 00 00 00 00 00 00 00 00    ???.?.?!........
    80: 00 00 00 00 01 01 00 00 00 00 00 01 7c 00 00 00    ....??.....?|...
    90: 00 00 00 10 00 00 00 00 00 00 80 00 00 00 00 04    ...?......?....?
    a0: 00 00 00 01 00 00 f3 04 13 00 11 07 00 00 00 00    ...?..???.??....
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 22    .............00"
    c0: 02 07 14 05 00 00 00 00 55 00 00 00 00 00 00 00    ????....U.......
    d0: 00 00 00 00 00 00 00 00 61 00 00 38 01 00 00 00    ........a..8?...
    e0: 02 0c 00 00 00 01 0f 03 07 10 d9 d3 00 00 01 00    ??...???????..?.
    f0: 81 01 03 00 04 00 84 21 00 00 00 00 00 00 00 00    ???.?.?!........

  • Same for register page 1

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 00 00 03 00 00 00 00 01 33 11 11 11 00 01    ?...?....?3???.?
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 01 00 00 00 03 00 00 00 00 01 33 11 11 11 00 01    ?...?....?3???.?
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

  • We found it - the LDOO pin is connected to 3V3 - removed it and it runs now :-) Thanks !