We often get inquiries from our customers about what slave address to use in order to communicate with their I2C slave device. A lot of this confusion stems from the fact that different vendors follow different slave address conventions.
In this post we will clarify the slave address standard used by all Total Phase products and to help developers determine what slave address they should use.
- 7-bit Addressing
- Reserved Addresses
- 8-bit Addresses
- 10-bit Addressing
The I2C specification from NXP (formerly Philips) actually specifies two different slave addressing schemes. Standard Mode I2C makes use of 7-bit addressing. 10-bit addressing was later added as an extension to standard mode I2C.
In 7-bit addressing procedure, the slave address is transferred in the first byte after the Start condition. The first seven bits of the byte comprise the slave address. The eighth bit is the read/write flag where 0 indicates a write and 1 indicates a read.
Figure 1: 7-bit addressing. The I2C bus specification specifies that in standard-mode I2C, the slave address is 7-bits long followed by the read/write bit.