I2C Architecture
I2C 采用的 GPIO 一般為開漏模式,支持線與功能,但是開漏模式無法輸出高電平,所以需要外部上拉。Vdd 可以采用 5V、3.3V、1.8V等,電源電壓不同,上拉電阻阻值也不同。
一般總線上認為,低于0.3Vdd為低電平,高于0.7Vdd為高電平。
推挽結構和開漏結構
推挽結構:使用兩個三極管或MOSFET,以推挽方式存在于電路中。電路工作時,兩只對稱的開關管每次只有一個導通,所以導通損耗小、效率高。既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
圖中上面是 NPN 型三極管,下面是 PNP 型三極管。分別有以下兩種情況:
輸出高電平:向負載灌電流。
輸出低電平:從負載拉電流。
三極管和 MOS 管效果類似,不贅述。
開漏結構(OD):對比推挽結構,開漏結構只有一個三極管或者MOS管。
之所以叫開漏,是因為MOS管分為三極:源極、柵極、漏極。漏極開路輸出,所以叫開漏;如果是三極管:基極、集電極、發(fā)射極,集電極開路,所以叫開集輸出(OC)。
開集輸出(OC),NPN 三極管:
這個結構很好分析:Vin 高電平,三極管導通,對外輸出低電平,外部被直接拉到低。Vin 低電平,集電極(C)開路,輸出電平狀態(tài)由外部決定。
以上分析均采用三極管,MOS管類似。
因此,推挽結構可以輸出高低電平。開漏輸出只能輸出低電平,高電平由外部電路決定。
對比總結如下:
電平跳變速度,推挽輸出由CPU控制,高低電平跳變速度快(0-》1),開漏輸出由外部上拉電阻決定,上拉電阻小,反應速度快,從低電平到高電平跳變速度就快,但電阻小電流就大,功耗就高,反之亦然。
所以開漏輸出的外部上拉電阻要兼顧速度和功耗。上拉電阻小,信號邊沿陡峭,信號好,但是功耗高。
電平轉換:推挽輸出輸出的高低電平只有0和Vdd,開漏輸出的高電平由外部上拉電阻決定,多少V都可以,只要不超過MOS管擊穿電壓。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
引言:我們將討論一些用于實施I2C硬件的關鍵設計參數(shù),利用簡單、穩(wěn)健的低成本協(xié)議在IC之間進行通信,同時盡可能減少引腳數(shù)量。隨著外設部件的種類日益增多,I2C能夠給系統(tǒng)設計人員帶來的好處顯而易見
發(fā)表于 06-02 10:16
?3359次閱讀
I2C核心維護了i2c_bus結構體,提供了I2C總線驅動和設備驅動的注冊、注銷方法,維護了I2C總線的驅動、設備鏈表,實現(xiàn)了設備、驅動的匹
發(fā)表于 09-04 09:35
?1473次閱讀
目前想到的I/O結構有如下幾類:基本輸入結構;推挽電路結構;開
發(fā)表于 11-03 09:08
目前想到的I/O結構有如下幾類:基本輸入結構;推挽電路結構;開
發(fā)表于 02-08 07:47
I2C總線器件應用第一節(jié) I2C總線器件應用概述I2C總線工作原理I2C總線系統(tǒng)結構I2C總線系
發(fā)表于 08-13 17:34
?0次下載
內容摘要:介紹了I2C總線的結構、工作原理、數(shù)據(jù)傳輸方式,討論了基于I2C總線的多機通信軟硬件設計,實現(xiàn)了程控交換多機通信調度指揮系統(tǒng)。
發(fā)表于 02-29 15:44
?6次下載
I2C總線的結構、工作時序和模擬編程
發(fā)表于 10-24 14:34
?13次下載
我們可以看見STM32的硬件I2C有兩個和數(shù)據(jù)有關的寄存器“數(shù)據(jù)寄存器(Data register)”(DR)和“數(shù)據(jù)移位寄存器(Data shift register)”(DSR),我們的軟件寫入的是DR, DSR用于I2C數(shù)據(jù)的移位發(fā)送和接收
發(fā)表于 04-30 15:00
?7260次閱讀
目前想到的I/O結構有如下幾類:基本輸入結構;推挽電路結構;開
發(fā)表于 10-28 13:36
?4次下載
目前想到的I/O結構有如下幾類:基本輸入結構;推挽電路結構;開
發(fā)表于 12-05 09:51
?4次下載
I2C一般為開漏結構,需要在外部加上拉電阻,常見的阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。
發(fā)表于 09-02 09:49
?4170次閱讀
設備驅動 I2C 設備驅動重點關注兩個數(shù)據(jù)結構:i2c_client 和 i2c_driver。i2c_client 就是描述設備信息的,
發(fā)表于 07-22 15:49
?831次閱讀
I2C Data Structure 我們要搞懂一個 Linux 子系統(tǒng),必須研究它的數(shù)據(jù)結構,搞懂每個結構體存儲了什么東西,才能梳理清楚該子系統(tǒng)的架構。 I2C 子系統(tǒng)有幾個主要的
發(fā)表于 07-22 16:04
?836次閱讀
就會通過兩個MOS管直接接地,由于MOS管導通電阻不大,會導致電流很大,直接損壞這兩個GPIO口,因此,推挽輸出不支持線與。 推挽結構在這種情況下會損壞GPIO口。 開漏:假如很多GP
發(fā)表于 07-25 09:57
?6329次閱讀
,所以會有一個限制。實際設計中經(jīng)驗值大概是不超過 8 個器件。 總線之所以規(guī)定電容大小是因為,I2C 使用的 GPIO 為開漏結構,開漏
發(fā)表于 09-28 14:20
?2920次閱讀
評論