ADAU1467
Recommended for New Designs
The ADAU1463/ADAU1467 are automotive qualified audio processors that far exceed the digital signal processing capabilities of earlier SigmaDSP® devices...
Datasheet
ADAU1467 on Analog.com
Hi,
An ADAU1467 evaluation board is connected to a DAC board with ~15 cm ribbon cable (through ground). Spectrum analyzer connected to the DAC output shows 2 spikes (approx 430 and 215 Hz at approx -90 db).
The spikes move a bit (+/- 10 Hz) over time probably due to warming up.
I guess it’s just a derivative of the ADAU unwanted emission and the Spectrum Analyzer ADC clock difference.
The spikes amplitude doesn’t depend on (main) signal level/frequency/presence at all, i.e the spikes exist always and stably.
If the same DAC is connected to different i2s sources (configured with the same i2s parameters) there are no spikes at all. I tried 2 different USB-2-i2s adapters on the same ribbon cable. So I guess the problem is not the DAC related.
Experimenting with the problem I’ve found that it’s enough to connect just a spare, connected to ADAU’s MCLK only (even not connected to the DAC) wire of exactly the same length to see the same spikes in the spectrum. So the MCLK wire acts as antenna and emits a signal of significant level that is “successfully” received by the DAC’s analog (OPA based) low pass filter. The problem is pretty reproducible and never happens with a different i2s MCLK source.
Thinking of such behavior I could imagine that the main difference between the ADAU’s MCLK (and other signals) and third party i2s/MCLK is the ADAU ability to change signal strength and slew rate.
I may be wrong be it seems to me that the latter is implemented via a kind of PWM at a frequency much higher that MCLK (eg ADAU main clock ~ 300 MHz) and the 15 cm wire is just a good transmitting antenna for that 300 MHz. I may be wrong of course, I have no details of the strength/slew related implementation
What I tried, unfortunately unsuccessfully
- changing ADAU filter schematics – no effect at all
- changing MCLK programmatically (in SigmaStudio) – tiny effect. The spikes level changes very slightly
- changing slew rate and signal - tiny effect as well.
- using a shielded cable and instead of ribbon cable has a noticeable effect. The spikes level is getting lower but stays much higher desired level (DAC noise level or so)
- shielding the entire DAC board itself – tiny effect. Even with the shielded MCLK board-2-board cable there is a ~3cm printed MCLK wire on the DAC board that still probably emits the same.
- 12 MHz LPF (using on board 30 Ohm “debouncer” and external 200pF cap) before the MCLK
“antenna” – tiny effect.
- an active buffer of 2 inverters (74HC04) connected sequentially – no effect on the spikes and the DAC stops working (probably due to unacceptable delay between MCLK and other i2S signals)
- 20 kHz RC LPF on the DAC output gives the best but though incomplete result.
Using other less RF sensitive DACs is not option for me. The planned device is a crossover, too many new DACs with unpredictable result will be required, and all the components are already mounted into a chassis. 20 kHz RC LPF on the DAC output looks rather “infamously”
Do you have an idea for what to do or try?
Thanks in advance,
Serge
PS Sorry, turned out too long
Hello SergeG,
Longer posts are not a problem at all!. I am the king of long posts! This is so much better than getting a post that says "It is not working! I get no sound! What is wrong?".
I think you may be dealing with multiple problems. Your early comments:
DAC output shows 2 spikes (approx 430 and 215 Hz at approx -90 db).
The spikes move a bit (+/- 10 Hz) over time probably due to warming up.
This is classic symptoms of idle tones from Sigma-Delta converters. Despite the attempt of designers to get rid of these they can still appear. It happens when the audio signal is very low so the DAC does not have much to do. Small errors and mismatches in silicon and current sources etc. inside the DAC will cause an error that gets fed back into the modulator and causes sort of a feedback or a tone. Hence the name "idle tones". They will differ from part to part and they will be sensitive to temperature.
There are a couple of ways to get rid of them. If the noise floor is high enough then it will not happen. Most people do not want to increase the noise floor for some reason. :) Another way is to add a small DC offset. If the DAC filter is cap coupled then this will work well. The downside of this is that the clipping will be non-symmetrical so you will clip slightly early. Since you have a DSP you can create a smarter project that adds some DC to the signal when the audio is really low and slowly get rid of it as it gets louder. I have not done that but it is possible.
First, to verify that they are idle tones. Setup a project with an oscillator going out to the DAC. Mute the oscillator and observe the tones on the DAC output. Then turn on the oscillator at about -70dB and see if the tones move up in frequency. Increase the level in about 5dB steps and see if the tones go up in frequency. If they are idle tones they will go up and eventually go up out of the audio band or just disappear.
If you verify they are tones then just add a little DC offset to the audio right at the output and that should take care of it. Do the same thing, start with very little DC and then increase until the tones go away.
Changing to a different ADC or I2S source probably made a difference because all ADC converters have a DC offset. Most of them have a HPF built in to get rid of it. So if you use an ADC with the filter turned off you might of had enough DC offset to get rid of the tones. In addition, boosting low frequencies in the DSP and increase the DC offset as well.
Your other experiments with the clocks and the drive strengths etc., seems to me to be showing a grounding issue with the entire system.
Modern systems are horribly grounded. Often ground comes from the USB port and most of those are horribly grounded through ferrite beads allowing high frequency currents to drop a voltage across them. Then the computer and most evaluation boards are using switching power supplies. Most of them are not grounded at all so they are adding a bunch of noise and no reference or chassis ground to give a path for return currents. You need a path for noise picked up over the air to return to the source and with no chassis ground the path will be through the audio circuits and power supplies.
We (Analog Devices) do make some great USB isolators that allow you to get power from a different source and isolate the grounds allowing you to properly ground your device. This gets so beyond this post. I probably could write a book about it!
In reality you are probably designing a speaker with a crossover. You will most likely be using a local power supply. You will just need to carefully look at how the PCB layout is done for power and ground and placement of the components. You have to keep in mind where the signal currents are going and where/how will they return? Do not have regulators and voltage references be such that it will share a return path with some digital clock signals. The audio ground paths need to be as short as possible and far from current paths and magnetic fields from those currents to prevent this crosstalk.
Also, super important is how the bypass caps are done for all the parts. Look at this document I wrote on the subject. It is for a specific codec but applies to any part.
(+) PCB Layout Best Practices for AD193x codecs - Q&A - Audio - EngineerZone (analog.com)
These are my first thoughts. See, I told you I am the king of long posts.
Dave T
Hi Dave,
Thank you very much for the detailed response!
Unfortunately I do not think the problem is really idle tone or grounding related. It’s rather a different, not typical “miracle”.
Why so? Let me try to give some details of the most representative experiments, I spent many weeks on this before asking you. Might I ask you to try to treat it as a non-typical “miracle” for a second. :)
So I have a chassis with ADAU1467 board, 3 DACs (crossover) and PSU for all of them. For the experiment I’ve added a USB-2-I2S adapter.
The connections sequence
PC (signal generator)→USB-2-I2S→DAC->ADC (USB sound card)→PC→ Software spectrum analyzer. noise level ~ -150db as it’s shown in the (probably not too calibrated) spectrum. ADAU1467 board is powered as all the rest. The ADAU signal connectors are spare (not connected to another entity at all, just powered and nothing else). And I do observe good spectrum without spikes.
Then (please keep in mind the I2S source of the DAC is still USB-2-I2S, not ADAU) I only connect a single 15 cm dupont ended wire to ADAU’s MCLK, the other end of the wire is not connected at all and the spikes appear (at -90 db). The DAC, its gounding, DC offset etc are obviously the same.
Disconnecting the dupont from the MCLK pin only – no spikes again.
Connecting the MCLK “antenna” – the spikes are back.
Press and hold the reset button of the ADAU – no spikes.
Release the reset buttons – the spikes are there back again.
The results are pretty stable and reproducible.
Replacing the single wire with a shielded cable (of the same 15 cm length) decreases the spikes level to ~ -110db, but the behavior is strictly the same:
no (connected on the other side to nowhere) cable – no spikes,
cable (with the reset button held) – no spikes.
In other cases – the spikes
Another experiment with a next I2S source.
The DAC is still connected to the previous USB-2-I2S source (not to ADAU). ADAU’s signal connector is spare. Connecting the same 15cm “antenna” to the new I2S MCLK source – no spikes, just brilliant spectrum as it should be expected.
Isn’t it an evidence of there is something special in ADAU’s MCLK?
It has ability to emit radio somehow. Other I2S sources have no such effects.
In my humble understanding ADAU’s MCLK definitely has something more than just a 12MHz square signal.
The later perfectly emits by the 15 cm antenna.
Actually there should be some specifics due to ability to change slew rate and signal strength at least.
How the options are implemented by ADAU 1467? By a kind of PWM where there are higher “background” frequencies in MCLK. Could the frequencies be a reason of the MCLK emission?
Understanding this could push me to a suppressing related idea.
May be I should just load the second end of the MCLK wire/antenna, not allowing it to be it spare?
How to suppress or compensate such emission?
What are the electrical parameters of the MCLK (and other ADAU’s I2S signals)? Maximum load resistance/capacitance, current?
Can I pull the second end of the wire up or down in the hope the emission will be lower?
Thank you!
Serge
Hello Serge,
This is still somewhat ground related but also seems like it can be a transmission line issue as you are thinking. There are pin drive settings on the DSP.
Set these lower might help. There is a setting for the Clock Out pin. If you are not using it then make sure it is turned off. There is a register setting to shut it off.
The harmonics of a 12MHz square wave go quite high! Lowering the slew will help. You can also add some damping resistors on these clock lines. It is very difficult for me to really help too much here because I would really need to be in front of it to see all the connections and also to see details like PCB layouts.
I am not sure exactly which board you are using?
Dave T
Hello Dave,
First of all thank you very much for the participation!
>This is still somewhat ground related
We may assume that, but could you please explain the theory?
Beg your pardon for the repeating.
The DAC is connected to a third party I2S source, the ADAU board is near and just powered up, nothing is connected to the ADAU board and no spikes in the spectrum at all.
To have the spikes it’s enough to connect a single 15cm wire (that is not connected on the other end at all) to CLKOUT to see the spikes. Even if the grounding is not good enough (let’s assume that) and even the ground unwantedly receives the emission, the emission obviously exists. Or I'm out of my mind :)
>There are pin drive settings on the DSP.
There is no exactly the same parameter in SigmaStudio 4.7 (ADAU 1467), but there is a similar called CLKOUT. I definitely tried all the combinations of pull-down/slew rate/signal strength without any luck. So I’m sure the spikes level are the same with 0.5-1db precision (the entire spikes level is about -90db) in spite of the settings
>There is a setting for the Clock Out pin. If you are not using it then make sure it is turned off. There is a register setting to shut it off.
“Turn off”? If so, the ADAU won’t generate MCLK at all? Please give me more details for a next possible experiment. What else CLKOUT related register I could tweak. I’m under impression I tried everything.
>The harmonics of a 12MHz square wave go quite high!
Unfortunately 100 MHz oscilloscope already shows the clock as triangle, visually stable. Anyway I can’t visualize the clock shape with more bandwidth equipment. I could also suspect in the spectrum there are parts below 12MHz, due to not strictly square signal shape or “intermittence” (hard to imagine that though)
>You can also add some damping resistors on these clock lines.
The board has built-in 33 Ohm resistor between ADAU’s CLKOUT pin and the board connector where the wire/”transmitting antenna” is connected to.
What I already unsuccessfully tried are
- 680 Ohm resistor sequentially
- 680 Ohm resistor to the ground directly on the board connector
- 680 Ohm resistor ground on the spare (not connected to anywhere) end of the wire
- 100-200 pf cap to the ground directly on the board connector (in the hope the 33 Ohm above and the cap will give an LPF)
- 100-200 pf cap to the ground on the other end of the wire.
No effect, a could just make the clock unoperable (if the DAC is connected to ADAU) It’s an unexplainable miracle ))
>I would really need to be in front of it to see all the connections and also to see details like PCB layouts.
I would be happy to give any information. Photos and spectra are acceptable? I will take I time, but I definitely can do that, if you would like me to. Your hypotheses will be very useful anyway.
>I am not sure exactly which board you are using?
ADAU1467 - aliexpress.com/.../1005002655592681.html
DAC - aliexpress.com/.../1005006438915119.html (the Bluetooth module was removed and plain I2S inputs are used to connect I2S source
Thank you,
Serge
Hello Dave,
Meanwhile I’ve found a remedy.
The previous history in brief.
I’ve found that CLKOUT of the ADAU can emit redundant frequency signals via a 15 cm wire (even one end connected) to CLKOUT. Sigma Studio adjustments do not help. The signals are observed as
-90db spikes in the audio range on the output of the I2S connected DAC
My hypothesis was there is something wrong in the CLKOUT shape and it’s not absolutely clean/stable.
What I tried and what was helpful
is sample rate converter (SRC4192 based) inserted between ADAU’s I2S output and DAC’s I2S input. The converter just re-clocks 48 kHz ADAU output to another/new 48kHz. Re-clocking 48 to 48 is a pretty silly thing you could think. ) Actually not in my case. The converter also recreates MCKL, BCLK and LRCLK from scratch using internal Xtal and doesn’t allow the original (ADAU) MCKL/BCLK/LRCLK reaching the DAC.
As the result the DAC output has not any spikes anymore, believe me or not….
My humble hypothesis is the ADAU’s MCKL(CLKOUT)/etc are too synthesized and do contain unexpected frequencies in the spectrum, but SRC’s MCKL/etc are strict derivatives of pure Xtal frequency division by integer factor (no PLLs etc)
If you have a different explanation for the results of the experiment, please let me know.
In spite of the remedy is found it’s not a good solution for me. My design is actually a 3-way crossover, so I would need 3 independent SRCs for the final solution and it looks too much.
Thanks in advance,
Serge
Hello Serge,
Can you send over your project file? I actually do not need any of the program to be in there, just all the register settings.
What is driving the MCLK?
What is the part and what is the frequency?
Then I would like to look into the project to see all your clock settings.
Thanks,
Dave T
Hello Dave,
Looks like we are starting from the beginning again ))
Please do not get me wrong I do appreciate all your efforts and highly estimate all the time you’ve spent.
Any project can reproduce the problem including just a sine generator (even with minimal/zero signal) connected to 32/33 outputs. Any CLKOUT (MCLK) generated by ADAU with a one-end connected wire produces artifacts on the analog output of my design.
The artifacts do not depend on CLKOUT frequency, signal strength/slew rate/etc. I’ve spent a lot of time on it and definitely tried all the options combinations, documented/available in SigmaStudio at least.
I do realize the problem is rather my design specific, too sensitive analog part, too specific spectrum measuring equipment or so. My Sample Rate Converter based pseudo-solution probably just moves the microvolt level artifacts to a location beyond by 20-50k spectrum range I could observe, so I just do not see the “habitual” artifacts, that does not mean the artifacts don’t exist.
Anyway 3.3 v level RF signal (CLKOUT) can’t be completely ignored by analog part, can leak out to analog part so can produce inter modulation results with the clock of the spectrometer.
I’m focusing on the analog part now, shielding, inserting LPFs, using bandwidth controllable opamps (eg 5534) etc
Yours,
Serge
PS Thank you for the brilliant support