Interviews

I3C Interview Questions

Practise the question, then the follow-ups an interviewer asks next.

Start with a Question TreeAI Mock Interview

3
Question trees
18
Follow-ups
14
Wrong answers explained
2
Runnable on a simulator
Question tree The interviewer asksWhat does I3C change compared with I2C, and what does it keep? WhyWhere I3C Keeps Open DrainWhat IfA Legacy I2C Target on an I3C BusCompareThe I3C T-Bit Versus the I2C ACKWhat IfA Parity Error on a Written ByteBreak ItHDR Tolerance in I3C Basic + 1 more follow-ups · Open this tree

Flagship Questions · With follow-ups

Question Trees

Each question opens into the follow-ups an interviewer asks next, the wrong answers people give, and what a fresher's and a senior's answer sound like.

Quick revision · One flat list

Question Bank

All 18 I3C questions, main and follow-up. Open a track, then a topic. Answer out loud first, then open the short answer.

Jump to a Track
18 questions · 3 topicsI3C
I3C Versus I2C6
What does I3C change compared with I2C, and what does it keep? L0L1

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.

QuestionPractise I3C Versus I2C →
Why does I3C go push-pull for data, and why not everywhere? L1L2

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.

Follow-upPractise Where I3C Keeps Open Drain →
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? L1L2

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.

Follow-upPractise A Legacy I2C Target on an I3C Bus →
In I2C the ninth bit of a data byte is the receiver's ACK. What is it in I3C SDR? L1L2

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.

Follow-upPractise The I3C T-Bit Versus the I2C ACK →
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? L2

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.

Follow-upPractise A Parity Error on a Written Byte →
Your I3C Basic target supports no HDR mode. Can it ignore HDR entirely? L2L3

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.

Follow-upPractise HDR Tolerance in I3C Basic →
I3C Dynamic Address Assignment6
Explain how ENTDAA gives every I3C target an address. What decides the order, and what does a target that loses a round do? L2

The controller broadcasts ENTDAA, then runs rounds of Sr (repeated START) with 7E/R. Every target without an address ACKs and sends its 48-bit provisional ID, then BCR and DCR. These bits go out in open drain, with no ACKs in between. The lowest 64-bit value wins and gets a 7-bit address plus odd parity, which it ACKs. A loser stops driving and competes again in the next round. A round that nobody ACKs ends DAA.

QuestionPractise I3C Dynamic Address Assignment →
Does it matter which dynamic address each target gets? L2

Yes. In I3C a lower address means higher priority. Several targets may raise an in-band interrupt after the same START. The lowest address then wins the header arbitration, because 0 bits win on the wire. So the controller should give low addresses to targets with urgent interrupts. It can reassign addresses later with SETNEWDA or RSTDAA.

Follow-upPractise Why the Address Order Matters →
After DAA, reads from one address return x and the checker flags contention. How can two targets end up with the same address, and how should the controller catch it? L2L3

Either two targets sent identical ID, BCR and DCR, or one target kept driving after it lost. Both then ACK the same address. The controller knows how many devices need an address. It must compare that number with the count actually assigned, and fewer means a collision. It then resets the duplicate with RSTDAA (direct or broadcast) and runs DAA again.

Follow-upPractise Two Targets, One Dynamic Address →
Why can two targets send the same provisional ID at all? L2L3

With a vendor-fixed ID, two copies of one part share the maker and part bits. Only the 4-bit instance ID tells them apart. The system designer sets it, for example with straps or fuses. If two boards strap the same value, the IDs tie, so the controller must check after DAA.

Follow-upPractise Why Two Provisional IDs Can Match →
The winning target NACKs the address the controller assigns. What happens next? L2

The target NACKs when the parity bit is wrong. The controller moves on to the next round, and the same target wins again with the same ID. If it NACKs a second time, the controller must leave DAA. It then runs an error procedure that the system designer defines. So a target with a broken parity check blocks every target behind it.

Follow-upPractise A NACK During DAA →
Is ENTDAA the only way a target gets a dynamic address? L2

No. With SETDASA, the controller gives one target at a time a dynamic address, using its known static address. SETAASA does it for all supporting targets at once, with no arbitration: each static address becomes the dynamic one. ENTDAA then handles targets that have only a provisional ID. In a mixed system, the controller sends SETAASA before ENTDAA.

Follow-upPractise SETDASA and SETAASA Versus ENTDAA →
I3C In-Band Interrupts6
How does an I3C target raise an interrupt without an interrupt pin? Walk me through the request and the controller's choices. L2L3

The target puts its own address with R into the arbitrable header after a START. If the bus stays free for the Bus Available time, the target pulls SDA low itself. The controller then completes the START and drives the clock. The controller has three answers. It can ACK and read the mandatory byte, if BCR bit 2 promises one. Or it can NACK so the target retries later, or NACK and disable its events with DISEC.

QuestionPractise I3C In-Band Interrupts →
Why would an architect choose in-band interrupts over one interrupt line per sensor? When would you keep the pin? L2L3

IBI saves a host pin and a board trace per device. The interrupt carries the source's address and often a data byte, so the host need not poll to find who asked. The price is latency that depends on the bus. A request waits for a START or the Bus Available time, controller stalls add delay, and a lower-address target wins collisions. Keep a pin where worst-case latency must stay tightly bounded.

Follow-upPractise IBI Versus an Interrupt Pin →
Two targets raise an IBI after the same START while the controller wanted to address 7E. Who wins, and what do the others do? L2

The header is open drain, so the lowest address on the wire wins. Any assigned dynamic address (0x03 to 0x7B) is lower than 7E. So an interrupting target always beats the controller's broadcast header. Between targets, the lower address wins. The losers may try again, but only after the next Bus Available condition, not on a repeated START.

Follow-upPractise Two Interrupts at Once →
What if the controller NACKs the winning IBI? What does the target do next? L2

A plain NACK refuses only this request, and the target tries again after the Bus Available condition. To stop the requests, the controller NACKs, sends a repeated START and then DISEC with DISINT set. A controller that NACKs forever without DISEC wastes the bus on retries.

Follow-upPractise When the Controller Refuses an IBI →
A target's BCR says a mandatory byte follows each IBI, but the target sends none. What does the bus show? L2L3

After its ACK, the controller releases SDA and expects the target to drive the byte. Nobody drives, so the keeper or pull-up lets SDA rise while SCL is high. That is a STOP on the wire. A decoder closes the frame early, and a controller that carries on reads 0xFF. The fix is in the target, but only a checker that knows BCR[2] can flag it directly.

Follow-upPractise The Missing Mandatory Byte →
What must an I3C target verification environment contain beyond private reads and writes? L3L4

It needs several devices, because most I3C faults involve more than one device. Use two targets with near-identical IDs for DAA ties, and two simultaneous IBIs for header contention. Add a legacy I2C neighbour for the coexistence and no-stretch rules, and HDR enter and exit followed by an SDR read. Check with a wire checker and a driver view that shows who drives a 1, for push-pull faults. Also self-check effects such as addresses assigned and bytes read.

Follow-upPractise Verifying an I3C Target →

Your Review Queue

Saved review reminders are coming soon.