The I2C Bus: When to Use an I2C Buffer
Want to learn more about when to use an I2C buffer? Check out this post to learn more about the I2C buffer, bus capacitance, and the backup bus.
Join the DZone community and get the full member experience.Join For Free
The I2C bus offers what most other serial interfaces do not. Multiple masters can control many different devices with just two bus lines. The I2C interface has been standardized, so devices implementing them should be designed to meet the standards that have been set. These design constraints often give trouble during the implementation of an I2C Bus. An I2C buffer is a tool that can help work around this difficulty. Let's look into some of the scenarios that require the assistance of an I2C Buffer and why they help in those cases.
When considering the use of 7-bit addressing scheme, a total of 128 devices could theoretically be connected to the I2C Bus. With the use of the 10-bit addressing scheme, however, the number goes up to 1024. Both cases have some addresses reserved, but the number is still high.
With a large number of addresses, every new connection to the bus increases the bus capacitance, which, when the PCB capacitance and the device capacitance are added up, can get high. As mentioned earlier, the I2C Bus must comply with certain standards, so there is a limit of 400 pF as maximum capacitance. When this is reached, additional devices must not be connected. This standard applies whether you are running the bus in Standard or Fast mode, but the Fast mode offers a slight increase in the limit, allowing 500 pF worth of capacitance.
In Comes the Buffer
In case of an issue like this where the device goes out of specified standards, the I2C Buffer does the job of letting you connect more devices by dividing the bus into two separate buses. The buffer cuts the bus capacitance in half by connecting it in between the master and the slave. This does not hinder the communication between the devices. This works because the different buses have different bus capacitances. This also means for the same pull-up resistors, there is a lower RC constant, and so, there is a shorter rise time. This particular ability to reduce the rise time of resistors is a significant reason for the use of I2C Buffers.
Another usage of the I2C Buffer is as a backup bus. This use of buffers is mainly seen in industrial applications because the chances of a failure may be high and can prove to be fatal. The failure of a bus that is connected to several devices is devastating. In case of such situations, two buffers that are both connected and communicating with the same master can be used in the case of a bus locking up or being compromised. The master, with the use of an EN pin, can determine which bus is being communicated on and can switch to the backup bus or buffer. By implementing buffers for such a case, the reliability of your design goes up considerably. A perk of having a redundant bus (the term for using your buffers as backup) is that it can also be used to communicate with connected devices running in different modes. Devices that are running in Standard and Fast mode may be connected to your bus; the redundant bus can help when the master requires communication with both devices.
The I2C buffer offers a great deal of support in electronic circuit design and industries which have devices that run a painful process, requiring the support of the buffer. This is because of the I2C buffer’s ability to be used as a backup, reduce rise time, and add more devices, which all come into play in helping to sustain these processes.
Opinions expressed by DZone contributors are their own.