IIC為何需要用開漏輸出和上拉電阻?
發(fā)布時(shí)間:2021-02-16 責(zé)任編輯:lina
【導(dǎo)讀】最近在調(diào)ICM20602模塊(一個(gè)六軸陀螺儀和加速度計(jì)), 使用IIC通信協(xié)議, 這個(gè)過程中遇到一個(gè)困擾我很長(zhǎng)時(shí)間的問題。IIC協(xié)議正確, 但是一直讀取失敗.最后發(fā)現(xiàn)因?yàn)闆]配置GPIO為開漏輸出。
最近在調(diào)ICM20602模塊(一個(gè)六軸陀螺儀和加速度計(jì)), 使用IIC通信協(xié)議, 這個(gè)過程中遇到一個(gè)困擾我很長(zhǎng)時(shí)間的問題。IIC協(xié)議正確, 但是一直讀取失敗.最后發(fā)現(xiàn)因?yàn)闆]配置GPIO為開漏輸出。
推挽輸出和開漏輸出
推挽輸出:
輸出邏輯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)配置為開漏輸出)。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
特別推薦
- 利用自動(dòng)化技術(shù)賦能中國(guó)基礎(chǔ)設(shè)施現(xiàn)代化
- 三極管電路輸入電壓阻抗
- 晶振怎么用,你真的知道嗎?
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
- 思特威推出超星光級(jí)系列4MP圖像傳感器SC485SL
- HOLTEK新推出HT32F59045脈搏血氧儀MCU
技術(shù)文章更多>>
- 貿(mào)澤推出針對(duì)基礎(chǔ)設(shè)施和智慧城市的工程技術(shù)資源中心
- “扒開”超級(jí)電容的“外衣”,看看超級(jí)電容“超級(jí)”在哪兒
- DigiKey 誠(chéng)邀各位參會(huì)者蒞臨SPS 2024?展會(huì)參觀交流,體驗(yàn)最新自動(dòng)化產(chǎn)品
- 提前圍觀第104屆中國(guó)電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索