cancel
Showing results for 
Search instead for 
Did you mean: 

I3C LL_I3C_ControllerHandleMessage Problem

CornOnly
Visitor

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 1
JRAUL.1
ST Employee

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,