User Manual

Application Note
SMBus communication with MLX90614
390119061402 Page 14 of 32 Jan-2008
Rev 004
Table 7 describes most important RAM registers. For other registers in RAM and EEPROM
memory refer to MLX90614 datasheet.
Table 7
Name Address (hexadecimal)
Ambient sensor data 0x03
IR sensor 1 data 0x04
IR sensor 2 data 0x05
Linearized ambient temperature T
A
0x06
Linearized object temperature T
obj1
0x07
Linearized object temperature T
obj2
0x08
All bytes are sent and received with MSb first.
The format of SMBus reading from RAM is:
RAM memory is read only via SMBus. The reading data are divided by two, due to a sign bit
(Sn) in RAM (for example, TOBJ1 - RAM address 0x07h will sweep between 0x27ADh to
0x7FFF as the object temperature rises from -70.01°C to +382.19°C). The MSb read from RAM
is an error flag (active high) for the linearized temperatures (T
OBJ1
, T
OBJ2
and Ta). The MSb for
the raw data (e.g. IR sensor1 data) is a sign bit (sign and magnitude format).
Pseudo code example: Reading RAM address 0x07 (Tobj1)
1. Send START bit
2. Send Slave Address (0x00* for example) + Rd\-Wr bit**
3. Send Command (0b000x_xxxx + 0b0000_0111 -> 0b0000_0111)
4. Send Repeated START_bit
5. Send Slave Address + Rd\-Wr bit**
6. Read Data Byte Low (master must send ACK bit)
7. Read Data Byte High (master must send ACK bit)
8. Read PEC (master can send ACK or NACK)
9. Send STOP bit
Note* : Any MLX90614 will respond to address 0x00
Note**: Bit Rd\-Wr has no meaning for MLX90614
After POR before to read the temperature additional delay is needed or the first measurements
will not be correct. This additional delay depends on the FIR filter (After POR the digital part of
the MLX90614 is restarted, IIR =100% for the first temperature calculation flow from the module,