Inter-Integrated Circuit(I2C): Difference between revisions
No edit summary |
No edit summary |
||
| Line 112: | Line 112: | ||
<h2>Contents <a href="javascript:void(0);" class="hide-link" onclick="toggleTOC()">[hide]</a></h2> | <h2>Contents <a href="javascript:void(0);" class="hide-link" onclick="toggleTOC()">[hide]</a></h2> | ||
<ul> | <ul> | ||
<li><a href="#section5"> Related Topics</a></li> | <li><a href="#section5"> Related Topics</a></li> | ||
<li><a href="#section6"> Further reading</a></li> | <li><a href="#section6"> Further reading</a></li> | ||
Revision as of 11:20, 3 March 2025
Contents
Background information
I2C was designed for short distance serial communication has two modes
- Master mode
- Slave mode
Similar to how SPI functions, with a Controller often acting in master mode and the components
of the device acting as in slave mode, meaning they just receive commands and listen to the master
device.
Data transfer
All data transfers are on the SDA line that are synchronized by a high to low pulse(line goes down)
of the clocks on the SCL line. As the data lines can only change when SCL is set low(besides start and stop)
Due to the design of I2C the use of a pull up resistor is needed to pull the line
to the voltage range which is considered high, because without one it is impossible for the circuit to reach
the require voltage, and cause the line to be considered "floating"(has a undefined voltage level).
Packet size and layout
- Start Condition - 1 bit:
- Slave Address - 8 bits:
- Acknowledge - 1 bit:
Steps of data transmission
- Start condition - pulls SDA low and keeps SCL high(this means a transmission is about to start)
- Addressing the slave - The master sends the 7 bit address of the slave device it wants to be
communicate with, with the the 8th bit saying if it wants to read or write. - Acknowledgement - the Slave pulls SDA low on the next clock pulse, to confirm its received the message and it ready to communicate with the master device.
- Depending on if it is a read or a write operation, the master or the slave sends data in
8 - bit chunks with a acknowledgement after to check if the data has been received successfully. - Stop Condition - The master releases SDA allowing it to default back to high, which signals
the communication has finished - Serial data(SDA)- Transfer the data
- Serial Clock(SCL)- holds the clock signal
- Reference 1: the hardware hacking handbook(free) page 50-53
- Reference 2: I2C Communication Protocol
Related Topics
Topics such as desoldering to chip off or firmware dumping for disk PCB repairs
Further reading
External references in wiki references can just be cited through the keyword link