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.

TMP103: Question regarding I2C continuous read for TMP103c

Part Number: TMP103

Hi Team,

My customer is using TMP103c on their application. Could you please share your insights of the following questions? Thank you.

  • We checked that the TMP103c supports the continuous read for a same register, right?
  • Customer tried to read the same register by writing the TMP103C(1100101) and pointer register(P1,P0=1,1) for 1 time but they can read only FF data.   It seems that there is -1 degree on the register.

Sincerely

Frank

  • Dear Frank -

    It appears to me that the pointer is not correct. Should be 00000000 (for temp reading) and if 00000011, this would point to the THigh register, however, as 00100011 was sent, i am not sure what this is pointing to, so it makes sense that 0xFF 0xFF would appear as the part doesn't understand this request as it is formatted. 

    Here I would recommend trying to send 1110 0101 (0xE4), then 0000 0000 (0x00), then clocking out one byte for temp, to ensure their firmware is OK. 

  • Hi Josh, Frank,

    Please note that TMP103 only observes the two least significant bits in the pointer. 00100011b will resolve as 11b, the limit register.

    thanks,

    ren

  • Hi Josh, Ren,

    Thanks for the comment.

    As I checked Ren's reply, so pointer register 00100011 will not affect, right? It should be same as 00000011.

    Sincerely

    Frank

  • Frank -

    Yes, i think that is correct, but as I said (or rather implied), you then need to issue addressed read after pointer being written for data to appear.  

  • Hi Josh,

    I let customer to measure the whole waveform and you can see the below screenshot.

    It seems that from the beginning is 1110010 then comes to pointer register(00000000, temp register), and frame 3 is again the slave address(1110010) and received the data 00010000,finally they got 0xFF in the following data.

    Could you please share your insights of it? Does TMP103C support continues read on same register?(I did see there is continuous read mode and turn the M1 as 1).

    Thank you!

    Frank

  • Frank - 

    Thanks - Here is how I decode that. Let us know what you think. Do you have their schematic and do you know if they are using I2C engine inside an MCU or bit banging this interface?  (click on image to enlarge) - I think I see an invalid stop condition, which results in breaking the I2C bus communication. You can see that SDA goes high while SCL is low, so while it is clear they intend to issue a stop (because they are leaving the clock on the way they do), I currently think this is where it is breaking, and this would point at the MCU firmware not respecting the I2C protocol. 

  • Frank,

    The TMP103 only has 8 bit registers. It will not respond to subsequent bytes after the first byte. You must start a new I2C read transaction to get a new temperature reading.

    thanks,

    ren