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)只有一個三極管或者MOS管。
之所以叫開漏,是因為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)推薦
I2C核心維護了i2c_bus結(jié)構(gòu)體,提供了I2C總線驅(qū)動和設(shè)備驅(qū)動的注冊、注銷方法,維護了I2C總線的驅(qū)動、設(shè)備鏈表,實現(xiàn)了設(shè)備、驅(qū)動的匹
發(fā)表于 09-04 09:35
?1735次閱讀
目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu);推挽電路結(jié)構(gòu);開
發(fā)表于 11-03 09:08
目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu);推挽電路結(jié)構(gòu);開
發(fā)表于 02-08 07:47
I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理I2C總線系統(tǒng)結(jié)構(gòu)I2C總線系
發(fā)表于 08-13 17:34
?0次下載
內(nèi)容摘要:介紹了I2C總線的結(jié)構(gòu)、工作原理、數(shù)據(jù)傳輸方式,討論了基于I2C總線的多機通信軟硬件設(shè)計,實現(xiàn)了程控交換多機通信調(diào)度指揮系統(tǒng)。
發(fā)表于 02-29 15:44
?6次下載
I2C總線的結(jié)構(gòu)、工作時序和模擬編程
發(fā)表于 10-24 14:34
?13次下載
我們可以看見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
?7444次閱讀
目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu);推挽電路結(jié)構(gòu);開
發(fā)表于 10-28 13:36
?4次下載
目前想到的I/O結(jié)構(gòu)有如下幾類:基本輸入結(jié)構(gòu);推挽電路結(jié)構(gòu);開
發(fā)表于 12-05 09:51
?4次下載
I2C一般為開漏結(jié)構(gòu),需要在外部加上拉電阻,常見的阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。
發(fā)表于 09-02 09:49
?4330次閱讀
設(shè)備驅(qū)動 I2C 設(shè)備驅(qū)動重點關(guān)注兩個數(shù)據(jù)結(jié)構(gòu):i2c_client 和 i2c_driver。i2c_client 就是描述設(shè)備信息的,
發(fā)表于 07-22 15:49
?896次閱讀
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
?909次閱讀
就會通過兩個MOS管直接接地,由于MOS管導(dǎo)通電阻不大,會導(dǎo)致電流很大,直接損壞這兩個GPIO口,因此,推挽輸出不支持線與。 推挽結(jié)構(gòu)在這種情況下會損壞GPIO口。 開漏:假如很多GP
發(fā)表于 07-25 09:57
?6546次閱讀
,所以會有一個限制。實際設(shè)計中經(jīng)驗值大概是不超過 8 個器件。 總線之所以規(guī)定電容大小是因為,I2C 使用的 GPIO 為開漏結(jié)構(gòu),開漏
發(fā)表于 09-28 14:20
?3061次閱讀
。以下是I2C總線數(shù)據(jù)包結(jié)構(gòu)的詳解: 一、I2C總線數(shù)據(jù)包的基本組成 I2C總線上的數(shù)據(jù)傳輸以數(shù)據(jù)包為單位進行,每個數(shù)據(jù)包包含起始信號、設(shè)備地址、數(shù)據(jù)傳輸方向位、數(shù)據(jù)字節(jié)以及應(yīng)答信號(
發(fā)表于 01-17 15:46
?180次閱讀
評論