在我一次產(chǎn)品中有AVR和PIC兩種芯片同時存在,當用AVR推動繼電器--再推動接觸器。用PIC來顯示。發(fā)現(xiàn)PIC居然有點小小的干擾,不得不在外圍電路上加措施才解決問題。都說PIC的抗干擾一流的,我懷疑之下對兩種單片機做一個小小的測試。
首先說明,我只是比較單個芯片的最小系統(tǒng),比較單片機的自身抗干擾能力。
1。電源用變壓器變壓12V,7805穩(wěn)壓,輸入輸出均接電解電容和104電容。
2。單片機最小系統(tǒng),用3個I/O,按鈕,指示燈,驅(qū)動三極管(繼電器--再推動接觸器)不用的管腳不管。
3。干擾源,由于沒有儀器,只好用接觸器的線圈來做干擾源,為了加強干擾,接觸器線圈兩端沒有加104電容。
4。軟件,最小最簡單,不加任何處理只推動作用。
5。元件選擇,PIC的用PIC16C54,PIC16F54,PIC16F877A,PIC16F716。AVR的選用M8。AT28,AT13。
接下來做測試了:
PIC16C54:
先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,真是穩(wěn)如泰山。再用接觸器線圈引線纏繞芯片。在6圈以下還是穩(wěn)如泰山。上了7圈就有干擾了。看來PIC16C54真是強悍啊。佩服。接下去就試PIC16F54了。
PIC16F54:
先是接觸器放在芯片旁邊。不得了!程序簡直沒有辦法運行,和PIC16C54簡直一個在天上,一個在地下。萬思不得其解。查閱PIC資料都說PIC的F系列比C系列差,就是F系列的不同產(chǎn)品抗干擾也不一樣。于是又測試PIC16F716。
PIC16F716:
先是接觸器放在芯片旁邊。果然好多了,10次也就1次復(fù)位。
PIC16F877A:
先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,再用接觸器線圈引線纏繞芯片。在1圈就有干擾復(fù)位了。
以上就是對我有的幾種PIC片子的測試結(jié)果。接下來對AVR的M8做測試。
M8:
先是接觸器放在芯片旁邊。先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,再用接觸器線圈引線纏繞芯片。在1圈就有干擾復(fù)位了。
AT28:結(jié)果和PIC16F54一樣。
AT13:
先是接觸器放在芯片旁邊。先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,再用接觸器線圈引線纏繞芯片。在1-2圈就有干擾復(fù)位了。
從我自己測試的效果看,PIC的C系列很好。F系列的早期產(chǎn)品如PIC16F54很差,還不如51。后期的F系列如PIC16F877還可以。個人估計:原來PIC是生產(chǎn)OTP單片機的,他的OTP技術(shù)真是一流,F(xiàn)是后來才生產(chǎn)的(可能是C系列的學(xué)習(xí)版),技術(shù)還在學(xué)習(xí)和摸索中,所以F系列是早期產(chǎn)品不如后期產(chǎn)品。沒有測試18F系列的不知道好不好。
AVR的M8就和PIC16F877A差不多。AT13比M8好一點。M28差。
同一個廠家的產(chǎn)品怎么有如此大的差別呢?干擾又是怎么造成CPU復(fù)位的呢?帶著疑問我又對M8和PIC16F716再繼續(xù)做試驗。
1:用示波器測試芯片任意地方,發(fā)現(xiàn)都有干擾脈沖。不能確定干擾具體位置。
2:用接觸器線圈引線對準芯片一個一個腳來測試。結(jié)果出來了。
PIC16F716:只要引線對準復(fù)位腳,100%的復(fù)位,有狀態(tài)指示出是MCLR復(fù)位。引線對準電源腳沒有影響。
M8:只要引線對準復(fù)位腳,100%的復(fù)位,有狀態(tài)指示出是RESET復(fù)位。引線對準電源腳(20-30)%復(fù)位。
從以上看來干擾主要是影響了復(fù)位腳。電源對PIC的影響比AVR的小。查閱PIC和AVR的復(fù)位系統(tǒng),終于有了答案:
AVR的復(fù)位腳通過一個電阻連接到電源,而PIC的則沒有,故電源對PIC的影響比AVR的小。將PIC的復(fù)位腳外接一個電阻,電源對PIC的影和AVR一樣。
將電源和復(fù)位連接103或者104電容到地,奇跡發(fā)生了。
M8的穩(wěn)定性能居然和PIC16C54一樣了。先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,真是穩(wěn)如泰山。再用接觸器線圈引線纏繞芯片。在4圈以下還是穩(wěn)如泰山。上了5圈就有干擾了。
PIC16F716:先是接觸器放在芯片旁邊。無論怎么按動按鈕,接觸器的干擾對它一點反映也沒有,真是穩(wěn)如泰山。再用接觸器線圈引線纏繞芯片。在1-2有干擾了。
查閱PIC的MCLR時間沒有結(jié)果,看了PIC16F系列的復(fù)位電路沒有什么改變估計是PIC16F系列的內(nèi)部質(zhì)量不高。再說“奇跡發(fā)生了”抗干擾能力提高不顯著。
查閱各種AVR的復(fù)位電路,發(fā)現(xiàn)AT11是最差的,連“尖峰濾波電路也沒有”所以淘汰停產(chǎn)了。AT24/26/28/15的復(fù)位時間只有50-900ns。AT25/13/2313的復(fù)位時間要2.5us,難怪要穩(wěn)定些。M48/88/168為2us,M8為1.5us。(沒有比較過M48是不是比M8穩(wěn)定一些)。復(fù)位時間短的肯定比時間長的容易受干擾一些,可是AVR為什么還如此明了的標出復(fù)位時間呢?只有一個原因:讓用戶根據(jù)不同的環(huán)境選擇不同抗干擾的芯片。
終上所述:芯片自身抗干擾能力。個人認為:
PIC的C系列片子可以得10分。
AVR的M8可以得8-9分。
PIC的16F系列片子可以得4分。
AVR的AT13可以得8-9分。
可以看出AVR的足可以用于工業(yè)控制了,注意使用AVR的片子的時候要根據(jù)不同的環(huán)境選擇不同的片子,還有AVR的復(fù)位腳處理,由于AVR的復(fù)位腳通過一個電阻連接到電源,所以電源也要處理。
以上所述只是個人認識,做的試驗也不全面,請大蝦們不要太計較。現(xiàn)在有一棵新星STC單片機,網(wǎng)上傳的很神奇,特別懇請哪位大蝦做個測試。
JAMESKING:
謝謝陳先生這篇好文章,這帖子應(yīng)該上褲子了!!
STC我無法買到,不好做試驗。
Mega16L/32L/128L都具有類似Mega8這個特點。
當電源紋波在5mv以內(nèi)時,就算直接對引腳火花放電都沒關(guān)系,只是用料比較多而已。
接觸器的RC或者壓敏還是要加上。
yy_zxl:
用樓主的辦法對我的mega16進行試驗,10圈,接觸器點動5次就復(fù)位了。在接觸器的線圈上并TVS或電容,問題解決,看來在接觸器的線圈上并TVS或電容是有必要的,對23樓
“4,最關(guān)鍵的一點是軟件問題,就是在接觸器輸出指令后加10ms的延時,然后再重復(fù)輸出接觸器指令。這樣MCU就不會復(fù)位了。為什么呢?自己體會。這點是一些工程師不愿意講的,或者是不知道的。簡單的說,其實MCU或者其他元件也好。受到干擾的情況總是在處于接受或者輸入的狀態(tài)下的。如果你的元件處于輸出狀態(tài)的話是不會受到干擾的。延時10ms是因為接觸器是慢動作元件,在MCU指令后要大約10ms才可以吸合的,這時候就要讓MCU處于輸出狀態(tài),輸出比輸入受干擾小多多了。所以要重復(fù)輸出接觸器指令。用了該方法,MCU就不會受干擾了。”
覺得不一定有用,因為干擾是從空中耦合到reset端,此時單片機處于什么狀態(tài)對干擾reset端是毫無辦法的。
擴展閱讀:PIC單片機的一些基礎(chǔ)知識