| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
奇怪的復位。。。。。 | 
  
| 作者:iaiwork21 欄目:單片機 | 
一個高壓氣體放電燈的電源,用16F84A作過程控制(就是檢測幾個按鍵然后繼電器控制以及輸出些逆變、同步方波之類的),工作頻率4M,點火時出現(xiàn)奇怪復位。MCU與高壓部分均用光藕隔離了,點火時干擾比較大,點火電壓可高達4-5萬伏,點火繼電器剛吸合幾十毫秒,就出現(xiàn)莫名其妙的復位,完全搞不懂MCU為什么會復位,如果說干擾把MCU打死機了還好理解點。。。。 1。不是WDT復位,我在配置字里把WDT關(guān)掉仍然會復位 2。應該也不是跑飛到未寫程序的空間之后復位,我把ROM剩余空間都填滿了GOTO DISPLAY,這里DISPLAY是一個指示燈閃爍。 3。晶振一直正常,+5V也比較穩(wěn)定,點火時有波動,/MCLR腳有0.5uS的正負30V的波動,VDD腳有個陡降然后上升的干擾,從陡降上升到4V約6uS(DATASHEET上似乎并未說明沒有BOR的芯片VDD下降到多少伏多長時間會導致復位),本以為電源上的干擾是導致復位的主要原因,但換用外部接入的電源,點火時雖然還是有點波動,但好很多,仍然會復位 4。我用片內(nèi)EEPROM記錄了一下/PD及/TO(STATUS的3,4位),試了很多次,都是1,DATASHEET上解釋是上電復位或正常運行下/MCLR復位,暈了,換了外部接入電源時,點火時/MCLR腳幾乎沒有什么大的波動了,那到底怎么復位的? 。。。。暈~~~說的顛三倒四的,但總之我的意思就是MCU沒有復位的條件,他怎么復位了呢?唯一解釋就是強干擾(尤其是冷燈膽時點火電壓電流都特別大),那強干擾是怎么導致MCU復位的呢,有什么防護措施嗎?  | 
  
| 2樓: | >>參與討論 | 
| 作者: tes 于 2004/10/19 23:30:00 發(fā)布:
         16F84 抗干擾能力不行,換16C84試試,你這個程序16C54足矣  | 
  |
| 3樓: | >>參與討論 | 
| 作者: iaiwork21 于 2004/10/19 23:43:00 發(fā)布:
         關(guān)于16F84抗干擾不行 16F84可能的確抗干擾差些,但用它作了2款,程序一樣,外部硬件設(shè)計不一樣,一個沒什么問題,一個就是上面說的點火就復位。感覺還是硬件影響更大些,所以想問問大家mcu外圍硬件有些什么要注意的抗干擾的設(shè)計? ps:的確16C54足矣,但公司買回來的是f84,沒轍。。。。  | 
  |
| 4樓: | >>參與討論 | 
| 作者: pic_soft 于 2004/10/20 6:12:00 發(fā)布:
         將你的復位電路畫出來看看  | 
  |
| 5樓: | >>參與討論 | 
| 作者: hotpower 于 2004/10/20 7:37:00 發(fā)布:
         我也覺得有些怪... 3。晶振一直正常,+5V也比較穩(wěn)定,點火時有波動,/MCLR腳有0.5uS的正負30V的波動,VDD腳有個陡降然后上升的干擾,從陡降上升到4V約6uS 我感到電源部分可能也有些問題... 再即使"/MCLR腳有0.5uS的正負30V的波動",這肯定是干擾,但能量不會很大. 所以,MCU內(nèi)部是否真正復位還是個謎... 另外,軟件的抗干擾設(shè)計也應該考慮進去才是...  | 
  |
| 6樓: | >>參與討論 | 
| 作者: ZRL700424 于 2004/10/20 8:34:00 發(fā)布:
         16F84還有一個更奇怪的問題. 如果你的RB3(16F84,16C711)沒有用的話,你可以馬上做一個試驗: 1,RB3口接一個10K的電阻到電源,一個次片104到地; 2,從RB3口接一條500mm以上的線連到一個輕觸開關(guān)上,開關(guān)的另一端也用同樣長的線接到地. 3,程序只是把RB3設(shè)置為輸入(沒必要對RB3進行任何讀寫操作). 4,程序運行起來后,按開關(guān),看有什么現(xiàn)象(比你的復位更嚴重).  | 
  |
| 7樓: | >>參與討論 | 
| 作者: eling 于 2004/10/20 8:37:00 發(fā)布:
         將復位腳直接接到VDD試一下.  | 
  |
