Post Go back to editing

Sampled signal to have a too high frequency

Category: Hardware
Product Number: ADAU1978

Hello,

I have build a PCB with the ADAU1978 ADC and I am able to sample data. The problem what I have is that the output signal has a too high frequency, for example:

When I input a 1 kHz signal, does the ADC say that it is 10 kHz. When I input a 1.6 kHz signal, does the ADC say that it is just over 15 kHz. etc.

The signal frequency is also multiplied by approximately 10. And this also means that I can only measure up to 2.3 kHz because the ADC interprets that as 23 kHz and thus the discrete filter starts to attenuate.

It seems to me that there is something off with the timing. I use a 12.288 MHz oscillator and want a 48 kHz output signal, thus do the following configuration steps:

Set *PD/*RST to wake up the chip

Set register 0x00 (M_POWER) to 0x01 to power up the chip

Wait until PLL is locked by checking register 0x01 (PLL_CONTROL), the register is not changed in the setup, I used the default setting of 0x41 which uses the PLL multiplication of 256

Set register 0x04 (BLOCK_POWER_SAI) to 0x32 

Set register 0x06 (SAI_CTRL1) to 0x01

After that do I set registers 0x0A, 0x0B, 0x0C and 0x0D but this is only the post ADC gain

I use the ADC as controller for the I2S clock signals

When I perform FFT on the signal, do I only see the input signal multiplied by 10 and no other frequencies are visible. So it doesn't seem to be an issue with harmonics, sub harmonics or aliasing.

The image below shows the FFT of a 1.6 kHz input signal, this 1.6 kHz is checked with an oscilloscope.

I'm not sure if it is a hardware or software related issue, but since the MCLKIN is correct, do I assume it is a software issue.

Does anyone have an idea what the issue might be?

Best regards 

Tom

Thread Notes

Parents
  • UPDATE:

    I measured the BCLK and LRCLK and those are approximately 10x as slow as calculated.

    The ADC measures with 48 kHz, 2 channels, 24 bits in a slot width of 32 BCLKs. Thus the BLCK should be 3.072 MHz (48 kHz * 2 * 32) but I measured only 327.8 kHz. The same is true for LRCLK which should be 48 kHz but is only 5.128 kHz.

    Since I use an oscillator of 12.288 MHz (ECS-2520MVLC-122-8-CN-TR), does it seem to me that the problem has something to do with the ADCs PLL. NOTE: The oscillator is directly connected to the MCLKIN with a 0 ohm resistor.

    As mentioned before do I use the frequency multiplication ratio of 256 * fs with the corresponding MCS(bits 2:0) of 001

    It seems to me that the PLL is dividing the MCLK by 37.5 (which gives 327.68 kHz) instead of by 4 (which gives 3.072 MHz) for BCLK. And for LRCLK is it dividing by (37.5 * 2 * 32) to get to 5.12 kHz instead of (4 * 2 * 32) to get to 48 kHz. This also corresponds to my approximately 9 times to high measured frequency (37.5/4 = 9.375).

    Thus it seems to be a PLL setting that is off. Does anyone have an idea?

  • The ADC measures with 48 kHz, 2 channels, 24 bits in a slot width of 32 BCLKs. Thus the BLCK should be 3.072 MHz (48 kHz * 2 * 32) but I measured only 327.8 kHz. The same is true for LRCLK which should be 48 kHz but is only 5.128 kHz.

    Can you clarify this? You are saying the ADC is sending out 48kHz then you are also saying it is sending out 5.128kHz?

    What are you measuring at the MCLK_IN pin for the frequency?

    Does the waveform look good? You can attach a screenshot. 

    You have mentioned some of your register settings. Can you list out all of the registers you are changing from the default settings?

    Since it looks like you are using the ADC as the clock master then the master clock frequency is either wrong or the MCS bits and other PLL settings might be wrong. 

    I assume this is your custom hardware? What is connected to the PLL_FILT pin? 

    Have you checked the PLL Lock bit to see if it is reporting that it is locked?

    Dave T

Reply
  • The ADC measures with 48 kHz, 2 channels, 24 bits in a slot width of 32 BCLKs. Thus the BLCK should be 3.072 MHz (48 kHz * 2 * 32) but I measured only 327.8 kHz. The same is true for LRCLK which should be 48 kHz but is only 5.128 kHz.

    Can you clarify this? You are saying the ADC is sending out 48kHz then you are also saying it is sending out 5.128kHz?

    What are you measuring at the MCLK_IN pin for the frequency?

    Does the waveform look good? You can attach a screenshot. 

    You have mentioned some of your register settings. Can you list out all of the registers you are changing from the default settings?

    Since it looks like you are using the ADC as the clock master then the master clock frequency is either wrong or the MCS bits and other PLL settings might be wrong. 

    I assume this is your custom hardware? What is connected to the PLL_FILT pin? 

    Have you checked the PLL Lock bit to see if it is reporting that it is locked?

    Dave T

Children
  • Hey Dave,

    In the mean time did I found the issue.

    The grounding of my oscillator was poor, so when the ADC was switched off, was the oscillator signal okay but when the ADC loaded the oscillator, was there no signal at all.

    I checked the PLL Lock bit but the PLL was locked to some internal signal and not to the MCKLIN pin. It turns out that de ADC outputs this approximately 330 kHz when there is no signal on the MCKLIN pin. For some reason is the PLL still able to lock without a signal on MCKLIN.

    All connections were resoldered and the system is now working as expected.

    Thank you anyway for your response.

    Tom

  • Hello Tom,

    Thank you so much for taking the time to report back on the forum. This may be helpful to others in the future. 

    Yes, the PLL tries really hard to lock to ANYTHING! LOL. In some ways it is too good at locking. What this most likely was is noise in the system and noise on the power and ground planes. If PCB layout is not done well and the bypass caps are not implemented well then there will be noise and the PLL is often the canary in the coal mine and it shows up on the PLL. You probably should look at your PCB layout. Improving it will help your audio performance and also help EMI issues as well.

     Look at this document I wrote for the AD193X codecs. These principles apply to all parts. Also you can read the PCB layout section of the ADAU1452 datasheet but it pretty much is a repeat of this document. 

    (+) PCB Layout Best Practices for AD193x codecs - Q&A - Audio - EngineerZone (analog.com)

    If you end up needing to re-spin the PCB I would look carefully at how all bypass caps are routed in your system. Not just the ADC. 

    Have a great day and I wish you success on your project!

    Dave T