37.2.6.2 Dynamic Address Assignment Procedure

The Active 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 (HJCAP = 0). If the Target already has a Dynamic Address assigned or is a Hot-Joining device (HJCAP = 1), it passively NACKs the Active Controller and waits for the Stop condition (Hot-Joining devices are assigned a Dynamic Address through a separate Hot-Join Mechanism).
Important: The Controller can send ENTDAA CCC to configure a new I3C bus or as a response to a Target requesting Hot-Join to an already configured I3C bus. Refer to the Hot-Join Mechanism section for more information.
Tip: The user can configure the Target as a Hot-Joining device (HJCAP = 1) and choose not to request a Hot-Join to always NACK an ENTDAA CCC and not participate in the Dynamic Address Assignment procedure.

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) in Open-Drain mode to participate in arbitration. 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 Active 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 Active Controller, stores the Dynamic Address in I3CxDADR register, changes the mode of operation to I3C SDR mode (OPMD = 0b01), and sets the Dynamic Address Changed DACHIF interrupt flag. If the parity is invalid, the Target passively NACKs the Active Controller and waits for the next arbitration round.

The Dynamic Address Assignment procedure is outlined in Figure 37-18 below. Figure 37-19 shows the frame format for a typical Dynamic Address Assignment procedure. The Dynamic Address Assignment uses Open-Drain signaling, except when the Controller is transmitting a Restart followed by the Broadcast Address 7'h7E/R, in which case Push-Pull signaling is used.

Important:
  1. The Target loses Dynamic Address Arbitration when it releases the SDA line to transmit a ‘1’, but another device on the bus drives it low to transmit a ‘0’.
  2. The Dynamic Address assigned by the Active Controller incorporates the priority level assigned to the Target for servicing In-Band Interrupt (IBI) requests. Refer to In-Band Interrupt (IBI) for details.
  3. The Active Controller can abort the Dynamic Address Assignment procedure anytime by sending the Stop condition. The Active Controller can also restart the procedure anytime by sending the ENTDAA CCC.
Tip: The user can activate Static Address SDR Mode to gain the ability to respond to both Static and Dynamic Addresses.
Figure 37-18. Dynamic Address Assignment Procedure
Figure 37-19. Dynamic Address Assignment Frame Format