I2C also has a few limitations that may need to be designed around. The most important I2C limitations include:
1.Since only 7-bits (or 10-bits) are available for device addressing, devices on the same bus can share the same address. Some devices can configure the last few bits of the address, but this imposes a limitation of devices on the same bus.
2.Only a few limited communication speeds are available, and many devices do not support the transmission at higher speeds. Partial support for each speed on the bus is required to prevent slower devices from catching partial transmissions that may result in operational glitches.
3.The shared nature of the I2C bus can result in the entire bus hanging when a single device on the bus stops operating. Cycling the power to the bus can restore proper operation.
4.Since devices set their own communication speed, slower operational devices can delay the operation of faster devices.
5.I2C draws more power than other serial communication busses due to the open-drain topology of the communication lines.
6.The limitations of the I2C bus typically limit the number of devices on a bus to around a dozen.