| 8樓: | >>參與討論 | 
| 作者: yewuyi 于 2004/10/20 9:17:00 發(fā)布:
         路過灌水…… 疑問:一:TO=1,PD=1,DATASHEET上解釋是上電復位或正常運行下/MCLR復位??? 二:換了外部接入電源時——具體指的怎么做?? 三:貼圖上來……  | 
  |
| 9樓: | >>參與討論 | 
| 作者: xieyuanbin 于 2004/10/20 9:31:00 發(fā)布:
         我碰到的問題。 有一個通過繼電器控制馬達的設(shè)計,用16C54,是我一個新同事畫的PCB,拿過來試的時候老是復位,我發(fā)現(xiàn)雖然在MUC電源兩個腳之間并了104的電容,但電源到78L05、78L05到MCU的連線非常長而且細,我教他用18號的電線直接連到那邊去,結(jié)果情況大為改觀。后來改用7805,電源的走線改成短而且粗,輸入電源電壓提高到13V以上就完全沒有這種情況了。 另外MCLR腳兼作燒寫VPP,如果上面有高過12V的脈沖,有可能會導致錯誤進入編程狀態(tài)。如果你的復位腳不用的話把它接到VDD,依靠VDD良好的濾波使其穩(wěn)定。前提是你的電源應該沒問題。  | 
  |
| 10樓: | >>參與討論 | 
| 作者: lymdpic 于 2004/10/20 18:36:00 發(fā)布:
         我個人認為 我個人認為,外圍硬件和軟件沒理順!不好意思。  | 
  |
| 11樓: | >>參與討論 | 
| 作者: iaiwork21 于 2004/10/21 1:22:00 發(fā)布:
         多謝各路大俠援手^ ^ 由于公司上網(wǎng)不方便,只能現(xiàn)在一起回復了,呵呵~~~比較長,要有耐心哦 TO PIC_SOFT:我的復位電路就是簡單的/MCLR腳10K接VDD,0.1UF接地,記得datasheet上是這樣推薦的。但把10K電阻換成4.7K,或是直接接VDD,把0.1UF換成105,10UF,47UF都試過,均不行。 TO HOTPOWER:你說到我心坎上去了,由于沒有仿真器,我其實并不知道它是否真的復位了。我這樣判斷可能是復位:從外表功能上看是回到了上電后的待機狀態(tài);程序很簡單,就算跑飛也不會每次都飛到復位處;再就是我為了測試,在GOTO START后并沒有立即初始化芯片,而是加了一段記錄TIMER0_CNT的值到片內(nèi)EEPROM的程序,多次點火失敗后,用編程器讀取EEPROM,發(fā)現(xiàn)記錄進去的TIMER0_CNT一直都是5,TIMER0_CNT是TIMER0溢出次數(shù)計數(shù)器,我設(shè)計的是TIMER0(256分頻)溢出5次后開始點火,溢出16次后點火結(jié)束(點火約0.7秒),發(fā)現(xiàn)點火多少次EEPROM里就有多少個5,因此我判斷一旦開始點火,就發(fā)生復位,PC指向00H,執(zhí)行了寫片內(nèi)EEPROM那段程序。如果不是復位,就不會每次點火失敗都恰巧亂飛亂跑到執(zhí)行寫EEPROM那段程序上去。不知我的思路是否正確,還請大家指正:) 電源的問題就比較復雜了,正常運行的那一款,點火時測量/MCLR和VDD腳就沒有上述的干擾。我提到過用外接電源,意思是MCU部分在電氣上與其他部分是隔離的(變壓器和光偶),于是我劃斷了MCU控制板上的開關(guān)電源提供的+5V,外面接了個+5V電源給MCU部分供電,觀察波形仍然會出現(xiàn)干擾,這就暈了:干擾哪里來的?應該不會從開關(guān)變壓器上過來,因為劃斷了+5V,沒有回路應該耦合不過來的吧,難道是打穿光偶過來的?再要不然是電磁輻射?需要屏蔽罩?沒那么玄吧?不懂了。。。。。。呵呵,有點跑題,這是研究干擾的傳播途徑了 軟件抗干擾,由于程序?qū)嵲诤唵,用的不多但也用了些,比如輸出刷新阿,軟件陷阱阿,重要指令的冗余阿之類的,好像收效甚微?br> TO ZRL700424:呵呵,你說的問題有意思,回去試試看^_^ TO eling:接VDD試過拉。。。。。8行 TO yewuyi:一、DATASHEET上關(guān)于復位后/TO./PD./POR等等相關(guān)位有個表格,查得都為1時是上電復位或正常運行下/MCLR復位 二、外接電源,意思是MCU部分在電氣上與其他部分是隔離的(變壓器和光偶),于是我劃斷了MCU控制板上的開關(guān)電源提供的+5V,外面接了個+5V電源給MCU部分供電 三、暈哦,公司上網(wǎng)不方便,圖搞不出來,呵呵 TO xieyuanbin:多謝提醒,我現(xiàn)在也懷疑跟布線有關(guān),沒問題的那款和有問題的基本上只有2個地方不一樣,一個是控制板布線(原理圖都一樣,只是2款外觀箱體不一樣,控制板大小不一樣),再就是一個輸出用場管,一個用IGBT(也是因為功率不一樣所以不一樣)。有問題的那款控制板小,布線十分緊湊,有些線被迫彎彎曲曲的繞道很遠,不過板已經(jīng)做出來了,只能在現(xiàn)有基礎(chǔ)上修修補補,大家覺得MCU硬件設(shè)計中 ,有關(guān)布線,在抗強干擾方面有什么注意的,請不吝指教~~~ TO lymdpic:現(xiàn)在老板急得很,這幾天我也搞得暈暈乎乎的了,字打了一大堆,好像并沒有完全表達清楚意思。簡單點想,感覺硬件問題大一點,因為2款用的芯片一樣,程序也一樣,結(jié)果卻不一樣。我只是好奇有問題的那款為什么每次出問題都會復位,而不是亂飛亂動作或干脆鎖死?  | 
  |
