INA746: I2C Communication issue

Part Number: INA746
Other Parts Discussed in Thread: TI-SCB

We are having an issue reading the manufacturer's code from the INA746. Please see the LA waveform screenshot.

As you can see, the I2C CLK is broken after this.

Note: controller is an Raspberry Pi, and we have other peripherals that are successfully communicating on the same bus.

Thanks!

  • Hello Tom,

    Thank you for your question. 

    Could you please try performing the read register as a separate sequence (after the register pointer has already been set to 3Eh)? As opposed to writing the register pointer and then doing an immediate read after.

    Is there any load capacitance on the SDA/SCL lines?

    Sincerely,

    Peter

  • Hi Peter,

    We tried your suggestion but it did not help.

    Yes, there are many devices on this chain, and I also had the concerns about C,load. Topology is as follows: there are 1k-Ohm PU (pull-up) resistors near the driver, a Raspberry Pi at 3.3V. Following the datasheet, I also placed 10k Res near the INA746. Note, the INA746 is near the end of the chain, and the trace length is between 15-30cm. But we also have the main VR, TPS546 after the INA746, and we have no issues talking to that VR. I tried an experiment of swapping 10k RES for 2.2k, but this experiment failed, with the I2C chain still breaking.

    Do you have any other ideas?

    Is I2C working well on the development board? If so, can you share the reference for my review?

    Thanks,

    Tom

  • Please check the I2C waveforms with an oscilloscope.

  • Hi Clemens,

    My colleague was able to take some waveforms with a Saelae logic analyzer. We can follow up with an oscilloscope as needed.

    Here you have...splitting into a first Write, then a Read 10ms later, does not fix the problem.

    Next you have two images (zoomed out, then zoomed in), channels are D14,D15 (SDA,SCL Digital), then A14,A15 (SDA,SCL Analog). Looking at the analog value of both lines, they show "correct/acceptable" signals (the rising edge times are fast enough for each bit to be wide, which is not the case when pull-up are too weak and/or capacitive load is too high).

    Here is the issue again when we try to Write Config register with value 0x8010 to perform a chip reset:

    Lastly, to add more context to our configuration, we are using a fairly low i2c speed of 40kHz, with Vs = 3,3V and Vbus=300mV.

    Thanks,

    Tom

  • Hey Tom,

    I appreciate your data. Thank you.

    The 1kOhm pull ups may be a bit too strong. It would be worth a look into changing the total effective pull up resistance to 4.7 kOhm. This is what device was developed with when using its EVM along with TI-SCB (sensor control board).

    Looking at the waveforms again it does seem you are pushing the data setup and data hold times to their minimum limits, especially the data hold time.

    Is there any way you can increase you data setup and hold times digitally? If not then maybe an RC into the SDA pin?

    Sincerely,

    Peter

  • Hi TI,

    Good news! We found an address conflict on the line. Once that was cleared up, the INA746 is responsive to I2C.

    Closing the issue.

    Thanks for your support!

    Tom