1. <span id="gbnmy"></span>
      <optgroup id="gbnmy"></optgroup>

    2. <span id="gbnmy"><output id="gbnmy"></output></span>

        你的位置:首頁 > 互連技術 > 正文

        IIC為何需要用開漏輸出和上拉電阻?

        發布時間:2021-02-16 責任編輯:lina

        【導讀】最近在調ICM20602模塊(一個六軸陀螺儀和加速度計), 使用IIC通信協議, 這個過程中遇到一個困擾我很長時間的問題。IIC協議正確, 但是一直讀取失敗.最后發現因為沒配置GPIO為開漏輸出。
          
        最近在調ICM20602模塊(一個六軸陀螺儀和加速度計), 使用IIC通信協議, 這個過程中遇到一個困擾我很長時間的問題。IIC協議正確, 但是一直讀取失敗.最后發現因為沒配置GPIO為開漏輸出。
         
        IIC為何需要用開漏輸出和上拉電阻?
         
        推挽輸出和開漏輸出
        推挽輸出: 
        輸出邏輯0,則N-MOS激活;
        輸出邏輯1,則P-MOS激活。
         
        開漏輸出:
        在不接上拉電阻時, 輸出邏輯0,則N-MOS激活;
        輸出邏輯1,P-MOS不會激活, 不會輸出高電平。
        在接上拉電阻時, 輸出邏輯0,則N-MOS激活;
        輸出邏輯1,P-MOS激活, 可以輸出高電平。
         
        也就是說開漏輸出如果不接上拉電阻, 沒有輸出高電平的能力。
        如果需要開漏輸出有輸出高電平的能力需要接一個上拉電阻. 目前很多單片機GPIO可以通過軟件配置上拉電阻.
         
        IIC為何需要用開漏輸出和上拉電阻?
        左圖為開漏輸出(接上拉電阻), 右圖為推挽輸出
         
        開漏輸出的作用
         
        防止短路: 在一些情況下(比如總線), 多個GPIO口可能會連接在同一根線上, 存在某個GPIO輸出高電平, 另一個GPIO輸出低電平的情況. 如果使用推挽輸出, 你會發現這個GPIO的VCC和另一個GPIO的GND接在了一起, 也就是短路了(涼涼了). 如果換成開漏輸出呢? VCC和GND多了個電阻, 這樣電路就是安全的.所以總線一般會使用開漏輸出.
         
        IIC為何需要用開漏輸出和上拉電阻?
         
        線與: 開漏輸出還能實現 線與 (自行百度), 減少一個與門, 簡化電路.
         
        IIC為什么用開漏輸出和上拉電阻
        IIC協議支持多個主設備與多個從設備在一條總線上, 如果不用開漏輸出, 而用推挽輸出, 會出現主設備之間短路的情況. 
         
        至于為什么需要上拉電阻, 那是因為IIC通信需要輸出高電平的能力.
         
        為了實現多個主設備搶占總線時的仲裁.IIC只有兩根線(SCL和SDA), 怎么判斷哪個主設備占用總線(當然是先來后到了). 
         
        假設主設備A需要啟動IIC, 他需要在SCL高電平時, 將SDA由高電平轉換為低電平作為啟動信號. 主設備A在把SDA拉高后, 它需要再檢查一下SDA的電平。
         
        為什么? 因為線與. 如果主設備A拉高SDA時, 已經有其他主設備將SDA拉低了. 由于 1 & 0 = 0 那么主設備A在檢查SDA電平時, 會發現不是高電平, 而是低電平. 說明其他主設備搶占總線的時間比它早, 主設備A只能放棄占用總線. 如果是高電平, 則可以占用。
         
        這就是開漏輸出在IIC通信中的另一個作用。
         
        SDA是高電平, 說明主設備A可以占用總線, 然后主設備A將SDA拉低, 開始通信.
        SDA是低電平, 說明有人已經捷足先登了, 主設備A不能占用總線, 結束通信.
         
        因此, 模擬IIC一定要將GPIO端口設置為開漏輸出并加上上拉電阻.(硬件IIC會自動配置為開漏輸出)。
         
         
        免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請電話或者郵箱聯系小編進行侵刪。
         
         
        推薦閱讀:
        如何解決PCB傳輸線之SI反射問題?
        分享6款簡單的電源線路圖
        電容在交流電路中的工作原理
        用差分電路原理來分析輸出電壓為何要偏移
        常用ADC的內部原理,你了解嗎?
        特別推薦
        技術文章更多>>
        技術白皮書下載更多>>
        熱門搜索
        ?

        關閉

        ?

        關閉

        亚洲18精品2020最新自拍|51国产偷自视频区视频|国语自产一区第二页欧美|久久精品极品盛宴观看老王