Datasheet

2015-2017 Microchip Technology Inc. DS20005426C-page 19
MCP9600
FIGURE 4-5: Timing Diagram to Set a Register Pointer and Read a Two-Byte Data.
SDA
A
C
K
1100
A
Alert 1, 2, 3, 4 MSB
0001
A
C
K
S
2
A
1
A
0
12345678 12 345678
SCL
0
Address Byte
W
0xx xxxx
A
C
K
12345678
x xxx
xxxx
A
C
K
12345678
xxxx
P
TABLE 4-4: POINTERS
Alert Limit
Registers
Pointer
Alert 1 0001 0000
Alert 2 0001 0001
Alert 3 0001 0010
Alert 4 0001 0011
MCP9600
Alert 1, 2, 3, 4 LSB
A
C
K
1100
A
MSB Data
A
C
K
N
A
K
S P
2
A
1
A
0
12 345678 12345678 12345678
Address Byte LSB Data
R
MCP9600
Master
Master
SDA
SCL
xxxxxxxx xxxxxxxx
MCP9600 Clock Stretching
Note: this is an example pseudo routine:
i2c_start(); // send START command
i2c_write(b’1100 0000’); //WRITE Command
//also, make sure bit 0 is cleared ‘0
i2c_write(b’0001 00XX’); // Write Alert registers
i2c_write(b’XXXX XXXX’); // Write register Upper Byte
i2c_write(b’XXXX XXXX’); // Write register Lower Byte
i2c_stop(); // send STOP command
i2c_start(); // send START command
i2c_write(b’1100 0001’); //READ Command
//also, make sure bit 0 is set ‘1
UpperByte = i2c_read(ACK); // READ 8 bits
//and Send ACK bit
LowerByte = i2c_read(NAK); // READ 8 bits
//and Send NAK bit
i2c_stop(); // send STOP command