Near Field Notes

Videos

The notes, in motion

One video per topic, newest first. Point at a card for a silent preview.The card in the middle of the screen plays a silent preview. Open one to watch it whole.

28 videos, 28 with a note to read after.

2:27 · With sound

I3C vs I2C

What is I3C, and how does it differ from I2C?

Read Note 24

Transcript

Same sensor, same 12 bytes, three ways.

I2C at 400 kHz takes 344 µs. At 1 MHz, 138.

I3C does it in 13.

I2C is from 1982. Two wires, clock and data, shared by every chip on the board.

Chips only pull a line low. A resistor pulls it back up.

That rise is the speed limit. At 50 pF, it takes 300 ns.

Phones filled up with sensors. MIPI expects more than 20 in a device.

The fast ones moved to SPI: three shared wires, plus a select line for each chip. And every sensor wanted its own interrupt wire.

So in 2016, the MIPI Alliance released I3C: one two-wire bus to replace all of it.

It still has a clock and a data line. But the controller drives the clock high and low.

Data bits are driven high too, so edges take a few ns, not 300.

That allows a 12.5 MHz clock.

The pull-up only switches on where two chips might talk at once: the address after a start, and its acknowledge.

That saves energy too. An I2C pull-up burns current every time a line is held low.

I simulated this read. On I2C it takes 203 nJ. At 1 MHz, still 198. On I3C, 28.

An I2C chip can't start a conversation. A sensor with new data needs its own interrupt wire.

On I3C, the sensor pulls the data line low on an idle bus. The controller starts the clock, and the sensor sends its address.

If two ask at once, the lower address wins, because a 0 beats a 1.

I2C addresses are set at the factory. Two identical sensors would collide, so boards strap an address pin or add a switch chip.

I3C hands out addresses at startup. Each chip sends a 48-bit ID, and the lowest ID gets the first address.

Identical chips still need one ID bit set apart, by a pin or a fuse.

Older I2C chips can share the bus. I3C keeps its clock high for under 50 ns.

Fast-mode I2C chips must filter out pulses that short. To them, the I3C clock is a flat line.

But one I2C chip without that filter drags the whole bus down to its speed.

Every DDR5 memory stick has an I3C bus. Its SPD hub and power chip can run at 12.5 MHz.

Server boards, newer microcontrollers and many phone sensors support it too.

It hasn't replaced I2C. Fewer chips and bench tools support it.

For a sensor you read once a second, I2C is still fine.

But for a board full of sensors, I3C is faster, uses less energy, and needs no interrupt wires.

Same two wires.