UTILS I3C Timing Types

UTILS I3C Timing Types

group UTILS_I3C_Exported_Types

Enums

enum stm32_utils_i3c_status_t

I3C utils status structure definition.

Values:

enumerator STM32_UTILS_I3C_OK

Utils I3C operation completed successfully

enumerator STM32_UTILS_I3C_ERROR

Utils I3C operation completed with error

enumerator STM32_UTILS_I3C_INVALID_PARAM

Utils I3C invalid parameter

enum stm32_utils_i3c_bus_type_t

Bus type defines that can be used with STM32_UTILS_I3C_CTRL_CalculateTiming function.

Values:

enumerator STM32_UTILS_I3C_PURE_I3C_BUS

Pure I3C bus, no I2C

enumerator STM32_UTILS_I3C_I2C_MIXED_BUS

Mixed bus I3C and I2C

enum stm32_utils_i3c_activity_state_t

Activity state, own activity state.

Values:

enumerator STM32_UTILS_I3C_ACTIVITY_STATE_0

Own ctrl activity state 0

enumerator STM32_UTILS_I3C_ACTIVITY_STATE_1

0x00000100 Own ctrl activity state 1

enumerator STM32_UTILS_I3C_ACTIVITY_STATE_2

0x00000200 Own ctrl activity state 2

enumerator STM32_UTILS_I3C_ACTIVITY_STATE_3

Own ctrl activity state 3

enum stm32_utils_i3c_sda_hold_time_t

SDA_hold_time SDA hold time.

Values:

enumerator STM32_UTILS_I3C_SDA_HOLD_TIME_0_5

SDA hold time is 0.5 x ti3cclk

enumerator STM32_UTILS_I3C_SDA_HOLD_TIME_1_5

0x10000000 SDA hold time is 1.5 x ti3cclk

enumerator STM32_UTILS_I3C_SDA_HOLD_TIME_2_5

0x20000000 SDA hold time is 2.5 x ti3cclk

enumerator STM32_UTILS_I3C_SDA_HOLD_TIME_3_5

SDA hold time is 3.5 x ti3cclk

struct stm32_utils_i3c_ctrl_timing_config_t
#include <stm32_utils_i3c.h>

I3C utils controller timing structure definition.

Public Members

uint32_t clock_src_freq_hz

I3C clock source in Hz

uint32_t i3c_pp_freq_hz

I3C required bus clock for push-pull phase in Hz

uint32_t i2c_od_freq_hz

I2C required bus clock for Open-Drain phase in Hz

uint32_t duty_cycle_purcent

I3C duty cycle for pure I3C bus or I2C duty cycle for mixed bus in percent. This parameter must be a value less than or equal to 50 percent

stm32_utils_i3c_activity_state_t wait_time

Time that the main and the new controllers must wait before issuing a start. This parameter must be a value of stm32_utils_i3c_activity_state_t

stm32_utils_i3c_bus_type_t bus_type

Bus configuration type. This parameter must be a value of stm32_utils_i3c_bus_type_t

struct stm32_utils_i3c_ctrl_raw_timing_t
#include <stm32_utils_i3c.h>

I3C utils controller bus configuration structure definition.

Public Members

stm32_utils_i3c_sda_hold_time_t sda_hold_time

I3C SDA hold time. This parameter must be a value of stm32_utils_i3c_sda_hold_time_t

stm32_utils_i3c_activity_state_t wait_time

Time that the main and the new controllers must wait before issuing a start. This parameter must be a value of stm32_utils_i3c_activity_state_t

uint8_t scl_pp_low_duration

I3C SCL low duration in number of kernel clock cycles in I3C push-pull phases. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

uint8_t scl_i3c_high_duration

I3C SCL high duration in number of kernel clock cycles, used for I3C messages for I3C open-drain and push pull phases. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

uint8_t scl_od_low_duration

I3C SCL low duration in number of kernel clock cycles in open-drain phases, used for legacy I2C commands and for I3C open-drain phases. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

uint8_t scl_i2c_high_duration

I3C SCL high duration in number of kernel clock cycles, used for legacy I2C commands. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

uint8_t bus_free_duration

I3C controller duration in number of kernel clock cycles, after a stop and before a start. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

uint8_t bus_idle_duration

I3C controller duration in number of kernel clock cycles to be elapsed, after that both SDA and SCL are continuously high and stable before issuing a hot-join event. This parameter must be a number between Min_Data=0 and Max_Data=0xFF.

struct stm32_utils_i3c_tgt_timing_config_t
#include <stm32_utils_i3c.h>

I3C utils Target Timing structure definition.

Public Members

uint32_t clock_src_freq_hz

I3C clock source (in Hz).