AVR单片机熔丝位设置,以及搞错熔丝位,导致芯片死锁的恢复办.
AVR单片机解锁器的制作以及熔丝配置
A VR单片机解锁器的制作以及熔丝配置随着A VR单片机日益普及,很多单片机爱好者都试用了这种类型的快速8位单片机。
由于单片机试用ISP下载线下载代码到单片机中,而A VR单片机内部又具有可编程振荡模式选择熔丝位,初学A VR 单片机,对熔丝位的配置有时很不了解,很容易误写熔丝位,结果是单片机锁死无法再次使用。
本人也是刚学A VR单片机也遇到了这种情况,根据自己的经验写下此文希望对初学者用帮助。
首先说说怎么样设置熔丝位。
本人使用串口ISP下载自己制作的串口下载器,试用的是SLISP下载软件(天龙)。
SLISP安装后,确保下载器连接正确,单片机放置正确,点击配置熔丝弹出熔丝配置设置,将最后一个[ ]Int(……………………)勾选上,再将JTAG Interface Enable勾掉,然后点击写入,确定,是,最后点击确定完成熔丝的配置,而界面上的配置熔丝可选可不选。
下面说说A VR单片机锁死后的解锁。
按照下面的电路图正确连接制作时需要注意本电路试用正负电压。
7805和7905的管脚连接方式不一样,正对自己,7805左边输入,中间地,右边输出,7905左边地,中间输入,右边输出。
电阻R为1MΩ,电阻R1为2~6.5KΩ,晶振最好为2~16Mhz,输出为一定频率的方波。
使用方法:电路制作好后,正确和电源连接,将输出A VR解锁器的输出脚和单片机的XTAL1相连再次下载,写入正确的熔丝配置既可解锁,本人经过测试可以解决大部分A VR单片机锁死的情况,同时,有了它可以节约资源避免浪费。
经验之谈:熔丝配置时,点去JTAG后,最好不要勾选选择EXT 选项。
本人在自己的电脑上每次勾选单片机总是锁死。
由于本人也是初学,所以一切只能作为参考!!A VR单片机解锁器的制作以及熔丝配置作者:张仁友2010年2月1日。
AVR单片机解锁方法
AVR单片机的熔丝位控制着其时钟、JTAG使能、FLASH操作、工作模式等等。
一旦配置错误,会导致不可预见的结果,导致单片机下不进去程序。
最常见的就是时钟配置错误,尤其初学者比较容易犯这一类错误。
AVR单片机如果是系统时钟相关熔丝位配置错了,那可以使用有源晶振、信号发生器等强时钟源给“振开”,其实最简单的方法是利用51单片机的ALE脚进行“急救”。
以前没试过,今天我故意将时钟配置错误(在AVR STUDIO中将熔丝位设置成外部高速晶振,快启动,然后故意把外部晶振给拿掉),重启后果然出事儿了。
再想下程序下不进去了(嘿嘿,这正合我意),为了解救这个ATMEGA16,我找来了一个AT89S52。
注意不能用STC的哦,有的STC51单片机把ALE脚给禁止了。
接下来就是最紧张的时刻了,我将两块板子共地,然后将AT89S52的ALE脚(第30脚)接到ATMEGA16的XTAL1脚(第13脚)。
上电,用示波器看到A LE脚有时钟信号输出。
果断再次下载ATMEGA16的程序。
果然好使了!!!!!如果大家以后遇到此类现象,不妨使用这个方法试试。
如果是系统时钟相关熔丝位配置错误,那么这个招绝对管用。
别的熔丝位设错了倒是没尝试过。
不过大家尽量配置正确就是啦~~~~~做设计时不小心锁了一块芯片ATMEGA16,真的很抑闷,网上查了一下资料,真的五花八门,今天自己用有源晶振在自己的作品上动手术,几分钟就把自己的芯片解锁了,收获很多,以后终于随心所欲地编写熔丝了,反正我能解锁!实践才是检验真理的硬道理!实际中我没有断开我原来的外部晶振!解锁图:解锁步骤:一:按上面电路接好线,为了避免焊接后又脱焊的麻烦,所以建议用杜邦线接好。
二:用ISP下载线设置好正确的熔丝位,即可烧写熔丝,呵呵,大功告成,芯片又可以恢复使用了。
后话:AVR单片机被锁,不能写入程序,是因为错误地烧写时钟方式熔丝位造成的,选择的时钟方式与实际不同,造成单片机没有时钟信号输入,即不工作了,这样烧写程序当然error啦!。
AVR单片机熔丝位设置方法
A VR单片机熔丝位设置方法A VR Studio中STK500处理熔丝位有巨大的优势:它是以功能组合让用户配置。
这种方式与小马(PnoyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):1. 有效避免因不熟悉熔丝位让芯片锁死(这是初学者的恶梦)2. 不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦)这是我们网站为何推荐使用STK500下载器的又一原因。
操作界面如下:(注意:下图中,打勾的表示选中,代表0。
没有打勾的表示1)。
上图的资料整理如下(该表下面有中文翻译与说明):On-Chip Debug Enabled; [OCDEN=0]JTAG Interface Enabled; [JTAGEN=0]Serial program downloading (SPI) enabled; [SPIEN=0]Preserve EEPROM memory through the Chip Erase cycle; [EESA VE=0]Boot Flash section size=128 words Boot start address=$1F80; [BOOTSZ=11]Boot Flash section size=256 words Boot start address=$1F00; [BOOTSZ=10]Boot Flash section size=512 words Boot start address=$1E00; [BOOTSZ=01]Boot Flash section size=1024 words Boot start address=$1C00; [BOOTSZ=00] ; default valueBoot Reset vector Enabled (default address=$0000); [BOOTRST=0]CKOPT fuse (operation dependent of CKSEL fuses); [CKOPT=0]Brown-out detection level at VCC=4.0 V; [BODLEVEL=0]Brown-out detection level at VCC=2.7 V; [BODLEVEL=1]Brown-out detection enabled; [BODEN=0]Ext. Clock; Start-up time: 6 CK + 0 ms; [CKSEL=0000 SUT=00]Ext. Clock; Start-up time: 6 CK + 4 ms; [CKSEL=0000 SUT=01]Ext. Clock; Start-up time: 6 CK + 64 ms; [CKSEL=0000 SUT=10]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0001 SUT=00]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0001 SUT=01]Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0001 SUT=10]; default value Int. RC Osc. 2 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0010 SUT=00]Int. RC Osc. 2 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0010 SUT=01]Int. RC Osc. 2 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0010 SUT=10]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0011 SUT=00]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0011 SUT=01]Int. RC Osc. 4 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0011 SUT=10]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0100 SUT=00]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0100 SUT=01]Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 SUT=10]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0101 SUT=00]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0101 SUT=01]Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0101 SUT=10]Ext. RC Osc. - 0.9 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0101 SUT=11]Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0110 SUT=00] Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0110 SUT=01] Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0110 SUT=10] Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0110 SUT=11] Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0111 SUT=00]Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0111 SUT=01] Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0111 SUT=10] Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0111 SUT=11]Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=1000 SUT=00] Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=1000 SUT=01] Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=1000 SUT=10] Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=1000 SUT=11] Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4 ms; [CKSEL=1001 SUT=00]Ext. Low-Freq. Crystal; Start-up time: 1K CK + 64 ms; [CKSEL=1001 SUT=01]Ext. Low-Freq. Crystal; Start-up time: 32K CK + 64 ms; [CKSEL=1001 SUT=10]Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1010 SUT=00] Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1010 SUT=01] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1010 SUT=10] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1010 SUT=11] Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1011 SUT=00] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1011 SUT=01] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1011 SUT=10] Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1011 SUT=11] Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1100 SUT=00] Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01] Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1100 SUT=10] Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1100 SUT=11]Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1101 SUT=00] Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1101 SUT=01] Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1101 SUT=10] Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1101 SUT=11] Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1110 SUT=00] Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1110 SUT=01] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1110 SUT=10] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1110 SUT=11] Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1111 SUT=00] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1111 SUT=01] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1111 SUT=10] Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1111 SUT=11]上表的英文翻译说明如下:英文中文On-Chip Debug Enabled片内调试使能JTAG Interface EnabledJTAG 接口使能Serial program downloading (SPI) enabled串行编程下载(SPI) 使能(ISP下载时该位不能修改)Preserve EEPROM memory through the Chip Erase cycle;芯片擦除时EEPROM的内容保留Boot Flash section size=xxxx words引导(Boot)区大小为xxx个词Boot start address=$yyyy;引导(Boot)区开始地址为$yyyyBoot Reset vector Enabled引导(Boot)、复位向量使能Brown-out detection level at VCC=xxxx V;掉电检测的电平为VCC=xxxx 伏Brown-out detection enabled;掉电检测使能Start-up time: xxx CK + yy ms启动时间xxx 个时钟周期+ yy 毫秒Ext. Clock;外部时钟Int. RC Osc.内部RC(阻容) 振荡器Ext. RC Osc.外部RC(阻容) 振荡器Ext. Low-Freq. Crystal;外部低频晶体Ext. Crystal/Resonator Low Freq外部晶体/陶瓷振荡器低频Ext. Crystal/Resonator Medium Freq外部晶体/陶瓷振荡器中频Ext. Crystal/Resonator High Freq外部晶体/陶瓷振荡器高频注:以上中文是对照A Tmega16的中、英文版本数据手册而翻译。
AVR单片机熔丝位设置方法和设置步骤大全
AVR单片机熔丝位设置方法和设置步骤大全AVR单片机是一种常用的嵌入式系统开发平台之一、在单片机的开发中,熔丝位(Fuse)是决定单片机工作模式的重要设置之一、设置正确的熔丝位可以保证单片机的正常运行。
本文将介绍AVR单片机熔丝位的设置方法和设置步骤。
一、什么是熔丝位?熔丝位是用来定义单片机的一些基本特性的设置值,每个熔丝位可以设置为“0”或“1”,对应不同的功能。
通过设置熔丝位,可以选择以下几个方面的属性:1.时钟源(Clock Source):选择单片机的系统时钟源。
2.启动时间延迟(Start-up Time Delay):为了让单片机的晶振系统正常工作,需要在上电复位后等待一段时间。
3.JTAG接口:选择是否启用JTAG接口。
4.保护:保护单片机的外部程序和数据,防止非授权访问。
二、如何设置熔丝位?1.选择适当的单片机型号:在烧写工具的软件中,选择正确的单片机型号。
2.熔丝位设置:在烧写工具的软件中找到“Fuses”或“熔丝位”选项。
3.设置单片机的时钟源:根据实际需要,选择合适的时钟源。
常见的时钟源有外部晶振、外部时钟信号、内部RC振荡器等。
4.设置启动时间延迟:选择合适的启动时间延迟。
启动时间延迟是为了让外部晶振系统正常工作所需的等待时间。
5.选择是否启用JTAG接口:如果需要使用JTAG接口进行调试或编程,选择启用;否则选择禁用。
6.设置保护位:根据实际需求,选择是否启用保护位。
启用保护位可以防止未授权的访问。
7.写入熔丝位:在设置完所有的熔丝位后,点击“写入”或“烧写”按钮,将设置写入单片机的熔丝位中。
三、常见的一些熔丝位设置示例:1.外部晶振作为时钟源:熔丝位:CLKSEL[3:0]=1111说明:将单片机的时钟源设置为外部晶振,晶振频率可以根据实际需求选择。
2.外部时钟信号作为时钟源:熔丝位:CLKSEL[3:0]=0111说明:将单片机的时钟源设置为外部时钟信号,外部时钟信号的频率必须在单片机规格书中规定的范围内。
使用AVRStudio设置AVR熔丝位及烧写程序
使用AVRStudio设置AVR熔丝位及烧写程序AVR Studio是ATMEL指定用于开发AVR MCU的官方软件,其编程功能最为强大。
为了能让大家一起来学习AVR Studio的配置,下面我将介绍使用AVRStudio烧写程序及熔丝快速入门。
1、●打开 AVR Studio 软件,按下图操作。
对软硬件进行初始配置,并正确设备连接,就可使用AVRISP进行联机了。
2、● 使用AVRISP方式烧写程序及配置熔丝位点击主窗口中的图标前面标有Con的那个图标。
出现如下图画面:在左边,选择“STK500 or AVRISP”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。
3、●下面窗口提示所用AVR ISP下载线固件版本与当前所用软件不同,提示要求升级AVR ISP下载线固件,如版本相同就不会出现下面的提示。
如你所用的AVR ISP下载线不支持在线升级功能的话,不要点确定要不AVR ISP下载线会死在那里不动了,直接点击取消跳过此步既可。
正常联机后,将弹出如下窗口:(1)程序编程面板:●Device里面选择好对应的芯片类型,后面的Erase Device可以擦除芯片。
●Programming mode编程模式:注意这里必须是ISP mod,表示用的ISP编程模式;Erase Device Before 选项:编程前先擦除芯片,建议选上,如果不选芯片内部残留的程序可能会对新的程序造成干扰。
Verity Device After Program:下载完毕后校验程序内容,建议选上。
●Flash 下载区:Input HEX File,找到要写的hex文件格式为*.hex、*.e90。
Program,编程点此按钮,将会把Input HEX File对应文件下载到芯片中去,如果路径有错误或者文件格式不正确会有提示报警。
Verify 校验命令,用于检测芯片内程序是否和文件中的一致。
Read读命令,此命令可以读出未加密芯片内的程序,自动弹出一个对话框提示保存。
解决AVR熔丝锁死的最有效办法
解决AVR熔丝锁死的最有效办法
对于很多人来讲都很少备有有源晶振,那么对于解决AVR单机锁死的就没有其他的方法了么,其实并不然,现在我们要做的就是,首先要准备一个C51最小系统开发板,使用晶振为11.0592M,或者是12M(没有亲自试过)。
如图所示:
我们先从C51 的ALE引脚(输出震荡器的六分之一频)引出一根线,然后将输出的时钟信号与AVR单片机的XTAL1脚相连,你现在要保证AVR单片机,C51单片机开发板都是通电的状态,如图所示:
这个时候我们打开AVR flight程序烧写软件,如图所示。
通过外部提供时钟3M信号,我们现在就可以通过ISP下载方式,读取芯片的相关信息,如果现在你还是不能读出AVR单片机相关信息的话,你最好检查一下电路,看看,时钟信号连接的对不对。
现在我们开始设置熔丝位:把熔丝位设置成低位:EF,高位CF,扩展位:FF,然后写入AVR 单片机内就可以了,本人亲自试过,并把自己两个锁住的单片机拯救了过来。
熔丝位
熔丝位写入完成后,AVR单片机就被拯救回来了。
重新上电,下载程序了。
AVR单片机熔丝位解锁
一周报告阅读的文献关于单片机的熔丝位设置错误的解救方法AVR单片机解锁器的制作以及熔丝配置AVR单片机熔丝位汇总研究日志关于AVR单片机在使用的时候,初始使用ISP下载时,需要对AVR单片机的熔丝位进行配置,配置的时候会经常出现错误,这样会造成单片机无法起振,单片机无法工作,就是通常所说的锁死。
当然单片机的内部结构都是好的,如果仅仅是因为单片机的熔丝位锁死就废弃单片机这样会造成极大的浪费,本身每一块的AVR单片机成本比较贵,解锁成为每一个电子工程师必备的基本技能之一。
因此参照网络上面的各种文献,以及图书馆的书,采用一种行之有效并且较为简单的方法来给上锁的单片机解锁。
我现在在实验室采用的是有源晶振解锁的方法!大多数的单片机锁死,是因为在给下图所示的熔丝位配置时出错,最常见的是晶振位出错(位置在熔丝低位),CKSEL0,CKSEL1,CKSEL2,CKSEL3,这几位是设置初始时候使用内部RC震荡还是外部晶振来提供时钟脉冲的。
解决方法如下:再市场上面买一个大于2M的有源晶振,四个引脚。
如下图所示:各个引脚及对应的封装都可以秦楚看见。
下面介绍解锁使用的电路,引脚8输出,1引脚无连接,14引脚为+5DC电源,7接地(引脚的标号及时跟前面的两幅图中一样)。
这样将输出的引脚8和单片机的XTAL1相连接,ATmega16为13引脚(单片机封装上面的13引脚);ATmega128为24引脚(同样为封装上面的引脚号)。
连接好电路之后,就是使用ISP下载软件读取熔丝位,然后修改。
下面给出错误的熔丝位设置(错误的熔丝位设置)。
下面的图为修改后真确的熔丝位设置:徐伟2012年6月22日。
AVR单片机熔丝位的设置和详细拯救方法
AVR单片机熔丝位的设置和详细拯救方法AVR单片机的熔丝位是用来设置单片机的一些特殊功能和属性的,比如时钟源的选择、外部晶振的频率、启动时间延迟等。
正确设置熔丝位可以确保单片机的正常工作和满足特定的应用需求。
然而,如果设置熔丝位错误或者单片机进入了保护模式,就需要采取相应的拯救方法。
本文将详细介绍AVR单片机熔丝位的设置和拯救方法。
一、AVR单片机熔丝位的设置1.熔丝位的组成熔丝位是由多个位(bit)组成的,不同单片机具有不同的熔丝位组成,每个位(bit)用于设置不同的功能或属性。
通常情况下,单片机的熔丝位分为高位字节和低位字节,每个字节的不同位(bit)设置的功能也不同。
2.熔丝位设置的方式单片机的熔丝位可以通过编程器进行设置,通常在进行单片机的编译和烧录时设置熔丝位。
通过编程器软件提供的界面,用户可以选择不同的设置,然后将设置好的熔丝位值烧录到单片机中。
二、常见的熔丝位设置和拯救方法1.时钟源的选择单片机工作时需要时钟源来提供节拍信号,可以选择内部RC振荡器、晶体振荡器或外部时钟源作为时钟源。
熔丝位中通常有相应的位(bit)用于选择时钟源。
如果选择错误,单片机可能无法正常启动。
拯救方法:通过修改熔丝位设置为正确的时钟源。
2.外部晶振的频率如果选择了外部晶振作为时钟源,还需要设置晶振的频率。
熔丝位中通常有不同的位(bit)用于选择晶振频率,常见的频率有8MHz、16MHz等。
如果设置的频率与实际晶振的频率不匹配,单片机可能无法正常工作。
拯救方法:通过修改熔丝位设置为正确的晶振频率。
3.启动时间延迟当电源刚刚接通时,单片机需要一定的时间来启动,此时需要设置启动时间延迟。
熔丝位中通常有相应的位(bit)用于设置延迟时间。
如果延迟时间设置得太短,单片机可能无法正常启动。
拯救方法:通过修改熔丝位设置为正确的启动时间延迟。
4.编程模式熔丝位中的一些位(bit)可能用于选择编程模式,比如ISP(In-System Programming)模式或JTAG(Joint Test Action Group)模式。
AVR单片机熔丝位的设置和详细拯救方法
EMail:zrp_ncu@
QQ:978710555
电话:13189775550
关于 AVR 单片机熔丝位的设置和拯救方法大全
AVR 单片机熔丝位的设置和详细的拯救方法 编辑作者: ZRP 2007-10-1 于深圳 熔丝位是 ATMEL 公司 AVR 单片机比较独到的特征。 在每一种型号的 AVR 单片机内部都有一些特定含义的熔丝位,其特 性表现为多次擦写的 E² PROM。用户通过配置(编程)这些熔丝位,可以固定地设置 AVR 的一些特性,参数以及 I/O 配 置等,当然也包括对片内运行代码的锁定(加密)。 用户使用并行编程方式、ISP 编程方式、JTAG 编程方式都可以对 AVR 的熔丝位进行配置,但不同的编程工具软件提供 对熔丝位的配置方式 (指人机界面) 也是不同的。 有的是通过直接填写熔丝位位值 (如: CVAVR、 PonyProg2000 和 SLISP 等),有的是通过列出表格选择(如 AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单,但是需要用户在仔细查 询操作,会引起一些意想不到的后果,如造成芯片无法正常运行,无法再次定入 ISP 编程模式等。建议用户对 AVR 的熔丝 位进行配置时,选择用户表格选择方式界面的编程软件,如 BASCOM-AVR。不过版主使用的是前者 PonyProg2000。 对 AVR 熔丝位的配置操作是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。看到这么多的人对 AVR 的 熔丝位不会使用和误操作,结合本人的使用实践,给出以下方面的意见和参考。 下面给出对 AVR 熔丝位的配置操作时的一些要点和需要注意的相关事项以及相应的拯救方法。 (一)设置方法 1.1.1 正确配置 AVR 熔丝位 对 AVR 熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对 AVR 熔丝位 的配置操作时的一些要点和需要注意的相关事项。有关 ATmega128 熔丝位的具体定义和功能请查看本书相关章 节,在附录中将给出一个完整的汇总表。 ( 1 )在 AVR 的器件手册中,对熔丝位使用已编程( Programmed )和未编程( Unprogrammed )定义熔丝位 的状态, “Unprogrammed” 表示熔丝状态为 “1” (禁止); “Programmed” 表示熔丝状态为 “0” (允许)。因此, 配置熔丝位的过程实际上是 “配置熔丝位成为未编程状态 “1” 或成为已编程状态 “0”” 。 ( 2 )在使用通过选择打钩 “√” 方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清 楚 “√” 表示设置熔丝位状态为 “0” 还是为 “1” 。 ( 3 )使用 CVAVR 中的编程下载程序时应特别注意,由于 CVAVR 编程下载界面初始打开时,大部分熔丝位的初 始状态定义为 “1” ,因此不要使用其编程菜单选项中的 “all” 选项。此时的 “all” 选项会以熔丝位的初始状态定义来配 置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用 “all”选项,应先使用 “read ->fuse bits” 读取芯片中熔丝位实际状态后,再使用 “all” 选项。 ( 4 )新的 AVR 芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个 熔丝位的状态记录备案。 ( 5 ) AVR 芯片加密以后仅仅是不能读取芯片内部 Flash 和 E2PROM 中的数据,熔丝位的状态仍然可以读取但不 能修改配置。芯片擦除命令是将 Flash 和 E2PROM 中的数据清除,并同时将两位锁定位状态配置成 “11” ,处于无 锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。 ( 6 )正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定 位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重 新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。 ( 7 )使用 ISP 串行方式下载编程时,应配置 SPIEN 熔丝位为 “0” 。芯片出厂时 SPIEN 位的状态默认为 “0” ,表示 允许 ISP 串行方式下载数据。只有该位处于编程状态 “0” ,才可以通过 AVR 的 SPI 口进行 ISP 下载,如果该位被 配置为未编程 “1” 后,ISP 串行方式下载数据立即被禁止,此时只能通过并行方式或 JTAG 编程方式才能将 SPIEN 的状态重新设置为 “0” ,开放 ISP 。通常情况下,应保持 SPIEN 的状态为 “0” ,允许 ISP 编程不会影响其引脚的 I/O 功能,只要在硬件电路设计时,注意 ISP 接口与其并接的器件进行必要的隔离,如使用串接电阻或断路跳线等。 ( 8 )当你的系统中,不使用 JTAG 接口下载编程或实时在线仿真调试,且 JTAG 接口的引脚需要作为 I/O 口使用 时,必须设置熔丝位 JTAGEN 的状态为 “1” 。芯片出厂时 JTAGEN 的状态默认为 “0” ,表示允许 JTAG 接口,JTAG
浅谈AVR单片机熔丝位设置
浅谈AVR单片机熔丝位设置对于初学者来说,AVR的熔丝位真是“高深莫测”,稍不注意,单片机就锁死了,本人也是这样经历过来的,号称AVR杀手,哈哈,这是玩笑啦。
不过只要搞懂了每个熔丝位选项的具体含义就不怕你去折腾了,下面我就结合我的使用心得,做一下总结,如有不当之处请多多包涵,及时加以指正。
打开progispz这个软件,熔丝位的设置界面如下所示。
下面来逐一介绍每个选项的含义。
需要注明一点,在这个软件里,1表示禁止,0表示允许,也有说1代表未编程,0代表编程。
和我们的常规思维有点不同,需多加注意。
BODLEVEL(BOD电平选择):1:2.7V电平;0:4.0V电平:BODEN(BOD功能控制):1:BOD功能禁止;0:BOD功能允许使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL 决定。
一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=1)或4.0v(BODLEVEL=0);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0。
SUT1和SUT0:复位启动时间选择。
当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
CKSEL3、CKSEL2、CKSEL1、CKSEL0这三个选项控制时钟源选择。
具体设置如下所示。
时钟源启动延时熔丝外部时钟 6 CK + 0 ms CKSEL=0000 SUT="00"外部时钟 6 CK + 4.1 ms CKSEL=0000 SUT="01"外部时钟 6 CK + 65 ms CKSEL="0000" SUT="10"内部RC振荡1MHZ 6 CK + 0 ms CKSEL="0001" SUT="00"内部RC振荡1MHZ 6 CK + 4.1 ms CKSEL="0001" SUT="01"内部RC振荡1MHZ 6 CK + 65 ms CKSEL="0001" SUT="10"内部RC振荡2MHZ 6 CK + 0 ms CKSEL="0010" SUT="00"内部RC振荡2MHZ 6 CK + 4.1 ms CKSEL="0010" SUT="01"内部RC振荡2MHZ 6 CK + 65 ms CKSEL="0010" SUT="10"内部RC振荡4MHZ 6 CK + 0 ms CKSEL="0011" SUT="00"内部RC振荡4MHZ 6 CK + 4.1 ms CKSEL="0011" SUT="01"内部RC振荡4MHZ 6 CK + 65 ms CKSEL="0011" SUT="10"内部RC振荡8MHZ 6 CK + 0 ms CKSEL="0100" SUT="00"内部RC振荡8MHZ 6 CK + 4.1 ms CKSEL="0100" SUT="01"内部RC振荡8MHZ 6 CK + 65 ms CKSEL="0100" SUT="10"外部RC振荡≤0.9MHZ 18 CK + 0 ms CKSEL="0101" SUT="00"外部RC振荡≤0.9MHZ 18 CK + 4.1 ms CKSEL="0101" SUT="01"外部RC振荡≤0.9MHZ 18 CK + 65 ms CKSEL="0101" SUT="10"外部RC振荡≤0.9MHZ 6 CK + 4.1 ms CKSEL="0101" SUT="11"外部RC振荡0.9-3.0MHZ 18 CK + 0 ms CKSEL="0110" SUT="00"外部RC振荡0.9-3.0MHZ 18 CK + 4.1 ms CKSEL="0110" SUT="01"外部RC振荡0.9-3.0MHZ 18 CK + 65 ms CKSEL="0110" SUT="10"外部RC振荡0.9-3.0MHZ 6 CK + 4.1 ms CKSEL=0110 SUT="11"外部RC振荡3.0-8.0MHZ 18 CK + 0 ms CKSEL=0111 SUT="00"外部RC振荡3.0-8.0MHZ 18 CK + 4.1 ms CKSEL="0111" SUT="01" 外部RC振荡3.0-8.0MHZ 18 CK + 65 ms CKSEL=0111 SUT="10"外部RC振荡3.0-8.0MHZ 6 CK + 4.1 ms CKSEL="0111" SUT="11" 外部RC振荡8.0-12.0MHZ 18 CK + 0 ms CKSEL=1000 SUT="00"外部RC振荡8.0-12.0MHZ 18 CK + 4.1 ms CKSEL="1000" SUT="01" 外部RC振荡8.0-12.0MHZ 18 CK + 65 ms CKSEL="1000" SUT="10" 外部RC振荡8.0-12.0MHZ 6 CK + 4.1 ms CKSEL="1000" SUT="11" 低频晶振(32.768KHZ) 1K CK + 4.1 ms CKSEL="1001" SUT="00" 低频晶振(32.768KHZ) 1K CK + 65 ms CKSEL="1001" SUT="01"低频晶振(32.768KHZ) 32K CK + 65 ms CKSEL="1001" SUT="10"低频石英/陶瓷振荡器(0.4-0.9MHZ) 258 CK + 65 ms CKSEL="1010" SUT="01" 低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 0 ms CKSEL=1010 SUT="10" 低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 4.1 ms CKSEL="1010" SUT="11" 低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 65 ms CKSEL="1011" SUT="00" 低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 0 ms CKSEL=1011 SUT="01"低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 4.1ms CKSEL="1011" SUT="10" 低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 65ms CKSEL="1011" SUT="11" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 4.1 ms CKSEL="1100" SUT="00" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 65 ms CKSEL="1100" SUT="01" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 0 ms CKSEL=1100 SUT="10"中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 4.1 ms CKSEL="1100" SUT="11" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 65 ms CKSEL="1101" SUT="00" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 0 ms CKSEL="1101" SUT="01" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 4.1ms CKSEL="1101" SUT="10" 中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 65ms CKSEL="1101" SUT="11" 高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 4.1 ms CKSEL="111"0 SUT="00" 高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 65 ms CKSEL="111"0 SUT="01" 高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 0 ms CKSEL="111"0 SUT="10"高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 65 ms CKSEL="1111" SUT="00"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 0 ms CKSEL="1111" SUT="01"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 4.1ms CKSEL="111"1 SUT="10"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL="1111" SUT="11"OCDEN(片上调试使能位):1:OCD功能禁止;0:OCD功能允许JTAGEN(JTAG允许):1:JTAG禁止;0:JTAG允许使用方法:在JTAG调试时,使能OCDEN JTAGEN两位(复选框打勾),并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能OCDEN JTAGEN,大约减少2-3mA的电流。
AVR熔丝位配置的常见问题及解决办法
表 3 熔 丝位 低 字节
熔 丝 位 低 字节
B) E L (DL VE
位 号
7
描
述
1
此 , 单 片机 熔 丝 位 和 锁 定位 的 正确 配 置 显得 尤 为 重 要 。 对
扩 展 熔 丝 位 字 节 M1 3 、 0( WD ) T(N
表 1 熔 丝 位 扩 展 字节
位 号
7 2 ~
描
述
默认 值
1
1 O
ATme a 0 g l 3兼 容 模 式 看 门 狗定 时 器 始 终 开 启
2 1 O
选 择 B o 区 大小 ot 选 择 B o 区 大小 ot 选 择 复 位 向量
O O 1
密 级 别 。对 程 序 及 数 据 存 储 器 锁 定 位 进 行 编 程 可 以 禁 止 对 并 行 和 S IJ P / TAG 串 行 编 程 模 式 中 Fa h和 EE R(M ls P ) 进 一 步 编 程 , 而 对 程 序 和存 储 器 中 的 数 据进 行 保 护 。 从 由于 引导 程 序 锁定 位 和 程 序 及 数 据 存 储 器 锁 定 位 的
熔 丝 位 高 字 节
(C ) N K0P T E S E AVE 4 3
表 2 熔 丝 位 高 字节
位 号
7 6
描
述
默 认 值
1 OC 禁用 ) ( D O J AG 使 能 ) (T
AVR单片机的熔丝与解锁
AVR 单片机的熔丝与解锁
AVR 单片机的熔丝位配置是AVR 单片机初学者很容易出错的地方,其实只要注意一些事项,还是能够尽量避免单片机被锁死,即使单片机被锁死,也可以使用一些方法解锁,本文讲述我在刚开始接触AVR 单片机时熔
丝位配置出现的一些问题。
​​
1、AVR 单片机的熔丝位是比较独到的特征,可以控制系统的时钟,JTAG 调试、看门狗、芯片加密等等。
图1 是progisp 软件,对于初学者来说,对熔丝位不熟悉,可以先将2 处的编程熔丝对勾去掉,这样​在编程的时候,就不会对熔丝位进行编程,单片机出厂的默认设置就可以使用。
点击1 处进入熔丝位配置界面。
图1
图2 为位配置方式,这里的每一位都不能随意点击,尤其是熔丝低位控制时钟的地方,一般来说,直接对位进行配置并不安全,一定要确定是自己想要的熔丝配置才可以,如果不小心动了其中的熔丝位,可以通过读出或者默认,恢复熔丝配置,这样下载程序之后,比较安全。
AVR单片机熔丝位锁死解密方法
AVR单片机熔丝位锁死解密方法A VR单片机熔丝位锁死解密方法1.A VR单片机熔丝位锁死简单快捷的解密方法:在很多A VR单片机的初学者在使用A VR单片机中,很容易把熔丝位弄错而造成单片机锁死,比如说JTAGEN置为1后,单片机的JTAG就不能再下载程序进去了,因此给我们带来很多麻烦。
常见的恢复方法是使用并口编程器来恢复,对于初学者来说,很多设备是很欠缺的,所以很难解决。
现为我们初学者介绍一个简单实用可行的方法——有源晶振恢复法。
将被锁死的A VR 单片机接入最小系统或者开发板中,将系统中的晶振拆下来,在XAIL1接上有源晶振的第三脚(按下图接即可)。
然后通电,使用ISP下载线进行熔丝位编辑,本人使用智峰progisp(Ver 1.6.7)软件,打开软件选择好芯片型号,使用默认的熔丝位设置即可。
然后点击自动即可下载。
断电接回原来的晶振,再次使用ISP下载程序就可以搞定了。
2. A VR单片机熔丝锁死的处理用外接有源晶振的方法解锁,有源晶振实际上是一个封装了振荡电路、晶振的信号源,可以输出标准的大幅度的方波。
共有4个脚,1 NC,2 GND,3 OUT,4 VCC,圆点标记对应的为1脚。
将3脚接到单片机的xtal1,通过isp 一般可以读出锁死的熔丝位(isp编程未禁止),并可以重新烧写正确的熔丝位;如果不行的话,只有通过并行编程器烧写了。
3. 单片机熔丝位烧错芯片锁死的处理方法有两种方式可以达到这一点:1. 以用其他工作正常的单片机的时钟作为外部晶振,只要将工作正常的单片机的XTAL2脚连接熔丝设置错误的单片机的XTAL1引脚即可。
这种方法我使用过,但是只能使单片机中的程序跑起来,并不能恢复熔丝位。
2.使用51系列单片机的ALE引脚作为外部时钟源,将51系列的ALE引脚与M16的XTAL1引脚相连接。
我亲手试了一下,效果是立竿见影,很快的恢复了错误设置的熔丝位。
4. 单片机熔丝位的作用:熔丝控制很多信息,比如晶振选择,isp使能,jtag使能。
AVR单片机熔丝位设置详细知识文档
AVR单片机熔丝位设置详细知识文档
本说明以AVR单片机中ATmega16的熔丝位为例,说明熔丝位如何正确设置。
1.编程与状态说明
(1)在AVR的器件手册中,使用已编程(Programmed)和未编程(U nprogrammed)定义熔丝位的状态。
未编程表示熔丝位状态为“1”(禁止);已编程表示熔丝位状态为“0”(允许)。
(2)AVR的熔丝位可以多次编程,不是一次性的OPT熔丝。
(3)熔丝位的配置可以通过并行方式、ISP串行方式和JTAG串行方式实现。
(4)AVR芯片加密锁定后(LB2/LB1=1/0,0/0)不能通过任何方式读取芯片内部的FLASH和EEPROM数据,但是熔丝位的状态仍然可以读取,只是不能修改配置。
(5)芯片擦除命令是将FLASH和EEPROM中的数据清除,并同时将两位锁定位状态配置成无锁定的状态(LB2/LB1=1/1),但芯片擦除命令不改变其熔丝位的配置。
(6)下载编程的正确操作程序是:对芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的加密锁定位。
(7)如果芯片被加密锁定后,发现熔丝位配置不对,则必须使用擦除命令,清楚芯片的数据,解除加密锁定,然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的加密锁定位。
2.芯片加密锁定熔丝位
3.功能熔丝位
4.Bootloader的熔丝位(1)上电启动地址选择
(2)Bootloader区大小设置
(1)系统时钟选择
注释(2):当CKOPT=0时,振荡器的输出振幅较大,适用于干扰大的场合;反之,振荡器的输出振幅较小,可以降低功耗,对外电磁辐射也较小;
注释(3):CKOPT默认状态为“1”。
AVR单片机熔丝位设置方法
AVR单片机熔丝位设置方法以下将介绍AVR单片机熔丝位的设置方法,包括基本概念、设置步骤、常用设置等方面内容。
一、基本概念:1. 熔丝位(Fuse):熔丝位是单片机内部的用来设置特殊功能的寄存器位。
通过设置熔丝位,可以配置单片机的时钟源、保护位、功能设置等。
2.熔丝位的编程:熔丝位的编程是指通过编程器将特定的数值写入单片机的熔丝位,从而实现对单片机功能的配置。
二、设置步骤:下面以ATmega16A单片机为例,介绍AVR单片机熔丝位的设置步骤:1.确定目标设置:在进行熔丝位设置之前,首先要确定目标设置。
查阅单片机的数据手册以获取关于熔丝位的详细信息,在进行设置之前要明确需要配置的功能。
2.选择编程器:选择一种适用于目标单片机的编程器,如使用AVRISP编程器等。
3.连接硬件:将编程器与目标单片机进行连接,通常需要使用编程器提供的相应接口线将编程器和目标单片机的编程接口相连。
4. 打开烧录软件:打开编程软件,如AVR Studio等。
5.选择目标单片机:在软件中选择正确的目标单片机型号。
6.设置熔丝位:在软件中找到熔丝位设置选项,具体位置可能因编程软件的不同而有所差异。
根据需要进行相应的选择和设置,如时钟源选择、SPIEN位等。
7.编程:设置好熔丝位后,通过编程器将目标设置烧录到单片机的熔丝位。
8.验证:进行熔丝位设置后,需要验证设置是否成功。
可以使用相应的工具或软件读取并显示单片机的熔丝位设置,对比验证。
三、常用设置:以下列举了一些常用的熔丝位设置:1.时钟源选择:通过熔丝位可以选择单片机的时钟源,如晶体振荡器、外部时钟源、内部RC振荡器等。
2.分频系数设置:可以通过熔丝位设置单片机的时钟分频系数,控制单片机的运行速度。
3.禁用复位功能:可以将熔丝位设置为禁用复位功能,这样在特定条件下复位功能将无效。
4.锁定熔丝位:通过设置熔丝位可以对单片机的熔丝位进行锁定,一旦锁定则无法再对其进行修改。
四、熔丝位设置的注意事项:1.要仔细阅读单片机的数据手册,了解熔丝位的具体含义和设置范围。
AVR熔丝位配置的常见问题及解决办法
AVR熔丝位配置的常见问题及解决办法
郭祥军
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2006(000)006
【摘要】AVR系列单片机在仿真调试之前,首先必须对AVR的熔丝位和锁定位进行配置。
如果配置不当,则可能造成单片机不能正常工作,严重时可能导致单片机死锁。
因此,对单片机熔丝位和锁定位的正确配置显得尤为重要。
【总页数】3页(P72-74)
【作者】郭祥军
【作者单位】桂林电子工业学院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.千分尺零位校准时常见问题及解决办法 [J], 闪雷
2.基于反熔丝技术的FPGA配置芯片设计 [J], 曹正州;张艳飞;徐玉婷;江燕;孙静
3.兼有SRAM块和反熔丝逻辑的新型FPGA——一种有3584位双端口RAM的密集FPGA系列可以用来集成系统功能 [J], DaveBursky;方
4.AVR单片机芯片熔丝配置要点 [J], 陆武生;符娟;蒙权
5.关于AVR的熔丝的使用和设置 [J], 马潮
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AVR单片机熔丝位设置详解
1、BOD(Brown-out Detection 掉电检测电路
BODLEVEL(BOD电平选择: 1: 2.7V电平; 0:4.0V电平。
这需要根据芯片的工作电压来选择。
BODEN(BOD功能控制: 1:BOD功能禁止;0:BOD功能允许
使用方法:如果BODEN使能(复选框选中启动掉电检测,则检测电平由BODLEVEL决定。
一旦VCC下降到触发电平(2.7v或4.0v以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
2、复位启动时间选择
SUT 1/0: 当选择不同晶振时,SUT有所不同。
如果没有特殊要求,推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升(即SUT1:0;SUT0:1)。
3、CKSEL3/2/10: 时钟源选择。
芯片出厂的默认情况下,CKSEL3—0和SUT1、SYT0分别设置为“0001”和“10”,这样将使用芯片8mHz的内部晶振和使用最长的启动延时。
配置方法:
4、M103:设置ATmega103兼容方式工作。
出厂时的默认设置为0,即以ATmega103兼容模式下运行。
5、JTAGEN:如果不使用JTAG接口,应该将JTAGEN的状态设置为1,即禁止JTAG功能,JTAG 引脚用于I/O接口。
6、SPIEN:SPI方式下载数据和程序允许,默认状态为允许0,一般保留其状态。
7、WDTON:看门狗定时器始终开启。
默认情况下为“1”,即禁止看门狗定时器始终开启。
选择为“0”表示看门狗定时器始终开启,建议设置为0,防止程序跑飞。
8、EESAVE:EESAVE设置为“1”表示对芯片进行擦除操作时,flash和EEPROM中的数据一同擦除,设置为“0”表示擦除操作只对flash中的数据有效而对EEPROM无效。
芯片出厂的默认设置为“1”。
在实际应用中需要根据实际需要进行设置。
9、BOOTRST:决定上电启动时,第一条指令的地址。
默认状态为“1”,表示启动从0x0000开始执行;如果BOOTRST设置为“0”,启动时从BOOTLOADER的起始位置开始启动(BOOTLOADER 的首地址由BOOTSZ1和BOOTSZ0决定)。
BOOTSZ1和BOOTSZ0:这两位决定了BOOTLOADER的大小和起始地址。
默认状态为“00”表示4096字节,起始位置为0xF000。
BOOLOADER区大小配置:
注:在做熔丝位设置时要先确定“√”表示的是1还是0
搞错熔丝位,导致芯片死锁的恢复办法
说明:本贴仅具一般的参考性。
请有这方面的高手指正及投稿,让这个专题更加完整与专业。
当你改动了AVR的熔丝位配置,重新加电后,想再用ISP下载,提示:“进入编程模式失败”等,极有可能是你搞错了熔丝位,导致芯片不知道使用何种主频而无法正常工作(仅限于内部RC振荡的情况。
解决方法为:
1。
寄回给芯片服务商,让他们帮忙将芯片恢复
这是最省事,但是最费时间,最无可奈何的方法。
2。
使用编程器将芯片恢复到出厂状态
这个方法,需要你有编程器。
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振荡
中间的一个也没有选,然后是选下面的最后一个。
你有可能改过下面的ISP处的频率,如果你改成921.6Khz的话,在内部1M晶振时是不能下载的。
当然如果已经是改为外部晶振了则没有关系。
当你程序完全确定之后,出厂前,你需要对程序进行加密,如下界面。