打印
[应用相关]

IIC配置中的Clock No Stretch Mode

[复制链接]
132|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
drer|  楼主 | 2023-12-21 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ETC, ST, ck, ic, iic
Clock Stretch Mode时钟延长模式:
时钟延长是一个术语,某些从设备可以把时钟线拉低,主设备发现自己释放时钟线之后时钟线还没有变成高电平,就会停止发送数据,然后等待从设备释放时钟线。通过这种方式从设备可以告诉主设备你慢点发,我这边还得准备准备(比如从机有个其他中断要处理),这在从机速率比主机低的时候会有用,stm32会默认开启时钟延长模式[Clock No Stretch Mode=disbale](这里的disable和No双重否定等于肯定),不过大多数IIC设备没有时钟延长的设定.

会导致什么问题呢?就是以STM32 MCU作为从设备时,从设备会出现ACK延时的情况,原因就是从机会主动拉低SCL不释放,一直到从机处理完它的工作再释放,主机才能发送第9各时钟,从机才真正发出ACK, 波形上就是ACK信号延迟。
————————————————
版权声明:本文为CSDN博主「坂田民工」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40731414/article/details/134965602

使用特权

评论回复
沙发
probedog| | 2023-12-21 11:24 | 只看该作者
你可以考虑调整I2C配置,禁用“时钟不拉伸模式”,或者确保从设备在处理其他中断或任务时能够及时释放SCL线。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

3309

帖子

4

粉丝