0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C的開漏輸出和上拉電阻

CHANBAEK ? 來源:四梯 ? 作者:四梯 ? 2023-07-02 16:39 ? 次閱讀

I2C的開漏輸出和上拉電阻

I2C總線是由Philips公司開發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線,它采用同步方式串行接收或發(fā)送信息,I2C總線是由串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL組成。因?yàn)镮2C只有一根數(shù)據(jù)線,故發(fā)送信息和接收信息無法同時(shí)進(jìn)行,I2C工作時(shí)的傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。I2C總線采用漏極開路的設(shè)計(jì),且SDA和SCL通過上拉電阻連接V CC 。今天就和大家來探討一下I2C為什么需要用開漏輸出和上拉電阻。

圖片

首先,讓我們簡(jiǎn)單地來回顧一下上周所介紹的推挽輸出和開漏輸出。

開漏輸出:如果輸出控制電路接收到低電平(0)時(shí),此時(shí)地N-MOS導(dǎo)通,不管有沒有接上拉電阻,I/O端口處的電平都會(huì)被N-MOS管拉低。但是當(dāng)輸出控制電路接收到高電平(1)時(shí),N-MOS管截止,有上拉電阻存在時(shí),輸出高電平,沒有上拉電阻存在時(shí),輸出電路開路,不能輸出高電平。簡(jiǎn)而言之,開漏輸出只有接上上拉電阻時(shí),才有輸出高電平的能力。

推挽輸出:因?yàn)樵黾恿艘粋€(gè)P-MOS管,當(dāng)CPU輸出邏輯“1 ”時(shí),P-MOS管導(dǎo)通,輸出高電平。當(dāng)CPU輸出邏輯“0 ”時(shí),P-MOS管截止,輸出低電平。

為什么I2C需要用開漏輸出?

因?yàn)镮2C協(xié)議是支持多個(gè)主設(shè)備與多個(gè)從設(shè)備在一條總線上的,此時(shí)就會(huì)有多個(gè)GPIO口連接在同一條總線上,就勢(shì)必會(huì)出現(xiàn)輸出高、低電平不統(tǒng)一的情況,如果采用推挽輸出時(shí),就可能會(huì)出現(xiàn)某個(gè)GPIO的Vcc和GND連接在一起造成短路的情況,當(dāng)你采用開漏輸出時(shí),因?yàn)橛猩侠娮璧拇嬖诰涂梢员苊膺@一問題的出現(xiàn)。

為什么要上拉電阻?

①:因?yàn)殚_漏輸出不接上拉電阻時(shí)無法輸出高電平。而I2C通信需要有輸出高電平的能力,故在漏極接上上拉電阻

②:I2C總線由SDA(串行數(shù)據(jù)接線)和SCL(串行時(shí)鐘線)及上拉電阻組成,這樣能夠?qū)崿F(xiàn)“線與”功能,不僅簡(jiǎn)化了電路,而且依照“線與”邏輯,可以實(shí)現(xiàn)多個(gè)主設(shè)備搶占總線時(shí)的仲裁,因?yàn)槿绻粋€(gè)設(shè)備需要啟動(dòng)I2C時(shí),它需要在SCL為高電平時(shí),將SDA由高電平拉低作為啟動(dòng)信號(hào),SDA拉高后,設(shè)備會(huì)對(duì)SDA的電平進(jìn)行檢查,如果此時(shí)SDA為低電平,就表示總線已經(jīng)被占用,如果SDA為高電平,就說明總線可以被占用。

上拉電阻阻值怎么確定?

一般I\\0端口的驅(qū)動(dòng)能力在2mA-4mA量級(jí)。

阻值不能過?。?/p>

當(dāng)上拉電阻阻值過小時(shí)會(huì)導(dǎo)致從VCC輸入的電路較大,進(jìn)而使得MOS管不完全導(dǎo)通(由飽和狀態(tài)變成放大狀態(tài)),因?yàn)镮2C協(xié)議規(guī)定,端口輸出低電平的最高允許值為0.4V,故這樣就會(huì)使得端口輸出的低電平值增大。所以上拉電阻選取時(shí)不能低于1KΩ。

阻值不能過大:

因?yàn)樯侠娮韬涂偩€電容之間形成了RC,如果電阻過大會(huì)導(dǎo)致總線拉高的時(shí)間拉長(zhǎng)以及輸出阻抗的增大,當(dāng)輸出阻抗增大到可以與負(fù)載阻抗抗衡時(shí),輸出的高電平會(huì)因?yàn)榉謮憾鴾p少。

