The first byte of an I2C transfer contains the slave address and the data direction.
The address is 7 bits long, followed by the direction bit. Like all data bytes, the address is transferred with the most significant bit first.
A seven bit wide address space theoretically allows 128 I2C addresses – however, some addresses are reserved for special purposes. Thus, only 112 addresses are available with the 7 bit address scheme. To get rid of this a special method for using 10 bit addresses is defined.
The following table shows I2C addresses reserved for special purposes:
10 bit adresses, binary noted, MSB is left | Purpose |
0000000 0 | General Call |
0000000 1 | Start Byte |
0000001 X | CBUS Addresses |
0000010 X | Reserved for Different Bus Formats |
0000011 X | Reserved for future purposes |
00001XX X | High-Speed Master Code |
11110XX X | 10-bit Slave Addressing |
11111XX X | Reserved for future purposes |