Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Protocol Metrics Reference
  • Protocols Glossary
  • Reading Path
  • Protocol Fundamentals25
  • AMBA Family (APB / AHB / AXI)17
  • Coherence Fabrics (ACE / CHI)17
  • Memory Interfaces (DDR / LPDDR / HBM)17
  • PCIe & CXL17
  • Embedded Peripherals (I2C / SPI / UART)17
    • I2C Timing & Arbitration
      • I2C Timing & Arbitration: Concepts
      • I2C Timing & Arbitration: Integration
      • I2C Timing & Arbitration: Debug
      • I2C Timing & Arbitration: Interview
    • SPI Modes & Chip-Select Rules
    • UART Flow Control
    • Peripheral Integration Debug
    • Embedded Peripherals (I2C / SPI / UART): Tricky Q&A
  • High-Speed I/O (USB / Ethernet / MIPI)17
  • Protocol Verification & Compliance17
  • Protocols Interview Prep5
  • Interface Protocols Cheatsheet
Loading lesson

←I2C Timing & Arbitration
  1. Topics
  2. Bus Protocols
  3. Embedded Peripherals (I2C / SPI / UART)
  4. I2C Timing & Arbitration
  5. I2C Timing & Arbitration: Concepts
On this page

    Interface ProtocolsAll levels

    I2C Timing & Arbitration: Concepts

    Concepts for I2C Timing & Arbitration.

    Core concepts

    I2C transaction structure

    START condition (SDA falls while SCL high) → 7-bit address + R/W bit → ACK from target → data bytes with ACK/NACK → STOP (SDA rises while SCL high). Each byte is 8 data bits plus ACK bit on the 9th clock.

    Open-drain means a device pulls the line low or releases it; the pull-up returns the line high. Resistance and bus capacitance set rise time, while the low-level sink-current and VOL limits bound how strong the pull-up may be. Select the value from the required I²C mode, measured/estimated capacitance and every participant's electrical limits.

    Diagram
    I2C READ TRANSACTION
    
    START | ADDR+W | ACK | REG_ADDR | ACK | Sr | ADDR+R | ACK | DATA | NACK | STOP
      S                                                                    last byte

    Clock stretching and arbitration

    During clock stretching, a target can hold SCL low after a controller releases it. A controller that supports stretching observes the actual SCL level before advancing. Any timeout and recovery action are system/controller policies; choose them from the target's documented maximum behaviour rather than assuming an I²C-wide limit.

    With multiple controllers, arbitration is performed while SCL is high: a controller that releases SDA but observes it low has lost arbitration and stops driving the transfer as specified. Retry timing and software reporting belong to the controller/platform contract.

    • Fast mode (400 kHz) and Fast mode Plus (1 MHz) have tighter timing.

    • Address NACK candidates include no powered/ready target at that address, an address/strap mismatch, or electrical/timing failure; inspect the bus before choosing one.

    • Repeated START (Sr) for read-after-write without releasing bus.

    Key takeaways

    • Fast mode (400 kHz) and Fast mode Plus (1 MHz) have tighter timing.

    • Address NACK candidates include no powered/ready target at that address, an address/strap mismatch, or electrical/timing failure; inspect the bus before choosing one.

    • Repeated START (Sr) for read-after-write without releasing bus.

    Previous

    98 / 154

    Next: I2C Timing & Arbitration: Integration

    Up next

    Up nextI2C Timing & Arbitration: Integration

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • I2C Timing & Arbitration: Debug
    • I2C Timing & Arbitration: Interview