51內(nèi)核的單片機(jī)有個(gè)比較惱人的特性就是復(fù)位期間,IO口呈高電平狀態(tài),萬一IO口控制的設(shè)備是使用高電平觸發(fā)的話,在復(fù)位的瞬間會(huì)造成設(shè)備觸發(fā)。
總結(jié)一下接觸過的解決方法:
1、把MCU換成別的體系的,譬如AVR、PIC等,這些單片機(jī)復(fù)位時(shí)IO口呈浮空高阻狀態(tài),不會(huì)造成觸發(fā)。
2、使用反相驅(qū)動(dòng),MCU輸出低電平反相成高電平再去控制設(shè)備。復(fù)位時(shí)的高電平反相后變成低電平,不會(huì)觸發(fā)。這是比較常用的方法,穩(wěn)定,但布線復(fù)雜了不少。
3、使用光耦隔離。光耦隔離后MCU也是輸出低電平打開光耦再驅(qū)動(dòng)被控設(shè)備,復(fù)位時(shí)的高電平不會(huì)打開光耦,不會(huì)造成誤觸發(fā)。
4、使用多余的IO口鎖定,這種方法比較奇怪,在沒用的IO口里挑一個(gè)出來接到NPN管的基極,再把NPN管的發(fā)射極接到被控的IO口,復(fù)位時(shí)所有的IO口呈高電平,NPN管導(dǎo)通,把被控的IO口強(qiáng)行拉低,相當(dāng)于把被控IO口的電平鎖定為低,避免觸發(fā)被控的設(shè)備。這種方法必須配合軟件,復(fù)位完畢后必須軟件把接NPN管基極的那根IO置低電平,釋放被控的IO口。這種方法比較少用,畢竟需要有多余的IO口,還必須加上三極管、電阻,布線復(fù)雜了不少,成本也增加不少。
5、使用濾波電容。在被控IO口對(duì)地之間接一uF級(jí)電容及K級(jí)電阻,類似緩沖作用。開機(jī)瞬間IO口通過電阻向電容充電,電平有一個(gè)逐漸上升的過程。只要電容及電阻的參數(shù)選擇得當(dāng),那么復(fù)位時(shí)由于緩沖作用IO口還沒來得及觸發(fā)設(shè)備時(shí)那么MCU已經(jīng)復(fù)位完畢把電平拉低了,這樣也就避免了誤觸發(fā)。這種方法有一定限制,會(huì)造成設(shè)備的響應(yīng)速度變慢,因此被控的IO口電平不能變化太快,否則由于電容的緩沖作用,設(shè)備無法有效控制。
-
AVR
+關(guān)注
關(guān)注
11文章
1123瀏覽量
78674 -
PIC
+關(guān)注
關(guān)注
8文章
507瀏覽量
87577 -
51單片機(jī)
+關(guān)注
關(guān)注
274文章
5702瀏覽量
123633
原文標(biāo)題:總結(jié)51單片機(jī)避免復(fù)位觸發(fā)的幾種方法
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論