熔丝位正确配置

合集下载

AVR第10讲复位熔丝位设置

AVR第10讲复位熔丝位设置

通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程熔丝位1.选择时钟源CKSEL0-3和启动时间SUT0, SUT12.掉电检测BODLEVEL,BODEN3.选择BOOT区大小BOOTRST,BOOTSZ0, BOOTSZ14.SPIEN=0,串行下载使能;JTAGEN=1,边界扫描功能禁用;OCDEN=1片上调试禁用5.EESAVE=1芯片擦出时EEPROM内容不保留6.CKOPT=1振荡器由CKSEL0-3决定如果不需要Boot Loader 功能,则整个Flash 都可以为应用代码所用。

Boot Loader 具有两套可以独立设置的Boot 锁定位。

用户可以灵活地选择不同的代码保护方式。

用户可以选择:• 保护整个Flash 区,不让MCU 进行软件升级• 不允许MCU 升级 Boot Loader Flash 区• 不允许MCU 升级应用Flash 区• 允许MCU 升级整个Flash 区ATmega16 有两个熔丝位字节。

Notes: 1. 在SPI 串行编程模式下SPIEN 熔丝位不可访问。

2. CKOPT 熔丝位功能由CKSEL 位设置决定,详见P23 “ 时钟源” 。

3. BOOTSZ1..0 默认值为最大Boot 大小,详见 P244Table 100。

4. 不论锁位与JTAGEN熔丝位设置为什么,产品出厂时不对OCDEN编程。

对OCDEN 熔丝位编程后会使能系统时钟的某些部分在所有的休眠模式下运行。

这会增加功耗。

5. 如果没有连接JTAG 接口,应尽可能取消JTAGEN 熔丝位的编程状态,以消除存在于JTAG 接口之TDO 引脚的静态电流。

熔丝位的状态不受芯片擦除命令的影响。

如果锁定位1(LB1) 被编程则熔丝位被锁定。

在编程锁定位前先编程熔丝位。

ATmega16 提供了6 个锁定位,根据其被编程(“0”) 还是没有被编程(“1”) 的情况可以获得Table 104 列出的附加性能。

AVR单片机熔丝位设置教程

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。

Atmega128熔丝位设置

Atmega128熔丝位设置

Atmega128熔丝位设置ZHJ初学A VR单片机时最复杂最不容易懂的是熔丝位的设置,一旦设置错了很麻烦。

(如果已设置错了,处理见《A VR熔丝位恢复方式ZHJ》)有了本文,告别设置的不知所措吧!本文是Atmega128单片机的设置界面,下载用的是A VR Studio 4.13,下载器用的是深圳研学电子公司的ISP下载器(不是打广告,个人觉得好用)闲话少话,逐条解释吧!1.Atmega103 Compatibility Mode不勾选。

Atmega103兼容模式。

如果你用Atmega128代替Atmega103才勾选。

2.Watchdog Timer always不勾选。

看门狗始终开启。

此位勾选后软件不能关闭看门狗(除非你不想让软件可暂停看门狗工作)3.On-Chip Debug Enabled不勾选。

片上调试使能。

一般用不上4.JTAG Interface Enaled一般勾选此条小心设置!!JTAG接口使能。

如果你用的是ISP下载,且现在将来不会用JTAG下载,且想用PF4~PF7四个引脚作普通IO口使用,才不勾选。

5.Serial program downloading (SPI) enabled一般勾选此条小心设置!!SPI下载使能。

在ISP下载模式下不能更改。

在JTAG模式下可以更改为不勾选,不勾选后不能使用ISP下载。

6.Preserve EEPROM memory through the Chi Erase cycle勾选。

保护EEPROM中的数据,下载FLASH时不会被破坏。

7.Boot Flash section size=512 words Boot start address=$fe08.Boot Flash section size=1024 words Boot start address=$fe09.Boot Flash section size=2048 words Boot start address=$fe010.Boot Flash section size=4096 words Boot start address=$fe0四选一。

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日。

ATMEGA128熔丝位配置手册.wps

ATMEGA128熔丝位配置手册.wps

