I2C
Here are some basic notes & primers about the standard implementation & inner-workings of the I2C interface.
Communication speed
Normal
Fast
High-speed
Basic features
Two-wire communication
Half-duplex
Bidirectional communication (only one direction at a time)
Multi-Master/Slave
Clock stretching
Slave devices can hold the clock line (SCL) to allow more time for processing data
Addressing
Pull-up resistors
Arbitration
Ensure data integrity when multiple masters attempting to use the bus simultaneously
Detect & resolve conflicts
Ensure data integrity
ACK/NACK (acknowledge / not acknowledge)
I2C implementation spec-sheet
From TI (Texas Instruments)
From NXP
I2C primers & use-full resources
I2C Primer
A very nice primer that explains how the I2C protocol works and some special considerations that we should take work working with it. On the surface it seems like a very simple 2 wire protocol but some features such as multi-master/slave, clock stretching, etc. (& maybe error detection/correction?) makes implementation not as straightforward as it seems.
Debugging I2C
Waveform analysis
Last updated