UTILS I3C Timing Overview ¶
Introducing I3C Timing ¶
- group UTILS_I3C_Introduction
-
This module provides utility functions to simplify the configuration of I3C peripherals on STM32 devices. It automates the calculation of timing values, ensuring compliance with the I3C protocol specification and reliable communication.
Important: Note that these C functions are computationally intensive. Use STM32CubeMX2 for calculations and store the values rather than calculating at runtime to avoid application latency.
Timing configuration for I3C is performed in one of two modes, depending on the role of the peripheral:
Controller mode: Use the
stm32_utils_i3c_ctrl_timing_config_tstructure and callSTM32_UTILS_I3C_CTRL_ComputeTiming()to calculate register values for I3C_TIMINGR0 and I3C_TIMINGR1.Target mode: Use the
stm32_utils_i3c_tgt_timing_config_tstructure and callSTM32_UTILS_I3C_TGT_ComputeTiming()to calculate the register value for I3C_TIMINGR1.
Select the appropriate mode based on whether the I3C peripheral operates as a controller or a target. Only one mode is used per peripheral instance.
The computed values are used directly to fill hardware registers (I3C_TIMINGR0 and I3C_TIMINGR1) via the appropriate LL/HAL functions or direct register access.
Module and files ¶
The following diagram illustrates the I3C Timing utility and its associated files.