1、打钩的表明用到的功能
2、0表示允许,1表示禁止
3、BODLEVEL = 1 掉电检测2.7V 0 为4V
4、BODEN = 1 掉电检测失效,这和BODLEVEL配合使用
5、A VR芯片加密以后仅仅是不能读取Flash和E2PROM的内容,也不能重新下载进去,下载完了以后要给芯片加密,再想往里头灌程序就灌不进去了。

必须先擦除后再重新灌进去。

6、SPIEN = 0 表示允许使用SPI口下载
7、JTAGEN = 0 表示允许使用JTAG口下载
8、一般情况下不要把RESET定义成普通的I/O口,因为ISP 下载时要先拉低是芯片先进入复位状态。

9、M103C = 1 和ATMEGA103不兼容的方式运行,ATMEGA128的方式运行
10、SUT 1:0 = 1 0 以最长的延时方式启动
11、CLKSEL 3:1 = 1111以外部高频石英晶振3-8MHz或8MHz 以上,CLKSEL 3:0 = 0001 内部1MHz的RC振荡JTAGEN = 1 禁止JTAG口
12、WDTON = 1 禁止看门狗
13、EESAVE = 1 执行擦除命令时连同EEPROM的内容同FLASH的内容一同擦除
14、BOOTRST = 1 程序执行时从地址0x0000开始执行
BOOTRST = 0 程序执行时从地址BOOTLOAD起始地
址区开始执行
15、BOOTSZ1和BOOTSZ0决定了BOOTLOAD的大小和起
地址,默认为00 大小为4096字,起始地址为0xF000
16、LB 2:1 = 11 没有使能存储器使能保护功能
17、BLB02 : BLB01 = 11
18、BLB12 : BLB11 = 11。

ATMEGA128熔丝位配置详解

ATMEGA128熔丝位配置详解

ATMEGA128熔丝位配置详解熔丝位配置2009-07-29 11:51在配置熔丝位时应特别注意,部分熔丝位(如OCDEN、JTAGEN和SPIEN等)的配置是不可逆的2009年04月17日星期五 11:28引言AVR系列单片机在仿真调试之前,首先必须对AVR的熔丝位和锁定位进行配置。

如果配置不当,则可能造成单片机不能正常工作,严重时可能导致单片机死锁。

因此,对单片机熔丝位和锁定位的正确配置显得尤为重要。

熔丝位是对单片机具体功能和工作模式的限定,其正确配置与否直接影响到单片机能否正常工作;锁定位是对单片机的程序和数据进行加密,以防止单片机中的程序和数据被读出或写入。

在进行配置时,一般先配置熔丝位,再配置锁定位。

锁定位又分为引导程序区锁定位和程序及数据存储器锁定位两类。

对引导程序区锁定位进行编程可以实现两套保护模式,即应用区保护模式和Boot Loader区保护模式;不同的编程配置可以实现不同的加密级别。

对程序及数据存储器锁定位进行编程可以禁止对并行和SPI/JTAG串行编程模式中Flash和EEPROM进一步编程,从而对程序和存储器中的数据进行保护。

由于引导程序锁定位和程序及数据存储器锁定位的配置具有可逆性,因此可根据不同的需要多次编程,灵活改变。

但是,在配置熔丝位时应特别注意,部分熔丝位(如OCDEN、JTAGEN和SPIEN等)的配置是不可逆的。

在采用单一编程下载情况下(例如只采用JTAG下载或者只采用AVRISP并行下载),一旦配置后将不可改变。

鉴于熔丝位配置的重要性,本文以AVR系列的ATmega128单片机为例,详细介绍熔丝位的配置以及在配置过程中常出现的一些问题,并给出相应的解决办法,成功地解决了因熔丝位配置不当而引起的单片机不能正常工作和死锁等一系列问题。

1 熔丝位的配置ATmega128的熔丝位共有3个字节:熔丝位扩展字节、熔丝位高字节和熔丝位低字节。

表1、表2和表3分别描述了所有熔丝位的功能、默认值以及它们是如何映射到熔丝位字节的。

AVR熔丝位配置

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单片机熔丝位设置方法

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单片机熔丝位设置_以及搞错熔丝位_导致芯片死锁的恢复办法

Mega8 熔丝位设置:内部8MHz 低位:d4/E4 高位:D9 FFA VR单片机熔丝位设置详解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”。

