下面我们来聊一聊IIC。
首先要知道,为什么IIC需要接上拉电阻?这里就需要承接到上一部分的内容:三极管。
注意到这样一句话:「连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能 」,这里就涉及到「漏极/集电极开路」、「上拉电阻」和「线与」两个概念,而这绝对可以算得上是实现 I2C 总线协议的关键所在。
由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的。
上拉电阻不宜过小,一般不低于1KΩ:
一般IO 端口的驱动能力在2mA~4mA量级。如果上拉电阻阻值过小,VDD灌入端口的电流将较大,这样会导致MOS管不完全导通,从饱和状态变成放大状态,这样端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V);如果灌入端口的电流过大,还可能损坏端口。故通常上拉电阻应选取不低于1KΩ的电阻(当VDD=3V时,灌入电流不超过3mA)。
RP不宜过大,一般不高于10KΩ:
<