SETDASA Procedure (Format 2: Point-to-point)
The SETDASA CCC may also be used for simple point-to-point communication in I3C minimal bus use cases. An I3C minimal bus is an I3C bus with one I3C device and one I3C target device.
In this special usage of the SETDASA CCC, the I3CC uses the fixed value 0x01 as the static address, and uses the fixed (and reserved) value of 0x01 as the dynamic address.
The following flow describes the Dynamic Address Assignment using the SETDASA procedure in point-to-point communication:
- The application initializes the I3CC.
- 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.
- The application issues the Address Assignment command with the
following:
- SETDASA command code in the CMD field.
- DEV_INDEX field pointing to the location in the Device Address Table (DAT) in which the static address (0x01) and dynamic address (0x01) are assigned.
- DEVICE_COUNT field is programmed to '1' as there is only one device to be assigned with the dynamic address.
- The I3CC starts executing the SETDASA CCC transfer as soon as the Address Assignment command is issued as shown:
- The Dynamic Address Assignment continues until one of the following
conditions occur:
- NACK response is received for the header 0x7E, RnW=0 (No I3C devices present).
- NACK response is received for the static address (Not a valid static address or the device does not exist).
- DEVICE_COUNT reaches zero (End of address assignment request).
- The I3CC writes the Transfer Complete status into the Command Response queue. The field DATA_LENGTH of the Response Data Structure indicates the remaining device count if the transfer is terminated abruptly due to NACK response from the target.