在实际应用中需要根据实际需要进行设置。

大话版ATMEGA16熔丝位设置

大话版ATMEGA16熔丝位设置

大话版ATMEGA16熔丝位设置1.BODLEVEL掉电复位门限电压BODLEVEL=1 门限为2.7V BODLEVEL=0门限为4.0V因为M16L可以工作在2.7v-5.5v所以触发电平可选2.7v或4.0v。

M16工作在4.5 - 5.5V,所以BODLEVEL=0。

BODLEVEL=1 不适用于ATmega162.BODEN掉电复位使能BODEN=0开启掉电检测BODEN=1 禁止3.ST[1,0]分位用内部晶振还是外部晶振两种情况①内部时②外部时4.CKSEL[3:0]与CKOPT片内时CKOPT都为1当CKOPT=0时,振荡器输出振幅较大,容易起振,适合干扰大的场合,以及使用晶振超过8M情况。

当CKOPT=1时,输出振幅小,这样可以减少电源消耗,对外干扰也小。

外部晶振>8M时CKSEL[3:0]=111x CKOPT=0外部晶振3~8M时CKSEL[3:0]=111x CKOPT=1外部晶振0.9~3M时CKSEL[3:0]=110x CKOPT=1外部晶振0.4~0.9M时CKSEL[3:0]=101x CKOPT=15.OCDEN片上调试使能位,6.JTAGENJTAGEN=0时开启JTAG调试为1禁止7.EESAVE执行擦除命令时是否保留EEPROM中内容,默认为1,表示擦除时和FLASH内容一起擦除,为0保留EEPROM内容8.BOOTRST复位入口选择1:程序从0x0000地址开始0:复位后从BOOT 区执行(参考BOOTSZ0/1)BOOTSZ1/0: 引导区程序大小及入口00:1024Word/0xc00;01:512Word/0xe00;10:256Word/0xf00;11:128Word/0xf80片内8M E4 D9 FF片外8M。

熔丝位讲解

熔丝位讲解

初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。

要想使MCU 功耗最小也要了解一些位的设定在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。

力求易懂、全面。

首先记住:1:未编程(检查框不打钩)0:编程(检查框打钩)建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。

看看 M16的出厂设置。

默认设置为:内部RC振荡8MHZ 6 CK + 65 ms CKSEL=0100 SUT=10高位:时钟及启动时间设置:BODLEVEL: BOD电平选择1:2.7V电平;0:4.0V电平BODEN: BOD功能控制1:BOD功能禁止;0:BOD功能允许使用方法:BOD(Brown-out Detection) 掉电检测电路,如果BODEN使能(编程)启动掉电检测,检测电平由BODLEVEL决定一旦VCC下降到触发电平(2.7v或4.0v)以下,MUC复位,当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。

注:1:因为M16L可以工作在2.7v-5.5v所以触发电平可选2.7v或4.0v。

M16工作在4.5 - 5.5V,所以 BODLEVEL=0。

BODLEVEL=1 不适用于ATmega16,SUT1/0: 复位启动时间选择当选择不同晶振时,SUT有所不同。

如果没有特殊要求推荐SUT1/0设置电源缓慢上升。

CKSEL3/0: 时钟源选择低位:BOOT区设置JTAGEN: JTAG允许1:JTAG禁止;0:JTAG允许OCDEN:OCD功能允许1:OCD功能禁止;0:OCD功OCDEN(On-chip Debug)片上调试使能位,JTAGEN:JTAG使能JTAG 测试访问端口。

使用方法:在JTAG调试时使能OCDEN JTAGEN两位(打勾),并保持所有的锁定位处于非锁定状态,在实际使用时为降低功耗不使能OCDEN JTAGEN,大约减少2-3mA的电流。

使用AVRStudio设置AVR熔丝位

使用AVRStudio设置AVR熔丝位

