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: Data freeze on I2C supporting Temperature and Humidity Sensor

Part Number: TMP117
Other Parts Discussed in Thread: HDC2021

Tool/software:

Hi everyone,

I'm facing intermittent communication problems with a digital temperature and humidity sensor connected via the I2C bus. The sensor occasionally stops responding under various environmental conditions, including low humidity with high temperature, and sometimes even under normal ambient conditions.

Here's a summary of my setup:

  • The I2C bus has pull-up resistors of 10kΩ.
  • The alert pin of the temperature sensor is connected to the microcontroller but is not used in the current application code. It requires a pull-up resistor but not populated
  • The data ready pin of the humidity sensor is connected to the microcontroller but is also not used in the current application code.
  • An EEPROM is connected on the same I2C line but is not used in the current application code. : 

Troubleshooting steps taken:

  1. Removed the EEPROM from the I2C line: Communication still failed.
  2. Changed pull-up resistors to 4.7kΩ: Communication failed
  3. Removed connections of the alert pin and data ready pin to the microcontroller: Issue persisted.
  4. Grounded the alert pin and data ready pin: Microcontroller resets more frequently than expected.

Despite these efforts, the sensor continues to become unresponsive, requiring a power cycle to restore communication. Has anyone encountered similar issues with I2C sensors under such conditions? What potential solutions or additional troubleshooting steps would you recommend? I can provide I2C waveform captures if that would help diagnose the issue.

Thanks in advance for your insights!

  • Hi Rachana,

    Could you please clarify for me which devices you are using, and which device is having a problem? It sounds to me like the the problem is a humidity sensor, not the TMP117.

    Does every device have this issue, or just some? What percentage of parts have this problem? Is the failure in communication intermittent and seemingly random at different temp & RHs, or predictable and repeatable? Which humidity sensor is being used?

    When you say "Removed the EEPROM", do you mean a different IC with EEPROM was removed? Or are you trying to communicate with the EEPROM in the sensor?

    Thanks

    -Alex Thompson

  • Hi Alex, 

    This issue of I2C bus SDA line held low which is causing data to be freeze is observed on all 15 manufactured boards. Issue mostly occurs in High temperature. but exact value of temperature at failure is unpredictable. Issue repeats when after a power cycle only when temperature is increased. 

    I have only one master microcontroller on I2C bus with slave devices as follows.

    1. HDC2021 - a humidity sensor

    In current code, we were not using data ready pin of HDC2021 sensor. To understand if this is causing issue I tried shorting this pin to ground issue persisted. sensor kept on resetting. so, tried cutting this trace on PCB to microcontroller. Issue persisted. I have observed that  controller is failing to read data from Humidity sensor 1 to 3 times before final failure of SDA line held low is observed.

    when you said Humidity sensor sounds to be a problem-some, could you please clarify why your thoughts ?

    2. TMP117 - a temperature sensor

    As I had no intention of using over temperature alert pin of temperature sensor in current application. For future applications, we have put a trace to microcontroller, tried cutting this trace and still issue persisted.

    3. EEPROM - Memory 

    current code has no provision to communicate with EEPROM on I2C bus. It is connected to satisfy future applications. when I said I removed EEPROM, I meant I removed an EEPROM IC connected on I2C bus to mitigate diversion from issue and focus on communicating devices. Issue persisted.

    Following are the images of circuit

    Also, we tried replacing power supply issue still persisted.

    Thank you 

    Rachana Chougule

  • Rachana,

    Can you please share oscilloscope captures where the communication fails, and the SDA line is held low? Can you also describe which temperatures and humidity levels you see this problem at, and tell us if the microcontroller is placed in the high-temp environment as well?

    Thank you

    -Alex Thompson

  • Hi Alex,

    temperature and humidity value of failure is very random. between 25 to 85 degree, mostly.

    Both sensor and micro installed on the same board hence it is also placed in the high temp environment.

    Following image is taken when data freeze occurred when board was heated.

    Thank you 

    Rachana

  • Rachana,

    This scope shot does not show fault, it could be or normal operation. Could you please show more of the transaction, ideally with a logic analyzer or I2C decoding (I understand if this is not available to you)? I would like to see the full trigger measurement and read data sequence for both the TMP117 and HDC2021, with examples of seeing SDA held low and SDA working OK. 

    Could you also please tell me, what communications are you trying to do with each sensor? How long are you waiting between data reads? It's possible that you are not allowing enough time for the temp/RH conversion to complete before trying to read data, leading to errors. The conversion time can change with temperature, so its important to not read too fast.

    Regards

    -Alex Thompson

  • Hi Alex,

    We attempted to capture the I2C waveforms but couldn't observe any signals that may be problem some. Later reviewing the layout, we discovered a longer path for the decoupling capacitor connected to the IC HDC2021's VCC pin . Adding an external short circuit pin resolved the issue.

    Thank you for your support!!

    Best regards,

    Rachana