载入中...   AVR  ZONE
 
致力于工业自动化控制、电子产品开发、单片机应用开发
 
这么多年了,我一直坚持走技术这条路,走自己喜欢的这条路,希望无悔......

他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的...
 
 
 最新更新
这几年就这样走过来了,时间过得好快,发生太多事情,我希望我的选择是正确的。
有人说,男人把自己的热爱当成自己的事业是一种失败。但我希望,我会成功!
坚持不放弃!
2007-12-21 12:37:00
AVR的BOD,不得不说的功能应用
资料编写与整理:AVR猎手benladn911      出处:AVR猎手的地盘  http://benladn911.21ic.org/      转载请注明出处

说起AVR芯片的BOD功能,我们先看一下马潮老师写的关于 AVR的BOD 的使用注意事项,然后我再和大家一起分享我实际在应用BOD时候碰到的问题以及分析解决方法。

虚线内的是马潮老师的原文,如下:
--------------------------------
作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写熔丝位的配置,启用AVR的电源检测(BOD)功能。

对于5V系统,设置BOD电平为4.0V;对于3V系统,设置BOD电平为2.7V。然后允许BOD检测。

这样,一旦AVR的供电电压低于BOD电平,AVR进入RESET(不执行程序了)。而当电源恢复到BOD电平以上,AVR才正式开始从头执行程序。保证了系统的可靠性!

原因分析如下:
AVR是宽电压工作的芯片,当电压跌至2.5V,系统程序还能工作。这是有2个可怕的现象可能出现,
1。外围芯片工作已经混乱,AVR读到的东西不正确,造成程序的执行发生逻辑错误(不是AVR本身的原因)。
2。当电源低到临界点,如2.4V时,并且在此互上互下的,AVR本身的程序执行也不正常,取指令、读数据都可能发生错误,或程序乱飞、不稳定(AVR本身的原因,实际任何的单片机都是这样的),非常容易造成EEPROM、FALSH的破坏。有人问51怎么不会?实际上51也是这样,只是51内部没有直接写EEPROM、FLASH的指令,它的程序乱飞留不下痕迹。还有人有疑问:外挂EEPROM,掉电时怎么不会改写?实际是外挂EEPROM,当电压低于4V(2.7V)时,它已经不工作了,程序去改内容也改不了。而AVR内部的东西在临界电压时都能工作,但非常不稳定。

AVR的BOD功能必须要使用,我早期使用51时,凡是产品外部都要使用电源监测芯片,现在AVR自己本身就有该功能,一定要使用。

这些教课书上是没有的。
----------------------------------

下面也说说我的亲身经历:(我描述事件的时候比较罗嗦,为的也是以后有人碰到类似问题的时候可以参考,所以,您就慢慢看咯^_^)

正在做的一个控制系统,现场环境提供给我的电源是DC 24V,我的系统需要两个电压,一个是DC 12V 3A,一个是DC 5V 200mA。12V稳压选用了1501A12开关稳压IC(此芯片最大电流可以承受5A,如果要达到这么大的电流,配套的电感很重要,必须使用蓝绿磁环,0.85mm的漆包线绕制,22uH的电感量)。5V的电源用7805对12V电源进行稳压。单片机用的是ATMEGA48,使用洞洞板焊接做实验,芯片的熔丝只修改了下振荡源为外部晶体振荡和关闭8分频功能,未开启BOD。

因为12V的电压系统要带动一个直流电机,由12V的继电器进行带动控制,因为电机工作时带动的负载有可能会被外力阻挡而造成电机停转过载,这个时候电机的堵转电流可能达到3A左右,所以在硬件上我做了保护,采用AVR的ADC检测电机的工作电流,如果发生过载,则马上停止电机工作。

这个手工焊接的控制板测试时工作正常,包括电机过载测试,都未发生什么故障。

