3 ADAU1761. sharing 12.288mhz clock. one of them runs at half frequency. An oscillator set to output 500hz outputs 250 hz.

3 ADAU1761. sharing 12.288mhz clock. one of them runs at half frequency. An oscillator set to output 500hz outputs 250 hz.. I discovered this problem after i added a test tone to my device.

using 256*48000 for input clock and PLL enabled 

So this tells me that all of my filter s were running at half also (or double?) . I looked at the codec and digital settings for all 3 chips, they look the same to me. the other 2 chips putput correct frequency when I add an oscillator in sigma studio. when i build a new bare bones test project for the 3 chips, they all run at correct frequency. It would be a big problem to have to rewrite this from scratch to fix the problem, as front end software is tied to the addressing. Any hints please on what to look for to fix the half frequency problem would be much appreciated.

  • +1
    •  Super User 
    on Apr 18, 2019 12:20 PM over 2 years ago

         Hello Paul,

         The first possibility fitting your info is that the affected DSP has run out of MIPS (but likely you've already checked for this).  The compiler usually flags this, yet may miss it if the overage is very slight. Another test with just a few blocks removed may uncover this.  Taking out blocks near the output end of your schematic would less likely impact parameter addresses of remaining blocks.

         Your conclusion with filters is correct -- a half-frequency clock directly causes a half-frequency filter.

         How is the MCLK distributed to the three DSPs?  Scope this waveform at all three.  Correct any excessive ringing by inserting a small series resistor (typically 22 ohms) st the source.

         Be sure that your front-end program is waiting long enough for all three DSPs to settle and get their PLLs going after reset, before your microcontroller loads their code and runtime parameters.  If the affected DSP happens to be first in the loading sequence, this is likely the problem.

         Where I work we produce a six - ADAU1701 mixer for which I've lost count of all the times I've redone the front-end parameter addresses.  You could try ADI's "canonical method" to semi-automate this process (see https://ez.analog.com/dsp/sigmadsp/w/documents/5206/how-do-i-create-the-microcontroller-code-to-interface-to-my-sigmadsp).  We just prefer to manually transfer the addresses from the Capture Window to the microcontroller code -- this work takes me about half a day for the six DSPs in this mixer.

         Best regards,

         Bob

  • Thanks KJBob. I just saw this response today, haven't been here in a long time. I think this problem was an over run, missing samples. I cleaned up the code to reduce it and then it fixed the half frequency problem. you are very good at this stuff.