AD7291 intermittent I2C bus lockup.

I am using the AD7291 8-channel ADC on a 100kHz I2C bus, single master beaglebone black.  It is one of 5 data acquisition chips on the bus.  Another one is the ADXL354 mems accelerometer.

They all are working perfectly except for the AD7291 which intermittently caused a bus controller timeout and eventually bus arbitration error because it appears to be holding down the SDA line.

I have tried everything to address this including adjusting the pull up resistors, slowing down the bus clock, speeding up the bus clock.  

I have tried reading the adcs one at a time and with a 16byte read of them all.

Can you provide any suggestions to what may be causing this issue.  My decoupling and power is a duplicate of that shown in your evaluation board in the 7291 Users Guide.

Thanks

Neil Johnson



Added Tags
[edited by: @skowalik at 12:43 AM (GMT 0) on 6 Mar 2020]
  • 0
    •  Analog Employees 
    •  Super User 
    on Mar 6, 2020 12:42 AM

    Neil,

    Could you kindly attempt to reproduce the problem while monitoring the bus with a scope or protocol analyzer so that we can see the exact sequence that is causing the issue?   Also any supporting code or code prototype that you can share that will allow us to debug the issue will also help.

    Would you characterize the stuck bus condition as a acknowledge by the slave device without an appropriate response by the master?  For example should an additional command byte and/or a repeated start have followed the acknowledge by the AD7291?

    Sean