The Main Controller begins the Dynamic Address Assignment procedure by broadcasting the ENTDAA (Enter Dynamic Address Assignment) CCC. The Target participates in this process automatically if it does not have a Dynamic Address already assigned and is not a Hot-Joining device. If the Target already has a Dynamic Address assigned or is a Hot-Join device, it passively NACKs the Main Controller and waits for the Stop condition (Hot-Joining devices are assigned a Dynamic Address through a separate Hot-Join Mechanism).
During the Dynamic Address Assignment procedure, the Target (alongside all the other devices on the bus) sends its own 48-bit Provisional ID (I3CxPID5 through I3CxPID0), Bus Characteristics Register (I3CxBCR), and Device Characteristics Register (I3CxDCR). Due to the nature of the I3C bus, the Target wins the arbitration if it has the lowest concatenated value of the Provisional ID, BCR, and DCR(1).
Upon winning the arbitration, the Main Controller transfers a 7-bit wide Dynamic Address to the Target followed by the Parity T-Bit. If the parity is valid, the Target ACKs the Main Controller and stores the Dynamic Address in I3CxDADR register. If the parity is invalid, the Target passively NACKs the Main Controller and waits for the next arbitration round.
The Dynamic Address Assignment procedure is outlined in Figure 1 below. Figure 2 shows the frame format for a typical Dynamic Address Assignment procedure. The Dynamic Address Assignment uses Open-Drain signaling, except for when the Controller is transmitting a Restart followed by the Broadcast Address 7'h7E/R, in which case Push-Pull signaling is used.
1
’,
but another device on the bus drives it low to transmit a
‘0
’.