大家一定遇到過上電或者復位時外部的MOS電路或者芯片使能信號意外開啟,至此有經驗的工程師就會經常關心一個問題,MCU復位時GPIO是什么狀態?什么電路需要外部加上下拉?
MCU從上電到啟動,實際可分為復位前和復位后、初始化后三個階段來考慮,以GD32F470為例:
- 首先MCU上電過程到POR復位前,數字電路邏輯還沒復位,GPIO處于高阻狀態,NMOS、PMOS、上下拉電阻都處于關閉狀態,此時GPIO處于高阻狀態。
- 當MCU POR復位后,復位引腳拉高,寄存器全部加載復位值,此時IO口狀態我們可以從GPIO寄存器中看到:
可以看到JTAG和SWD相關的引腳默認狀態都是復用模式,且其中部分有配置默認的內部上下拉:
所以當MCU復位后,GPIO初始化前一些特殊GPIO是會有內部上下拉或者輸出狀態的,我們需要根據電路電平要求來合理選用GPIO,避免復位時IO口出現誤輸出。
- 程序啟動后執行初始化時會配置想要的GPIO模式和狀態,此時一樣也可能出現誤輸出,我們來看下GPIO輸出寄存器默認值:
因為復位值是全0,所以如果一個希望默認為高的IO先初始化GPIO為輸出模式再配置默認狀態,那么GPIO會先輸出低電平再馬上拉高,通過示波器會看到復位后MCU IO口出現一個低電平毛刺,那么合理可靠的配置時序是:
1、先打開GPIO時鐘;2、設置GPIO輸出高還是低;3、設置GPIO模式;
這樣就不會在初始化過程出現毛刺,需要嚴格遵守。
那么我們現在知道了,除去一些特殊IO和軟件配置時序我們需要注意,在MCU IO口初始化前其他IO都是高阻狀態,那么高阻狀態是什么電壓?需不需要上下拉,那我們則需要根據外圍電路來判斷,請關注我們,后續視頻我們繼續分享。
-
單片機
+關注
關注
6042文章
44617瀏覽量
637574 -
mcu
+關注
關注
146文章
17316瀏覽量
352239 -
電子工程
+關注
關注
1文章
62瀏覽量
17200 -
GD32
+關注
關注
7文章
413瀏覽量
24429
發布評論請先 登錄
相關推薦
評論