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

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

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

I2C推挽結(jié)構(gòu)和開漏結(jié)構(gòu)

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-25 09:52 ? 次閱讀

I2C Architecture

圖片圖片

I2C 采用的 GPIO 一般為開漏模式,支持線與功能,但是開漏模式無法輸出高電平,所以需要外部上拉。Vdd 可以采用 5V、3.3V、1.8V等,電源電壓不同,上拉電阻阻值也不同。

一般總線上認(rèn)為,低于0.3Vdd為低電平,高于0.7Vdd為高電平。

推挽結(jié)構(gòu)和開漏結(jié)構(gòu)

推挽結(jié)構(gòu):使用兩個三極管或MOSFET,以推挽方式存在于電路中。電路工作時,兩只對稱的開關(guān)管每次只有一個導(dǎo)通,所以導(dǎo)通損耗小、效率高。既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。推拉式輸出級既提高電路的負(fù)載能力,又提高開關(guān)速度。

圖片

圖中上面是 NPN 型三極管,下面是 PNP 型三極管。分別有以下兩種情況:

輸出高電平:向負(fù)載灌電流。

圖片

輸出低電平:從負(fù)載拉電流。

圖片

三極管和 MOS 管效果類似,不贅述。

開漏結(jié)構(gòu)(OD):對比推挽結(jié)構(gòu),開漏結(jié)構(gòu)只有一個三極管或者M(jìn)OS管。

之所以叫開漏,是因為MOS管分為三極:源極、柵極、漏極。漏極開路輸出,所以叫開漏;如果是三極管:基極、集電極、發(fā)射極,集電極開路,所以叫開集輸出(OC)。

開集輸出(OC),NPN 三極管:

圖片

這個結(jié)構(gòu)很好分析:Vin 高電平,三極管導(dǎo)通,對外輸出低電平,外部被直接拉到低。Vin 低電平,集電極(C)開路,輸出電平狀態(tài)由外部決定。

圖片

以上分析均采用三極管,MOS管類似。

因此,推挽結(jié)構(gòu)可以輸出高低電平。開漏輸出只能輸出低電平,高電平由外部電路決定。

對比總結(jié)如下:

圖片

電平跳變速度,推挽輸出由CPU控制,高低電平跳變速度快(0-》1),開漏輸出由外部上拉電阻決定,上拉電阻小,反應(yīng)速度快,從低電平到高電平跳變速度就快,但電阻小電流就大,功耗就高,反之亦然。

所以開漏輸出的外部上拉電阻要兼顧速度和功耗。上拉電阻小,信號邊沿陡峭,信號好,但是功耗高。

電平轉(zhuǎn)換:推挽輸出輸出的高低電平只有0和Vdd,開漏輸出的高電平由外部上拉電阻決定,多少V都可以,只要不超過MOS管擊穿電壓。

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

    關(guān)注

    45

    文章

    5517

    瀏覽量

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

    關(guān)注

    28

    文章

    1468

    瀏覽量

    122785
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1182

    瀏覽量

    51738
