37.2.6.1 Provisional ID
Each I3C device connected to the I3C bus must be uniquely identifiable to receive a Dynamic Address. For this purpose, the Target module contains a 48-bit Provisional ID available via I3CxPID0 through I3CxPID5 registers. The Controller uses this 48-bit Provisional ID to assign a Dynamic Address to the device. The Controller can also request for this data using the GETPID Common Command Code (CCC).
The Provisional ID is composed of three parts:
- PID[47:33]: MIPI Manufacturer ID (15 bits)
- PID[32]: Provisional ID Type Selector (1 bit)
- PID[31:0]: Vendor Fixed Value or Random Value (32 bits)
The MIPI Manufacturer ID is a two-byte Hexadecimal ID that is assigned by MIPI Alliance, Inc., and is available on the “MIPI Alliance Manufacturer ID Page” at https://mid.mipi.org/. Only the 15 Least Significant bits are used in PID[47:33]. The most significant bit is discarded.
The Provisional ID Type Selector (PID[32]) determines whether PID[31:0] is a Vendor Fixed Value or a Random Value.
If PID[32] = 1
, PID[31:0] is a 32-bit value randomly generated by the
user software.
If PID[32] = 0
, PID[31:0] is a 32-bit Vendor Fixed Value composed of
three parts:
- PID[31:16]: Part ID (16 bits): This is defined by the device vendor.
- PID[15:12]: Instance ID (4 bits): This defines the individual device using a method defined by the user.
- PID[11:0] (12 bits): The user or the vendor can use this to provide additional information to the Controller (for example, deeper device characteristics may be provided).