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.

TMP117: TMP117 I2C signal integrity issues?

Part Number: TMP117

Dear all,

I have 4x TMP117s connected on the same I2C bus. When I try to read the data from those sensors at first glance it seems to be working (like, showing 24.50 C). But, when I place my finger to heat one of the sensor, the number doesn't change much (only the number after the decimal point shows some movement). The last byte changes quite a lot (0x08 in the screenshot), but the first byte (0x0C) does not move at all.

Since those sensors are spread over ~20 cm in a PCB I started to wonder if this is a signal integrity issue. Below, a screenshot of what I am facing here. The yellow and blue traces are the "original" acquired signals (red and white are the decoded I2C signals of the scope). Some overshooting, and possibly crosstalking, is happening in the falling-edge...

Well, I am open to any comments and suggestions. Thanks a lot!

  • Dear Rafael - 

    it looks to me at first glance that

    1. Your V/div is way off on channel 1 so check your scope probe and see that it matches up with your scope channel - (no way you are doing 20V/div on I2C line, right? :))

    2. after checking that, it looks your pullup resistors might be too weak for the amount of bus capacitance you might have - you can see this in your scope shot of the SCL line. 

    For example, using a simulation - with 10k pull up and 100pF of bus capacitance (looks alot like what you captured)

    versus with 3.3k pullup and same bus cap

    you can try that probably quickly and see if that is the root cause - and if not, then please send over your schematic (in PDF, if possible) and layout so we can check that out. 

  • He Josh, thanks a lot for your answer.

    1. You are right, I forgot that I was using x1 probes, and not x10.

    2. I am actually using quite strong pull-ups (1k). Maybe my bus capacitance is way too high (higher than the 400 pF limit). I was wondering how bad my routing was until I decided to check two I2C multiplexers that I am using... Voilá, I left some channels enabled when changing to the other mux and that was the root of all my problems.

    I add here the schematics so it will be easier to picture what I am saying:

    Thanks a lot!

    Rafael