AVR单片机熔丝设置总结-Y20100409
AVR单片机熔丝位设置教程
0表示已编程,1表示未编程,未选中熔丝低位BODLEVEL设置BOD电平1(2.7V),0(4V)因为M16L可以工作在2.7v-5.5v所以触BODEN BOD功能(电源检测)1(禁止),0(允许)SUT1复位启动时间选择SUT0CKSEL3时钟源选择CKSEL2时钟源选择CKSEL1时钟源选择CKSEL0时钟源选择熔丝高位OCDEN OCD功能允许1:OCD功能禁止;0:OCD功JTAGEN JTAG允许1:JTAG禁止; 0:JTAG允许NACKOPT选择这两种放大器模式 CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出EESAVE烧录时EEPROM数据保留 1:不保留;0:保留BOOTSZ1引导区程序大小及入口 00: 1024Word/0xc00;BOOTSZ001: 512Word/0xe00;10: 256Word/0xf00;11: 128Word/0xf80BOOTRST 复位入口选择 1:程序从0x0000地址开始 0:复位后从BOOT区执行(参考BOOTSZ0/1)BOD功能:作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写熔丝位的配置,启用AVR的对于5V系统,设置BOD电平为4.0V;对于3V系统,设置BOD电平为2.7V。
然后允许BOD检测。
这样,一旦AVR的供电电压低于BOD电平,AVR进入RESET(不执行程序了)。
而当电源恢复到BOD电平以上,AVR才正式开始从头执行程序。
SPIEN: SPI下载允许 1:SPI下载禁止;0:SPI下载使能当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。
这种模式适合于噪声环境,以及需要通过XTAL2 驱动第英文中文On-Chip Debug Enabled 片内调试使能JTAG Interface Enabled JTAG 接口使能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 外部晶体/陶瓷振荡器高频时钟总表时钟源 启动延时 熔丝外部时钟 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振荡1MHZ1 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 + 4.1 ms CKSEL=1010 SUT=00 低频石英/陶瓷振荡器(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=1110 SUT=00 高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 65 ms CKSEL=1110 SUT=01 高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 0 ms CKSEL=1110 SUT=10高频石英/陶瓷振荡器(3.0-8.0MHZ) 1K CK + 4.1 ms CKSEL=1110 SUT=11 高频石英/陶瓷振荡器(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=1111 SUT=10 高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL=1111 SUT=11 高频石英/陶瓷振荡器(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=1111 SUT=10 高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL=1111 SUT=11在2.7v-5.5v所以触发电平可选2.7v或4.0v。
AVR单片机熔丝位(Fuse)配置说明
AVR单片机熔丝位(Fuse)配置说明(2008-07-15 14:15:05)英文中文 On-Chip Debug Enabled片内调试使能JTAG Interface Enabled JTAG 接口使能Serial program downloading (SPI) enabled 串行编程下载(SPI) 使能 (ISP下载时该位不能修改)Preserve EEPROM memory throughthe 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=xxxxV;掉电检测的电平为 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外部晶体/陶瓷振荡器高频注:以上中文是对照 AVR的中、英文版本数据手册而翻译。
尽量按照了官方的中文术语。
应用举例:比如我们想使用片内的RC振荡(即不需要接晶振),可以选择选择下面三者之一: 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]。
AVR单片机常用熔丝位说明
BOD,掉电检测功能。比如4.3V,当检测到电源低于4.3V时,单 片机复位。 AVR是宽电压工作的芯片,当电压跌至2.5V,系统程序还能工作 。这时有2个可怕的现象可能出现: 1.外围芯片工作已经混乱,AVR读到的东西不正确,造成程序的 执行发生逻辑错误(不是AVR本身的原因)。 2.当电源低到临界点,如2.4V时,并且在此忽上忽下,AVR本身 的程序执行也不正常,取指令、读数据都可能发生错误,或程 序乱飞、不稳定(AVR本身的原因,实际任何的单片机都是这样 的),非常容易造成EEPROM、FALSH的破坏。
0010:校准的内部RC振荡器
精度不高,一般不使用
0000:外部时钟
一般不用
0:PC6为普通引脚
慎点,PC6默认是复位引脚C6为复位引脚
GPIO用,同时,无法再ISP烧写程序,因为无法复位。
0:使能片上调试系统
1:部使能片上调试系统
片上调试,即后面的BOOTLoader功能。
用于设置复位后从哪一段程序存储区内启动,主要用于boot功 能。Boot区存储一块引导程序,开启boot功能,可以通过串口 在线给单片机更新程序,而不用依赖ISP
Boot Loader锁死功能 ,针对Boot Loader区域
Boot Loader锁死功能 ,针对应用区域
锁死以后不能再使用ISP等方式进行程序烧写或读取,但可以通 过专用烧写器接触锁定,主要用于加密防抄
AVR单片机常用熔丝位说明(以Atmega88为例)
配置说明
备注
0:时钟8分频
设置系统时钟的分频书,比如,电路晶振为8M,使能分频后,
1:时钟不分频
系统晶振就是1M
0:系统时钟输出(PB0)
1:不输出,PB0是普通IO
AVR熔丝位配置
AVR系列单片机在仿真调试之前,首先必须对AVR的熔丝位和锁定位进行配置。
如果配置不当,则可能造成单片机不能正常工作,严重时可能导致单片机死锁。
因此,对单片机熔丝位和锁定位的正确配置显得尤为重要。
熔丝位是对单片机具体功能和工作模式的限定,其正确配置与否直接影响到单片机能否正常工作;锁定位是对单片机的程序和数据进行加密,以防止单片机中的程序和数据被读出或写入。
在进行配置时,一般先配置熔丝位,再配置锁定位。
锁定位又分为引导程序区锁定位和程序及数据存储器锁定位两类。
对引导程序区锁定位进行编程可以实现两套保护模式,即应用区保护模式和Boot Loader 区保护模式;不同的编程配置可以实现不同的加密级别。
对程序及数据存储器锁定位进行编程可以禁止对并行和SPI/JTAG串行编程模式中Flash和EEPROM进一步编程,从而对程序和存储器中的数据进行保护。
由于引导程序锁定位和程序及数据存储器锁定位的配置具有可逆性,因此可根据不同的需要多次编程,灵活改变。
但是,在配置熔丝位时应特别注意,部分熔丝位(如OCDEN、JTAGEN和SPIEN等)的配置是不可逆的。
在采用单一编程下载情况下(例如只采用JTAG下载或者只采用AVRISP并行下载),一旦配置后将不可改变。
鉴于熔丝位配置的重要性,本文以AVR系列的ATmega128单片机为例,详细介绍熔丝位的配置以及在配置过程中常出现的一些问题,并给出相应的解决办法,成功地解决了因熔丝位配置不当而引起的单片机不能正常工作和死锁等一系列问题。
1 熔丝位的配置ATmega128的熔丝位共有3个字节:熔丝位扩展字节、熔丝位高字节和熔丝位低字节。
表1、表2和表3分别描述了所有熔丝位的功能、默认值以及它们是如何映射到熔丝位字节的。
如果熔丝位被编程,则返回值为0。
表中0代表编程,1代表未编程。
表1 熔丝位扩展字节表2 熔丝位高字节表3 熔丝位低字节2 熔丝位配置常见问题(1) ATmega128部分引脚功能不可用这是一个典型的ATmega103兼容模式熔丝位没有正确配置的问题。
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说明:将单片机的时钟源设置为外部时钟信号,外部时钟信号的频率必须在单片机规格书中规定的范围内。
AVR熔丝位详细设置
AVR熔丝位的详细设置
AVR具有熔丝位设置功能,可灵活应用,但增加了其应用难度。
熔丝位设置不对,将会锁死AVR,故烧写之前要详细阅读相关文档。
各种型号AVR芯片的熔丝位设置不完全相同,一定要阅读芯片手册。
若没必要设置熔丝位,可默认出厂设置。
ATMega162出厂晶振频率设置为8MHz,若CKDIV8=1(不选择,即为8分频),则为1MHz。
其中,强调的是:选择为0,表编程;不选择为1,表不编程。
千万记住别搞反了。
这里以ATMega162芯片为例,介绍双龙的“SLISP”AVRISP下载软件。
其软件界面的设置操作如下:
先设配置熔丝,再烧写。
其步骤为->->
->。
这里不介绍加密等其他设置。
外接16MHz晶振,ATMega162的熔丝位设置为:CKDIV8=1,CKOUT=1,
SUT1:0=11,CKSEL3:0=1111。
如下图所示设置,可点击“设置导航”按钮,进入下一个框,这里不介绍。
熔丝位设置的分析为:
(1)CKDIV8=1,不进行8分频;
(2)CKSEL3:0用来选择时钟及其频率范围,如下表。
若为外接石英晶振,则在1111~1000范围。
而频率范围要参考下个表,若大于8MHz,则CKSEL3:1=111。
(3)用CKSEL0及SUT1:0来设置启动时间,如下表。
补充:(时钟源介绍)。
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 熔丝位配置说明
AVR Studio是ATMEL指定用于开发AVR MCU的官方软件,其编程功能最为强大。
下面介绍使用AVRStudio烧写程序及熔丝快速入门。
● 使用AVRISP方式烧写程序及配置熔丝位对软硬件进行初始配置,并正确设备连接,就可使用AVRISP进行联机了。
打开AVRStudio,点击主窗口中的图标前面标有Con的那个图标。
出现如下图画面:(点击图片放大)在左边,选择“STK500 or AVRISP”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。
正常联机后,将弹出如下窗口:(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读命令,此命令可以读出未加密芯片内的程序,自动弹出一个对话框提示保存。
●EEPROM下载区,和Flash 下载区类似,格式为.hex、.e90和.eep,此功能用于下载比较多的需要存在EEPROM中的内容时使用。
Program、Verify、Read于Flash下载区有对应EEPROM的同样的功能,不在赘述。
●状态指示区,这里显示目前的操作状态。
(2)熔丝位设置面板:(点击图片放大)●配置熔丝位有一定的危险性,可能锁死芯片,在不知道具体在做什么操作之前,请不要急于动手。
浅谈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单片机的熔丝与解锁
AVR 单片机的熔丝与解锁
AVR 单片机的熔丝位配置是AVR 单片机初学者很容易出错的地方,其实只要注意一些事项,还是能够尽量避免单片机被锁死,即使单片机被锁死,也可以使用一些方法解锁,本文讲述我在刚开始接触AVR 单片机时熔
丝位配置出现的一些问题。
​​
1、AVR 单片机的熔丝位是比较独到的特征,可以控制系统的时钟,JTAG 调试、看门狗、芯片加密等等。
图1 是progisp 软件,对于初学者来说,对熔丝位不熟悉,可以先将2 处的编程熔丝对勾去掉,这样​在编程的时候,就不会对熔丝位进行编程,单片机出厂的默认设置就可以使用。
点击1 处进入熔丝位配置界面。
图1
图2 为位配置方式,这里的每一位都不能随意点击,尤其是熔丝低位控制时钟的地方,一般来说,直接对位进行配置并不安全,一定要确定是自己想要的熔丝配置才可以,如果不小心动了其中的熔丝位,可以通过读出或者默认,恢复熔丝配置,这样下载程序之后,比较安全。
关于AVR的熔丝的使用和设置
芯 片 擦 除 命 令 并 不 改 变其 它 熔 丝 位 的 状 态 。 6 正 确 的 操 作 程 序 是 : 芯 片 无 锁 定 状 态 下 , 栽 运 行 代 、 在 下
码 和 数 据 , 置 相 关 的 熔 丝 位 , 后 配 置 芯 片 的 锁 定 位 。芯 片 被 配 最
不 会 使 用和 误 操 作 , 地 给 出 参 考 。 对 特
同 时 。 正 版 智 能 卡 中 。“ 丝 ”也 作 为 一 种 保 证 单 片 机 ・ 在 熔 安 全 性 。 止 程 序 被 非 法 读 出 而 导 致 芯 片 被 破 解 的 手 段 存 在 一 防
着 。因此 。 解 芯 片 的熔 丝加 密 位 也就 成 为 7黑 客攻 击 智能 破
易 掌 握 。 下 面 给 出对 A R 熔 丝 位 的 配 置 操 作 时 的 一 些要 点 和 V 需要 注 意 的 相 关 事 项 。
1 在 A R 的 器 件 手 册 中 . 对 熔 丝 住 使 用 已 编 程 、 V
( rg a P o r mme ) 未 编 程 ( n rg a d 和 U p o r mme 定 义 熔 丝 住 的 状 d)
’
・ ・
一
- ● ’
1 -
.
.
-
-
t
-
・
’
,
,
●
-
●
-
,
,
t
-
,
,
-
.
t
-
.
・ .
’
-
’
’
-
.
关 于 AV 的 熔 丝 的 使 用 和 设 置 R
看 到 这 么 多 的 人 对 AVR 的 熔 丝 位
AVR单片机熔丝位锁定位设置
AVR单片机熔丝位锁定位设置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”,处于无锁定状态。
但芯片擦除命令并不改变其它熔丝位的状态。
AVR熔丝位配置详解
AVR熔丝位配置详解引言AVR是一款常见的微控制器系列,广泛应用于嵌入式系统开发。
AVR熔丝位(Fuse Bits)是用来配置微控制器的专用寄存器,可以控制微控制器的一些重要功能和特性。
本文将详细介绍AVR熔丝位的配置方法和各个熔丝位的含义。
熔丝位概述熔丝位通常由一系列位组成,每个位都代表一种功能或特性。
通过配置熔丝位,我们可以选择开启或关闭特定的功能或特性。
配置熔丝位是在编译和上传代码之前进行的,因此它们对于硬件设置至关重要。
熔丝位配置方法熔丝位配置方法因不同型号的AVR微控制器而异,通常有以下几种方式:1. 使用烧录器软件一些烧录器软件提供了图形界面以便用户配置熔丝位。
用户只需选择相应的选项,然后点击配置按钮即可自动将配置写入到微控制器中。
这种方法简单易用,适合初学者或不熟悉寄存器操作的用户。
2. 使用命令行工具对于高级用户或需要批量配置多个微控制器的情况,可以使用命令行工具进行熔丝位配置。
用户需要编写一条命令,指定相关的参数和选项,然后通过命令行工具执行该命令。
这种方法比较灵活,可以自动化配置过程。
3. 使用编程器接口在一些特殊情况下,用户可能需要直接通过编程器接口来配置熔丝位。
这种方法比较复杂,需要用户熟悉编程器接口的相关操作和命令。
一般建议初学者不要使用这种方法,以免不必要的麻烦。
常见熔丝位配置AVR微控制器的不同型号和系列有不同的熔丝位配置选项。
下面是一些常见的熔丝位配置及其含义:1. 高位熔丝位 - CKSEL[3:0]这些位用于配置系统时钟源和分频器。
通过这些位的配置,可以选择使用内部RC振荡器、外部晶体振荡器还是其他外部时钟源作为系统时钟,并选择分频器的分频比。
2. 高位熔丝位 - BODLEVEL[2:0]这些位用于配置低压复位(Brown-out Reset)的阈值电压。
通过这些位的配置,可以设置复位器的阈值电压,以便在系统电压低于设定值时触发复位。
3. 高位熔丝位 - BOOTSZ[1:0]这些位用于配置引导区(Bootloader)的大小。
AVR单片机熔丝位详解
AVR单片机熔丝位详解AVR的功能很多,其体现在可以选择片内、片外多种时钟源、自带看门狗电路、自带程序加密等功能上。
而这些功能的选择和设定是通过片内叫做“熔丝位”的状态标志来设置的。
如果把AVR单片机里你编写的程序比作电脑运行的操作系统和应用软件的话,熔丝位就相当于电脑主板的BIOS设置了。
在一些AVR用的ISP编程软件里,你可以访问到熔丝位。
avr 单片机 CKSEL[3:0]正是熔丝位设置中的一部分,从字面上就能看出,大致是clock select(时钟源选择)的意思,共有(Bit3~Bit0)四位,通过设置这四位的状态,可以决定单片机将使用何种振荡源作为时钟。
以Mega8单片机为例,CKSEL位的设置通常会伴随CKOPT位一起进行。
下面是在网上搜索到的注释,供你参考:CKSEL3/0=0000:外部时钟,CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;CKOPT=1:禁止该电容----------------CKSEL3/0=0001-0100:采用内部RC振荡作为时钟源,其具体震荡频率是:0001:1.0M0010:2.0M0011:4.0M0100:8.0M这里CKOPT只能设置为1----------------CKSEL3/0=0101-1000:采用外部RC振荡作为时钟源,CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;CKOPT=1:禁止该电容根据震荡频率范围,设置相应的熔丝位 0101:<0.9M 0110:0.9-3.0M 0111:3.0-8.0M 1000:8.0-12.0M----------------CKSEL3/0=1001:采用外部时钟信号作为时钟源,CKOPT=0:允许芯片内部XTAL1/XTAL2管脚对GND各接一个36PF电容;CKOPT=1:禁止该电容----------------CKSEL3/0=1010-1111:采用外部晶振,陶瓷振荡子作为时钟源,CKOPT=0:高幅度振荡输出(XTAL1引脚将输出一个大幅度的震荡信号,用于某些情况下供给其他处理器当做时钟源,以达到时钟同步);CKOPT=1:低幅度振荡输出(XTAL1引脚输出低幅度的震荡信号,用以省电、减少干扰);并依据晶体的震荡频率范围,设置相应的熔丝位101X:0.4-0.9M110X:0.9-3.0M111X:3.0-8.0M。
AVR单片机的熔丝位说明.
注意:对于所有的熔丝位, “1” 表示未编程, “0” 代表已编程。
一、 CKSEL3..0、CKOPT 、SUT1.0:用于设置系统时钟✓ CKSEL3..0 --- 时钟源模式选择。
✓ SUT1.0 --- 复位启动时间选择。
1、如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
2、对应时钟源模式的不同,SUT 的设置也不同,详情看下文说明。
✓ CKOPT --- 选择放大器模式。
0对应高幅度振荡输出;1对应低幅度振荡输出。
当CKOPT 被编程时,振荡器在输出引脚产生满幅度的振荡,这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽;当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。
其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。
对于谐振器,CKOPT 未编程时的最大频率为8 MHz ,CKOPT 编程时为16 MHz 。
1、当用外部晶体/ 陶瓷振荡器(1CKOPT 和CKSEL3..1设置晶体振荡器工作模式XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,如左图所示,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。
C1和C2 的数值要一样,不管使用的是晶体还是谐振器。
最佳的数值与使用的晶体或谐振器有关,还与杂散电容和环境的电磁噪声有关。
表1-1给出了不同模式对应的频率范围及针对晶体选择电容的一些指南。
对于陶瓷谐振器,应该使用厂商提供的数值。
表1-1:振荡器工作模式(1 SUT1.0和CKSEL0设置选择启动时间表1-2:晶体振荡器时钟选项对应的启动时间表2、当用外部低频振荡器为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置“1001”以选择低频晶体振荡器。
晶体的连接方式和用上面外部晶振的一样。
通过对熔丝位CKOPT 的编程,可以使能XTAL1 和XTAL2 的内部电容,从而去除外部电容。
AVR单片机熔丝位设置,以及搞错熔丝位,导致芯片死锁的恢复办.
AVR单片机熔丝位设置详解1 、BOD(Brow n-out Detectio n 掉电检测电路BODLEVEL(BOD|平选择:1: 2.7V 电平;0 : 4.0V电平。
这需要根据芯片的工作电压来选择。
BODEN(BO功能控制: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:时钟源选择。
芯片出厂的默认情况下,CKSEL—0和SUT1 SYT0分别设置为“0001配置方法: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中的数据有效而对EEPRO无效。
芯片出厂的默认设置为“ 1”。
在实际应用中需要根据实际需要进行设置。
9、BOOTRST决定上电启动时,第一条指令的地址。
默认状态为“1”,表示启动从0x0000开始执行;如果BOOTRS设置为“ 0”,启动时从BOOTLOADE的起始位置开始启动(BOOTLOADER 的首地址由BOOTSZ和BOOTSZ决定)。
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单片机解锁器的制作以及熔丝配置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单片机中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)上电启动地址选择
5.有关系统时钟源的选择熔丝位
(1)系统时钟选择
注释(2):当CKOPT=0时,振荡器的输出振幅较大,适用于干扰大的场合;反之,振荡器的输出振幅较小,可以降低功耗,对外电磁辐射也较小;
注释(3):CKOPT默认状态为“1”。
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日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20100409 详细分析了关于A VR系列单片机与51不同点熔丝初始化设置问题关于mega16熔丝初始化设置见A Tmega16资料.PDF文档P247
第一步时钟源及启动时间的设置
设置画面如下图所示:
201004111 2:41 TOP2004对AVR芯片读写时放置位置图
MEGA8 放在TOP2004中的位置同A T89c2051一样。
芯片缺口端压至插座紧固手柄方向最前端20100413 21:40
20100413 21:40
通过两天的研究关于怎样应用手中现有的ME300的编程/仿真器的资源来实验Mega16芯片程序下载测试的工作。
第一步通过TOP2004完成的Mega16程序的下载并构建Mega16最小系统进行测试成功。
(熔丝位置默认)
第二步仔细阅读ME300说明书发现不支持Mega16通过厂家联系也不行。
网上发现有Mega16转51的PCB电路转接板购。
在仔细研究Mega16与51的管脚排列后利用面包板自已手焊转接板。
如下图所示实物。
通过TOP2004下Mega16中程序然后接上ME300板上,利用该板的资源进行程序运行测试结果OK。
第三步尝试在ME300中向Mega16芯片写程序,因软件中没有支持Mega16的选项所以暂时用A Tmega8515或A T89c51代替。
结果写完程序后无法正常运行。
失败
第四步伟纳网站上发现ME300程序有更新版本V6.05 且该版本中有支持Mega16的器件选项。
后安装该软件发现如果向Mega16中写程序需通过ISP口与Mega16连接。
构建Mega16支持ISP下载程序的最小系统,连接测试读写程序正常。
后利用自制的Mega16转51的转接板搭上芯片,然后再将转接板搭于me300中测试下载程序读写程序正常。