都测试通过后,制板回来,烧写程序的时候顺便打开AVR的BOD,设置为4.3V。然后开始着手做一些过载测试,发现一过载MCU就马上复位~~~超级郁闷啊~~~以为自己又改了什么程序导致不稳定,或者是启动电机工作后的延时时间不够(大家都知道:在驱动大功率负载的时候,在接通继电器的时候,MCU的指令控制一定要再延时几十个毫秒~几百个毫秒左右,否则会出现继电器吸合后马上断开的问题。详细原因不在本文讨论范围之内就不多说了,书本上都有详细说明这些用法),真的很打击人~ 想想AVR也没这么脆弱~~或者是我布板设计不合理???没这个理由的,以前的板子可是用洞洞板焊接的,以前不管怎么测试都不会复位。试着增加了输出控制的延时时间,还是一样的结果,一过载就复位。

软件改了~不行~~~写入以前的软件~也不行
换回以前的洞洞板测试,OK,没问题。不会吧~~~

静下心来仔细想想,两个板的差异,硬件一样,软件一样,芯片一样。等等…好象…对了!新做的板子都开启了BOD使能。马上先把BOD关了,果然,系统没有再发生过一次复位的情况。问题是解决了,但总得给个理由吧,总不能就放着BOD不用~~~再用眼睛仔细观察电机过载时电路板的一些状态,发现12V的LED电源指示灯会在电机过载的瞬间暗了一下,哇靠~!火眼金睛啊~!多带了个眼镜果然不一样!^_^哈哈,知道哪里的问题了。应该是电机过载时,12V的电压有所跌落,然后导致经过7805稳压后的5V电压也有所跌落,虽然这个电压的跌落只是瞬间,可能有跌到 4.3V以下,但这个瞬间马上被BOD检测到了,BOD强制MCU复位。这个瞬间的跌落用万用表是检测不出的,特别是用数字表更看不出了,有示波器的话就可以看下这个的跌落波形了。我手上只有两个数字表,所以没法把这个瞬间的波形捕捉出来给大家看了。(有些时候数字表还不如指针表,指针表可能还会更直观的显示出一些瞬态变化,如果有指针表应该也可以看出一些细微的电压波动)

解决方法:BOD的作用上面马老师已经说了,所以还是不能关掉了事,设置为2.7V即可,我这样做有没有道理大家自己想咯^_^

把自己使用BOD的过程分享出来是想告诉大家:使用BOD的时候不是随手开下就了事的,要注意实际工作的一些异常状况的发生,设置好适合系统的BOD电压才能保证你的系统工作的更可靠。

AVR,我看行!   ^_^ 嘿嘿,ATMEL可是没给我广告费哦~

 

-------------------------------- 最新更新 2008.04.16 --------------------------------

我现在的电源方案是 DC24V --> AP1501-12稳压到12V  --> 7805稳压到5V给AVR , 这样出现的问题是7805的输入端的12V电压会因为12V的负载而降低,导致7805的输出不稳定导致AVR工作异常。


解决方案:DC24V --> AP1501-12稳压到12V给12V的负载 
 
          DC24V --> LM317 稳压到5V给AVR (因为24V电源可提供的功率很大,不会受12V的负载而下跌,所以把24V直接稳压到5V,可得到稳定的5V,虽然从24V直接降到5V压降很大,但5V的负载电流很小,所以基本上不会有太大的发热问题)


 

