AVR单片机搞错熔丝位导致芯片死锁的恢复办法
当你改动了AVR的熔丝位配置,重新加电后,想再用ISP下载,提示:“进入编程模式失败”等,极有可能是你搞错了熔丝位,导致芯片不知道使用何种主频而无法正常工作(仅限于内部RC振荡的情况)。
解决方法为:
1。寄回给芯片服务商,让他们帮忙将芯片恢复
这是最省事,但是最费时间,最无可奈何的方法。
2。使用编程器将芯片恢复到出厂状态
这个方法,需要你有编程器。编程器的具体制作资料,可参考本网站技术论坛红日的帖子:用89S51制作简易并行编程器ATmega16(救活ATmega16) 。
补充:2004-10-27 本网站会员彩虹数码提供了在炜煌系列编程器改熔丝位恢复芯片的办法。详情请到本文最后的后记与补充。
3。通过外加有源晶振的办法,让其恢复。
这个方法最可行。它可以恢复大部分熔丝位搞错的芯片。接法如下:
恢复方法:
接上上图的有源晶振,重新通电,就能用ISP下载线修改错误的熔丝位了。修改完成后,断电,将有源晶振拆走,看看是否已经恢复正常。
还有一个办法,如果没有有源晶振的话可以用其他工作正常的单片机的时钟作为外部晶振,只要将工作正常的单片机的XTAL2脚连接熔丝设置错误的单片机的XTAL1引脚即可。像我使用AVR910下载线的可直接把AT90S2313的时钟输出连到被设置错的芯片就可恢复了,很方便。(此方法由彩虹数码提供)。
--------------------------------------------------------------------------------
后记与补充 (2004-10-27) :本网站会员彩虹数码提供了在炜煌系列编程器改熔丝位恢复芯片的办法。
这几天随着被锁定的芯片越来越多,手头已经没有可以用的芯片了,实在没办法就又把以前购买的炜煌500A并行编程器拿出来研究。因为以前一直没有发现该编程器有改AVR配置熔丝的选项(如下图),所以原本不太抱希望的。
在500A烧片程序中选择了M16芯片之后,弹出来了这样一个对话框,以前我都是看AVR-2适配器如何接线的,重来没有关注过下图红框框住的这几个字眼。
经过仔细研读,忽然想起SLISP中的配置熔丝界面也有高低字节位,于是赶紧打开来看看,果然如此,且高低位和扩展位分别对应不同功能的熔丝,如下图:
终于理解了所谓的熔丝原来就是3个字节的存储器,不同的数值代表了不同的功能设置,所以炜煌系列编程器只要在数据缓冲区把熔丝地址(不同芯片的熔丝地址会不同)的数据手工修改,然后写入即可,如下图:
详细讨论,可以参考本网站论坛帖子:新发现:熔丝的真面目以及炜煌系列编程器改熔丝的办法
--------------------------------------------------------------------------------
附录一:小资料:晶体、晶振和有源晶振
晶体(crystal)就是以特定方式(AT或BT等)切割的水晶(天然或人造石英),利用水晶具有的压电效应来做频率基准。
加上振荡电路(如克莱拍,考皮兹等)完成一个完整的电路功能,封装好,我们称之为有源晶震(Oscillator)。 相对而言,没有电路的晶体,我们叫无源晶体或无源晶振。
附录二:Mega8 芯片使用 SL_ISP 1.3 下的熔丝位参考图
8M 内部RC振荡
1M 内部RC振荡
单片机 51单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)