Inter-Integrated Circuit(I2C): Difference between revisions

From datarecoverywiki.com
Jump to navigation Jump to search
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="#section0">What tools you will need</a>
          
            <ul>
     
                <li><a href="#required">Required</a></li>
                <li><a href="#optional">Optional but useful</a></li>
            </ul>
        </li>
        <li><a href="#section1"> Uses of this skill</a></li>
        <li><a href="#section2"> Step-by-step guide with images</a></li>
        <li><a href="#section3"> Flow chart of order of operations</a></li>
        <li><a href="#section4"> Troubleshooting/tips and tricks</a></li>
         <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

Data Recovery Resources

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

    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