PIC單片機硬件死鎖問題
使用 PIC 單片機 去設計工控電路,最頭痛的問題,就是 PIC 單片機在受干擾后經常硬件死鎖,大部份人歸咎于 “CMOS的可控硅效應” 因而產生死鎖現(xiàn)象,一般都認為 ‘死鎖后硬件復位都是無效的.只有斷電?!?但是一個成熟的商品,那須要你去斷電呢? 就好像一臺電冰箱,壓縮機一啟動,產生干擾, CPU 受干擾 因而 ‘硬件死鎖’,死機在那兒,假如發(fā)現(xiàn)了,可以馬上拔掉電源插頭,隔幾秒再插回,如此的動作 可以接受嗎? 假如死機時沒發(fā)現(xiàn),死機幾十天,你猜它會如何呢? -- 應該是 供給 CPU 電源的穩(wěn)壓 IC 燒毀了。
PIC 單片機為什么會硬件死鎖,PIC 單片機在受干擾后經常硬件死鎖,那么 PIC 要‘看門狗’ 有何用,有沒有人深入去探討其原因,在各 PIC 單片機 論壇 也提得很多,各有各的觀點,總具體的原因不外是 “CMOS的可控硅效應” 而產生死鎖現(xiàn)象, 依我各人的觀點,應與 “CMOS的可控硅效應”無觀,但很多大蝦皆認為是 “CMOS的可控硅效應”所引起的,所以一直以來 我也不方便提出,說不定是我的觀點錯誤,提出來 反而誤了大家,但至今,針對 PIC 單片機 產生死鎖現(xiàn)象,都還沒有詳細的原因說明及對應之道,在別的 PIC 單片機 論壇 也還在提此問題,我就將本人 找尋 pic ‘死鎖現(xiàn)象’的經過提供大家參考。
許久年前,PIC16C5x 剛出產一兩年,(PICxxxx 原先只有165x,屬于 NMOS 結構,大量用于 通用-GI 的選臺器、有線電視解鎖器,后來改為 CMOS 結構,更名為16C5x),當時只有 16C54、55、56、57 四個型號,仿真器只有 頂尖公司 制造的 16C5x DOS版仿真器(第一代),它也是 Microchip 第一個 OEM 仿真器廠,Microchip 當時還隸屬于 通用電子廠的子公司 -- 高雄電子廠,我當時也買一部仿真器,約人民幣壹萬五千元,16C5x 當年為最省電的OTP、QTP 單片機,價格又比其它的單片機便宜,只是它很容易受干擾死機,很多大廠不敢使用它,pic 我學了幾個月后,有一天,有位朋友要我 兼差 幫他們公司設計汽車防盜器,當時市場上的汽車防盜器都還用 CD40xx的邏輯電路去設計,各個時控都須一組 RC 電路,電路板上十幾個 IC (加上遙控解碼 IC),至少有 7~8 個 VR,調整時 非常復雜,當時我就以 一個 16C55 + 一個 ULN2003 + 一個 解碼 IC (當時技術未成熟,還沒用 PIC 程序解碼,后期的 已將 解碼 IC 省略),總計三個 IC就解決,電路方面 有某些是依書本上的電路移植過來(重置電路也由一本 PIC 應用的書本移植過來),樣品出來后,當時對方存著很多疑問,電路怎么這樣簡單,同時間內有4、5個'計時器'在計時,又要做那么多的 I/O 偵測工作,時控能準確嗎? 性能如何呢? 穩(wěn)定性? ....... 總體而言, CPU所設計的電路, 對于功能-絕對是比 邏輯電路所設計的好太多了,時控的準確性-我為它保證所有的時控誤差在 1% 之內, 至于穩(wěn)定性 ---- 當時的樣品時常當機、死機,CPU 發(fā)燙,也就是大家所談的 ‘ PIC 的硬件死鎖’。............
為了此問題(大家最怕的問題),找遍所有的資料,都毫無所獲,在PIC的書上都沒有看到類似訊息,只好自己 單打獨斗 的 去奮斗、去找原因,我發(fā)了幾天的時間,模擬了各種狀況,做了各式各樣的實驗,制造各種干擾,用示波器測量各點所發(fā)生的異常波形,其中一個簡單的實驗,(/MCLR 的接腳上,接一個提升電阻至 V+,接一個 0.1uf 至地,接一個'按鍵開關'至地),讓我得到一個我所須要的答案,實驗時 我多次的按 '按鍵開關',應該只是'重置'而已,但很容易進入 所謂的 ‘硬件死鎖’,連續(xù)測試,都會重覆發(fā)生,機率非常高,最后得到一個答案,PIC 晶片的 MCLR 硬件設計有問題,與其他 I/O 腳無關聯(lián),不是 I/O 腳受干擾, 而是 /MCLR 在重置或受干擾時,/MCLR 腳 會產生一個 振蕩信號,當 /MCLR 腳的外部接有電容時,它就永在發(fā)振,而PIC晶片內部某種硬件原因,導致于 VDD 與 VSS 之間 產生很大的電流,所以 VDD 與 VSS 像短路一樣,CPU 因而發(fā)燙,當把電容移開后, CPU 就重新工作,耗電流也就恢復正常了,所以我就認為 PIC 它不是 硬件死鎖 ,它沒有 “CMOS的可控硅效應”,可能是大家還沒找出原因,而懷疑是 PIC內部 “CMOS的可控硅效應”。而此問題解決方式,我當時也反應給 Microchip 公司反應,之后 Microchip 晶片內部有無修改 就 不得而知。
問題找出之后,趕緊通知 '汽車防盜器制造公司',修改了硬件電路,順利的將 PIC 控制的 '微電腦汽車防盜器'上市,這也就是 臺灣 第一部由 CPU 控制的 汽車防盜器 (這是我朋友所說的),之后,其他公司也深受壓力,趕緊跟于后面,使出各種方法 陸續(xù)的推出 '微電腦汽車防盜器',而我以后所做的 PIC 控制電路,也就不曾有過 ‘硬件死鎖’。
結尾 給大家一個建議,一般書本上的電路圖及程序,有很多錯誤,只讓你去參考,不能太過于信任,要多參考幾樣,不要原版照抄,否則出問題 也無法解決。
評論