DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workkloads.

Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • What Are Protocol Buffers?
  • How to do Memory Management for DataWeave
  • How Milvus Implements Dynamic Data Update and Query
  • Compile Protocol Buffers Using Maven

Trending

  • A Developer's Guide to Mastering Agentic AI: From Theory to Practice
  • Breaking Bottlenecks: Applying the Theory of Constraints to Software Development
  • Unlocking the Benefits of a Private API in AWS API Gateway
  • Google Cloud Document AI Basics
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. The I2C Bus: When to Use an I2C Buffer

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.

By 
Nichole Heydenburg user avatar
Nichole Heydenburg
·
Sep. 29, 18 · Analysis
Likes (3)
Comment
Save
Tweet
Share
8.5K Views

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.

Bus Capacitance

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.

Backup Bus

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.

Conclusion

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.

Buffer (application)

Opinions expressed by DZone contributors are their own.

Related

  • What Are Protocol Buffers?
  • How to do Memory Management for DataWeave
  • How Milvus Implements Dynamic Data Update and Query
  • Compile Protocol Buffers Using Maven

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!