这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【STM32H5系列】1、I3C之Controller配置

共1条 1/1 1 跳转至

【STM32H5系列】1、I3C之Controller配置

菜鸟
2024-12-24 07:11:25     打赏

【前言】

I3C做为I2C的“升级版本”,他不但在速度上有很高的提升,而且也不限于以前的marster/slave模式。本篇将对I3C的Controller 的配置进行分析。

【实验环境】

STM32CubeMX 6.12

【开发板】

NUCLEO-STM32H503

【配置步骤】

一、Hardware Specific Timing Constraints(硬件特定时间约束)约定SDA上升时间为350ns。

这个参数与Bus Timing Activiy相互配合,通过与I3C时钟来计算影响Timing Register 1中的SDA_HD位。用于I3C中角色变换SDA需要上拉保持的时间。

在用户手册RM0492中有这样的计算公式:

SDA hold time = (SDA_HD + 0.5) x tI3CCLK

二、Bus Characteristic

1、在这个配置选项中有3个可配置选项:

①Bus usage可以选择I3C pure bus、Mixed I3C and I2C。即为纯I3C总线,或者同时可以使用I2C或者I3C。

②Frequency I3C Controller 总线频率,打开后会默认为1250Khz,可以通过手工录入指定的频率。

③I3C Duty Cycle即占空比。默认配置为50%。

2、这三个参数配置好后,会自动计算出Timi Register 0的参数。如下图所示:

image.png在寄存器的位置如下:

image.png

三、Bus Timing Activity

1、SDA Hold Time 可以选择 与输入时钟的0.5倍或者1.5倍。这个选项修改后,会自动计算生成Timing Register 1的配置值。

2、Wait Time 可以选择Own Controller Activity State0-3。

这个配置为位Timing Register 1 9:8 ASNCR[1:0]:新控制器的活动状态(当13C充当活动控制器时)此字段指示作为新目标访问前的等待时间。只有当I3C充当控制器时,才能修改此字段。

3、Bus Free Duration 其作用如下:

image.png

主要的作用为I3C为作为Controller角色时的时序要求,遵循MIPI协议要求。

4、Bus Idle Duration: 超过指定配置时间后,总线视为Idle状态。

经设置后,生成Timing Register 1如下:

image.png

四、Basic Configration

此次作为Controller选不进行配置

五、Advanced Configuration

配置Transmit Fifo Threshold 与Recive Fifo Threshold可以选择Threshold 4 bytes以及Threshold 1 bytes。

配置如下图所示:

image.png


【中断】

开启I3C1 event interrupt 以及 I3C1 error interrup:

image.png

生成工程后,在mdk的工程中可见配置如下:

view plaincopy to clipboardprint?

  1. /* I3C1 init function */  

  2. void MX_I3C1_Init(void)  

  3. {  

  4.   

  5.   /* USER CODE BEGIN I3C1_Init 0 */  

  6.   

  7.   /* USER CODE END I3C1_Init 0 */  

  8.   






关键词: STM32H5    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]