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.

INA3221: INA3221 - I2C communication failure

Part Number: INA3221
Other Parts Discussed in Thread: INA4230, INA226, INA4235

Hello,

I have an application where I am running a long set of wires to this voltage monitor, containing two INA3221 chips using addresses 0x40 and 0x41.  The I2C interface is emulated and is intentionally really, really slow.  It is also buffered from the long wires so this is not about that distance.  The I2C clock runs at about 50Hz and that is because of the distance to get these signals into this box before they get buffered and emulated by a separate chip.  This has worked on some other I2C conversion chips and so now I am connecting these INA3221 chips and the communication is not working.  I wanted to ask if this is just a compatibility issue, due to the slow speed.

I did some searching and Google AI tells me that if I hold the clock low for longer than 28ms, the chip will just NACK until a new start condition begins.  I am attaching a picture that shows the timing and the clock is low for a very consistent 13.55ms, with the released time at 6.77ms.  I am using a pair of Adafruit 6062 boards and one is configured for address 0x41.  I use their onboard pullups so that puts two 10K resistors in parallel plus I put an extra 4.7K resistor on top of that for a final pull up resistance of just under 2.3K.  I even added more and dropped it to around 1K but it didn't seem to improve the rise/fall times at all.  The 10%-90% rise/fall time was around 3.6us.  That's slow but the clock doesn't change for a significant amount of time later due to the slow operating speed.  The concern there might be the logic interpretation of rising edges at the slow rate.  Changing the pull up resistor didn't make too much of a difference since I started at a maximum of 5K.

 

These INA3221 chips always ACK the address byte but then NACK the register byte, every time and I don't know what I can do to get it talking.  Do you have any advice for me?

I2C_INA3221.png

Thanks!

 

Michael

  • Michael,

    Thanks for the question and using the E2E forum.

    50Hz is much slower than what we specify for I2C communication with the INA3221 as we only specify operation down to 1kHz.

    My best suggestion would be to use an oscilloscope rather than a logic analyzer to ensure your voltage thresholds are within reason as well as confirm all of the other timings are within their operating parameters.

    Please let me know if you have any other questions.

    Louis

  • Hi Louis,

    All datasheets just follow the I2C standard created by Philips, decades ago.  I have been emulating the I2C bus at low speed (50Hz) for the past 15 years and it has worked fine on the limited set of devices that I have used.  It is only now that it doesn't seem to work with this chip and so I was hoping for feedback directly from TI in regards to limitations that their chip might have.  Referring to the datasheet doesn't really tell me much because that is just a standard.  It was a long shot because my request is pretty specific but I thought I would try anyway.

    My logic analyzer has analog capture and I got the rise/fall times directly from that.  I can sample the data at up to 500Ms/s so I don't have any trouble capturing the signal.  To be honest, it is the cleanest, most accurate looking data I've ever made but that's probably because the 50Hz rate and 3K pullup resistance results is very little ringing.  I'll have to add a micro into the path and run the I2C interface at 100KHz but I won't be surprised if the rise/fall time is identical because the wiring (about 5 inches of length) and pull ups will be identical.

    My question here is probably related to the embedded firmware running on the INA3221 and how it reacts to edge triggering on the clock, based on the rise time.  I probably won't get any help on that but, again, I thought I would try.

    Michael

  • Michael,

    Internally there is no FW on the INA3221 and the communication is handled with digital logic.

    You are correct that most datasheets follow the standard I2C specs. I've discussed this with our Design team and this is likely being caused by a timeout issue as the INA3221 was not specifically designed to operate down to 50Hz.

    By any chance have you tried this with our INA226, INA4230, or INA4235?

    Louis