I2C总线在使用时,如果芯片内部不集成上拉电阻,需要在外部加2个上拉电阻。
原因是I2C总线一般是OD结构,OD全称Open Drain,意为开漏(漏极电路),Drain为MOS管的漏极。
如下图I2C总线结构图,红色标注的上拉电阻和内部的MOS管。
下图是一个典型的用2个MOS管搭建的OD门电路。
工作原理:
- INPUT=0,Q1关闭,Q2导通,相当于开关闭合,OUTPUT=0V;
- INPUT=1,Q1导通,Q2关闭,相当于开关断开,OUTPUT是高阻态;
上述OD门电路是无法输出高电平的,所以需要加上拉电阻。
I2C总线可以一主多从的(1个master,多个slave),因为OD门输出的高阻态,可以将多个OD门连接在一起,形成“线与逻辑”,如下图所示,这是I2C可以一主多从的原因。