← Protocols Interviews

Interview Question · Concept

I3C Versus I2C

L0 FresherL1 Juniori3ci2c

The Question

The interviewer asks

What does I3C change compared with I2C, and what does it keep?

Reveal the Model Answer

I3C keeps the two wires, START, STOP and the 7-bit address header, and legacy I2C targets can share the bus. Data moves to push-pull, at up to 12.5 MHz. Open drain stays only where several devices may drive: arbitration, ACKs and address assignment. Only the controller drives SCL, so targets cannot stretch the clock. I3C adds dynamic addresses, common command codes, in-band interrupts and hot-join. The ninth bit of a data byte becomes parity or end-of-data.

One Bus, Two Kinds of TargetThe controller drives SCL and talks on SDA. I3C targets and a legacy I2C target share both wires.
One bus, two kinds of targetThe controller drives SCL and talks on SDA. I3C targets and a legacy I2C target share both wires. component I3C controller drives SCL; assignsaddresses component SCL + SDA two wires, pull-up andkeeper component I3C target 0x08 dynamic address component I3C target 0x09 dynamic address component I2C target 0x50 static address, 50 nsfilter SCL, SDAIBI on SDA
  1. Two wires

    Only the controller drives SCL (MIPI §5.1.2). SDA carries addresses, data and requests.

  2. I3C targets

    They have no strap pins: the controller hands out dynamic addresses on the wire (P9.4).

  3. A legacy neighbour

    An I2C target keeps its static address. Its 50 ns spike filter hides the fast I3C clock from it (P9.2).

  4. No interrupt wire

    A target asks for attention by pulling SDA on an idle bus: an in-band interrupt (P9.6).

Read the diagram as text
  • I3C controller: drives SCL; assigns addresses
  • SCL + SDA: two wires, pull-up and keeper
  • I3C target 0x08: dynamic address
  • I3C target 0x09: dynamic address
  • I2C target 0x50: static address, 50 ns filter
  • I3C controller → SCL + SDA: SCL, SDA
  • SCL + SDA → I3C target 0x08
  • SCL + SDA → I3C target 0x09
  • SCL + SDA → I2C target 0x50
  • I3C target 0x09 → SCL + SDA: IBI on SDA

One controller, two I3C targets and one legacy I2C target share the same two wires.

I3C SDR: The Same Read from the Target at 0x08The frame opens with the broadcast address 7E, then addresses the target after Sr. Each ninth bit of data is a T-bit, not an ACK.
START7e/W (open drain) + ACKSr08/W (push-pull) + ACK3c + T1Sr08/R (push-pull) + ACK3c + T0STOP 0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195SCLSDActrl_lowctrl_hightgt_lowtgt_highdriveodppodppodppodSASrAT=1SrAT=0 endPSDA sampled at 6SDA sampled at 10SDA sampled at 14SDA sampled at 18SDA sampled at 22SDA sampled at 26SDA sampled at 30SDA sampled at 34SDA sampled at 38SDA sampled at 46SDA sampled at 50SDA sampled at 54SDA sampled at 58SDA sampled at 62SDA sampled at 66SDA sampled at 70SDA sampled at 74SDA sampled at 78SDA sampled at 82SDA sampled at 86SDA sampled at 90SDA sampled at 94SDA sampled at 98SDA sampled at 102SDA sampled at 106SDA sampled at 110SDA sampled at 114SDA sampled at 122SDA sampled at 126SDA sampled at 130SDA sampled at 134SDA sampled at 138SDA sampled at 142SDA sampled at 146SDA sampled at 150SDA sampled at 154SDA sampled at 158SDA sampled at 162SDA sampled at 166SDA sampled at 170SDA sampled at 174SDA sampled at 178SDA sampled at 182SDA sampled at 186SDA sampled at 190
Read phases and sample points (quarter bit)
  • START: columns 2 through 3.
  • 7e/W (open drain) + ACK: columns 4 through 39.
  • Sr: columns 40 through 43.
  • 08/W (push-pull) + ACK: columns 44 through 79.
  • 3c + T1: columns 80 through 115.
  • Sr: columns 116 through 119.
  • 08/R (push-pull) + ACK: columns 120 through 155.
  • 3c + T0: columns 156 through 191.
  • STOP: columns 192 through 195.
  • SDA sampled at 6, 10, 14, 18, 22, 26, 30, 34, 38, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86, 90, 94, 98, 102, 106, 110, 114, 122, 126, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190.
  1. Cycle 1

    START, then 7E/W in open drain. Any target could still win this header with a request (P9.6).

  2. Cycle 42

    Repeated START. From here the controller drives SDA both ways: push-pull.

  3. Cycle 114

    The ninth bit of the pointer byte is parity from the controller, not an ACK from the target.

  4. Cycle 190

    The target ends its own read with T = 0. In I2C the controller ends a read with NACK.

