2023-12-01 08:45 AM
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?
2023-12-04 02:30 AM
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 )
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.
2023-12-04 02:59 AM
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.
2023-12-04 05:58 AM
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.
2024-04-29 03:29 AM - edited 2024-04-29 03:29 AM
Hello @Garry ,
Could you please check section 49.16.28 ( RM0481 v2 ).
the bits[31:16] of provisioned ID can be 0 but in the case if you are using STM32 as I3C target ,the provisioned ID is "13 81".
Br,
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.
2024-04-29 03:50 AM
Hi Foued,
I got it. Thank you very much.
BR,
Garry
2024-05-08 05:58 PM
Hi Foued,
what kind of software used to write 4-bit MIPI Instance ID ?
can I write unique MIPI instance ID for ILPS28QSW sensor (up to 16)?
Thanks
2024-05-09 02:13 AM
Hello @mdaud ,
For sensor no need to add a software for target . ( in case you have STM32 as a target you need to identify the MIPI instance ID )
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.
2024-05-09 03:25 AM
Hi Foued,
Noted, How about for sensor, can I have multiple ILPS28QSW in single I3C bus ?
I was thinking to connect 12 pcs of ILPS28QSW.
Thanks
2024-05-09 03:37 AM
I think you can't connect 12 pcs of ILPS28QSW on I3C bus. ( only one PID , BCR and DCR )
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.