cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H503 I3C not working stable

Goldberg_Tsai
Associate II

I am working off of the example I3C ENTDAA CMD for the STM32H5 series to initialize a slave device. I am stuck in a wierd phenomenon that once CCC CMD triggered and then after more than 300 mS, the I3C function is dead. 

The test setting as below, The CCC  command put in a while-loop, and measured the waveforms by LA.

Goldberg_Tsai_0-1713627816641.png

Another tricky phenomenon that there is a HAL_Delay put in the front of the I3C CCC command and the I3C SDA and SCL not launch the signals.

Is there something else that could be causing this? And how to solve the error? Thanks.

Goldberg_Tsai_1-1713628948508.png

 

 

6 REPLIES 6
Goldberg_Tsai
Associate II

The above problems are used in STM32H503KBU. Meanwhile, I also bought a demo BD NUCLEO-H503RB to check the problems.

The ablove problems are not happened in NUCLEO-H503RB.

Foued_KH
ST Employee

Hello @Goldberg_Tsai , 

Use as I3C_RSTDAA_THEN_ENTDAA as parameter for the function and check the behavior.

Let me know!
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,

I put the I3C_RSTDAA_THEN_ENTDAA CMD iinto the while-loop, the I3C waveforms are shown as below,

The I3C_RSTDAA_THEN_ENTDAA waveform is shown at onece, then it stucks.

Goldberg_Tsai_0-1713793236893.png

Goldberg_Tsai_1-1713793271124.png

Goldberg_Tsai_2-1713793292627.png

Goldberg_Tsai_3-1713793320996.png

 

You only need to assign only one time a dynamic address and if you want to change it you should sent RSTDAA and then ENTDAA .

Why did you put the dynamic address assignment into the while-loop ?

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.

Even put other Broadcast CCC into the while-loop, it got the same result.

Why put the CCC in while-loop? it is for system reliability.

Because I responsible for setup a system and use I3C frequently read/write CCC to slave device.

Besides, NUCLEO-H503RB is used STLINK-V3 to program flash, but STM32H503KBU is used STLINK-V2 to program flash. what the different between these two flash programmers?

If I use STLINK-V3 to program flash in STM32H503KBU, that I3C problems should be solved?

I found the cause of I3C stuck. The chip is OK. My test flow was setup wrong setting.