Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.8.6.5.1.3. ENTDAA

The main master assigns dynamic address to any I3C device not assigned earlier with dynamic address, using the broadcast command code – Enter Dynamic Address Assignment (ENTDAA). This process is initiated by the main master after cold power-up, after completing the dynamic address assignment for static address devices using SETDASA procedure . The main master can choose to use a single or multiple ENTDAA address assignment command to assign a dynamic address for all the connected I3C devices. The number of devices that can be assigned to a single command is limited by the configured value of the device address table and the device characteristics table.

  1. The I3C controller starts executing the ENTDAA CCC transfer as soon as the address assignment command is issued as shown in the following figure:
  2. The first winning device gets the first dynamic address pointed by the device index (DEV_INDX) of the command. The second winning device gets the second dynamic address pointed by the DEV_INDX +1, and so on.

    The received 48-bit PID, BCR, and DCR along with the assigned dynamic address are captured in the device characteristics table.

  3. The Dynamic Address assignment continues until one of the following conditions occurs:
    1. NACK response is received for the header 0x7E/W (No I3C devices present)
    2. NACK response is received for the restart header 0x7E/R (All devices got the Dynamic Address)
    3. NACK response received for the Assigned Dynamic Address (Error detected by the receiving I3C device on the Dynamic Address)
    4. Device Count (DEV_COUNT) reaches zero regardless of the number of devices yet to be assigned to the Dynamic Address (End of address assignment request)
  4. The I3C Controller writes the transfer complete status into the Command Response queue. The Data Length Field of Response Data Structure indicates remaining device count in case if the transfer is terminated abruptly due to NACK response from the slave.