posted @ 2007-12-21 12:37:00 AVR猎手 阅读全文 | 回复(6) | 引用通告 | 编辑
2007-12-25 9:07:00
Re:AVR的BOD,不得不说的功能应用
bluerain(游客)12V后面通过4007再到7805,4007后加电解,这样12V瞬间下降可保证7805处不下降
以下为blog主人的回复:
谢谢bluerain,我的电路设计正是如你说的,只是12V那端的负载发生过载现象的时候电路太大了,导致12V电压下降,多多少少肯定是会影响到7805后的电源的稳定。7805左右两边的电容我用470uF。只能说是1501A的带负载能力并没有手册中说的5A,我用到3A就已经产生了大的压降了 。
posted @ 2007-12-25 9:07:00 bluerain(游客) 个人主页 | 引用 | 返回 | 删除 | 回复
2007-12-31 16:47:00
Re:AVR的BOD,不得不说的功能应用
xuehui869(游客)
以下为blog主人的回复:
谢谢,呵呵
posted @ 2007-12-31 16:47:00 xuehui869(游客) 个人主页 | 引用 | 返回 | 删除 | 回复
2008-1-18 11:03:00
Re:AVR的BOD,不得不说的功能应用
wxqms学了 谢了 转了
posted @ 2008-1-18 11:03:00 wxqms 个人主页 | 引用 | 返回 | 删除 | 回复
2008-4-16 9:35:00
Re:AVR的BOD,不得不说的功能应用
访客Mqh6Kw(游客)(大家都知道:在驱动大功率负载的时候,在接通继电器的时候,MCU的指令控制一定要再延时几十个毫秒~几百个毫秒左右,否则会出现继电器吸合后马上断开的问题。详细原因不在本文讨论范围之内就不多说了,书本上都有详细说明这些用法),

想知道详细的原因,可否解释下?
posted @ 2008-4-16 9:35:00 访客Mqh6Kw(游客) 个人主页 | 引用 | 返回 | 删除 | 回复
2008-7-1 17:24:00
Re:AVR的BOD,不得不说的功能应用
访客Hl0Ofs(游客)我觉得BOD可以统一到2.7V
以下为AVR猎手的回复:
如果外围电路是在 3V的时候就不能正常工作了,那BOD设置为2.7V就是不合理的了,具体环境具体分析。
posted @ 2008-7-1 17:24:00 访客Hl0Ofs(游客) 个人主页 | 引用 | 返回 | 删除 | 回复
2008-7-29 20:49:00
Re:AVR的BOD,不得不说的功能应用
燃放(游客)早看到博主的文章的话也许要少走点弯路了,呵呵
我的应用环境跟你的相似
DC24 - 12V 1A - 5V 300mA
DC24-12V 采用APW7080 最大输出电流3A,12V-5V 7805
12V主要用来给CRT和7'LCD 供电,因为供应商的资料不全,没考虑到上电瞬时电流,导致接CRT 时复位,实测CRT 上电瞬间电流达8A,APW7080输出仅3V多,因此一上电就复位,郁闷了好久
现在是用了两个DCDC解决问题
DC24-12V 7080
DC24-5V 34063
现在对DCDC的一些知识还有些不明白,比如电感材料、为何要磁屏蔽(普通的工字电感对音频干扰相当大)以及感量计算(我们现在用的都是比datasheet上推荐的要大好几倍)、输出电容容量计算、低ESR特性等,不知博主有这方面的资料没,能否共享下经验,谢谢!
rf04282005@yahoo.com.cn
以下为AVR猎手的回复:
不客气哈,兄弟。

恭喜你也发现问题并解决。

关于DC DC电源中电感的选用,确实需要比推荐值稍微大点,这样会比较好。

至于电感材料、电感特性等资料,我也没有。这个具体可以和电感制造厂家沟通取得资料。
posted @ 2008-7-29 20:49:00 燃放(游客) 个人主页 | 引用 | 返回 | 删除 | 回复
发表评论:
载入中...
载入中...
 
 

公告

  • 载入中...

产品中心

卷布机(布料、薄膜等)对边控制器
 

原创

    基于ATmega48的串口电压表的制作
 

推荐版块

    首页
    AVR单片机专栏   
    单片机技术
    LCD液晶应用(AVR)
    项目方案
    PCB技术(Altium designer 6)
    FPGA技术(Altium designer 6)
    心情日记
    放松一下
    侦探悬疑推理故事
    手工漫画作品
 

版块文章分类

 

友情链接

最新评论

最新日志

留言簿

搜索

登陆

21IC官方统计