一、GPIO是什么
GPIO(general porpose intput output):通用輸入輸出端口的簡稱??梢酝ㄟ^軟件控制其輸出和輸入。stm32芯片的GPIO引腳與外部設(shè)備連接起來,從而實現(xiàn)與外部通信,控制以及數(shù)據(jù)采集的功能。
二、STM32引腳分類
電源管腳: 引腳圖中的 VDD、VSS、VREF+、VREF-、VSSA、VDDA 等都屬于電源引腳。
晶振管腳:引腳圖中的 PC14、PC15 和 OSC_IN、OSC_OUT 都屬于晶振引腳,不過它們還可以作為普通引腳使用。
復(fù)位管腳: 引腳圖中的 NRST 屬于復(fù)位引腳,不做其他功能使用。
下載引腳:引腳圖中的 PA13、PA14、PA15、PB3 和 PB4 屬于 JTAG 或SW 下載引腳。不過它們還可以作為普通引腳或者特殊功能使用,具體的功能可以查看芯片數(shù)據(jù)手冊,里面都會有附加功能說明。當(dāng)然,STM32 的串口功能引腳也是可以作為下載引腳使用。
T BOOT 引腳:引腳圖中的 BOOT0 和 PB2(BOOT1)屬于 BOOT 引腳,PB2 還可以作為普通管腳使用。在 STM32 啟動中會有模式選擇,其中就是依靠著 BOOT0和 BOOT1 的電平來決定。
GPIO管腳:引腳圖中的 PA、PB、PC、PD 等均屬于 GPIO 引腳。從引腳圖可以看出,GPIO 占用了 STM32 芯片大部分的引腳。并且每一個端口都有 16 個引腳,比如 PA 端口,它有 PA0-PA15。其他的 PB、PC 等端口是一樣的。
三、GPIO內(nèi)部結(jié)構(gòu)
圖中最右端 I/O 端口是STM32 芯片的引腳,其它部分都在 STM32 芯片內(nèi)部
(1)、保護(hù)二極管
引腳內(nèi)部加上這兩個保護(hù)二級管可以防止引腳外部過高或過低的電壓輸入。
當(dāng)引腳電壓高于 VDD_FT 或 VDD 時,上方的二極管導(dǎo)通吸收這個高電壓。
當(dāng)引腳電壓低于 VSS 時,下方的二極管導(dǎo)通,防止不正常電壓引入芯片導(dǎo)致芯片燒毀。
(2)、上下拉電阻
上拉和下拉電阻上都有一個開關(guān),通過配置上下拉電阻開關(guān),可以控制引腳的默認(rèn)狀態(tài)電平。
當(dāng)開啟上拉時引腳默認(rèn)電壓為高電平,開啟下拉時,引腳默認(rèn)電壓為低電平,這樣就可以消除引腳不定狀態(tài)的影響。
將上拉和下拉的開關(guān)都關(guān)斷,這種狀態(tài)我們稱為浮空模式,一旦配置成這個模式,引腳的電壓是不確定的,如果用萬用表測量此模式下管腳電壓時會發(fā)現(xiàn)只有 1 點幾伏,而且還不時改變,所以一般情況下我們都會給引腳設(shè)置成上拉或者下拉模式,使它有一個默認(rèn)狀態(tài)。
STM32 上下拉及浮空模式的配置是通過GPIOx_CRL 和 GPIOx_CRH 寄存器控制的。
STM32 內(nèi)部的上拉其實是一個弱上拉,也就是說通過此上拉電阻輸出的電流很小,如果想要輸出一個大電流,那么就需要外接上拉電阻了。
(3)、P-MOS 和 和 S N-MOS
GPIO 引腳經(jīng)過兩個保護(hù)二極管后就分成兩路,
上面一路是“輸入模式”,下面一路是“輸出模式”。
輸出模式,線路經(jīng)過一個由 P-MOS 和 N-MOS管組成的單元電路,這讓 GPIO 引腳具有了推挽和開漏兩種輸出模式。
推挽輸出模式,是根據(jù) P-MOS 和 N-MOS 管的工作方式命名的。
在該結(jié)構(gòu)單元輸入一個高電平時,P-MOS 管導(dǎo)通,N-MOS 管截止,對外輸出高電平(3.3V)。
在該單元輸入一個低電平時,P-MOS 管截止,N-MOS 管導(dǎo)通,對外輸出低電平(0V)。
如果當(dāng)切換輸入高低電平時,兩個 MOS 管將輪流導(dǎo)通,一個負(fù)責(zé)灌電流(電流輸出到負(fù)載),一個負(fù)責(zé)拉電流(負(fù)載電流流向芯片),使其負(fù)載能力和開關(guān)速度都比普通的方式有很大的提高。下圖為推挽輸出模式的等效電路。
在開漏輸出模式時,不論輸入是高電平還是低電平,P-MOS 管總處于關(guān)閉狀態(tài)。
當(dāng)給這個單元電路輸入低電平時,N-MOS 管導(dǎo)通,輸出即為低電平。
當(dāng)輸入高電平時,N-MOS 管截止,這個時候引腳狀態(tài)既不是高電平,又不是低電平,我們稱之為高阻態(tài)。
如果想讓引腳輸出高電平,那么引腳必須外接一個上拉電阻,由上拉電阻提供高電平。開漏輸出模式等效電路圖如下圖所示。
在開漏輸出模式中還有一個特點,引腳具有“線與”關(guān)系。即多個開漏輸出模式的引腳接在一起,只要有一個引腳為低電平,其他所有管腳都為低電平,即把所有引腳連接在一起的這條總線拉低了。
只有當(dāng)所有引腳輸出高阻態(tài)時這條總線的電平才由上拉電阻的 VDD 決定。如果 VDD 連接的是 3.3V,那么引腳輸出的就是 3.3V,如果 VDD 連接的是 5V,那么引腳輸出的就是 5V。因此如果想要讓 STM32 管腳輸出 5V,可以選擇開漏輸出模式,然后在外接上拉電阻的電源 VDD 選擇 5V 即可,前提是這個 STM32 引腳是容忍 5V 的。開漏輸出模式一般應(yīng)用在 I2C、SMBUS 通訊等需要“線與”功能的總線電路中。還可以用在電平不匹配的場合中,就如上面說的輸出 5V 一樣。
推挽輸出模式一般應(yīng)用在輸出電平為 0-3.3V 而且需要高速切換開關(guān)狀態(tài)的場合。除了必須要用開漏輸出模式的場合,我們一般選擇推挽輸出模式。要配置引腳是開漏輸出還是推挽輸出模式可以使用GPIOx_CRL 和 GPIOx_CRH 寄存器。
(4)、輸出數(shù)據(jù)寄存器
雙 MOS 管結(jié)構(gòu)電路的輸入信號,是由 GPIO“輸出數(shù)據(jù)寄存器GPIOx_ODR”提供的,因此我們通過修改輸出數(shù)據(jù)寄存器的值就可以修改 GPIO 引腳的輸出電平。而“置位/復(fù)位寄存器 GPIOx_BSRR”可以通過修改輸出數(shù)據(jù)寄存器的值從而影響電路的輸出。
(5)、復(fù)用功能輸出
由于 STM32 的 GPIO 引腳具有第二功能,因此當(dāng)使用復(fù)用功能的時候,也就是通過其他外設(shè)復(fù)用功能輸出信號與 GPIO 數(shù)據(jù)寄存器一起連接到雙 MOS 管電路的輸入,其中梯形結(jié)構(gòu)是用來選擇使用復(fù)用功能還是普通 IO 口功能。例如我們使用 USART 串口通訊時,需要用到某個 GPIO 引腳作為通訊發(fā)送引腳,這個時候就可以把該 GPIO 引腳配置成 USART 串口復(fù)用功能,由串口外設(shè)控制該引腳,發(fā)送數(shù)據(jù)。
(6)、輸入數(shù)據(jù)寄存器
輸入數(shù)據(jù)寄存器是由 IO 口經(jīng)過上下拉電阻、施密特觸發(fā)器引入。當(dāng)信號經(jīng)過觸發(fā)器,模擬信號將變?yōu)?a href="http://m.weightgang.cn/zhuanti/4yjTuH" style="color:#4595e6;" target="_blank">數(shù)字信號 0 或 1,然后存儲在輸入數(shù)據(jù)寄存器中,通過讀取輸入數(shù)據(jù)寄存器 GPIOx_IDR 就可以知道 IO 口的電平狀態(tài)。
(7)、復(fù)用功能輸入
此模式與復(fù)用功能輸出類似。在復(fù)用功能輸入模式時,GPIO 引腳的信號傳輸?shù)?STM32 其他片上外設(shè),由該外設(shè)讀取引腳的狀態(tài)。同樣,如我們使用 USART 串口通訊時,需要用到某個 GPIO 引腳作為通訊接收引腳,這個時候就可以把該 GPIO 引腳配置成 USART 串口復(fù)用功能,使 USART 可以通過該通訊引腳的接收遠(yuǎn)端數(shù)據(jù)。
(8)、模擬輸入輸出
當(dāng) GPIO 引腳用于 ADC 采集電壓的輸入通道時,用作“模擬輸入”功能,此時信號是不經(jīng)過施密特觸發(fā)器的,因為經(jīng)過施密特觸發(fā)器后信號只有 0、1 兩種狀態(tài),ADC 外設(shè)要采集到原始的模擬信號,信號源輸入必須在施密特觸發(fā)器之前。類似地,當(dāng) GPIO 引腳用于 DAC 作為模擬電壓輸出通道時,此時作為“模擬輸出”功能, DAC 的模擬信號輸出就不經(jīng)過雙 MOS 管結(jié)構(gòu)了,模擬信號直接通過管腳輸出。
四、GPIO的工作模式
通過 GPIO 內(nèi)部的結(jié)構(gòu)關(guān)系,決定了 GPIO 可以配置成以下幾種模式。
4.1、輸入模式(模擬、上拉、下拉、浮空)
在輸入模式時,施密特觸發(fā)器打開,輸出被禁止。
可通過輸入數(shù)據(jù)寄存器GPIOx_IDR 讀取 I/O 狀態(tài)。
輸入模式可以配置為模擬、上拉、下拉以及浮空模式。上拉和下拉輸入很好理解,默認(rèn)的電平由上拉或者下拉決定。
浮空輸入的電平是不確定的,完全由外部的輸入決定,一般接按鍵的時候可以使用這個模式。
模擬輸入則用于 ADC 采集。
4.2、輸出模式(推挽/ / 開漏)
在輸出模式中,推挽模式時雙 MOS 管以推挽方式工作,輸出數(shù)據(jù)寄存器GPIOx_ODR 可控制 I/O 輸出高低電平。
開漏模式時,只有 N-MOS 管工作,輸出數(shù)據(jù)寄存器可控制 I/O 輸出高阻態(tài)或低電平。
輸出速度可配置,有2MHz25MHz50MHz 的選項。此處的輸出速度即 I/O 支持的高低電平狀態(tài)最高切換頻率,支持的頻率越高,功耗越大,如果功耗要求不嚴(yán)格,把速度設(shè)置成最大即可。
在輸出模式時,施密特觸發(fā)器是打開的,即輸入可用,通過輸入數(shù)據(jù)寄存器 GPIOx_IDR 可讀取 I/O 的實際狀態(tài)。
4.3、復(fù)用功能(推挽/ / 開漏)
復(fù)用功能模式中,輸出使能,輸出速度可配置,可工作在開漏及推挽模式,但是輸出信號源于其它外設(shè),輸出數(shù)據(jù)寄存器 GPIOx_ODR 無效;輸入可用,通過輸入數(shù)據(jù)寄存器可獲取 I/O 實際狀態(tài),但一般直接用外設(shè)的寄存器來獲取該數(shù)據(jù)信號。
4.4、模擬輸入輸出(上下拉無影響)
模擬輸入輸出模式中,雙 MOS 管結(jié)構(gòu)被關(guān)閉,施密特觸發(fā)器停用,上/下拉也被禁止。其它外設(shè)通過模擬通道進(jìn)行輸入輸出。通過對 GPIO 寄存器寫入不同的參數(shù),就可以改變 GPIO 的應(yīng)用模式,再強(qiáng)調(diào)一下,要了解具體寄存器時一定要查閱《STM32F1xx 參考手冊》中對應(yīng)外設(shè)的寄存器說明。在 GPIO 外設(shè)中,通過設(shè)置“端口配置寄存器 GPIOx_CRL 和 GPIOx_CRH”可配置 GPIO 的工作模式和輸出速度。CRH 控制端口的高八位,CRL 控制端口的低八位。
上一篇:使用寄存器點亮第一個LED
下一篇:存儲器與寄存器(2)
推薦閱讀
史海拾趣
經(jīng)過數(shù)年的技術(shù)積累和市場拓展,誠芯微在2013年注冊了自主品牌CXW,標(biāo)志著其品牌戰(zhàn)略的正式啟動。同年,公司推出了一系列具有競爭力的電源芯片產(chǎn)品,憑借其卓越的性能和穩(wěn)定的品質(zhì),逐漸在市場中獲得了認(rèn)可。此外,誠芯微還加強(qiáng)了與上游晶圓制造、封裝企業(yè)的合作,確保了產(chǎn)品的質(zhì)量和良率。
在電子行業(yè)的快速發(fā)展中,Connection One公司始終保持著強(qiáng)烈的創(chuàng)新意識。公司不斷投入研發(fā)資金,引進(jìn)高端人才,推動技術(shù)創(chuàng)新和產(chǎn)品升級。這種持續(xù)創(chuàng)新的精神使得公司在行業(yè)中始終保持領(lǐng)先地位,鑄就了輝煌的業(yè)績。
這些故事雖然基于虛構(gòu)情節(jié),但反映了電子行業(yè)中企業(yè)發(fā)展的一些普遍規(guī)律。在實際情況中,一個成功的電子企業(yè)往往需要具備技術(shù)創(chuàng)新能力、市場拓展能力、全球化視野以及持續(xù)創(chuàng)新的精神。
Cornerstone Sensors公司成立于電子行業(yè)的蓬勃發(fā)展時期。創(chuàng)立初期,公司就明確了以傳感器技術(shù)為核心的發(fā)展方向。公司聚集了一批優(yōu)秀的工程師和科學(xué)家,致力于研發(fā)高精度、高穩(wěn)定性的傳感器產(chǎn)品。經(jīng)過數(shù)年的技術(shù)積累和產(chǎn)品研發(fā),Cornerstone Sensors逐漸在傳感器領(lǐng)域嶄露頭角,其產(chǎn)品質(zhì)量和技術(shù)水平得到了行業(yè)的廣泛認(rèn)可。
隨著半導(dǎo)體材料開發(fā)成本的提高,產(chǎn)業(yè)鏈開始發(fā)生變革。Entegris通過與其他公司的合作與并購,積極適應(yīng)這一變革。例如,與Versum Materials的合并就是Entegris在產(chǎn)業(yè)鏈變革中做出的重要決策之一。通過這一合并,Entegris能夠更好地整合資源,提升市場競爭力。
以上是關(guān)于Entegris公司在電子行業(yè)發(fā)展的5個故事概述。這些故事涵蓋了Entegris在合并、知識產(chǎn)權(quán)保護(hù)、技術(shù)創(chuàng)新、純度控制以及產(chǎn)業(yè)鏈變革等方面的關(guān)鍵事實。
隨著科技的不斷進(jìn)步,超音意識到技術(shù)創(chuàng)新對于公司發(fā)展的重要性。因此,公司加大了研發(fā)投入,積極引進(jìn)高端人才,不斷推出具有創(chuàng)新性和競爭力的產(chǎn)品。其中,超音的一款高端音響產(chǎn)品憑借其卓越的音質(zhì)和精美的外觀設(shè)計,在市場上獲得了廣泛的好評。此外,超音還積極與其他科技公司合作,共同研發(fā)新產(chǎn)品,不斷拓寬產(chǎn)品線。
請教各位高手 我在畫原理圖時(orcad) 有下列兩個疑問: 1、請問處理器(在page1上)上的一個引腳如A1需要連接兩個外圍芯片x,y 可是芯片X我是用層次法(層次圖上層在page1上)畫的,與芯片y的連接是用平坦式畫法 ...… 查看全部問答∨ |
Quartus II中管腳上拉電阻(弱上拉)的設(shè)置方法 在使用Altera的FPGA時候,由于系統(tǒng)需求,需要在管腳的內(nèi)部加上上拉電阻。Quartus II軟件中在Assignment Editor中可以設(shè)置。具體過程如下:1. 在菜單Assignments中選擇Assignment Editor. 2. 在彈出的界面里選擇I/O Features.找到Node. 3. 選擇Node ...… 查看全部問答∨ |
網(wǎng)上找來的,可能有好多錯誤。 相關(guān)鏈接:https://bbs.eeworld.com.cn/upfiles/img/20076/2007626163328342.pdf… 查看全部問答∨ |
|
ARM處理器尋址方式 尋址方式是根據(jù)指令中給出的地址碼字段來實現(xiàn)尋找真實操作數(shù)地址的方式,ARM 處理器有9種基本尋址方式。 寄存器尋址 操作數(shù)的值在寄存器中,指令中的地址碼字段指出的是寄存器編號,指令執(zhí)行時直 接取出寄存器值操作。 ...… 查看全部問答∨ |
stm32f207的外擴(kuò)NAND flash讀取ID問題 本人想用stm32f207VG做下外擴(kuò)NAND flash,先讀取ID不行,GPIO配置如下: RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | ...… 查看全部問答∨ |
學(xué)模擬+ 《運(yùn)算放大器噪聲優(yōu)化手冊》 六 本帖最后由 dontium 于 2015-1-23 11:46 編輯 TINA軟件的使用: 剛安裝完TINA先來設(shè)計個簡單的低通濾波呢!仿真一下看看效果呢?。ㄒ驗樽罱龅脑O(shè)計里面要呢,正好用這軟件),順便熟悉一下軟件的使用呢。下面分別對一階二階濾波器進(jìn)行分析呢 ...… 查看全部問答∨ |
|
最近想用氨氣和硫化氫傳感器,國內(nèi)便宜的就煒盛的MQ系列的,100出頭,再上去就要500~600了 他們文檔只提供了這個曲線圖 有幾個問題想請教下用過的前輩 1:這個系列能不能用來做定量測量,還是只能用來定性 2:輸出的模擬電壓怎么轉(zhuǎn)換成濃度 3 ...… 查看全部問答∨ |
最近搞了一下PIC12F1572。裝軟件,編譯程序,下載。但是運(yùn)行不正常。不管是連著下載器,下載器也供電,后者斷開下載器,重新上電。調(diào)輸入電壓,加上拉,折騰一番,不管事。后來,也不知為啥。程序運(yùn)行了。輸出了脈沖信號。調(diào)整一下寬度吧。加了幾個 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- stm32與Arduino的比較
- STM32H503開發(fā)(2)----STM32CubeProgrammer燒錄
- STM32簡介 STM32和ARM7的關(guān)系
- stm32屬于arm嗎_arm和stm32的區(qū)別
- STM32調(diào)試神器STM32CubeMonitor介紹
- 基于通過寄存器和調(diào)用庫函數(shù)的方式,對比測試STM32讀寫IO時間
- 基于STM32單片機(jī)通過使用宏assert_param來實現(xiàn)運(yùn)行時間檢測
- 基于stm32單片機(jī)利用通用定時器輸出PWM
- 工程師STM32單片機(jī)學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈
- 激光雷達(dá)最重要的參數(shù):信噪比
- 十字路口的“金屬休克”:盤點那些智駕系統(tǒng)很難替代人類駕駛員的場景
- IP智能家居控制系統(tǒng)
- 鋰離子電池充電電路設(shè)計
- 手機(jī)中音頻系統(tǒng)抗ESD和EMI干擾設(shè)計
- 北航吳江浩教授團(tuán)隊研發(fā)的首個具備自主懸停能力的仿蜂鳥微型飛行器
- 基于VMR6512的無線音頻轉(zhuǎn)發(fā)器設(shè)計
- CS7123在電視盒中的應(yīng)用
- AiMOGA墨甲機(jī)器人驚艷亮相印尼車展,加速東南亞智能銷售布局
- LED閃光燈驅(qū)動芯片在照相手機(jī)中的應(yīng)用
- 全球首創(chuàng)CVVD技術(shù) 起亞K5凱酷1.5T發(fā)動機(jī)解析
- 汽車上的這些最新“黑科技”,是噱頭還是未來?
- 云度新能源汽車將研發(fā)新一代基于碳化硅器件的電機(jī)控制器
- BMW iX3電池系統(tǒng)
- 寶馬啟動eDrive Zones功能:電子GPS圍欄,可節(jié)省大量時間
- 臺媒:拜登政府或?qū)?yōu)先處理四大科技議題
- 長信科技:公司給榮耀提供全面屏模組產(chǎn)品
- MSP430F2619單片機(jī)時鐘初始化故障始末
- 3D智能噴涂機(jī)器人公司曲線智能完成數(shù)千萬元人民幣A+輪融資
- 在 linux 上 對 MSP430G2 系列進(jìn)行 debug