在左边,选择“ 在左边,选择“JTAG ICE”,在右边,选择 ,在右边, “Auto”(或具体的 (或具体的COM 口),点击“Connect” ),点击“ 点击 进行联机。 进行联机。
程序编程面板: 程序编程面板:
为了帮助保护您的隐私, PowerPoint 禁止自动下载此外部图片。若要下载并显示此图片,请单击消息栏中的 “选项 ”,然后单击 “启用外部内容 ”。
为了帮助保护您的隐私, PowerPoint 禁止自动下载此外部图片。若要下载并显示此图片,请单击消息栏中的 “选项 ”,然后单击“ 启用外部内容” 。
熔丝位设置面板: 熔丝位设置面板:
熔丝位设置面板: 熔丝位设置面板:
为了帮助保护您的隐私, PowerPoint 禁止自动下载此外部图片。若要下载并显示此图片,请单击消息栏中的 “选项 ”,然后单击“ 启用外部内容 ”。
配置熔丝位有一定的危险性, ● 配置熔丝位有一定的危险性, 可能锁死芯片, 可能锁死芯片,在不知道具体在做 什么操作之前,请不要急于动手。 什么操作之前,请不要急于动手。 熔丝位状态显示框, ● 熔丝位状态显示框,显示芯片 的各个熔丝位的详细状况, 的各个熔丝位的详细状况,AVR的 的 熔丝位打勾表示0,表示启用该选项; 熔丝位打勾表示 ,表示启用该选项; 取消表示1,表示不启用该选项, 取消表示 ,表示不启用该选项,需 要注意。 要注意。 选项选中时, ● Auto Verity 选项选中时,程序 会自己进行校验,建议选中。 会自己进行校验,建议选中。 Smart Warning选项选中时,在对 选项选中时, 选项选中时 一些特殊的具有一定危险性的熔丝 位进行编程时会弹出警告信息, 位进行编程时会弹出警告信息,建 议选中。 议选中。 ● Program、Verify和Read分别 、 和 分别 对应编程、校验和读取, 对应编程、校验和读取,正确的配 置熔丝的方法是先读取, 置熔丝的方法是先读取,先后修改 需要修改的地方,再编程写回。 需要修改的地方,再编程写回。在 Auto Verity选项选中时无需再点 选项选中时无需再点 Verify按钮进行校验。 按钮进行校验。 按钮进行校验

熔丝位使用说明

熔丝位使用说明

熔丝低位:熔丝高位:BODLEVEL OCDENBODEN JIAGENSUT1 SPIENSUT0 CKOPTCKSEL3 EESA VECKSEL2 BOOTSZ1CKSEL1 BOOTSZ0CKSEL0 1 BOOTRST说明:使用ISP串行方式下载编程时,应配置SPIEN熔丝位为0,芯片出厂时SPIEN位的状态默认为0,表示允许ISP串行方式下载编程。

只有该位处于编程状态0是才可以通过A VR的ISP进行ISP的下载编程,如果该位处于编程状态1后,ISP串行方式下载数据立即被禁止,此时只有通过并口方式或JTAG编程方式才能将SPIEN的状态重新设置为0来开放ISP的编程方式。

所有有时芯片在ISp方式下不能写入,不要认为芯片已坏,可以按照以上方法开放ISp编程。

通常情况下,应保持SPIEN的状态为0,允许ISP编程不会影响其他引脚的I/O 功能,只要在硬件电路设计时,注意ISP接口与其接口器件进行必要的隔离,如使用串接电阻或断路跳线等。

当不需要使用JTAG接口编程(或实时在线仿真调试)方式,且JTAG接口引脚需要作为I/O 口使用时,最好设置熔丝位JTAGEN的状态为1。

芯片出厂时JTAGEN的状态默认为0,表示允许JTAG接口,JTAG引脚不能作为I/O口使用。

所以新的芯片如果需要用到JTAG引脚作I/O口,许设置JTAGEN为1,当JTAGEN的状态设置为1后JTAG接口立即被禁止,此时只有通过并行方式或ISP编程方式才能将JTAG重新设置为0开放JTAG。

使用内部有RC振荡器的A VR芯片时,要特别注意熔丝位CKSEL的配置。

再设计中没有使用外部振荡器zhendangqi(或某种特定的振荡器)作为系统的时钟源时,千万不要误操作或错误的吧CKSEL熔丝位配置成使用外部振荡器(或其他不同类型的振荡源)。

一旦这种情况发生,使用ISP编程方式则无法再对芯片操作了(因为ISP方式需要芯片的系统时钟工作并产生定时控制信号),芯片看上去坏了。

