Datasheet

MCP9600
DS20005426C-page 20 2015-2017 Microchip Technology Inc.
FIGURE 4-6: Timing Diagram to Sequential Read All Registers Starting from T
H
Register.
SDA
A
C
K
110
A
0000
A
C
K
S
2
A
1
A
0
12 345 678 12345678
SCL
0
Address Byte
R
MCP9600
A
C
K
12345678 12345678
Master
000
xxxxxxxx xxxxxxxx xxx xxx
A
C
K
Note 1: All registers can be read sequentially starting from the previously set Register Pointer.
N
A
K
P
0
MCP9600
Clock Stretching
MCP9600 Clock Stretching
T
H
MSB Data
T
H
LSB Data
T
C
MSB Data T
C
LSB Data
Device ID LSB
(Note 1:)
Master Master
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 0000’); // Write T
H
register to set the starting register for sequential read
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’
for (i=0; i<29, i++){
Data_Buffer[i] = i2c_read(ACK); // READ 8 bits
// and Send ACK bit
}
Data_Buffer[i] = i2c_read(NAK); // READ 8 bits
// and Send NAK bit
i2c_stop(); // send STOP command