SETDASA Procedure (Format 1: Primary)

The I3CC assigns a dynamic address to I3C devices with a known static address using the directed command code Set Dynamic Address from Static Address (SETDASA). This is faster than using the ENTDAA procedure (see ENTDAA Procedure). The SETDASA process is initiated by the I3CC after a cold power-up of the system.

The following flow describes the DAA using the SETDASA procedure:

  1. The application initializes the I3CC.
  2. The application programs the device address table with the data structure as shown in the following figure.
    Note: Do not use the Reserved fields during address assignment procedure. Doing so may result in unexpected behavior.
    Figure 9-216. SETDASA Device Address Table Data Structure

    The number of locations to be programmed is determined by the following:

    1. Number of I3C static address devices to be assigned with dynamic address with single Address Assignment command.
    2. Number of locations available in the device address table.
  3. The application issues the Address Assignment command with the following (see Address Assignment Command):
    1. SETDASA command code in the CMD field.
    2. DEV_INDEX field pointing the location in the device address table from where the dynamic address is to be assigned
    3. DEVICE_COUNT field indicates the number of devices to be assigned with the dynamic address by incrementing the DEV_INDEX field of the same command sequentially as many times as DEVICE_COUNT. Program the DEVICE_COUNT value in such a way that DEVICE_COUNT+DEV_INDEX must not cross the device address table depth.
  4. The I3CC starts executing the SETDASA CCC transfer as soon as the Address Assignment command is issued as shown:
    Figure 9-217. SETDASA CCC Transfer

  5. The DAA continues until one of the following conditions occurs:
    1. NACK response is received for the header 0x7E, RnW=0 (No I3C devices present)
    2. NACK response is received for the static address (not a valid static address or the device does not exist)
    3. DEVICE_COUNT reaches zero (end of address assignment request)
  6. The I3CC writes the Transfer Complete status into the Command Response queue. If the transfer is terminated abruptly due to a NACK response from the target, the field DATA_LENGTH of the Response Data Structure indicates the remaining device count.