完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
根据 I 的定义2C BUS,当从机处于繁忙状态时,可以将I2C_SCL拉低,迫使传输被拉伸。
当我2发生 C 中断,I2C_SCL将被拉低以停止 I2C沟通一会儿。I2C_SCL不会被拉高,直到程序触发 I2C 继续接受下一个数据,恢复传输。 因此,用户可以获得 I2C中断工作时间通过I2C_SCL拉伸时间。 |
|
|
|
|
|
是的,MCU 作为 I2C 从机时,在连续接收数据期间出现时钟拉伸是一个非常常见且通常符合设计预期的行为,核心原因在于 “速度不匹配”或“处理延迟”。 以下是详细解释:
总结: MCU(作为 I2C 从机)在连续接收数据时发生时钟拉伸,根本原因是从机的软件处理速度跟不上主机设定的数据传输速率。它需要额外的时间来完成诸如:处理中断、存储数据、检查状态、决定 ACK/NACK、管理缓冲区、处理错误或实际应用逻辑等任务。I2C 协议设计的时钟拉伸机制正是为了解决这种速度不匹配的问题,允许较慢的从机暂停快速的主机,确保通信的可靠性和数据完整性,防止数据丢失或错误响应。 这不是一个错误(除非不合理地频繁和长),而是 I2C 总线正常运作的关键机制之一。 在设计 I2C 从机固件时,优化中断服务例程、使用高效的缓冲区策略、评估处理时间是否匹配总线速率并可能选择适当的主机SCL速度,都是避免过度或不必要时钟拉伸的关键点。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
179浏览 2评论
为什么DSP(数字信号处理)需要Q格式?q31、q15、q7 和 f32 是什么意思呢?
323浏览 2评论
请问NuMicro® Cortex-M0/M4系列可以提供哪些USB器件示例代码?
230浏览 2评论
芯片进入空闲或关机模式后,窗口看门狗定时器 (WWDT) 是否会继续工作呀?
175浏览 2评论
请问Nu-Link 驱动程序可以同时安装在 Keil RVMDK UV4 和 UV5 上吗?
211浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:05 , Processed in 0.444401 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
112
