I2C Architecture
I2C 采用的 GPIO 一般為開漏模式,支持線與功能,但是開漏模式無(wú)法輸出高電平,所以需要外部上拉。Vdd 可以采用 5V、3.3V、1.8V等,電源電壓不同,上拉電阻阻值也不同。
一般總線上認(rèn)為,低于0.3Vdd為低電平,高于0.7Vdd為高電平。
推挽結(jié)構(gòu)和開漏結(jié)構(gòu)
推挽結(jié)構(gòu):使用兩個(gè)三極管或MOSFET,以推挽方式存在于電路中。電路工作時(shí),兩只對(duì)稱的開關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小、效率高。既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。推拉式輸出級(jí)既提高電路的負(fù)載能力,又提高開關(guān)速度。
圖中上面是 NPN 型三極管,下面是 PNP 型三極管。分別有以下兩種情況:
輸出高電平:向負(fù)載灌電流。
輸出低電平:從負(fù)載拉電流。
三極管和 MOS 管效果類似,不贅述。
開漏結(jié)構(gòu)(OD):對(duì)比推挽結(jié)構(gòu),開漏結(jié)構(gòu)只有一個(gè)三極管或者M(jìn)OS管。
之所以叫開漏,是因?yàn)镸OS管分為三極:源極、柵極、漏極。漏極開路輸出,所以叫開漏;如果是三極管:基極、集電極、發(fā)射極,集電極開路,所以叫開集輸出(OC)。
開集輸出(OC),NPN 三極管:
這個(gè)結(jié)構(gòu)很好分析:Vin 高電平,三極管導(dǎo)通,對(duì)外輸出低電平,外部被直接拉到低。Vin 低電平,集電極(C)開路,輸出電平狀態(tài)由外部決定。
以上分析均采用三極管,MOS管類似。
因此,推挽結(jié)構(gòu)可以輸出高低電平。開漏輸出只能輸出低電平,高電平由外部電路決定。
對(duì)比總結(jié)如下:
電平跳變速度,推挽輸出由CPU控制,高低電平跳變速度快(0-》1),開漏輸出由外部上拉電阻決定,上拉電阻小,反應(yīng)速度快,從低電平到高電平跳變速度就快,但電阻小電流就大,功耗就高,反之亦然。
所以開漏輸出的外部上拉電阻要兼顧速度和功耗。上拉電阻小,信號(hào)邊沿陡峭,信號(hào)好,但是功耗高。
電平轉(zhuǎn)換:推挽輸出輸出的高低電平只有0和Vdd,開漏輸出的高電平由外部上拉電阻決定,多少V都可以,只要不超過(guò)MOS管擊穿電壓。
聲明:本文內(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)推薦
引言:我們將討論一些用于實(shí)施I2C硬件的關(guān)鍵設(shè)計(jì)參數(shù),利用簡(jiǎn)單、穩(wěn)健的低成本協(xié)議在IC之間進(jìn)行通信,同時(shí)盡可能減少引腳數(shù)量。隨著外設(shè)部件的種類日益增多,I2C能夠給系統(tǒng)設(shè)計(jì)人員帶來(lái)的好處顯而易見
發(fā)表于 06-02 10:16
?3395次閱讀
I2C核心維護(hù)了i2c_bus結(jié)構(gòu)體,提供了I2C總線驅(qū)動(dòng)和設(shè)備驅(qū)動(dòng)的注冊(cè)、注銷方法,維護(hù)了I2C總線的驅(qū)動(dòng)、設(shè)備鏈表,實(shí)現(xiàn)了設(shè)備、驅(qū)動(dòng)的匹
發(fā)表于 09-04 09:35
?1560次閱讀
目前想到的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總線的多機(jī)通信軟硬件設(shè)計(jì),實(shí)現(xiàn)了程控交換多機(jī)通信調(diào)度指揮系統(tǒng)。
發(fā)表于 02-29 15:44
?6次下載
I2C總線的結(jié)構(gòu)、工作時(shí)序和模擬編程
發(fā)表于 10-24 14:34
?13次下載
我們可以看見STM32的硬件I2C有兩個(gè)和數(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
?7351次閱讀
目前想到的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
?4234次閱讀
設(shè)備驅(qū)動(dòng) I2C 設(shè)備驅(qū)動(dòng)重點(diǎn)關(guān)注兩個(gè)數(shù)據(jù)結(jié)構(gòu):i2c_client 和 i2c_driver。i2c_client 就是描述設(shè)備信息的,
發(fā)表于 07-22 15:49
?848次閱讀
I2C Data Structure 我們要搞懂一個(gè) Linux 子系統(tǒng),必須研究它的數(shù)據(jù)結(jié)構(gòu),搞懂每個(gè)結(jié)構(gòu)體存儲(chǔ)了什么東西,才能梳理清楚該子系統(tǒng)的架構(gòu)。 I2C 子系統(tǒng)有幾個(gè)主要的
發(fā)表于 07-22 16:04
?865次閱讀
就會(huì)通過(guò)兩個(gè)MOS管直接接地,由于MOS管導(dǎo)通電阻不大,會(huì)導(dǎo)致電流很大,直接損壞這兩個(gè)GPIO口,因此,推挽輸出不支持線與。 推挽結(jié)構(gòu)在這種情況下會(huì)損壞GPIO口。 開漏:假如很多GP
發(fā)表于 07-25 09:57
?6419次閱讀
,所以會(huì)有一個(gè)限制。實(shí)際設(shè)計(jì)中經(jīng)驗(yàn)值大概是不超過(guò) 8 個(gè)器件。 總線之所以規(guī)定電容大小是因?yàn)椋?b class='flag-5'>I2C 使用的 GPIO 為開漏結(jié)構(gòu),開漏
發(fā)表于 09-28 14:20
?2963次閱讀
評(píng)論