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.

TMP100 - Gibberish Out

Other Parts Discussed in Thread: TMP100

I have a TMP100 connected to a PIC32 chip. I think that at least most communication is happening properly. Write 0h92 then 0h00 to the bus and I get an Ack. Write the wrong address and no ack, good sign. Write 0h93 to the buss and I get an Ack. Read data and I get a byte, send an Ack then I get another byte. All this looks like I am functioning properly.

Looking at the first byte, based on the tech documents, it should in effect be the temperature in DegC. Its not. At an ambient of ~20C, I get a temp of 47C. Blow a heat gun @ 37C and the temperature goes down by 9C to 38C. The actual binary data is 0010111 for ambient and 00100110 at 37C. Please note the 2nd temp is not at all exact. 

The 2nd byte is always a 1 or a 0  followed by 7 zeros which is a reasonable output if the default is 9 bit resolution. Reading the config results in 10000000 which would indeed imply that the register is set at 9 bits by default.

Do I simply have a bad chip or would something else cause sporadic temperature outputs?

  • Hi Pebkac,

    Is it possible that a timing issue is causing the MSB of your data to be discarded/missed in some of your received data? Looking at your data, adding a leading zero to the received byte at ambient would make the temperature 23C which seems to be a reasonable value for ambient temperature. It might be helpful if you are able to observe the I2C lines during communication to ensure proper communication. If you can take a screenshot of this communication and post it here it would help the debug efforts on my end as well.

  • I received more chips today. The new chips report the temperatures I expected. 19.75C at ambient (Thermostat reports 67). Temperature goes up and down as expected when exposed to heat and cold. All I did was de solder the chip and solder on a new one. 

    I will keep an eye out for aliasing just in case, but the I2C bus is currently at 50khz so I don't expect that to be an issue.

  • Thank you for the update and I'm glad that replacing the chip gave the expected behavior. Please let us know if there is anything else we can do to help!