綜上所述,建議上拉電阻選擇使用1.5K、2.2K、4.7K。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 上拉電阻
    +關(guān)注

    關(guān)注

    5

    文章

    360

    瀏覽量

    30622
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88095
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1487

    瀏覽量

    123787
  • SDA
    SDA
    +關(guān)注

    關(guān)注

    0

    文章

    124

    瀏覽量

    28138
  • 開漏輸出
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    7327
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電阻的含義、電阻I2C電路中的作用

    我們知道,在I2C的電路中,在SCL、SDA線與電源之間通常會(huì)接一個(gè)電阻,這個(gè)電阻稱之為電阻
    發(fā)表于 09-08 14:43 ?7370次閱讀

    I2C總線上電阻的計(jì)算實(shí)例

    。當(dāng)開路極接口未將線路驅(qū)動(dòng)為低電平時(shí),電阻器將線路拉高。
    發(fā)表于 06-02 10:17 ?1555次閱讀
    <b class='flag-5'>I2C</b>總線上<b class='flag-5'>拉</b><b class='flag-5'>電阻</b>的計(jì)算實(shí)例

    I2C為什么要接上電阻

    I2C為什么要接上電阻?因?yàn)樗?b class='flag-5'>開輸出
    發(fā)表于 07-08 16:14 ?2747次閱讀
    <b class='flag-5'>I2C</b>為什么要接上<b class='flag-5'>拉</b><b class='flag-5'>電阻</b>?

    I2C總線上電阻阻值如何確定?

    導(dǎo)讀I2C總線在產(chǎn)品設(shè)計(jì)中被廣泛應(yīng)用,盡管其結(jié)構(gòu)簡(jiǎn)單,但經(jīng)常發(fā)生電阻設(shè)計(jì)不合理的問題。本文將對(duì)I2C
    的頭像 發(fā)表于 12-27 11:34 ?500次閱讀
    <b class='flag-5'>I2C</b>總線上<b class='flag-5'>拉</b><b class='flag-5'>電阻</b>阻值如何確定?

    i2c電阻大小_i2c電阻的作用

    I2C電阻可以是1.5K,2.2K,4.7K, 電阻的大小對(duì)時(shí)序有一定影響,對(duì)信號(hào)的上升時(shí)間和下降時(shí)間也有影響,一般接1.5K或2.2
    的頭像 發(fā)表于 11-24 14:27 ?2.7w次閱讀

    I2C總線一定要接上電阻?電阻阻值怎么確定?

    I2C為什么要接上電阻?因?yàn)樗?b class='flag-5'>開輸出。 1 為什么是
    的頭像 發(fā)表于 06-21 10:30 ?1.5w次閱讀

    I2C為什么要接上電阻

    I2C為什么要接上電阻?因?yàn)樗?b class='flag-5'>開輸出
    的頭像 發(fā)表于 06-21 16:34 ?1.3w次閱讀
    <b class='flag-5'>I2C</b>為什么要接上<b class='flag-5'>拉</b><b class='flag-5'>電阻</b>?

    經(jīng)過驗(yàn)證的GPIO模擬I2C時(shí)序代碼

    使用STM32的GPIO模擬I2C總線時(shí)序,GPIO設(shè)置為模式,SDA和SCK外部必須使用上電阻,一般是4.7K。
    發(fā)表于 12-28 19:36 ?13次下載
    經(jīng)過驗(yàn)證的GPIO模擬<b class='flag-5'>I2C</b>時(shí)序代碼

    I2C電阻設(shè)計(jì)

    I2C電阻 在一些PCB的layout中,大家往往會(huì)看到在I2C通信的接口處,往往會(huì)接入一個(gè)4.7K的
    發(fā)表于 01-14 14:10 ?10次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>設(shè)計(jì)

    I2C電阻計(jì)算公式

    I2C一般為漏結(jié)構(gòu),需要在外部加上電阻,常見的阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。
    的頭像 發(fā)表于 09-02 09:49 ?4199次閱讀

    I2C為什么要接上電阻?電阻阻值怎么確定?

    I2C協(xié)議支持多個(gè)主設(shè)備與多個(gè)從設(shè)備在一條總線上,如果不用輸出,而用推挽輸出,會(huì)出現(xiàn)主設(shè)備之間短路的情況。所以總線一般會(huì)使用
    的頭像 發(fā)表于 02-24 09:18 ?1927次閱讀

    I2C電阻如何選擇合適的阻值?

    I2C總線是微電子通信控制領(lǐng)域中常用的一種總線標(biāo)準(zhǔn),具備接線少,控制簡(jiǎn)單,速率高等優(yōu)點(diǎn)。在I2C電路中常見的電阻有1k、1.5k、2.2
    的頭像 發(fā)表于 05-10 16:17 ?7036次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>如何選擇合適的阻值?

    電阻I2C電路中的作用 I2C電阻的計(jì)算方法

    相信很多人都清楚,在I2C總線上需要接上電阻?但是您針對(duì)對(duì)I2C
    的頭像 發(fā)表于 07-25 10:37 ?2731次閱讀
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>在<b class='flag-5'>I2C</b>電路中的作用 <b class='flag-5'>I2C</b><b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>的計(jì)算方法

    I2C通訊為什么要用輸出電阻?

    一、I2C總線簡(jiǎn)介I2C(Inter-IntegratedCircuit)總線是一種雙向串行通信總線,由兩根線組成:SDA(數(shù)據(jù)線)和SCL(時(shí)鐘線)。這兩根線都是雙向的,并且是
    的頭像 發(fā)表于 05-16 08:10 ?6610次閱讀
    <b class='flag-5'>I2C</b>通訊為什么要用<b class='flag-5'>開</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>和<b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>?

    I2C總線為什么要接上電阻

    I2C為什么要接上電阻?因?yàn)樗?b class='flag-5'>開輸出。 為什么是
    的頭像 發(fā)表于 11-20 10:07 ?474次閱讀
    <b class='flag-5'>I2C</b>總線為什么要接上<b class='flag-5'>拉</b><b class='flag-5'>電阻</b>