Why Use Open-Drain Output and Pull-Up Resistors in I2C?

Why Use Open-Drain Output and Pull-Up Resistors in I2C?

Why do we need pull-up resistors in I2C? Because it uses open-drain output. Why is it open-drain output? The I2C protocol supports multiple master devices and multiple slave devices on a single bus. If push-pull output is used instead of open-drain output, it could lead to short circuits between master devices. Therefore, the bus generally … Read more

I2C Bus Design

I2C Bus Design

1. First, let’s discuss open-drain output and push-pull output First, watch the video explanation: The following video is from Guo Tianxiang Push-Pull Output Structure and Principle: A push-pull output circuit consists of two complementary transistors (usually an NPN transistor and a PNP transistor). In this structure, when the input is high, the upper transistor (like … Read more

Discussion on Embedded Hardware: Push-Pull, Open-Drain, High-Z State, and Pull-Up Resistors

Discussion on Embedded Hardware: Push-Pull, Open-Drain, High-Z State, and Pull-Up Resistors

In the vast knowledge system of embedded hardware, there are many discrete knowledge points that can easily be overlooked. Therefore, this article aims to organize these easily forgotten or misunderstood concepts for reference and learning. The focus will be on the learning of push-pull, open-drain, high-Z state, and pull-up resistors. Basics of GPIO The following … Read more

Explaining Why Pull-Up Resistors Are Added to I2C Signal Lines

Explaining Why Pull-Up Resistors Are Added to I2C Signal Lines

I2C is a two-wire serial communication bus, consisting of an SCL signal and an SDA signal. SCL is the clock signal sent from the master device, while SDA is the data signal, which is bidirectional, allowing devices to send and receive data through the SDA signal. When designing the I2C signal circuit, we add a … Read more