I2C 低电平的时间和保持时间修改
-
1. 问题背景
- 软件:MD1 SDK 1_4_0 I2c_Master_Demo
- 硬件:MD14 EVB or 客户板子
- 问题表述:
- 客户对 I2C 波形进行测试,反馈低电平时间和保持时间不满足最低时间规格,需要调高 I2C 低电平时间和保持时间
2. 修改方案
2.1 文本说明
-
根据需求修改 MCLKCFG 或 HSCLK 寄存器即可

-
MDATA 寄存器
- HS 为 1:调整 HSCLK 寄存器
- HS 为 0:调整 MCLKCFG 寄存器

- MCLKCFG 和 HSCLK 寄存器



2.2 代码说明
- I2C_DRV_MasterSetBaudRate 函数里
MCLKCFG
- I2C_Set_MasterDataValidDelay:MCLKCFG 寄存器 VALID 位
- I2C_Set_MasterSetupHoldDelay:MCLKCFG 寄存器 STHD 位
- I2C_Set_MasterClockHighPeriod:MCLKCFG 寄存器 HIGH 位
- I2C_Set_MasterSetupHoldDelay:MCLKCFG 寄存器 LOW 位

HSCLK
- I2C_Set_MasterDataValidDelayHS:HSCLK 寄存器 VALID 位
- I2C_Set_MasterSetupHoldDelayHS:HSCLK 寄存器 STHD 位
- I2C_Set_MasterClockHighPeriodHS:HSCLK 寄存器 HIGH 位
- I2C_Set_MasterClockLowPeriodHS:HSCLK 寄存器 LOW 位


3. 修改前后对比
- STHD 位修改前后对比
- STHD 为 0x13,保持周期为 2.48us
- STHD 为 0x19,保持周期为 3.20us

快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...