I would like to control ADAU1701 as a target with a MCU with i2c comm
Hallo,
I am Gabor from Hungary. I apologise for my poor english.
I built an own circuit with this ADAU1701 DSP and with an atmega8A microcontroller.
I wrote a simple code to initialize and set up to pass-through the DSP over i2c bus. In the manual of the DSP (page 15.) is a description about the sequence of the initialization.
1. Apply power to ADAU1701
2. Wait for PLL to lock
3. Load Sigma DSP program and parameters
4. Set up registers
5. Turn off the default muting, clear data registers and initialize DAC setup register
To only test analog audio pass-through (ADCs to DACs), Steps 3 and 4 can be skipped and the default parameter can be used.
I tried this methode, I skipped steps 3 and 4, but nothing was happened. The audio output was mute.
I just set bits ADM, DAM, CR in the core control register to one and I set bits DS [0:1] in the DAC setup register to 01. I think it is enough for the pass-through mode.
The MCU got in order all the ACK messages from the target. It was unbelievable for me, and I tried something. I changed in the i2c program the address of the core control register to a false value. I was surprised, because the ACK messages were again right, in turn the address of the core control register was false.
The next test was that I changed the address of the slave target. Normally it is 0x68 (both ADDR0 and ADDR1 set to 0.), but I changed to 0x6A. In this situation the first ACK was false. So I think the DSP is working fine.
I use 400k SCL frequency for i2c. But I tried it with slower (100k or 200k) too. No changes. I use 2,2kohm pull up resistors on the i2c bus. SELFBOOT mode is not active, pulled down to GND. The MCLK is working fine.
I think something is bewildet the host controller and it is get false ACK messages as normal.
Dou You have any idea? Maybe more register settings or i2c timing problem? Maybe there is a problem with the internal PLL? How can I check it?
Thank You!
Gabor
Audio Signal Processors
SigmaDSP Audio Processors
adau1701
Dear JeradL,
Thank You for your answer. It is very helpful! I try to load a simple program into the device, as You wrote.
I am surprised, that the manual is not correct (page 15. top). Because it is talking only about the ADAU1701. But, that is it I believe You!
Thank You again!
Gabor
The ADAU1701 does not have a pass-through mode that allows you to route audio from input to output without using the SigmaDSP core. You have to at least set up a simple program in SigmaStudio to route your inputs to the outputs and load this into the program RAM. For a simple program like this, you will not need to load any values to the parameter RAM. It would be best for you to look at SigmaStudio's capture window to see exactly what SigmaStudio writes to the ADAU1701 to set it up. This will show you exactly which bytes are being written to the control registers and RAMs, and will also show you the order in which this data is written. If you emulate this with your microcontroller, then you should be able to get your system working.
Please log in to reply.