ΣSigmaStudio Ask AI Русский Log in

MCU communicating to ADAU1701 through I2C

SigmaDSP & SigmaStudio JackieTan May 29, 2013 00:00 3 replies Original on forum ↗
Subscribe
JackieTan Question
May 29, 2013 00:00

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

ADIApproved Reply
May 29, 2013 00:00

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

baae3f6ad5832e37f0b0918162e1617e.jpg
baae3f6ad5832e37f0b0918162e1617e.jpg
baae3f6ad5832e37f0b0918162e1617e.jpg-450x111.jpg
baae3f6ad5832e37f0b0918162e1617e.jpg-450x111.jpg
a9fde785d98f4134bfa29bfc2d6c4d17.jpg
a9fde785d98f4134bfa29bfc2d6c4d17.jpg
a9fde785d98f4134bfa29bfc2d6c4d17.jpg-450x64.jpg
a9fde785d98f4134bfa29bfc2d6c4d17.jpg-450x64.jpg
f20c8ebb523669a8ead77d5bdc159082.jpg
f20c8ebb523669a8ead77d5bdc159082.jpg
f20c8ebb523669a8ead77d5bdc159082.jpg-450x325.jpg
f20c8ebb523669a8ead77d5bdc159082.jpg-450x325.jpg
JackieTan Reply
May 30, 2013 00:00

Hello Brett, You are right, it works! Now we have got rid of the EEPROM. We have complete control of the 1701 now. Cheers!

Tomdy Reply
Jun 12, 2019 00:00

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?