收藏 人收藏

    評論

    相關(guān)推薦

    I2C總線的基本結(jié)構(gòu)

      引言:我們將討論一些用于實施I2C硬件的關(guān)鍵設(shè)計參數(shù),利用簡單、穩(wěn)健的低成本協(xié)議在IC之間進(jìn)行通信,同時盡可能減少引腳數(shù)量。隨著外設(shè)部件的種類日益增多,I2C能夠給系統(tǒng)設(shè)計人員帶來的好處顯而易見
    發(fā)表于 06-02 10:16 ?3127次閱讀
    <b class='flag-5'>I2C</b>總線的基本<b class='flag-5'>結(jié)構(gòu)</b>

    Linux內(nèi)核中描述I2C的四個核心結(jié)構(gòu)

    I2C核心維護(hù)了i2c_bus結(jié)構(gòu)體,提供了I2C總線驅(qū)動和設(shè)備驅(qū)動的注冊、注銷方法,維護(hù)了I2C總線的驅(qū)動、設(shè)備鏈表,實現(xiàn)了設(shè)備、驅(qū)動的匹
    的頭像 發(fā)表于 09-04 09:35 ?1148次閱讀
    Linux內(nèi)核中描述<b class='flag-5'>I2C</b>的四個核心<b class='flag-5'>結(jié)構(gòu)</b>體

    I/O結(jié)構(gòu)有哪幾類

    目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu);推挽電路結(jié)構(gòu)
    發(fā)表于 11-03 09:08

    I/O結(jié)構(gòu)有哪幾類

    目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu)推挽電路結(jié)構(gòu);
    發(fā)表于 02-08 07:47

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理I2C總線系統(tǒng)結(jié)構(gòu)I2C總線系
    發(fā)表于 08-13 17:34 ?0次下載

    I2C總線的結(jié)構(gòu)介紹

    內(nèi)容摘要:介紹了I2C總線的結(jié)構(gòu)、工作原理、數(shù)據(jù)傳輸方式,討論了基于I2C總線的多機(jī)通信軟硬件設(shè)計,實現(xiàn)了程控交換多機(jī)通信調(diào)度指揮系統(tǒng)。
    發(fā)表于 02-29 15:44 ?6次下載

    I2C總線的結(jié)構(gòu)、工作時序和模擬編程

    I2C總線的結(jié)構(gòu)、工作時序和模擬編程
    發(fā)表于 10-24 14:34 ?13次下載
    <b class='flag-5'>I2C</b>總線的<b class='flag-5'>結(jié)構(gòu)</b>、工作時序和模擬編程

    STM32 I2C硬件的結(jié)構(gòu)

    我們可以看見STM32的硬件I2C有兩個和數(shù)據(jù)有關(guān)的寄存器“數(shù)據(jù)寄存器(Data register)”(DR)和“數(shù)據(jù)移位寄存器(Data shift register)”(DSR),我們的軟件寫入的是DR, DSR用于I2C數(shù)據(jù)的移位發(fā)送和接收
    的頭像 發(fā)表于 04-30 15:00 ?7138次閱讀
    STM32 <b class='flag-5'>I2C</b>硬件的<b class='flag-5'>結(jié)構(gòu)</b>

    MCU---I/O基本結(jié)構(gòu)

    目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu)推挽電路結(jié)構(gòu);
    發(fā)表于 10-28 13:36 ?4次下載
    MCU---<b class='flag-5'>I</b>/O基本<b class='flag-5'>結(jié)構(gòu)</b>

    MCU---I/O基本結(jié)構(gòu)

    目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu)推挽電路結(jié)構(gòu);
    發(fā)表于 12-05 09:51 ?4次下載
    MCU---<b class='flag-5'>I</b>/O基本<b class='flag-5'>結(jié)構(gòu)</b>

    I2C上拉電阻計算公式

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

    I2C設(shè)備驅(qū)動的兩個數(shù)據(jù)結(jié)構(gòu)

    設(shè)備驅(qū)動 I2C 設(shè)備驅(qū)動重點關(guān)注兩個數(shù)據(jù)結(jié)構(gòu)i2c_client 和 i2c_driver。i2c_client 就是描述設(shè)備信息的,
    的頭像 發(fā)表于 07-22 15:49 ?737次閱讀
    <b class='flag-5'>I2C</b>設(shè)備驅(qū)動的兩個數(shù)據(jù)<b class='flag-5'>結(jié)構(gòu)</b>

    I2C子系統(tǒng)幾個主要的結(jié)構(gòu)

    I2C Data Structure 我們要搞懂一個 Linux 子系統(tǒng),必須研究它的數(shù)據(jù)結(jié)構(gòu),搞懂每個結(jié)構(gòu)體存儲了什么東西,才能梳理清楚該子系統(tǒng)的架構(gòu)。 I2C 子系統(tǒng)有幾個主要的
    的頭像 發(fā)表于 07-22 16:04 ?726次閱讀
    <b class='flag-5'>I2C</b>子系統(tǒng)幾個主要的<b class='flag-5'>結(jié)構(gòu)</b>體

    I2C中什么是線與功能

    就會通過兩個MOS管直接接地,由于MOS管導(dǎo)通電阻不大,會導(dǎo)致電流很大,直接損壞這兩個GPIO口,因此,推挽輸出不支持線與。 推挽結(jié)構(gòu)在這種情況下會損壞GPIO口。 漏:假如很多GP
    的頭像 發(fā)表于 07-25 09:57 ?5881次閱讀
    <b class='flag-5'>I2C</b>中什么是線與功能

    I2C總線能掛多少設(shè)備 I2C架構(gòu)

    ,所以會有一個限制。實際設(shè)計中經(jīng)驗值大概是不超過 8 個器件。 總線之所以規(guī)定電容大小是因為,I2C 使用的 GPIO 為漏結(jié)構(gòu),
    的頭像 發(fā)表于 09-28 14:20 ?2673次閱讀
    <b class='flag-5'>I2C</b>總線能掛多少設(shè)備 <b class='flag-5'>I2C</b>架構(gòu)