[STM32C0] 使用内部RC振荡时I2C通信不稳定

[复制链接]
170|18
Uriah 发表于 2025-10-16 07:57 | 显示全部楼层 |阅读模式
项目为了省晶振,用内部RC当系统时钟。I2C用标准模式时基本正常,但换成400kHz后通信经常失败。看波形像时序飘动,SCL周期不太稳定。
Clyde011 发表于 2025-10-16 08:00 | 显示全部楼层
RC漂太大了,建议还是外部晶振更省心。
公羊子丹 发表于 2025-10-16 08:01 | 显示全部楼层
RC振荡器的精度确实不够,I2C对时序挺敏感。
周半梅 发表于 2025-10-16 08:02 | 显示全部楼层
我也试过,超过100kHz就容易出问题。
帛灿灿 发表于 2025-10-16 08:02 | 显示全部楼层
可以尝试用时钟校准功能调一下HSI。
童雨竹 发表于 2025-10-16 08:04 | 显示全部楼层
C0系列RC校准寄存器挺好用的。
万图 发表于 2025-10-16 08:05 | 显示全部楼层
要不就换回晶振吧,I2C高频真挑时钟。
Wordsworth 发表于 2025-10-16 08:05 | 显示全部楼层
如果是短线通信还好,线长点更容易错。
Bblythe 发表于 2025-10-16 08:06 | 显示全部楼层
可以测测温度变化,会影响RC精度。
Pulitzer 发表于 2025-10-16 08:07 | 显示全部楼层
我感觉400kHz下内部RC没救,改用外部源吧。
 楼主| Uriah 发表于 2025-10-16 08:08 | 显示全部楼层
有时候调高I2C rise time能稍微稳点。
spicy 发表于 2025-10-16 16:19 | 显示全部楼层
很可能是HSI的频率偏差和抖动导致I2C高速模式时序不稳定。
stormwind123 发表于 2025-10-16 18:20 | 显示全部楼层
校准HSI并优化I2C分频参数。
七毛钱 发表于 2025-10-16 16:21 | 显示全部楼层
必要时降低I2C目标频率以增加容差。
七毛钱 发表于 2025-10-16 20:22 | 显示全部楼层
可能是时钟问题还有总线冲突
内政奇才 发表于 2025-10-16 16:23 | 显示全部楼层
试试切换至外部时钟
今天会画卧蚕吗 发表于 2025-10-16 16:24 | 显示全部楼层
内部RC振荡器的固有缺陷导致的吧
又见江南雨 发表于 2025-10-16 21:25 | 显示全部楼层
根据总线电容优化上拉电阻
甜心puppy 发表于 2025-10-16 22:26 | 显示全部楼层
可以动态切换时钟源,在关键通信阶段切换至HSE,非关键阶段使用HSI以节省功
您需要登录后才可以回帖 登录 | 注册

本版积分规则

167

主题

6317

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部