BASIC stamp manual v2.2

5: BASIC Stamp Command Reference – I2CIN
BASIC Stamp Syntax and Reference Manual 2.2 www.parallax.com Page 221
The I
2
C protocol has a well-defined standard for the information passed at
the start of each transmission. First of all, any information sent must be
transmitted in units of 1 byte (8-bits). The first byte, we call the SlaveID, is
an 8-bit pattern whose upper 7-bits contain the unique ID of the device
you wish to communicate with. The lowest bit indicates whether this is a
write operation (0) or a read operation (1). Figure 5.9 shows this format.
Figure 5.9: Slave ID Format.
7
A
6
6
A
5
5
A
4
4
A
3
3
A
2
2
A
1
1
A
0
0
R/W
The second byte, immediately following the SlaveID, is the optional
Address. It indicates the 8-bit address (within the device) containing the
data you would like to receive. Note that the Address argument is optional
and may be left unspecified for devices that don't require an Address
argument.
Some devices require more than 8 bits of address. For this case, the
optional LowAddress argument can be used for the low-byte of the required
address. When using the LowAddress argument, the Address argument is
effectively the high-byte of the address value. For example, if the entire
address value is 2050, use 8 for the Address argument and 2 for the
LowAddress argument (8 * 256 + 2 = 2050).
Following the last address byte is the first byte of data. This data byte may
be transmitted or received by the BASIC Stamp. In the case of the I2CIN
command, this data byte is transmitted by the device and received by the
BASIC Stamp. Additionally, multiple data bytes can follow the address,
depending on the I
2
C device. Note that every device has different
limitations regarding how may contiguous bytes they can receive or
transmit in one session. Be aware of these device limitations and program
accordingly.
Every I
2
C transmission session begins with a Start Condition and ends
with a Stop Condition. Additionally, immediately after every byte is
transmitted, an extra clock cycle is used to send or receive an
acknowledgment signal (ACK). All of these operations are automatically
taken care of by the I2CIN command so that you need not be concerned
with them. The general I
2
C transmission format is shown in Figure 5.10.
THE I
2
C PROTOCOL FORMAT.
U
SING LONG ADDRESSES.
S
TART AND STOP CONDITIONS AND
ACKNOWLEDGMENTS.