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.

PCM1681: Cannot output audio in TDM Left Justified mode

Part Number: PCM1681

Dear all,

for my audio application, I am using the PCM1681 chip. The codec is driven by an STM32H7 MCU using its embedded SAI Interface. The PCM 1681 is configured using i2c and writing in its register 0x09 the value 0x07 (Left Justified TDM). The desired sampling frequency is 44.1kHz.

As a first test, I am sending the data 0xAA to all slots. I verified that this data is on the DATA1 line and the clock on both BCK and SCK is 11.28MHz. The LRCK seems also to meet the system requirements containing the 8 data slots in it. Clock and data seem to have the correct phase relationship. However, the 8 outputs are stuck to a value of around 2.4V.

Do you have any advice to troubleshoot the problem? Thank you very much

  • Hello, just a piece of additional information. If I try to disable/enable the channels acting on the register 0x08, the output stays always at 2.4V. Which should correspond to the Vcom terminal voltage and this should happen if the DAC are disabled. However, I verified the EN bits and they are correctly '0'. The I2C communication works since I can read back what I write.

  • Hi Matteo, 

    Can you try outputting a non-constant value? What happens if you output a sinewave?

    Thanks,

    Paul

  • Dear , thank you for your answer. I will try to output a sinewave but it will take some time, in the meanwhile I tried to send some pseudo-random data instead of a constant value and I did not see any change, the output value is always 2.4V. I am wondering if there is something else I should try in the initialization phase since up to know I only act of the FMT bits of the 0x09 register setting it to TDM LJ mode.

  • Hi Matteo,

    Can you confirm that your output data and clocks are continuous?  Can you share your schematic?

  • Hello Paul, I think I have managed to solve the problem. I still need to investigate better but it seems that the issue was related to the fact that the initialization of the PCM1681 took place before the SAI was activated. In fact, in my case two different MCUs are used, one controls the I2C for config and the other controls the audio data. So my guess is that if the system clock is not provided, the I2C commands are bypassed or something like that. However, in the datasheet I did not find any information about this?  

  • Yes, that is correct.  The device requires an SCK signal to exit the reset condition.