日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> AVR單片機上電復位不可靠問題的解決

AVR單片機上電復位不可靠問題的解決

關鍵字:AVR 單片機 上電復位 作者:admin 來源:不詳 發(fā)布時間:2018-05-19  瀏覽:14

推薦昨晚在調試AVR 單片機時又有一些心得體會,雖然結論是一個很小的問題造成的,但在此還是寫出來給大家參考,避免走彎路。

事件描述:

以前用AVR的芯片也做過好幾個設計,從來沒有懷疑過ATMEL的芯片的穩(wěn)定性,以前的幾個方案都是很穩(wěn)定的,當然這跟PCB的設計有很大的關系,如果大家需要PCB相關參考資料的話可以到本站的PCB技術專欄里查找,那里有很多前輩的PCB布板心得。

這次用的ATmega48制作的串口電壓表就出現(xiàn)一個很奇怪的現(xiàn)象,電路板是用萬能板焊接的,程序里用到ADC功能和串口通訊功能,用的AVR下載工具是STK500,每次下載程序后芯片總是不能正常復位工作,還要讀取下芯片的特征字或熔絲位讓芯片重新復位下才能工作,這時候復位后工作都穩(wěn)定,沒出現(xiàn)什么不正常。剛開始不在意這個問題,因為在開發(fā)的初期用AVR DRAGON仿真調試部分功能時復位腳不能接任何器件,所以也就把復位腳懸著不接復位電路,以為是沒接阻容復位而造成不穩(wěn)定。在此還是沒有懷疑過芯片的問題。

直到后來這個程序都開發(fā)完畢了,給ATMEGA48加上 一個10K的上拉電阻和0.1uF的電容做復位,把ISP線拔掉,獨立給串口電壓表上電(因為當時都是用幾個電路模塊連接做實驗,串口電平轉換電路也是獨立的,初期串口調試已經都通過了,所以我把這個串口電平轉換模塊的連線都拔掉了),問題來了,上電不工作,手動把復位腳接地后放開可以工作,但過了一會后還是死了,加看門狗后還是老樣,沒有任何改善,每次手動復位正常工作后,把手指頭放在ATMEGA48的1、2、3腳上方慢慢靠近,手指頭還沒碰到芯片就死機了~~~不會吧,沒這么脆弱吧。以前用AVR Tiny26做的控制器,把手機放在芯片上方然后撥打10086都不會死機。不會中獎了吧,又不是第一次搞單片機,難道真要像以前論壇里的朋友開玩笑說:要殺只大公雞祭拜下~~~

奇怪啊~~~實在沒招,把串口電平轉換電路給接上繼續(xù)調試下,這時候再上電每次都是正常工作,而如果再把串口電平轉換電路斷開則又不能正常復位工作~~~手動復位后把手再靠近芯片的1、2、3腳上方就又馬上死機~~~狂暈~~~~不是吧~~~ATMEGA48的第一腳是RST,2、3兩腳剛好是RXD、TXD串行引腳,難道真的是這個串口干擾引腳影響到復位電路?不可能吧,ATMEGA48芯片用得人多的是,各方面的應用都有,不可能是芯片的缺陷,還是多懷疑下自己吧...重新再好好看看自己的程序吧...

 

程序里開始首先是對IO做初始化,TXD配置為輸出,還有其他相關IO配置。然后是對定時器的一些初始化,再就是對串口的一些初始化了?戳讼鲁绦,在初始化的時候就把串口中斷發(fā)送、接收允許都使能了,難道是這里的問題?串口電壓表在實際工作的時候串口其實不是在一直工作的,是通過一個開關選擇接地才發(fā)送數(shù)據(jù),平時是不發(fā)送的,而在不接串口電平轉換電路的時候RXD、TXD都是是懸空的,只有TXD為輸出有上拉,RXD沒有使能上拉,這時候RXD是最容易被外部干擾的,這就是問題的所在了。當然如果串口電平轉換電路都連接著,那就沒這個問題,因為串口電平轉換電路已經把RXD的電平給鉗住了。解決的方法很簡單:在初始化串口的時候關閉串口中斷使能,在主程序里需要發(fā)送數(shù)據(jù)的時候再使能串口,發(fā)送完馬上關閉就可以。至此問題解決,這時候看你再怎么去“摸”ATMEGA48的引腳或封裝都沒有再出現(xiàn)任何的死機情況,每次上電復位都是非常的穩(wěn)定。(把AVR的BOD熔絲打開可增加復位的可靠性,BOD LEVEL根據(jù)實際的電源電壓進行選擇,這里的電源是5V,所以BOD LEVEL選4.3V)

總結教訓:

這是自己的粗心大意、芯片內部功能的沒有合理性利用的表現(xiàn)。在此引以為戒!告訴自己:不要以為自己做過一些小項目就飄飄然起來,不要動不動就去懷疑人家半導體廠家芯片的穩(wěn)定性,要多懷疑自己才是。往往可能最基本的問題沒注意而花費了很多的時間,自己做著玩的東西那都無所謂了,如果你是給別人打工呢?那性質就完全不一樣了!

下圖為AVR單片機 典型外部復位電路:

AVR單片機已經內置了上電復位設計。并且在熔絲位里,可以控制復位時的額外時間,故AVR外部的復位線路在上電時,可以設計得很簡單:直接拉一只10K的電阻到VCC即可。

為了可靠,再加上一只0.1uF的電容以消除干擾、雜波。

二極管1N4148的作用有兩個:作用一是將復位輸入的最高電壓鉗在Vcc+0.5V 左右,另一作用是系統(tǒng)斷電時,將10K電阻短路,讓0.1uF的電容快速放電,讓下一次來電時,能產生有效的復位。

當AVR在工作時,按下開關S 時,復位腳變成低電平,觸發(fā)AVR芯片復位。

擴展閱讀:AVR單片機視頻教程

編輯:admin  最后修改時間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

巴青县| 高邮市| 阳春市| 陈巴尔虎旗| 赤峰市| 梅州市| 莱阳市| 辽宁省| 竹北市| 南川市| 扎赉特旗| 冀州市| 曲水县| 巴东县| 锡林浩特市| 平定县| 铜鼓县| 丁青县| 广平县| 佛冈县| 灵台县| 高尔夫| 舒城县| 商水县| 资兴市| 尉氏县| 来凤县| 宜良县| 定陶县| 中方县| 盱眙县| 滨海县| 盐池县| 陕西省| 绥宁县| 东阿县| 偃师市| 沧源| 博客| 年辖:市辖区| 辽源市|