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.

Linux/PCM1862: Reading wrongly a DC input

Part Number: PCM1862

Tool/software: Linux

Hi,

I'm trying to read a dc input generated by a 2.5 Vdc reference using the PCM1862 ADC. I have conected this source into VINL2, disabled HPF and set the manual gain mapping.

Using an embedded Linux space I can read the I2S buffer (ALSA S16_LE format). The waveform obtained is the correct but not the DC offset value(=9820), which is lower than the expected. However, when a sine tone is inserted, the amplitude values obtained are the right ones.

I was wondering if there is any parameter else that I'm missing and what's the proper way to read a DC voltage using the PCM1862.

  • Hi there poster!

    Our team of experts is enjoying a well deserved break this Thanksgiving Holiday with their family and friends. Our apologies for the delay in responding to your query, but we'll be back to it on Monday the 26th. Happy Thanksgiving everyone!
  • Hi, Stefano,

    Are you using the primary ADC for this measurement?. For DC measurements, the secondary ADC of this device is preferred as the primary ADC is optimized for audio applications, where only AC content is relevant.

    Best Regards,

      -Diego Meléndez López
       Audio Applications Engineer

  • Hi Diego, Thanks for answering,

    I'm using primary ADC. Is it any way to set up the PCM1862 in order to send the secondary data via I2S? I need to read both kinds of signals (DC & AC) using the same ADC in order to get the exact amplitude value of an AC signal. The DC voltage give me a reference value on the ADC.
  • BTW, I've configured PCM1862 in order to read the secondary ADC (input DC) value via I2C by the following way:

    -Set 2L as controlsense input 0x30 --> 0x04
    -Configure active mode secondary to be channel 2L using SEC_ADC_INPUT_SEL 0x0a -- > 0x03
    -Set Read Data without latch in register AUXADC_DATA_CTRL 0x58 --> 0x80

    after that I read registers 0x59 and 0x5a and it's value is always 0x00