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: Temperature aquisition does not start / Sensor ignores the first package

Part Number: TMP117

Hi

I created a flex PCB with the TMP117AIYBGR. I manage to start the communication with the sensor and I can read the default values of the registers.

However, the temperature conversion never starts, even after a power-up, and the value in the temperature register is always the default value of -256C.

Furthermore, the tested sensors do not acknowledge the first package that is addressed to them. To communicate with the sensor, I first have to send a "dummy" package that is not acknowledged, followed by the desired command. The sensor also does not store configurations sent to it, although the sensor acknowledges the data.

The image shows the "dummy" package in orange, followed by the read command in the green box. The read register was not changed and is on the default value.

The sensor is the only component in the I2C bus and is supplied by 3.3V. The pull-up resistors are 2.7k Ohm.

How do I get the sensor to start the conversion and is this behaviour normal?

Best regards

Fabian

  • Hello Fabian,

    After the supply voltage reaches operating range, the device requires T_reset=1.5ms. Is it possible that the program is not waiting for the required reset time after the device is powered on, before attempting the first communication? 

    Under the factory EEPROM settings, the device is configured to report an average of 8 conversions (124msec) with a conversion cycle time of 1sec by default.  It will read -256C before the first temperature result is ready. You can change the power-on reset settings with the user-programmable EEPROM (see datasheet section 7.5.1). 

  • Hi Sakeenah

    The program waits for 1s after the supply voltage is reached before starting the communication.

    I managed to write my configurations into the EEPROM and validated the written data after the start-up. However, the temperature data in register 0x00 is always -256C regardless of the configuration in the register 0x01. This also does not change after 20s - 60s.

    Best Fabian

  • Hi Fabian, 

    From the scope shot, it looks like the first START condition is not correct. While SCL is high, you should bring SDA low and keep it low for 600ns (T_HDSTA spec). In that picture, it looks like SDA does not quite reach 0V and also does not stay low long enough. Could you please try this and see if it helps? You could verify that communication is working properly by reading the device ID register 0x0F and check its value is 0x0117h. 

    Best,
    Sakeenah

  • Hi Sakeenah

    The first start condition should be fine for the start condition. It is below the V_IL level (~900mV) for about 3uS):

    And I realized that the sensor causes this start behavior. If only the uC were connected to the pull-ups, the start condition would look much better

    I can confirm that I can read the value 0x0117h from the register 0x0Fh.

    Best Fabian

  • Hi Sakeenah

    I managed to trace the issue to a poor ground connection on the flex PCB. Fixing the connection fixed the issues and the sensor performs as expected.

    Thank you for your support.

    Best Fabian