MCU communicating to ADAU1701 through I2C
Hi Brett
With our project going on, we now removed the eeprom which the DSP boot up with it. We want download data into dsp trough I2C. We met problem with I2C read. Please see attached picture. We send 'write' firstly, you can see ACK. But when we send 'read' no ACK returned. How does it come? Thanks.
Jackie.
Maybe we insert a STOP after the write. We don't know if the STOP will cause the problem. We will try it tomorrow.
By the way, on page 24 of the datasheet, the waveform of I2C read maybe wrong. The chip address keeps 0.
I will post our finding tomorrow.
Audio Signal Processors
SigmaDSP Audio Processors
adau1701
It looks like you might not have a valid "Repeated Start" condition.
Here's my (successful) I2C read:
The bytes are:
Start condition... Chip Address (write), Subaddress high, Subaddress low... Repeated Start Condition...
Chip address (read), Data byte 1, Data byte 2, Data byte 3, Data byte 4.
Here is a zoomed in version of the Repeated Start:
Here is the definition of Repeated Start (from Wikipedia):
Send a "Repeated start": Set SDA high, let SCL go high, and pull SDA low again. This starts a new I²C bus transaction without releasing the bus.
In your scope shot, the Repeated Start is not being correctly implemented:
The clock should be low, then data should go high, then clock should go high, then data should go low.
So, the correct way is:
SCL low, SDA high, SCL high, SDA low.
Your implementation is:
SCL high, SDA high, SDA low.
This is why the read is failing.
Best Regards,
Brett
Hello Brett, You are right, it works! Now we have got rid of the EEPROM. We have complete control of the 1701 now. Cheers!
Hi I am using MCU like you do at the moment and we gor no luck on send program to ADAU. We got no reading. I am wondering if you would be able to help on look the connections and build firmware?
Please log in to reply.





