|
awkniw4fkxt64015985046.gif (1.67 KB, 下載次數(shù): 0)
下載附件
保存到相冊
awkniw4fkxt64015985046.gif
2024-9-10 10:32 上傳
: M$ A6 X! x5 r1 W f; g% a. f& Y
點擊上方名片關(guān)注了解更多' q7 I* l5 U0 J, M0 v) U/ S
' P8 r+ R+ S5 F6 {& P" u- v0 w) A6 e6 k4 H4 y
今天詳細總結(jié)一下STM32單片機I/O的8種工作模式,讓大家在以后的設(shè)計中事半功倍。
' i/ ^9 Q3 `/ |1 A$ l1 g什么是GPIO?說到這8種工作模式之前,先通俗的解釋下GPIO的概念—通用輸入輸出 General Purpose Input Output 簡稱GPIO,就是芯片引腳可以通過它們輸出高、低電平,也可以通過他們輸入、讀取引腳的電壓、電平狀態(tài)。
# v7 U0 N3 @# G) f8 t6 t接下來講解的8種工作模式,我們以下圖為例進行分析介紹,讀懂這張圖,大家基本就可以完全理解STM32的GPIO了。2 |+ w/ t. S* k4 F7 V
xhs4je11rrn64015985146.png (66.98 KB, 下載次數(shù): 0)
下載附件
保存到相冊
xhs4je11rrn64015985146.png
2024-9-10 10:32 上傳
n U3 A, k7 m
四種不同的輸出模式推挽輸出:
" j1 W0 Q8 q5 `4 i2 k此模式的引腳可輸出高低電平,用于連接和驅(qū)動數(shù)字設(shè)備。關(guān)于推挽,部分讀者可能有些疑惑,其實是將兩個參數(shù)相同的NPN、PNP三極管或NMOS、PMOS管以推挽形式布局于電路中,分別擔當正負半周波形的放大任務(wù)。兩對稱管僅有一個導通,損耗低且效率高,既能提升電路的帶載能力,亦可提高開關(guān)速度。電路如圖所示,讀者可在IO內(nèi)部圖中進行對照查找。
5 e- K F, o) b2 J4 Q
eulwkm5q0v564015985247.png (29.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
eulwkm5q0v564015985247.png
2024-9-10 10:32 上傳
$ t# ?( r, W- J; |- o) Z. G
開漏輸出:- g8 N3 m, ]% y/ s1 u- J/ D( x a
此模式下,引腳模擬 NMOS 的漏極,關(guān)閉 PMOS以消除其影響。此時該引腳僅能輸出低電平,需加接上拉電阻以獲得高電平。有人可能質(zhì)疑,這種方式不如推挽輸出實用。然而,開漏輸出具備獨特優(yōu)勢,例如:1、適用于連接主控電平不匹配的器件,只需將上拉電阻的上拉端連接至對方電平;2、以小博大,借助外部電路驅(qū)動能力,降低內(nèi)部電流需求,內(nèi)部僅需較小柵極驅(qū)動電流。但需注意,由于上拉電阻的存在,可能導致上升沿延遲,詳情請參閱我之前關(guān)于電平匹配的文章。
. W% {" p( X8 t. ~
zty22e4im1q64015985347.png (28.59 KB, 下載次數(shù): 0)
下載附件
保存到相冊
zty22e4im1q64015985347.png
2024-9-10 10:32 上傳
5 J& x: Y' ^/ ^
復用推挽輸出、復用開漏輸出:顧名思義該模式下就是將引腳復用為其他功能,不再是簡單的GPIO。像我們常用的UART、SPI等的輸出引腳就是復用的推挽輸出,而我們常用的I2C就是復用的開漏輸出,這時大家就應(yīng)該知道為什么我們在用I2C的時候需要上拉電阻了吧。這里給大家埋個伏筆——用I2C時為什么要開漏呢?9 P2 V W) d- j5 v. g: A2 A
四種不同的輸入模式在這里我們來探討一種常見的輸入模式——“浮空輸入”,該模式主要用于檢測外部設(shè)備(如按鍵)所處的高/低電平狀態(tài)。具體解釋如下,當處在“浮空輸入”模式時,上拉電阻和下拉電阻均未與輸入端相連,使得引腳的電平狀態(tài)變得未知。若在此情況下讀取數(shù)據(jù)便會發(fā)現(xiàn)其毫無意義。為了避免此類問題,建議在實際應(yīng)用中務(wù)必確保引腳處于正確的連接狀態(tài)。* S2 T0 |& U6 B3 q1 r* e
mg0ocpzuo0y64015985447.png (150.1 KB, 下載次數(shù): 0)
下載附件
保存到相冊
mg0ocpzuo0y64015985447.png
2024-9-10 10:32 上傳
$ W8 M" n r& R/ F1 Q上拉、下拉輸入:基本看名字大家就已經(jīng)知道這種模式是怎么回事了,上圖中如果上面紅圈電阻接入就是上拉輸入,下面紅圈電阻接入就是下拉輸入。上一段我說過按鍵輸入檢測用浮空輸入模式,如果用上拉、下拉模式就更簡單了,就可以省掉外部的上下拉電阻節(jié)約項目成本。' d L& b; k5 ~) H5 [5 q h0 N8 W/ ^
模擬輸入:這個模式也是我們非常常用的了,那就是引腳設(shè)置為STM32內(nèi)部ADC的模擬信號輸入。值得注意的是這種模式就不是所有的IO都有的功能了,需要帶ADC的IO口才可以設(shè)置。
; F% }; _& y; J! Y( V ~2 u9 w補充說明針對IO引腳內(nèi)的兩個保護二極管,先前認為其作用為鉗位。然而,在參加ST的研討會時,官方明確表示并非用于鉗位,而是用于ESD防護。當引腳用作ADC輸入時,模擬信號不得超過3.6V,否則將導致?lián)p壞。( z% J5 h- E- X/ `/ P
盡管芯片引腳內(nèi)置二極管保護,但建議在設(shè)計時,若引腳需引出板外,應(yīng)額外添加TVS二極管以增強防護。由于引腳暴露在外,易受靜電等環(huán)境因素影響。例如,下載接口在空間允許的情況下,常配備SOT-23的TVS二極管進行保護。1 C6 P9 _) c9 ?7 B
總結(jié)到這里大家會發(fā)現(xiàn)今天所講的全都是硬件層面的,大家從硬件層面搞懂這幾種模式,軟件上就簡單了,按照datasheet上面的說明進行配置就可以了。
0 u2 R' D9 B \/ T0 U% N) G
0gvnx20wrph64015985547.jpg (281.39 KB, 下載次數(shù): 0)
下載附件
保存到相冊
0gvnx20wrph64015985547.jpg
2024-9-10 10:32 上傳
3 m) e8 P& X+ ~0 l) @( B: ~
nbs2aieljwm64015985647.jpg (168.38 KB, 下載次數(shù): 0)
下載附件
保存到相冊
nbs2aieljwm64015985647.jpg
2024-9-10 10:32 上傳
: c" |- l2 {, |聲明:, T7 @& G1 S4 r( N0 C5 _. Y+ i5 a
聲明:文章來源網(wǎng)絡(luò)。本號對所有原創(chuàng)、轉(zhuǎn)載文章的陳述與觀點均保持中立,推送文章僅供讀者學習和交流。文章、圖片等版權(quán)歸原作者享有,如有侵權(quán),聯(lián)系刪除。投稿/招聘/推廣/宣傳/技術(shù)咨詢 請加微信:woniu26a推薦閱讀▼
5 n8 ?) w# x. L4 W/ c1 k$ o電路設(shè)計-電路分析! P7 t, M' q+ C8 m, P3 M9 G& O% k
emc相關(guān)文章0 r5 m" N* `- x/ e4 F
電子元器件+ ~5 K e" m0 F9 U2 F, L$ B
后臺回復“加群”,管理員拉你加入同行技術(shù)交流群。 |
|