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