吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

IIC為什么要配置GPIO為開漏輸出?

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2023-03-28 10:16 ? 次閱讀

最近在調ICM20602模塊,一個六軸陀螺儀和加速度計,使用IIC通信協議,這個過程中遇到一個困擾我很長時間的問題。

IIC協議正確,但是一直讀取失敗,最后發現因為沒配置GPIO為開漏輸出。

060b2e7a-cca3-11ed-bfe3-dac502259ad0.png

推挽輸出和開漏輸出

推挽輸出:

輸出邏輯0,則N-MOS激活;

輸出邏輯1,則P-MOS激活。

開漏輸出:

在不接上拉電阻時, 輸出邏輯0,則N-MOS激活;

輸出邏輯1,P-MOS不會激活, 不會輸出高電平。

在接上拉電阻時, 輸出邏輯0,則N-MOS激活;

輸出邏輯1,P-MOS激活, 可以輸出高電平。

也就是說開漏輸出如果不接上拉電阻, 沒有輸出高電平的能力。

如果需要開漏輸出有輸出高電平的能力需要接一個上拉電阻。目前很多單片機GPIO可以通過軟件配置上拉電阻。

061b645c-cca3-11ed-bfe3-dac502259ad0.png

如上,左圖為開漏輸出(接上拉電阻),右圖為推挽輸出。

開漏輸出的作用

防止短路:

在一些情況下(比如總線), 多個GPIO口可能會連接在同一根線上, 存在某個GPIO輸出高電平, 另一個GPIO輸出低電平的情況. 如果使用推挽輸出, 你會發現這個GPIO的VCC和另一個GPIO的GND接在了一起, 也就是短路了。

如果換成開漏輸出呢? VCC和GND多了個電阻, 這樣電路就是安全的.所以總線一般會使用開漏輸出。

063170a8-cca3-11ed-bfe3-dac502259ad0.png

線與:

開漏輸出還能實現線與,減少一個與門,簡化電路。

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會自動配置為開漏輸出。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信協議
    +關注

    關注

    28

    文章

    915

    瀏覽量

    40439
  • IIC
    IIC
    +關注

    關注

    11

    文章

    302

    瀏覽量

    38504
  • MOS
    MOS
    +關注

    關注

    32

    文章

    1283

    瀏覽量

    94305
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52377
  • 開漏輸出
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7353

