This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2C Arbitration Lost Issue

We use I2C1 to communication with wm8731.I2C1 works in master mode, and there is no other device in the i2c bus except wm8731.The pull up R is 4.7k.when write to wm8731, once in a while, AL interrupt will generate.

 

I do read the section about AL in the manual, but what I want to know is beside that when and why Arbitration Lost interrupt can generate.

 

By the way, in the scope, we find that when write to wm8731, ACK will immediatey be given out on the SCL’s 8th falling edge, and SDA will not be release until the SCL’s 9th falling edge. Will that affect?

  • What processor is this? What software are you using?
  • The processor is AA3358 and the os we using is linux-3.2.0-chipsee.

    Yesterday,we found a a new phenomenon.

    we connect a 20 ohm resistor in series with the signal SCL and SDA separately.

    if we connect a 500 ohm resistor in series with the signal line SCL and 20 ohm with SDA, the AL interrupt will not generate,and all fuctions seem like normal.

    And if if we connect a 500 ohm resistor in series with the signal line SDA and 20 ohm with SCL,the AL interrupt will generate more frequently.

    Maybe the AL detect procedure of I2C Master should stop at the time just before pull SCL Low on the 8th clock. Because the slaver will immediately pull sda low on the SCL's 8th falling edge,and on that time , the I2C detect SDA low ,the AL generate.

    I want to confirm when will I2C on the am335x will stop AL detect procedure and is there any way to forbide AL detect procedure.

  • What is the revision of your processor? On SR1.0 devices there is an Errata Advisory 1.0.26. Please check it.
  • The mark on the chip is AM3359BZCZA80,so the reversion is 2.1. But It seems not affected by Advisory 1.0.26.

     According to Advisory 1.0.26 and our experiments, the ring on the SCL maybe result in AL interrupt, and maybe also result in wm8731 NACK when write to it. But it  seems hard for me to understand  the internal cause of AL interrupt when there is only one master.

    Anyway, it maybe the solution to our problem, and we will further verify the feasibility of this suggestion.

    Thank you very much.