树莓派i2c可以接多少个设备_I2C通信,别掉坑里——clock stretching

本文揭示了I2C通信中容易忽视的问题——clock stretching,指出某些I2C主设备不支持此功能可能导致通信失败。在选择主设备时必须注意,否则可能使设计方案报废。以树莓派为例,其I2C功能存在bug,特别是在clock stretching过程中可能出现通信错误。提醒读者在进行复杂设计或软件模拟I2C时,务必注意这一潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I2C,一种非常常用的低速通信协议,由飞利浦提出,已经被广泛使用。他的实现成本非常低廉,所以深受各种芯片的欢迎。

同时,现在很多处理器,小到单片机,大到处理器,几乎都有I2C硬核。我们几乎不用关心I2C具体是什么样的,只要大致知道几种通信模式即可。

今天,我想跟大家挖掘下这个简单协议背后的一个巨大的坑,千万别把I2C想当然了,其实没那么简单!

这个坑就是——clock stretching。

首先简单介绍下这是什么。

我们都知道,I2C主设备始终控制着时钟线SCL,不论是往设备写还是从设备读。

一般情况下,如果操作对象是EEPROM或者其其他简单设备而言,无所谓。

但是,如果从设备是处理器,在接到主机命令后要去处理一些运算然后得出结果返回给主机。这个时候可能造成来不及处理。怎么办?这时,从设备会主动控制时钟线把它拉低!!!!

直到数据准备好之后再释放时钟线,把控制权交还给MASTER。这也是I2C通信系统中,从机唯一能控制总线到时候!。

关键是很多I2C主机不支持clock stretching功能,所以,无法和带有clock stretching功能的从机通信!!!!!所以,各位在选择主机器件之前,必须要注意这一点,不然整个设计方案可能报废,影响很大。

我的设计方案中,需要USB2I2C的芯片,我选择了FT2232和CY7C65215,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值