原文標題:IIC為什么要配置GPIO為開漏輸出?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文詳解單片機的GPIO模式

    3.3V供電單片機,模式GPIO內部示意圖如下所示,當內部MOS管關斷時,上拉電阻的作用下,GPIO可以正常輸出5V。
    發表于 11-15 15:23 ?5665次閱讀
    一文詳解單片機的<b class='flag-5'>GPIO</b><b class='flag-5'>開</b><b class='flag-5'>漏</b>模式

    IIC為什么用輸出和上拉電阻?

    IIC通信協議推挽輸出輸出
    發表于 02-26 06:48

    GPIO實現推挽輸出輸出的關鍵是什么

    以STM32參考手冊中的GPIO輸出配置圖為例:看到輸出驅動器虛線框中的內容,輸出驅動器中的P-MOS和N-MOS兩個MOS管就是實現推挽
    發表于 02-28 06:48

    STM32的GPIO知識點:輸出和推挽輸出

    “推挽輸出”和“輸出”的模式。這里的電路會在下面很詳細地分析到。 TTL肖特基觸發器:信號經過觸發器后,模擬信號轉化為0和1的數字信號。但是,當
    發表于 12-22 18:10

    輸出_什么是輸出

    什么是輸出,輸出:OC門的輸出就是
    發表于 03-31 15:31 ?7412次閱讀

    輸出與推挽輸出比較

    stm32 gpio 輸出與推挽輸出的區別。
    發表于 05-19 15:32 ?16次下載

    GPIO的推挽輸出輸出以及其優缺點分析

    GPIO的功能,簡單說就是可以根據自己的需要去配置輸入或輸出。但是在配置GPIO管腳的時候,常
    的頭像 發表于 01-05 15:31 ?3.4w次閱讀
    <b class='flag-5'>GPIO</b>的推挽<b class='flag-5'>輸出</b>和<b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>以及其優缺點分析

    IIC為什么要用輸出和上拉電阻?

    最近在調ICM20602模塊(一個六軸陀螺儀和加速度計), 使用IIC通信協議, 這個過程中遇到一個困擾我很長時間的問題。 IIC協議正確, 但是一直讀取失敗.最后發現因為沒配置GPIO
    的頭像 發表于 03-09 13:57 ?1.8w次閱讀
    <b class='flag-5'>IIC</b>為什么要用<b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>和上拉電阻?

    IIC 輸出相關分析資料下載

    電子發燒友網你提供IIC 輸出相關分析資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用
    發表于 03-28 08:44 ?16次下載
    <b class='flag-5'>IIC</b> <b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>相關分析資料下載

    STM32-GPIO端口模式配置--推挽、

    上拉輸入、下拉輸入、浮空輸入、模擬輸入、推挽輸出輸出的分析
    發表于 11-30 21:06 ?8次下載
    STM32-<b class='flag-5'>GPIO</b>端口模式<b class='flag-5'>配置</b>--推挽、<b class='flag-5'>開</b><b class='flag-5'>漏</b>等

    GPIO配置

    有關推挽輸出輸出、復用輸出、復用推挽
    發表于 12-01 10:36 ?13次下載
    <b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>

    GPIO推挽輸出輸出模式區別詳解

    以STM32參考手冊中的GPIO輸出配置圖為例:看到輸出驅動器虛線框中的內容,輸出驅動器中的P-MOS和N-MOS兩個MOS管就是實現推挽
    發表于 01-13 16:24 ?19次下載
    <b class='flag-5'>GPIO</b>推挽<b class='flag-5'>輸出</b>和<b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>模式區別詳解

    STM32的GPIO的輸入,輸出,推挽,上拉,下拉的關系

    STM32的GPIO的輸入,輸出,推挽,上拉,下拉的關系
    發表于 01-14 14:45 ?25次下載
    STM32的<b class='flag-5'>GPIO</b>的輸入,<b class='flag-5'>輸出</b>與<b class='flag-5'>開</b><b class='flag-5'>漏</b>,推挽,上拉,下拉的關系

    輸出和推挽輸出

    在STM32或者GD32中,普通的輸出GPIO輸出方式主要是輸出和推挽
    的頭像 發表于 11-24 10:23 ?1.4w次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>和推挽<b class='flag-5'>輸出</b>

    什么是浮動輸入和輸出

    一些微控制器輸出可以設置(或者只能設置
    的頭像 發表于 11-27 15:45 ?1413次閱讀
    什么是浮動輸入和<b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>
    大发888下载 客户端| 威尼斯人娱乐公司| 大发888娱乐城范本| 在线棋牌游戏| 百家乐官网出闲几率| 百家乐资金注码| 雅加达百家乐的玩法技巧和规则| 188金宝博| 百家乐官网特殊技巧| 百家乐赌场现金网平台排名| 娱乐城送注册金| 叶氏百家乐官网平注技巧| 赌博百家乐经验网| 大发888娱乐场下载dafaylcdown| 88真人娱乐城| 真人百家乐官网网络游戏信誉怎么样 | 威尼斯人娱乐城海立方| 博彩娱乐场| 红树林百家乐官网的玩法技巧和规则 | 电子百家乐官网假在线哪| 澳门百家乐玩法与游戏规则| 赌球开户| 百家乐官网怎么玩会| 威尼斯人娱乐城 色情| 百家乐官网视频麻将下载| 太阳城百家乐的分数| 半岛棋牌游戏| 百家乐官网天下第一庄| 神人百家乐赌博| 平遥县| 赌博百家乐弱点| 皇冠备用投注网| 昌吉市| 开店做生意的风水| bet365地址| 百家乐官网大光明影院| 大发888 大发888官网| 百家乐官网桌面| 威尼斯人娱乐网上百家乐| 百家乐官网赌场信息| 太阳城线上娱乐城|