AVR 熔丝位配置说明

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熔丝位的建议—JTAGICE,JTAG,AVR,AVR单片机,熔丝位设置,熔丝位,下载器,编程器,STK5

马潮老师关于正确配置AVR熔丝位的建议—JTAGICE,JTAG,AVR,AVR单片机,熔丝位设置,熔丝位,下载器,编程器,STK5
0010:2.0M
0011:4.0M
0100:8.0M
----------------
CKSEL3/0=0101-1000:外部RC振荡,CKOPT=0:允许芯片内部XTAL1管脚对GND接一个36PF电容;CKOPT=1:禁止该电容
(11)使用支持IAP的AVR芯片时,如果你不使用BOOTLOADER功能,注意不要把熔丝位BOOTRST设置为“0”状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“1”。关于BOOTRST的配置以及BOOTLOADER程序的设计与IAP的应用请参考本章相关内容。
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:禁止该电容
***************************************
BLB12/11: 引导区指令位选择 11
11:SPM和LPM指令都允许执行
10:SPM指令禁止写引导区
01:程序区LPM指令禁止读取引导区内容;如果中断向量定义在程序区,则禁止该中断在引导区执行。
二、mega8熔丝位:1:未编程(不选中)0:编程(选中)
***************************************
熔丝位 说明 缺省设置
***************************************

atmega128熔丝位配置

atmega128熔丝位配置

这几天一直在搞AVR ATmega128的程序,显示最基本的功能,但是因为用到了PORTG端口,而这个端口在ATmega128中是放在内部SRAM中的,是为了与ATmega103兼容,出厂时默认是不可以访问的。

因为这个问题,耽搁了几天。

现在看到如下文章,终于“柳暗花明”了。

转载于此,为记!对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。

下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。

