<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 互連技術(shù) > 正文

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

    發(fā)布時間:2021-02-16 責任編輯:lina

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

    關(guān)閉

    ?

    關(guān)閉

    日韩视频无码日韩视频又2021| 免费精品久久久久久中文字幕| 无码少妇一区二区三区| 夜夜添无码一区二区三区| 中文字幕无码无码专区| 人妻中文无码久热丝袜| 日韩中文字幕视频| 在线天堂中文新版www| 无码专区狠狠躁躁天天躁| avtt亚洲一区中文字幕| 亚洲精品午夜无码电影网| 国产50部艳色禁片无码| 蜜臀AV无码国产精品色午夜麻豆 | 亚洲精品无码AV中文字幕电影网站| 国产激情无码一区二区三区| 亚洲中文字幕不卡无码| 超清无码熟妇人妻AV在线电影| 亚洲国产精品无码中文字 | yy111111电影院少妇影院无码| 中文字幕在线看日本大片| 亚洲一区精品中文字幕| 亚洲一级特黄无码片| 成?∨人片在线观看无码| 精品无码国产污污污免费网站| 亚洲中文字幕日本无线码| 精品无码人妻久久久久久| 久久精品中文字幕无码绿巨人 | 亚洲中文字幕无码永久在线| 一二三四在线播放免费观看中文版视频 | 人妻无码一区二区三区AV| 亚洲av无码成人黄网站在线观看| 国产品无码一区二区三区在线| 国产成人无码18禁午夜福利p| 人妻aⅴ无码一区二区三区| 日日摸日日踫夜夜爽无码| 日韩精品一区二三区中文| 最近免费中文字幕大全高清大全1| 波多野结衣在线中文| 精品无码一区二区三区爱欲| 精品人无码一区二区三区| HEYZO无码综合国产精品227|