2025-07-01 8:03 PM
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.
2025-07-02 6:39 AM
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:
Or for private communication:
If you do not want an arbitration header, you can use LL interface:
Hope that help
Regards,