Post Go back to editing

ADAU1701 I2C read

Hi

My customer is trying to initiate an i2c read from adau1701.

Addr0==Addr1=0 => Write addr = 0x68, Read addr = 0x69.

Sequence looks like he indeed sends 0x69, however adaqu1701 doesn't send an ack (pulls SDA low on 9th clock)

Attached are read sequence & schematics.

Similar write sequence (sending 0x68)  produces the required ack.

Please advise

BR,

Alon

attachments.zip
Parents
  • Hello Alon,

    Thought I should explain it a bit more.

    All I2C commands start with a write followed by the two byte address.

    Then one of two things can happen:

    1) If it sees clocks it will continue to accept the data and it knows it is going to write to the address. Then it another byte of clocks arrive without a stop then it will increment the address and stuff the new data into that address.

    2) If it sees a repeated start followed by its chip address and the "read" bit set, then it will turn the SDA pin over to an output and start shifting out the data in the address it received. Then if it continues to receive clocks with no stop condition it will increment the address and send out the next address.

    Then finally, a STOP condition will end both of these types of transactions and return the state machine back to its start point.

    Hope that helps.

    Dave T

Reply
  • Hello Alon,

    Thought I should explain it a bit more.

    All I2C commands start with a write followed by the two byte address.

    Then one of two things can happen:

    1) If it sees clocks it will continue to accept the data and it knows it is going to write to the address. Then it another byte of clocks arrive without a stop then it will increment the address and stuff the new data into that address.

    2) If it sees a repeated start followed by its chip address and the "read" bit set, then it will turn the SDA pin over to an output and start shifting out the data in the address it received. Then if it continues to receive clocks with no stop condition it will increment the address and send out the next address.

    Then finally, a STOP condition will end both of these types of transactions and return the state machine back to its start point.

    Hope that helps.

    Dave T

Children
No Data

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.