Skip to main content
Visitor II
July 2, 2025
Question

I3C LL_I3C_ControllerHandleMessage Problem

  • July 2, 2025
  • 1 reply
  • 322 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.

    This topic has been closed for replies.

    1 reply

    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,