IIC為何使用開漏輸出和上拉電阻-KIA MOS管
信息來源:本站 日期:2021-03-15
推挽輸出和開漏輸出
推挽輸出:輸出邏輯0,則N-MOS激活;輸出邏輯1,則P-MOS激活。開漏輸出:在不接上拉電阻時(shí),輸出邏輯0,則N-MOS激活;輸出邏輯1,P-MOS不會(huì)激活,不會(huì)輸出高電平。在接上拉電阻時(shí),輸出邏輯0,則N-MOS激活;輸出邏輯1,P-MOS激活,可以輸出高電平。
也就是說開漏輸出如果不接上拉電阻,沒有輸出高電平的能力。如果需要開漏輸出有輸出高電平的能力需要接一個(gè)上拉電阻.目前很多單片機(jī)GPIO可以通過軟件配置上拉電阻。
左圖為開漏輸出(接上拉電阻),右圖為推挽輸出
開漏輸出的作用
防止短路:在一些情況下(比如總線),多個(gè)GPIO口可能會(huì)連接在同一根線上,存在某個(gè)GPIO輸出高電平,另一個(gè)GPIO輸出低電平的情況.如果使用推挽輸出,你會(huì)發(fā)現(xiàn)這個(gè)GPIO的VCC和另一個(gè)GPIO的GND接在了一起,也就是短路了(涼涼了).如果換成開漏輸出呢?VCC和GND多了個(gè)電阻,這樣電路就是安全的.所以總線一般會(huì)使用開漏輸出。
線與:開漏輸出還能實(shí)現(xiàn)線與(自行百度),減少一個(gè)與門,簡(jiǎn)化電路。
IIC為什么用開漏輸出和上拉電阻
IIC協(xié)議支持多個(gè)主設(shè)備與多個(gè)從設(shè)備在一條總線上,如果不用開漏輸出,而用推挽輸出,會(huì)出現(xiàn)主設(shè)備之間短路的情況。
至于為什么需要上拉電阻,那是因?yàn)镮IC通信需要輸出高電平的能力.為了實(shí)現(xiàn)多個(gè)主設(shè)備搶占總線時(shí)的仲裁.IIC只有兩根線(SCL和SDA),怎么判斷哪個(gè)主設(shè)備占用總線(當(dāng)然是先來后到了).假設(shè)主設(shè)備A需要啟動(dòng)IIC,他需要在SCL高電平時(shí),將SDA由高電平轉(zhuǎn)換為低電平作為啟動(dòng)信號(hào).主設(shè)備A在把SDA拉高后,它需要再檢查一下SDA的電平。
為什么?因?yàn)榫€與.如果主設(shè)備A拉高SDA時(shí),已經(jīng)有其他主設(shè)備將SDA拉低了.由于1&0=0那么主設(shè)備A在檢查SDA電平時(shí),會(huì)發(fā)現(xiàn)不是高電平,而是低電平.說明其他主設(shè)備搶占總線的時(shí)間比它早,主設(shè)備A只能放棄占用總線.如果是高電平,則可以占用。
這就是開漏輸出在IIC通信中的另一個(gè)作用。SDA是高電平,說明主設(shè)備A可以占用總線,然后主設(shè)備A將SDA拉低,開始通信.SDA是低電平,說明有人已經(jīng)捷足先登了,主設(shè)備A不能占用總線,結(jié)束通信.因此,模擬IIC一定要將GPIO端口設(shè)置為開漏輸出并加上上拉電阻.(硬件IIC會(huì)自動(dòng)配置為開漏輸出)。
聯(lián)系方式:鄒先生
聯(lián)系電話:0755-83888366-8022
手機(jī):18123972950
QQ:2880195519
聯(lián)系地址:深圳市福田區(qū)車公廟天安數(shù)碼城天吉大廈CD座5C1
請(qǐng)搜微信公眾號(hào):“KIA半導(dǎo)體”或掃一掃下圖“關(guān)注”官方微信公眾號(hào)
請(qǐng)“關(guān)注”官方微信公眾號(hào):提供 MOS管 技術(shù)幫助