You are currently viewing I²C Explained: Open-Drain, START/STOP, Bits, ACK, Addressing, Stretching, and Arbitration

I²C Explained: Open-Drain, START/STOP, Bits, ACK, Addressing, Stretching, and Arbitration

$ i2c --explain --tick-by-tick

I²C explained: open-drain, START/STOP, bits, ACK, addressing, stretching and arbitration

An interactive guide for people who have never looked at an I²C bus. Every step loads a scenario into a small simulator of a real open-drain bus: one or two controllers, a temperature sensor and an EEPROM, each pulling SCL and SDA low or letting go. Move through time tick by tick and watch the wires, the waveform, the decoded bytes and the state inside every chip. The playground lets you build your own transfers, including broken ones.

I²C Explained Tick by Tick: Open-Drain Pull-Ups, START/STOP, 8 Bits + ACK/NACK, 7-Bit Addressing, Clock Stretching, and Arbitration

Explore the I²C bus (NXP UM10204) tick by tick with an interactive open-drain simulator featuring two controllers, a temperature sensor, and an EEPROM: wired-AND MOSFET stages and RC rise time tr = 0.8473 × Rp × Cb, START (S), repeated START (Sr) and STOP (P), MSB-first byte framing and 9th-clock ACK/NACK, 7-bit and 10-bit addressing, EEPROM page writes and ACK polling, pointer-then-repeated-START register reads, target clock stretching, lossless multi-controller arbitration, and 9-clock stuck-SDA recovery.

Keyboard: ← / → previous / next tick · [ / ] previous / next bit · Shift + ← / → previous / next step. Bus rules, timing values and reserved addresses follow the NXP I²C-bus specification and user manual (UM10204, rev. 7), which uses the terms controller and target. The sensor and EEPROM are teaching models: register map, NACK behaviour, stretching and write-cycle time are simplified, real chips are described in their datasheets. One tick is a quarter of a nominal bit time.

Leave a Reply