(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”,处于无锁定状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注:不同AVR的熔丝也不同,使用前必须仔细查看芯片手册。
要重视手册学习,不仅是掌握如何使用,也是从根本上认识和掌握原理和结构。对于硬件工程师来将,数据手册是真正的“经书”,其它都是“修练经验”。不熟读“经书”,你无法修炼成“仙”的。这也是《M128》、《M8》的目的之一!
(3)JTAGEN。如果不使用JTAG接口,应将JTAGEN的状态设置为“1”,即禁止JTAG,JTAG引脚用于I/O口。
(4)SPIEN。SPI方式下载数据和程序允许,默认状态为允许“0”。一般保留其状态。
(5)WDTON。看门狗的定时器始终开启。WDTON默认为“1”,即禁止看门狗的定时器始终开启。如果该位设置为“0”后,看门狗的定时器就会始终打开,不能被内部程序控制了,这是为了防止当程序跑飞时,未知代码通过写寄存器将看门狗定时器关断而设计的(尽管关断看门狗定时器需要特殊的方式,但它保证了更高的可靠行)。
(9)一般情况下不要设置熔丝位把RESET引脚定义成I/O使用(如设置ATmega8熔丝位RSTDISBL的状态为“0”),这样会造成ISP的下载编程无法进行,因为在进入ISP方式编程时前,需要将RESET引脚拉低,使芯片先进入复位状态。
(10)使用内部有RC振荡器的AVR芯片时,要特别注意熔丝位CKSEL的配置。一般情况下,芯片出厂时CKSEL位的状态默认为使用内部1MHz的RC振荡器作为系统的时钟源。如果你使用了外部振荡器作为系统的时钟源时,不要忘记首先正确配置CKSEL熔丝位,否则你整个系统的定时都会出现问题。而当在你的设计中没有使用外部振荡器(或某钟特定的振荡源)作为系统的时钟源时,千万不要误操作或错误的把CKSEL熔丝位配置成使用外部振荡器(或其它不同类型的振荡源)。一旦这种情况产生,使用ISP编程方式则无法对芯片操作了(因为ISP方式需要芯片的系统时钟工作并产生定时控制信号),芯片看上去“坏了”。此时只有使用取下芯片使用并行编程方式,或使用JTAG方式(如果JTAG为允许时且目标板上留有JTAG接口)来解救了。另一种解救的方式是:尝试在芯片的晶体引脚上临时人为的叠加上不同类型的振荡时钟信号,一旦ISP可以对芯片操作,立即将CKSEL配置成使用内部1MHz的RC振荡器作为系统的时钟源,然后再根据实际情况重新正确配置CKSEL。
(7)BOOTRST。决定芯片上电起动时,第一条执行指令的地址。默认状态为“1”,表示起动时从0x0000开始执行。如果BOOTRST设置为“0”,则起动时从BOOTLOADER区的起始地址处开始执行程序。BOOTLOADER区的大小由BOOTSZ1和BOOTSZ0决定,因此其首地址也随之变化。
(2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。
(3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read->fuse bits”读取芯片中熔丝位实际状态后,再使用“all” 选项。
正确配置AVR熔丝位
对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。
(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0””。
Hale Waihona Puke (11)使用支持IAP的AVR芯片时,如果你不使用BOOTLOADER功能,注意不要把熔丝位BOOTRST设置为“0”状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“1”。关于BOOTRST的配置以及BOOTLOADER程序的设计与IAP的应用请参考本章相关内容。
(6)EESAVE。执行擦除命令时是否保留E2PROM中的内容,默认状态为“1”,表示E2PROM中的内容同Flash中的内容一同擦除。如果该位设置为“0”,对程序进行下载前的擦除命令只会对FLASH代码区有效,而对E2PROM区无效。这对于希望在系统更新程序时,需要保留E2PROM中数据的情况下是十分有用的。
(2)CLKSEL0..3。CLKSEL0、CLKSEL1、CLKSEL2、CLKSEL3用于选择系统的时钟源。有五种不同类型的时钟源可供选择(每种类型还有细的划分)。芯片出厂时的默认情况为CLKSEL3..0和SUT1..0分别是“0001”和“10”。即使用内部1MHz RC振荡器,使用最长的启动延时。这保证了无论外部振荡电路是否工作,都可以进行最初的ISP下载。对于CLKSEL3..0熔丝位的改写需要十分慎重,因为一旦改写错误,会造成芯片无法启动。
(4)新的AVR芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个熔丝位的状态记录备案。
(5)AVR芯片加密以后仅仅是不能读取芯片内部Flash和E2PROM中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯片擦除命令是将Flash和E2PROM中的数据清除,并同时将两位锁定位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。
(8)当你的系统中,不使用JTAG接口下载编程或实时在线仿真调试,且JTAG接口的引脚需要作为I/O口使用时,必须设置熔丝位JTAGEN的状态为“1”。芯片出厂时JTAGEN的状态默认为“0”,表示允许JTAG接口,JTAG的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“1”后,JTAG接口立即被禁止,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“0”,开放JTAG。
(6)正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。
(7)使用ISP串行方式下载编程时,应配置SPIEN熔丝位为“0”。芯片出厂时SPIEN位的状态默认为“0”,表示允许ISP串行方式下载数据。只有该位处于编程状态“0”,才可以通过AVR的SPI口进行ISP下载,如果该位被配置为未编程“1”后,ISP串行方式下载数据立即被禁止,此时只能通过并行方式或JTAG编程方式才能将SPIEN的状态重新设置为“0”,开放ISP。通常情况下,应保持SPIEN的状态为“0”,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电路设计时,注意ISP接口与其并接的器件进行必要的隔离,如使用串接电阻或断路跳线等。
ATmega128中重要熔丝位的配置
(1)熔丝位M103C。M103C的配置将设定ATmega128是以ATmega103兼容方式工作运行还是以ATmega128本身的方式工作运行。ATmega128在出厂时M103C默认状态为“0”,即默认以ATmega103兼容方式工作。当用户系统设计使芯片以ATmega128方式工作时,应首先将M103C的状态配置为“1”。
(8)BOOTSZ1和BOOTSZ0:这两位确定了BOOTLOADER区的大小以及其起始的首地址。默认的状态为“00”,表示BOOTLOADER区为4096字,起始首地址为0xF000。
(9)推荐用户使用ISP方式配置熔丝位。配置工具选用BASCOM-AVR(网上下载试用版,它对ISP下载无限制),和STK200/STK300兼容的下载电缆(见第四章内容)。
相关文档
最新文档