嵌入式八股,为什么IIC要使用开漏输出+上拉电阻

 首先GPIO得内部输出电路如图,MOS管的导通情况决定了GPIO的输出类型,只有一二两种情况就是推挽输出,二三两种就是开漏输出,使用开漏输出只能输出低电平,这时候就要配合上拉电阻输出高电平,同时减少最大输出电压,防止烧坏芯片,展开来说

1. 开漏输出的原因

  • 防止短路:I²C总线允许多个设备共享同一根数据线(SDA)和时钟线(SCL)。如果采用推挽输出,当一个设备输出高电平而另一个设备输出低电平时,会导致短路,损坏设备。而开漏输出只能将信号拉低或置于高阻态,无法直接输出高电平,从而避免了这种短路问题。

  • 实现“线与”逻辑:在开漏输出模式下,只要有一个设备将总线拉低,总线电平就会变为低电平。这种特性允许多个设备共享总线,而不会相互冲突。

2. 上拉电阻的作用

  • 提供高电平:由于开漏输出无法直接输出高电平,因此需要通过外部上拉电阻将总线拉至高电平。当设备的输出管关闭时,上拉电阻会将总线电平拉高。

  • 保持总线空闲状态:在I²C总线空闲时,SDA和SCL线需要保持高电平。上拉电阻确保了总线在没有设备拉低时处于高电平状态。

  • 优化信号完整性:上拉电阻的值会影响信号的上升时间和通信速率。合适的上拉电阻值可以确保信号快速上升,同时避免过大的电流消耗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值