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 & Compliance21
  • 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: Integration
On this page

    Interface ProtocolsAll levels

    I2C Timing & Arbitration: Integration

    Integration for I2C Timing & Arbitration.

    Integration in practice

    Tell a NACK from a clock that never rose

    Read first: Read the mechanism and worked trace first

    A controller logs a failed read. Observe actual SDA/SCL at the target pins, then relate the failure to address, data and acknowledgement phases. A software timeout is not itself a decoded NACK.

    Tell a NACK from a clock that never rose — decision record

    Apply the stated local assumptions; record actual platform values before using this as an implementation checklist.

    Decision / observation

    Required evidence

    Consequence

    Ninth SCL pulse occurs; SDA high

    Receiver did not acknowledge that byte

    Identify whether the receiver was target or controller

    SCL stays low after release

    Target stretching or another electrical/drive condition

    Inspect actual line ownership and supported timeout policy

    Rise is too slow at selected speed

    Pull-up, capacitance and mode limits

    Do not repair an electrical timing failure by changing the register address

    Check yourself What first distinguishes an address NACK from an SCL-low timeout?

    A NACK requires the applicable acknowledgement clock with SDA released high. A clock that never rises is a different observation and needs line/timing investigation.

    Board and firmware integration

    Pull-up selection depends on bus capacitance, required rise time and participant sink capability. Added devices often add capacitance, but simply lowering resistance can violate low-level current or VOL limits; calculate and measure both bounds.

    Firmware must match the target address (often influenced by strap pins), supported bus mode and register map. Two targets responding to the same address can both acknowledge; later read data or command interpretation may conflict rather than producing a reliable NACK.

    • Verify pull-ups on board schematic — missing pull-ups = no communication.

    • Reset sequence: device must be out of reset before I2C access.

    • Shared segment: ensure simultaneously enabled targets do not respond to the same address unless a mux, enable or other selection scheme isolates them.

    Previous

    99 / 158

    Next: I2C Timing & Arbitration: Debug

    Up next

    Up nextI2C Timing & Arbitration: Debug

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • I2C Timing & Arbitration: Interview