The I3C protocol allows the I3C targets on the bus to generate an interrupt for the Controller to service using the SDA and SCL lines, called In-Band Interrupt (IBI). This makes it possible for the targets on the bus to generate interrupts without using any external interrupt lines.
Each target on the I3C bus has a priority level encoded into its Controller-assigned
Dynamic address, with lower value addresses having higher priority levels. This is a
natural outcome of the I3C Address Arbitration where address bits with value
‘0
’ are prioritized over bits with value ‘1
’. This
means that when multiple targets request IBI at the same time, targets with lower value
addresses (and subsequently higher priority levels) will have their IBI requests
processed sooner than targets with higher value addresses.
0
(write, for private write
transaction) whereas the Target drives the bus with its own address with
R/W = 1
(read, for IBI request). When this
happens, the Target loses the arbitration and proceeds forward with the private write
transaction with the Controller as described in Private Transaction.1
). This is communicated to
the Controller during the Dynamic Address Assignment procedure or when the Controller
requests for it using the GETBCR (Get Bus Characteristics Register) Direct Common Command
Code (CCC).The IBI process that the Target follows is described in Figure 1.
0b01
) with IBI requests enabled on the bus (IBIEN =
1
).