AnsweredAssumed Answered

ADAU1442 and high quality sine wave generation

Question asked by XavLNK on Sep 1, 2012
Latest reply on Oct 24, 2012 by XavLNK



I am currently investigating the ADAU1442 for sine wave (more generally signal) generation and signal analysis.

I have the ADAU1442 EVAL board.


I built a very simple project with the tone generator.

The measured THD+N (through SPDIF OUT) is about -93 dB.  Really not impressive...

Looking at the FFT, I saw an awful amount of pikes in the frequency spectrum.

I could drastically improve things by adding a narrow band pass filter at the output of the generator that tracks the frequency of the tone.

I have now a THD+N ranging from -133 dB to -144 dB.  But I am not sure it is valid for all frequencies in the audio bands.

I made 10s of measurements with frequencies that would not relate to the sampling rate (just to get a worst case).

But this is not a exhaustive audio band scan, obviously.


Is there a better way to generate a clean sine wave?


I tried to build an oscillator in an "analog" manner, just by applying positive feedback in a system and a controllable phase to define unambiguously the oscillation frequency.  This is a trick that worked perfectly on a TI DSP TAS3101A.

But here, I cannot manage to get any oscillation starting.  Are there special tricks to apply for that?


Note & other questions:

1. To get SPDIF OUT operational, I had to modify the board.  For any reasons, the transformer was shunting the signal.  I bypassed it, used a capacitive coupling and it worked.  Being obliged to do that on such an expensive board is a bit of a pity.

2. When I proceed to read out from the DSP (level analysis), the USBi interface crashes all the time.  I can transmit (configure blocks) but not receive.  This is very annoying as I also need to use the DSP for signal analysis and sample capture.  I just can't do half of the evaluation of that chip.  Is there a way to solve that problem?

3. Where can I find a detailed documentation about the DSP blocks.  I would like to know which registers are used for what.  For the moment, I have to guess from what I see in the SigmaStudio.  Not very efficient.  This kind of documentation should be somewhere but I cannot find it.


Thanks for your support,