Generated and decoded back. The first header is open drain, data after the repeated START is push-pull, and T-bits replace ACKs.

I2C (UM10204)I3C SDR (I3C Basic v1.0)
Data driveopen drainpush-pull; open drain where several may drive
SCLcontroller; targets may stretchcontroller only
Ninth bit of dataACK by the receiverwrite: parity; read: end-of-data
Addressesstaticassigned on the bus (DAA), or from a static one
Interruptsa separate wirein-band, on SDA
Same register read, measured95100 ns (Fm)5685 ns

Self-Check

Tick each key point you covered in your answer.

What Interviewers Listen For (Fresher)

A good fresher answer names push-pull driving, a faster clock, dynamic addresses and in-band interrupts. It says I2C targets can stay on the same bus.

Cross-Questions

Where the interviewer goes next. Open a node to practise that follow-up.

WhyWhat IfProve ItBreak ItCompare

  1. I3C Versus I2C
  2. WhyWhere I3C Keeps Open DrainL1 JuniorL2 Mid-Level

    Why does I3C go push-pull for data, and why not everywhere?

    Reveal the Model Answer

    A push-pull 1 does not wait for a pull-up resistor to charge the bus. So bits get much shorter: 80 ns push-pull against 240 ns open drain on the lesson bench. Where several devices may drive at once, a 0 must win and a 1 must lose quietly, as in a wired-AND. So these stay open drain: the header after START, where targets may raise interrupts, plus ACK slots and address assignment. The header after a repeated START, and data, are push-pull.

    Which Phase Uses Which DriveOpen drain wherever more than one device may drive SDA; push-pull wherever exactly one does.
    Which phase uses which driveOpen drain wherever more than one device may drive SDA; push-pull wherever exactly one does. component S + header open drain: a targetmay win component ACK slots open drain: anytarget may answer component Sr + header push-pull: nobody elsemay speak component Write data + T push-pull: thecontroller component Read data + T push-pull: the target component DAA open drain: IDsarbitrate
    1. Open drain

      The arbitrable header, every ACK slot and DAA: places where two devices may drive at once (MIPI §5.1.2.2.1, §5.1.4.2).

    2. Push-pull

      The header after Sr and all SDR data: one transmitter, so it drives both levels (§5.1.2, §5.1.2.2.4).

    Read the diagram as text
    • S + header: open drain: a target may win
    • ACK slots: open drain: any target may answer
    • Sr + header: push-pull: nobody else may speak
    • Write data + T: push-pull: the controller
    • Read data + T: push-pull: the target
    • DAA: open drain: IDs arbitrate
    • S + header → ACK slots
    • Sr + header → Write data + T
    • Write data + T → Read data + T
    • ACK slots → DAA

    Open drain wherever two devices may drive SDA at once. Push-pull wherever exactly one device drives.

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Junior)

    A good junior answer links push-pull to speed and open drain to arbitration.

    Half-Truth

    "Open drain in the header is only for I2C compatibility."

    The header after START is arbitrable in I3C itself. Targets may drive their own address into it to request an interrupt or mastership. So it needs a wired-AND.

  3. What IfA Legacy I2C Target on an I3C BusL1 JuniorL2 Mid-Level

    You must keep an old I2C sensor on the new I3C bus. What conditions does it have to meet, and what happens if it lacks a spike filter?

    Reveal the Model Answer

    It must be a target only, with a static address, Fast-mode support and no clock stretching. A true 50 ns spike filter on SCL hides the short I3C clock highs from it. Then the bus can run I3C at full speed, which is called a mixed fast bus. Without the filter, the device sees I3C traffic as clocks. The bus speed then drops to what the slowest unfiltered legacy device tolerates.

    What the Legacy Target SeesThe same SCL wire, before and after a 50 ns spike filter.
    What the legacy target seesThe same SCL wire, before and after a 50 ns spike filter. component I2C message SCL high 1200 ns(Fm) component I3C message SCL high 40 ns(SDR) component 50 ns filter drops shorter pulses component 50 ns filter drops shorter pulses component Clocks the target decodesthe byte component SCL looks low no bits, nothing toanswer
    1. Fm passes

      An I2C clock high lasts far longer than 50 ns, so the legacy target sees every bit (MIPI Table 57).

    2. SDR does not

      On a mixed fast bus the I3C SCL high stays under tDIG_H_MIXED, 45 ns at most (Table 59), and never gets through.

    Read the diagram as text
    • I2C message: SCL high 1200 ns (Fm)
    • I3C message: SCL high 40 ns (SDR)
    • 50 ns filter: drops shorter pulses
    • 50 ns filter: drops shorter pulses
    • Clocks: the target decodes the byte
    • SCL looks low: no bits, nothing to answer
    • I2C message → 50 ns filter
    • 50 ns filter → Clocks
    • I3C message → 50 ns filter
    • 50 ns filter → SCL looks low

    MIPI I3C Basic v1.0 §5.1.2.4 and Figure 45. The bench models the filter as a 50 ns inertial delay on SCL and SDA.

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Junior)

    A good junior answer names the two rules: the legacy target must not stretch the clock, and it needs a spike filter.

  4. CompareThe I3C T-Bit Versus the I2C ACKL1 JuniorL2 Mid-Level

    In I2C the ninth bit of a data byte is the receiver's ACK. What is it in I3C SDR?

    Reveal the Model Answer

    The transmitter drives it. On a write, it is odd parity from the controller: the XOR of the eight data bits with 1. Parity lets the target detect a corrupted byte. On a read, it is end-of-data from the target: 0 ends the message, and 1 offers more. So the target decides how much it returns, though the controller may abort after a 1 with a repeated START.

    An SDR Private Write: Pointer 0x10, Then 0x3c and 0x01Lanes: SCL and SDA, then who drives SDA low or high, and the drive style. The target only drives in the ACK slots.
    START7e/W (open drain) + ACKSr08/W (push-pull) + ACK10 + T03c + T101 + T0STOP 0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191SCLSDActrl_lowctrl_hightgt_lowtgt_highdriveodppodppodSASrAT=0T=1T=0PSDA sampled at 6SDA sampled at 10SDA sampled at 14SDA sampled at 18SDA sampled at 22SDA sampled at 26SDA sampled at 30SDA sampled at 34SDA sampled at 38SDA sampled at 46SDA sampled at 50SDA sampled at 54SDA sampled at 58SDA sampled at 62SDA sampled at 66SDA sampled at 70SDA sampled at 74SDA sampled at 78SDA sampled at 82SDA sampled at 86SDA sampled at 90SDA sampled at 94SDA sampled at 98SDA sampled at 102SDA sampled at 106SDA sampled at 110SDA sampled at 114SDA sampled at 118SDA sampled at 122SDA sampled at 126SDA sampled at 130SDA sampled at 134SDA sampled at 138SDA sampled at 142SDA sampled at 146SDA sampled at 150SDA sampled at 154SDA sampled at 158SDA sampled at 162SDA sampled at 166SDA sampled at 170SDA sampled at 174SDA sampled at 178SDA sampled at 182SDA sampled at 186
    Read phases and sample points (quarter bit)
    • START: columns 2 through 3.
    • 7e/W (open drain) + ACK: columns 4 through 39.
    • Sr: columns 40 through 43.
    • 08/W (push-pull) + ACK: columns 44 through 79.
    • 10 + T0: columns 80 through 115.
    • 3c + T1: columns 116 through 151.
    • 01 + T0: columns 152 through 187.
    • STOP: columns 188 through 191.
    • SDA sampled at 6, 10, 14, 18, 22, 26, 30, 34, 38, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86, 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186.
    1. Cycle 78

      Header ACK: the target pulls SDA in open drain, exactly as in I2C.

    2. Cycle 79

      Handoff: the controller pulls SDA low just after the SCL rise, while the target lets go. Both low for a moment is safe (MIPI §5.1.2.3.1).

    3. Cycle 114

      Ninth bit of 0x10: the controller drives the parity, XOR(data, 1) = 0. The target drives nothing.

    4. Cycle 150

      Ninth bit of 0x3c: four 1s, so parity 1. Still the controller, still push-pull.

    Generated and decoded back. 0x10 and 0x01 each have one 1 bit, so their T-bit is 0. 0x3c has four 1 bits, so its T-bit is 1.

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Junior)

    A good junior answer says the transmitter drives the T-bit: parity on writes, end-of-data on reads.

    Misconception

    "I3C targets ACK every data byte like I2C."

    Only the address header has an ACK. A target that pulls SDA in the ninth bit of a written byte collides with the controller's push-pull parity bit.

    Source MIPI I3C Basic v1.0 §5.1.2.3.3

  5. What IfA Parity Error on a Written ByteL2 Mid-Level

    What if the target sees a parity error on a byte the controller wrote? What does it do, and how does the controller find out?

    Reveal the Model Answer

    It cannot NACK the byte, because the ninth bit belongs to the controller. Error type S2 says the target ignores the rest and waits for a STOP or a repeated START. The controller sees nothing on the wire. It learns of the error later, from the Protocol Error bit that GETSTATUS returns.

    Self-Check

    Tick each key point you covered in your answer.

    Misconception

    "The target NACKs a bad byte, as in I2C."

    In I3C SDR the controller drives the ninth bit of a write as parity. The target has no slot to answer in.

    Source MIPI I3C Basic v1.0 §5.1.2.3.3

  6. Break ItHDR Tolerance in I3C BasicL2 Mid-LevelL3 Senior

    Your I3C Basic target supports no HDR mode. Can it ignore HDR entirely?

    Reveal the Model Answer

    No. I3C Basic v1.0 leaves out the HDR (high data rate) modes themselves. But a full I3C controller may still put the bus into HDR for other devices. Every target must detect the HDR entry command and the HDR Exit Pattern, even one with no HDR support. A target that misses the exit treats HDR traffic as SDR and misreads what follows. Feature lists differ between I3C editions, so name the edition you quote.

    Self-Check

    Tick each key point you covered in your answer.

    What Interviewers Listen For (Mid-Level)

    A good mid-level answer separates supporting an HDR mode from tolerating one. It says every target must detect the HDR Exit Pattern.

  7. Prove ItSolve P9.1.1: Keep Legacy and SDR Reads DistinctSimulator-graded

    Show it, don't just say it: this Silicon Lab problem is graded by the simulator.

    Open Problem P9.1.1

What People Get Wrong

Common wrong answers and why they fail.

Half-Truth

"I3C is a drop-in replacement: any I2C device works on it."

A legacy target must not stretch the clock, and it needs a static address. Without a 50 ns spike filter, it sees I3C traffic. That forces the whole bus to run slower.

Source MIPI I3C Basic v1.0 §5.1.2.4; §6.1 Table 56

Misconception

"I3C is all push-pull."

Open drain stays wherever more than one device may drive SDA. That means the arbitrable header after START, ACK slots and dynamic address assignment.

Source MIPI I3C Basic v1.0 §5.1.2, §5.1.2.2.1, §5.1.4.2

Misconception

"Our I3C Basic target supports no HDR mode, so it can ignore HDR traffic."

I3C Basic v1.0 leaves out HDR-DDR and the ternary modes. But every target must still detect HDR entry and the HDR Exit Pattern. A target that misses the exit misreads the SDR traffic that follows.

Source MIPI I3C Basic v1.0 preface §4.1; §5.2; §5.1.1.1 Table 3 note 2

Learn It, Then Prove It