Skip to main content
Visitor II
July 2, 2025
Question

I3C LL_I3C_ControllerHandleMessage Problem

  • July 2, 2025
  • 1 reply
  • 324 views

I am using the STM32H523 microcontroller with I3C function and a system clock of 250MHz. I am configuring LL-I3C_SetPeriodClockHighI3C (I3C1,0x0D) based on the LL library;
LL_I3C_SetPeriodClockLowPP(I3C1,0x0D);
LL_I3C_SetPeriodClockLowOD(I3C1,0x0D);
At this time, the clock is about 8.9MHz, and the oscilloscope waveform is outputting normally, but when configured as
LL_I3C_SetPeriodClockHighI3C(I3C1,0x09);
LL_I3C_SetPeriodClockLowPP(I3C1,0x09);
LL_I3C_SetPeriodClockLowOD(I3C1,0x09);
At this time, the clock is about 12.5MHz. The oscilloscope sees that before sending the normal waveform, the microcontroller will send a byte of 0x3F, which is not what I want. I want to know where the problem lies.

1 reply

JRAUL.1
ST Employee
July 2, 2025

Hello,

Concerning your point, normally the first byte sent is 0x7F, not 0x3F, as it correspond to the header arbitration, come from MIPI specification.

As example for a SETDASA command, here is extraction of MIPI specification:

JRAUL1_0-1751463234396.png

Or for private communication:

JRAUL1_1-1751463491914.png

If you do not want an arbitration header, you can use LL interface: 

LL_I3C_DisableArbitrationHeader

Hope that help
Regards,