cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H5 I3C dynamic address assignment

Garry
Associate II

hi:

I have two NUCLEO-H563ZI EVB boards  and tried to implement I3C controller and target feature.

When ENTDAA was issued, I obtained the target 48-bit provisioned ID "0x020813810100" from waveform, I saw the description from I3C register  I3C_EPIDR ,it said" Bits[31:16] of the provisioned ID can be 0" but I got the actual value is "0x1381",so where is this value stored?

In addition, it seems that the target can issue a 48 bit provided ID without software operation , is this sending process entirely completed by MCU hardware?

3 REPLIES 3
Foued_KH
ST Employee

Hello @Garry 

I3C_EPIDR register :

Bits 31:17 MIPIMID[14:0]: 15-bit MIPI manufacturer ID as a default value (0x0104)
Bit 16 IDTSEL: provisioned ID type selector : This field is set as 0 (vendor fixed value).
Bits 15:12 MIPIID[3:0]: 4-bit MIPI Instance ID : This field is written by software to set and identify individually each instance of this I3C IP ( via STM32CubeMx or via code )

Foued_KH_0-1701685847755.png


Bits 11:0 Reserved, must be kept at reset value.

Could you please explain more ?

For more details about the I3C communication and the configuration of the I3C bus, you can check the I3C application note : Introduction to I3C for STM32H5 series MCU - Application note

Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

hi Foued,

 

Yes, I know the I3C_EPIDR register, but I want to confirm the 48-bit provisioned ID in the ENTDAA process(dynamic address assignment).

I obtained a"48-bit provisioned ID" from the waveform, with a value of 0x020813810100. But I don't know why the target board could send it, because this value is not present in the example code .Could you help to explain it?Thanks.

 

Garry_0-1701687482963.png

 

 

In order to support the Dynamic Address Assignment procedure, each I3C Device to be connected to an I3C Bus shall be uniquely identifiable before starting the procedure :
- The Device shall have a 48-bit Provisioned ID ( for example : for I3C sensors you can find this value in the Datasheet : like LSM6DSO , LPS22HH , ...)

The 48-bit Provisioned ID shall be transferred continuously, starting with the most significant bit (bit[47]).

So the Device whose concatenated Provisioned ID, BCR, and DCR has the lowest value will win the Arbitration round, due to the nature of Arbitration. ( if more than one I3C device on the I3C bus )

Hope it helps!
Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.