Home

I2C

I2C, short for inter-integrated circuit, is a two-wire serial bus used for short-distance communication within integrated circuits. It allows multiple masters and slaves on a single shared bus and was developed by Philips (now NXP) in the 1980s. The standard uses two wires: Serial Data (SDA) and Serial Clock (SCL). Both lines are open-drain and require pull-up resistors to a common supply.

Communication begins with a start condition (SDA falls while SCL is high). Data is transferred in sequences

Addressing: Each slave is addressed by a seven-bit address (followed by a Read/Write bit in the first

Speeds: Standard-mode (100 kbps), Fast-mode (400 kbps), Fast-mode Plus (1 Mbps), High-speed mode (3.4 Mbps). Ultra-fast

Typical uses include sensors, EEPROMs, ADCs, DACs, and RTCs in microcontroller-based systems. I2C is widely supported

of
eight
bits,
with
the
data
valid
when
SCL
is
high.
After
every
byte,
the
transmitter
releases
the
SDA
line
and
the
receiver
may
pull
it
low
during
the
ninth
clock
to
acknowledge.
A
stop
condition
(SDA
rises
while
SCL
is
high)
ends
the
transfer;
repeated
starts
are
allowed
to
transition
to
another
address
without
releasing
the
bus.
byte).
Acknowledgments
manage
bus
access.
A
ten-bit
addressing
scheme
exists
for
scarce
addresses.
The
protocol
supports
multi-master
operation
with
arbitration
on
the
SDA
line;
if
two
masters
drive
different
bits,
the
one
that
writes
a
high
while
the
other
writes
low
loses
and
releases
the
bus.
Slaves
may
clock-stretch
by
holding
SCL
low
to
delay
the
master.
mode
(5
Mbps)
exists
but
is
master-only
and
not
widely
used.
Bus
capacitance
and
pull-up
strengths
affect
actual
speed,
rise
times,
and
reliability.
in
microcontrollers
and
peripherals;
it
is
often
compared
with
SMBus,
a
derivative
with
stricter
timing
and
power-management
features.