Datasheet

MCP9600
DS20005426C-page 18 2015-2017 Microchip Technology Inc.
FIGURE 4-4: Timing Diagram to Set a Register Pointer and Read a Two-Byte Data.
SDA
A
C
K
1100
A
0000
A
C
K
S
2
A
1
A
0
12345678 12345678
SCL
0
Address Byte
MCP9600
W 10x
P
A
C
K
1100
A
N
A
K
SP
2
A
1
A
0
12345678 12345678
Address Byte LSB Data
R
MCP9600
Master
SDA
SCL
xxxxxxxx
MCP9600 Clock Stretching
TABLE 4-3: POINTERS
Read/Write
Registers
Pointer
STATUS 0000 0100
Configuration
0000 0101
0000 0110
xxxx
A
C
K
12345678
xxxx
Register Data
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’0000 01XX’); // Write Status or Configuration registers
i2c_write(b’XXXX XXXX’); // Write register data
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
Data = i2c_read(NAK); // READ 8 bits
// and Send NAK bit
i2c_stop(); // send STOP command