I2C接口为什么要设计成开漏输出?

析这个问题,首先要从I2C接口的设计初衷说起,制定者当初设计成I2C总线的就是要实现,一个I2C主机可以挂很多I2C从机。

第一个原因,如果设计成推挽输出,就会造成短路情况,如下图:

两个从设备一个拉高,一个拉低,就会造成短路。而开漏输出,有上拉电阻限流,这样都不会造成短路。第二个原因,就是多设备通信仲裁需要做线与逻辑,开漏输出能做到,如果用推挽输出做线与就会如上面原因,造成短路。线与逻辑,主设备想总线置1,开始空闲,从设备这时候如果输出0 ,会产生1&0=0,造成主设备认为总线还是被占用,无法空闲,主设备放弃拉高,这样不会破坏从设备正在通讯的数据。
 

综上所述,双总线接口外设一般要设计成开漏输出,一是防短路,而是做线与逻辑,方便仲裁。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值