Datasheet

2015 Microchip Technology Inc. DS20005292B-page 39
MCP2221
3.1.5 I
2
C™ WRITE DATA
This command is used to write user-given data to the
I
2
C Slave device (the speed is specified by the
STATUS/SET Parameters command).
The command will have the following effects:
•The I
2
C engine will send the “START” condition.
The selected I
2
C slave address is sent next and
the I
2
C engine will wait for the slave to send an
acknowledge bit.
The user data follows next and the I
2
C engine
awaits for the acknowledge bit from the slave.
If the requested length is more than 60 bytes,
subsequent user bytes will be sent on the bus.
When the user data length (being sent on the bus)
reaches the requested length, the I
2
C engine will
send the “STOP” condition on the bus.
3.1.5.1 Responses
TABLE 3-20: COMMAND STRUCTURE
(1)
Byte
Index
Value Effect
00x90
I
2
C Write Data – command code
1 Low Byte Requested I
2
C transfer length – 16-bit value – low byte
2 High Byte Requested I
2
C transfer length – 16-bit value – high byte
3I
2
C Slave
Address
8-bit value representing the I
2
C slave address to communicate with (even – address to write,
odd – address to read) (Note 2)
4-63 User data to be sent to the selected I
2
C slave device
Note 1: When the requested transfer length is more than 60 bytes, subsequent “I
2
C Write Data” commands will
transport the reminder of the user data (till the requested length).
2: The I
2
C slave address is represented on 8 bits, with even values for writes and odd for reads. To get the
8-bit address value out of a 7-bit address, the 7-bit value needs to be shifted left by 1 position. For write
operations use the shifted value, while for reads add 1 to the shifted value.
TABLE 3-21: RESPONSE 1 STRUCTURE
Byte
Index
Value Effect
00x90I
2
C Write Data – command code echo
1 0x00 Command completed successfully
0x01 I
2
C Engine is busy (command not completed)
2 Internal I
2
C Engine state (at the moment the command was issued) – useful for monitoring the
status of the I
2
C Engine
3-63 Don’t
care