IIC为什么要开漏输出
- 防止短路
IIC空闲时规定为高电平,当从设备输出低电平时,主设备推挽输出高电平时会导致短路。 - IIC支持多主机
IIC为什么要外接上拉电阻
主设备开漏输出没有输出高电平的能力,只能由外部上拉提供高电平。能用内部的上拉电阻吗?理论上是可以的,但内部上拉电阻阻值一般不可修改,并且上拉电阻的摆放位置最好在主设备和从设备的中间,保证发送和接收时处于一个折中的状态。
IIC上拉电阻取多大合适
- 功耗
电阻越小,当总线为低电平时,存在漏电流,增加功耗。提高电阻,减少功耗。 - 传输速率
上拉电阻和总线电容形成RC,C主要为寄生电容,当电阻大的时候,电流小,导致C两端充电时间延长造成波形上升时间增大,进而限制了传输速率。 - GPIO的过流能力和低电平阈值
GPIO内部mos的过流能力有限制,输出低电平时,下管打开,电流通过上拉电阻流经mos到地平面。当上拉电阻减小时,电流增大,mos可能承受不住,同时因为电流增大导致低电平电压升高,可能会超过IIC标准的低电平阈值。