基于瑞薩QzROM單片機(jī)的EFT抗干擾措施
QzROM是應(yīng)用了經(jīng)過(guò)細(xì)微化處理的PROM技術(shù)的可編程存儲(chǔ)器。QzROM單片機(jī)是指搭載了新型存儲(chǔ)器QzROM的瑞薩單片機(jī)(圖1),廣泛應(yīng)用于照相機(jī)、便攜式設(shè)備、家電及民用設(shè)備等。
EFT概念
EFT(電快速瞬變脈沖群,如圖2)是由電路中的感性負(fù)載斷開(kāi)時(shí)產(chǎn)生。特點(diǎn)是一連串的脈沖,對(duì)電路的影響比較大,可造成MCU(單片機(jī))程序跑飛、死機(jī)、復(fù)位等情況。由于一連串的脈沖可以在電路的輸入端產(chǎn)生累積效應(yīng),使干擾電平的幅度最終超過(guò)電路噪聲門(mén)限。
當(dāng)脈沖串的每個(gè)脈沖相距很近時(shí),電路的電容沒(méi)有足夠時(shí)間放電,就又開(kāi)始新的充電,容易達(dá)到較高的電平。所以脈沖串的周期越短對(duì)電路影響越大。
EFT抗干擾措施,主要介紹三類(lèi)方法:
1.優(yōu)化PCB(印制電路板)布線
•在元件布局方面,需優(yōu)先放置MCU(單片機(jī))、時(shí)鐘、復(fù)位電路;將元器件劃分不同的功能模塊,合理擺放各模塊位置,調(diào)整元器件角度,縮短總布線長(zhǎng)度。
•在布線寬度、布線間隙方面,盡量用更粗的布線寬度和布線間隙,減少在干擾下導(dǎo)線上的電壓對(duì)信號(hào)的影響,同時(shí)減少各個(gè)布線間的干擾。
•在地線、電源線布置方面:盡量將MCU、時(shí)鐘、復(fù)位電路的地線、電源線與其他功能分離開(kāi)來(lái),低頻時(shí)注意覆銅的放置,應(yīng)盡量縮短布線長(zhǎng)度。
•時(shí)鐘電路方面,用最短的布線連接時(shí)鐘電路與MCU,過(guò)長(zhǎng)的布線更容易引入干擾,見(jiàn)圖3;將晶振的地線與其它功能的地線分開(kāi),給晶振部分單獨(dú)鋪設(shè)多邊形覆銅;避免大電流從晶振電路下方流過(guò)。其原因是:如果有噪聲侵入時(shí)鐘輸入/輸出(I/O)引腳,時(shí)鐘的波形就會(huì)發(fā)生紊亂,導(dǎo)致誤動(dòng)作和失控。另外,如果因噪聲引起單片機(jī)Vss電平和諧振器Vss電平之間的電位差,正確的時(shí)鐘就不能輸入到單片機(jī)。
•復(fù)位電路:盡可能縮短連接復(fù)位電路與MCU的布線長(zhǎng)度,見(jiàn)圖4。理由是:因?yàn)闀r(shí)序必要條件規(guī)定了輸入到復(fù)位引腳的脈寬,所以,如果小于規(guī)定寬度的脈沖噪聲輸入到復(fù)位引腳,就在單片機(jī)內(nèi)部完全進(jìn)入初始化狀態(tài)前解除復(fù)位,導(dǎo)致程序失控。
•去耦電容:在靠近MCU的地方放置去耦電容,布線應(yīng)驅(qū)使電流流向去耦電容。
•CNVss引腳(控制芯片運(yùn)行模式管腳)方面,如果不使用在板編程功能,應(yīng)直接將CNVss連接到Vss;在需要在板編程的情況下,在靠近MCU的地方用5.1kΩ電阻連接到Vss,應(yīng)盡量縮短CNVss的布線長(zhǎng)度。
•P40(Vpp)引腳的布線:在將P40(Vpp)引腳用作輸入端口時(shí),應(yīng)盡量在P40(Vpp)引腳附近串聯(lián)插入約5kΩ的電阻;在未使用P40(Vpp)引腳時(shí),應(yīng)盡量從提供給單片機(jī)Vss引腳的GND(地)以最短距離連接到最近的GND布線,另外,通過(guò)串聯(lián)插入的5kΩ的電阻并連接到GND,有可能改善抗噪聲能力,此時(shí)也盡量從提供給單片機(jī)的Vss引腳的GND以最短距離連接到GND布線,見(jiàn)圖5。
理由:P40(Vpp)引腳是內(nèi)部QzROM的電源輸入引腳,在將程序?qū)懙絈zROM時(shí),為了產(chǎn)生泄電流,降低了P40(Vpp)引腳的阻抗,所以噪聲容易侵入,QzROM的指令碼和數(shù)據(jù)的讀操作就不能正常進(jìn)行而導(dǎo)致失控。
2. I/O端口處理
•未使用引腳的正確處理:
(1)只能設(shè)為輸入模式,用1k~10kΩ的電阻將各引腳上拉或下拉,有內(nèi)部上拉的,也可選用;
(2)只能設(shè)為輸出模式,引腳開(kāi)路,輸出高或低電平;
(3)其他I/O,推薦設(shè)為輸出,引腳開(kāi)路。
•未使用引腳處理時(shí)的注意事項(xiàng):
(1)I/O口設(shè)置成輸入時(shí),不要開(kāi)路;
(2)I/O口設(shè)置成輸入時(shí),不要直接連接到Vcc或Vss,也不要一個(gè)電阻將多個(gè)端口一起連接到Vcc或Vss,以防止因噪聲或程序失控等引起方向寄存器變成輸出模式時(shí),端口間發(fā)生短路;
(3)采用輸出模式,軟件處理上要定期刷新端口狀態(tài),以防止因噪聲和程序失控等引起方向寄存器變成輸入模式時(shí),端口電平不定,可能會(huì)造成電源電流增加。
3. 優(yōu)化程序結(jié)構(gòu)設(shè)計(jì)
•指令冗余:
(1)關(guān)鍵位置的多字節(jié)指令之后插入2個(gè)以上的單字節(jié)指令(NOP),避免后面的指令被當(dāng)作操作數(shù);
(2)跳轉(zhuǎn)指令(JMP,JSR,BRA)和返回指令(RTI,RTS)前插入兩條NOP,避免程序亂飛。
•軟件陷阱:
(1)未用中斷向量
指向一個(gè)錯(cuò)誤處理程序,防止干擾激活未用中斷使程序跑飛;
(2)在未使用的程序空間,ROM中存儲(chǔ)表格后面,程序區(qū)重要的子程序之間加入跑飛處理程序:
Subroutine: ;子程序
RTS
NOP
NOP
B RunAway
RunAway: ;跑飛處理子程序
RTS
•結(jié)合軟件使用看門(mén)狗,見(jiàn)圖6:
(1)MCU正常工作時(shí),定時(shí)給看門(mén)狗定時(shí)器初始化;(2)當(dāng)MCU跑飛時(shí),由于沒(méi)有在看門(mén)狗定時(shí)周期內(nèi)初始化,看門(mén)狗定時(shí)器計(jì)數(shù)溢出產(chǎn)生復(fù)位信號(hào),使MCU復(fù)位;(3)看門(mén)狗初始化設(shè)置:①無(wú)中斷使用時(shí),主程序循環(huán)中初始化看門(mén)狗;②使用中斷,在中斷程序中刷新某一變量,主程序中判斷此變量變化情況,進(jìn)而執(zhí)行初始化看門(mén)狗操作,并初始化此變量;③多個(gè)中斷的情況,根據(jù)相互的關(guān)系任選一中斷刷新變量,主程序作判斷。
措施總結(jié)
• 優(yōu)化PCB布線:提升抗干擾性能最有效的措施——設(shè)計(jì)開(kāi)發(fā)優(yōu)先考慮,優(yōu)先級(jí)最高。
• I/O處理:MCU使用的推薦配置——使用推薦配置獲得最佳性能。
• 軟件措施:可以部分解決干擾問(wèn)題——補(bǔ)救方法,例如量產(chǎn)后降低成本發(fā)現(xiàn)的問(wèn)題,推薦重新考慮前兩種方法。