I2C總線在使用時,如果芯片內(nèi)部不集成上拉電阻,需要在外部加2個上拉電阻。
原因是I2C總線一般是OD結(jié)構(gòu),OD全稱Open Drain,意為開漏(漏極電路),Drain為MOS管的漏極。
如下圖I2C總線結(jié)構(gòu)圖,紅色標(biāo)注的上拉電阻和內(nèi)部的MOS管。
下圖是一個典型的用2個MOS管搭建的OD門電路。
工作原理:
- INPUT=0,Q1關(guān)閉,Q2導(dǎo)通,相當(dāng)于開關(guān)閉合,OUTPUT=0V;
- INPUT=1,Q1導(dǎo)通,Q2關(guān)閉,相當(dāng)于開關(guān)斷開,OUTPUT是高阻態(tài);
上述OD門電路是無法輸出高電平的,所以需要加上拉電阻。
I2C總線可以一主多從的(1個master,多個slave),因?yàn)镺D門輸出的高阻態(tài),可以將多個OD門連接在一起,形成“線與邏輯”,如下圖所示,這是I2C可以一主多從的原因。