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|