Hello,
I am using a microcontroller to read TMP102 temperature.
My system is running in the 40-50 C range.
The micro controller does the following operation:
- (power up of the system)
- read the config register value (it reads the reset value byte1=60h, byte2=A0h since the register was never programmed before)
- set the EM bit to 1 (new value is byte1=60h, byte2=B0h)
- write the config register new value
Then, at every second, it reads the temperature register and get the following results:
29A1h
29A1h
29A1h
29A1h
29A1h
29A1h
29A1h
29A1h
29A1h ==> up to this point, the temperature is still in 12-bit format, even if the bit 0 indicates 13-bit???
14D1h ==> from this point the temperature is fine (make sens)
14D1h
14D1h
14D9h
14E1h
14E9h
14F1h
I can't find anything about having to wait 9-10 seconds after changing the EM bit before reading the temperature register.
This is the only modification made to the TMP102 registers.
Note:
if I don't change the EM bit, then, all readings from the begining are fine (12-bit mode)
example:
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28A0h
28B0h
28C0h
28D0h
28E0h
2900h
Any idea why I see this behavior?
I have a workaround, where after changing the EM bit, I wait 15 seconds before reading the temperature for the first time, but I'd like to understand why I need to do this step...