| 12樓: | >>參與討論 | 
| 作者: xieyuanbin 于 2004/10/21 7:32:00 發(fā)布:
         PIC跑飛的情況比較少。 一般復位比較多。你嘗試用線性穩(wěn)壓電源給MCU供電,連線用18號線,兩頭并電解和瓷片電容。 還有PCB走線不能與強干擾線平行。電源與輸入信號線盡量粗而且短。  | 
  |
| 13樓: | >>參與討論 | 
| 作者: hotpower 于 2004/10/21 7:46:00 發(fā)布:
         程序飛不要緊,關(guān)鍵如何把它揪回來  | 
  |
| 14樓: | >>參與討論 | 
| 作者: yewuyi 于 2004/10/21 8:38:00 發(fā)布:
         如此這般 一:TO=1,PD=1,DATASHEET上解釋是上電復位或正常運行下/MCLR復位??? 我記不清楚了,好象BOR也是可能TO=1,PD=1的把?人在外面,手頭無東西可查…… 二:建議加個發(fā)光二極管做指示(在沒有仿真器,燒片實驗的情況下,如此也很容易看到到底跑到“哪國”去了) 再次灌水一帖,誓把“狗皮膏藥”貼滿PIC論壇……  | 
  |
| 15樓: | >>參與討論 | 
| 作者: hotpower 于 2004/10/22 7:34:00 發(fā)布:
         贊同yewuyi之意見 最好MCU做個軟時鐘,再用串行的方法送出去"實時"顯示. 再手持秒表... 這樣就基本上能知道MCU到底復位了否... 再不行就做個"人機對話",守在MCU的病床前當"陪護"...  | 
  |
| 16樓: | >>參與討論 | 
| 作者: zhouxin 于 2004/10/22 16:35:00 發(fā)布:
         RB口 RB口有可能出現(xiàn)復位問題,如果RB口有些引腳未用,必須設(shè)置為輸出狀態(tài),否則會出現(xiàn)問題。 用示波器不能檢測到/MCLR腳出現(xiàn)高電平。  | 
  |
| 17樓: | >>參與討論 | 
| 作者: wurg 于 2004/10/22 16:57:00 發(fā)布:
         電源 好好在電源上下工夫.  | 
  |
| 18樓: | >>參與討論 | 
| 作者: fanguluke 于 2004/10/22 17:39:00 發(fā)布:
         我的同事用三星有這樣的問題 因為電源過大的波動。  | 
  |
| 19樓: | >>參與討論 | 
| 作者: pic_soft 于 2004/10/23 0:35:00 發(fā)布:
         這個還沒有解決?  * - 本貼最后修改時間:2004-10-23 19:10:55 修改者:pic_soft  | 
  |
| 20樓: | >>參與討論 | 
| 作者: 嚴成林 于 2010/4/17 10:19:07 發(fā)布:
         在程序執(zhí)行期間,在你的輸入引腳上,如果有大的灌電流的話,單片機也會復位,看看你的輸入腳是否會有大電流的可能  | 
  |
  | 
    
 
  | 
  
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 | 
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號  |