Post Go back to editing

ADAU1361 record not working

Category: Hardware
Product Number: ADAU1361

Hello everybody,

I am using ADAU1361 for playback and record audio signals. Playback mixers, DAC and outputs works perfectly, but I cannot make ADC work.

Technical data:
PLL is not used
24.576MHz oscillator used
fs is 48kHz
ADAU is used as I2S slave.
All power supply pins are decoupled according to the datasheet.

I would like to use RAUX and LAUX input for recording signal from a microphone. I use MAX4467 as a mic preamplifier. I configured input mixers to route AUX signals to ADCs, but I can hear only noise with almost max amplitude when I am recording.

Because I thought that the preamp can be the issue, I tried some things:
-disconnected preamp from AUX inputs, and connected all inputs to CM. Nothing changed, record is full of noise.

-same as above, but I did not enable mixer1, and mixer2, so no any signals can reach ADCs. Nothing changed.

-Did not enabled any of the ADCs. Noise of course vanished.

I do not have more idea what could be the issue.
Anybody has any advice?

  • Some additional info:
    AVDD is filtered by RC filter (10R-10uF)
    Noise on AVDD and VDD is less than 10mV.
    I do not use SigmaStudio.

    Register values for the first case:
    R0:   0b00000011
    R22: 0b00000001
    R23: 0b00000101
    R24: 0b00000001
    R25: 0b00000101
    R19: 0b00100011

    Second case:
    R0:   0b00000011
    R19: 0b00100011

    Third case:
    R0:   0b00000011

  • Hello Fbalint,

    First I need to mention that you really should use SigmaStudio to develop your register settings. Even if it is not actually connected your error would have been obvious. 

    R22, you have the DAC muted. 0x21 will unmute the DAC and enable the mixer. 

    What output are you using? I guess I will go through your other settings to try to figure this out. 

    R22 you are using the Left Aux signal directly from the record side and feeding it to the playback side at a level of -3dB. Is that what you want to do? It is not going through any converters. This is meant to be a sidetone for a phone so you can hear yourself a little in your earpiece which sounds more natural. I do not see this used much because there will be comb filtering with any signal coming from the DACs. 

    R24 you are sending the right AUX directly to the right playback. Again, without going through the converters. 

    R25 you are sending the mixer output from the record side over to the playback side. Bypassing the converters.

    Nowhere in your register settings you provided are you unmuting any outputs or setting up any of the serial ports. 

    Since you are getting a lot of noise I wonder what is going on with the digital serial communications? Can you take some scope shots showing the clocks and data? 

    How do you plan on using the part? You mentioned the DACs are working perfectly yet the DACs are muted. So you are hearing the analog signals bypassing all the digital based on the settings you gave me. 

    I strongly suggest you download SigmaStudio and use it to setup the registers. It is only four tabs worth of registers but you can end up with an output of the register settings. If you cannot connect it to your hardware then just setup the USBi GUI interface to use SPI so it has no idea there is no hardware connected and then you can pretend to program the part and in the capture window you will have all the register settings that you can capture into a text file. 

    You can see the signal flow so easily in the GUI.

    If you tell me all the requirements of your system. How you want everything configured I can try to make a video showing how to do this.

    Dave T

  • Hello
    Thanks for reply.

    I installed SigmaStudio before my post, but I couldn't extract the register values from it, and I do not have USBi.

    Recording is working well now, unfortunately R16, serial port resigter was not configured correctly. It was in default state, but I should have set the BPF to 48 since I use 24 bit stereo signal.

  • Hello Fbalint,

    Glad you found the register that was causing the problem. 

    To address the issue of using SigmaStudio. You do not need a USBi to do this. Yes, SigmaStudio will bark at you because it is not there but you can still extract the data you need. 

    Here is how you do it:

    go to the Hardware config main tab and then the Config tab. Here is a screenshot:

    I had two codecs in this project but I want you to note a few things. 

    1) The communications is setup as SPI. This is important because SigmaStudio will not wait for an ACK from an I2C transaction, it will just send the data and assume something is picking it up. 

    2) Notice that the field with the text "USB" is red. This means I did not have the USBi connected. 

    Then of course go into the register Controls tabs and setup the part as you need for your application. 

    Then open up the Capture Window if it is not already open. You will probably want to expand it up a little. 

    Click on the Link Compile Download button:

    You will see a bunch of lines of communications in the capture window. 

    You will also have a pop-up box barking that there is a communications error with the USBi but just click OK and ignore that. We know it is not there!!

    So then scroll to the top of the contents of the capture window and click on the first line.

    Then scroll to the bottom of the window to the last line and hold the shift key down and click on the last line. All of the lines should highlight like this:

    (unfortunately CTRL-A does not work in this window) 

    Then mouse over the highlighted text, right click and you will see this menu pop up.

    Usually saving it to test is good enough. You have other options under the "Raw Data" sub-menu. 

    If you want it as an XML then you need to add it to the sequencer and in that window you can save it as an XML.

    This has the entire boot up sequence including wait times for things like the PLL to lock. All the register settings are in there. It does not know what the default values are so you can take the time to look through them and omit the ones that are the default values. SigmaStudio cannot assume the state of the part so it writes every single register. 

    Hope this helps in the future.

    Dave T