AVR单片机熔丝位的设置和详细拯救方法

上传人:豆浆 文档编号:36328913 上传时间:2018-03-27 格式:PDF 页数:7 大小:538.94KB
返回 下载 相关 举报
AVR单片机熔丝位的设置和详细拯救方法_第1页
第1页 / 共7页
AVR单片机熔丝位的设置和详细拯救方法_第2页
第2页 / 共7页
AVR单片机熔丝位的设置和详细拯救方法_第3页
第3页 / 共7页
AVR单片机熔丝位的设置和详细拯救方法_第4页
第4页 / 共7页
AVR单片机熔丝位的设置和详细拯救方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《AVR单片机熔丝位的设置和详细拯救方法》由会员分享,可在线阅读,更多相关《AVR单片机熔丝位的设置和详细拯救方法(7页珍藏版)》请在金锄头文库上搜索。

1、21 单片机开发实验室 EMail:zrp_ QQ:978710555 电话:13189775550 http:/ 第 1 页 ,共 7 页 关于关于 AVRAVR 单片机熔丝位单片机熔丝位的的设置设置和拯救方法和拯救方法大全大全 AVR 单片机单片机熔丝熔丝位位的设置的设置和和详细的详细的拯救方法拯救方法 编辑作者: ZRP 2007-10-1 于深圳 熔丝位是 ATMEL 公司 AVR 单片机比较独到的特征。在每一种型号的 AVR 单片机内部都有一些特定含义的熔丝位,其特性表现为多次擦写的 E PROM。用户通过配置(编程)这些熔丝位,可以固定地设置 AVR 的一些特性,参数以及 I/O

2、配置等,当然也包括对片内运行代码的锁定(加密)。 用户使用并行编程方式、ISP 编程方式、JTAG 编程方式都可以对 AVR 的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配置方式 (指人机界面) 也是不同的。 有的是通过直接填写熔丝位位值 (如: CVAVR、 PonyProg2000 和 SLISP等),有的是通过列出表格选择(如 AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单,但是需要用户在仔细查询操作,会引起一些意想不到的后果,如造成芯片无法正常运行,无法再次定入 ISP 编程模式等。建议用户对 AVR 的熔丝位进行配置时,选择用户表格选择方式界面的编程软件,

3、如 BASCOM-AVR。不过版主使用的是前者 PonyProg2000。 对 AVR 熔丝位的配置操作是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。看到这么多的人对 AVR 的熔丝位不会使用和误操作,结合本人的使用实践,给出以下方面的意见和参考。 下面给出对 AVR 熔丝位的配置操作时的一些要点和需要注意的相关事项以及相应的拯救方法。 (一)设置方法(一)设置方法 1.1.1 正确配置 AVR 熔丝位 对 AVR 熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对 AVR 熔丝位的配置操作时的一些要点和需要注意的相关事项。有关 ATmega128 熔丝位

4、的具体定义和功能请查看本书相关章节,在附录中将给出一个完整的汇总表。 (1)在 AVR 的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0”。 (2)在使用通过选择打钩“”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“”表示设置熔丝位状态为“0”还是为“1”。 (3)使用 CVAVR 中的编程下载程序时应特别注意,

5、由于 CVAVR 编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read-fuse bits”读取芯片中熔丝位实际状态后,再使用“all” 选项。 (4)新的 AVR 芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个熔丝位的状态记录备案。 (5)AVR 芯片加密以后仅仅是不能读取芯片内部 Flash 和 E2PROM 中的数据,熔丝位的状态仍然可以读取但不能

6、修改配置。芯片擦除命令是将 Flash 和 E2PROM 中的数据清除,并同时将两位锁定位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。 (6)正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。 (7)使用 ISP 串行方式下载编程时,应配置 SPIEN 熔丝位为“0”。芯片出厂时 SPIEN 位的状态默认为“0”,表示允许 ISP 串行方式下载数据。只

7、有该位处于编程状态“0”,才可以通过 AVR 的 SPI 口进行 ISP 下载,如果该位被配置为未编程“1”后,ISP 串行方式下载数据立即被禁止,此时只能通过并行方式或 JTAG 编程方式才能将 SPIEN的状态重新设置为“0”,开放 ISP。通常情况下,应保持 SPIEN 的状态为“0”,允许 ISP 编程不会影响其引脚的 I/O功能,只要在硬件电路设计时,注意 ISP 接口与其并接的器件进行必要的隔离,如使用串接电阻或断路跳线等。 (8)当你的系统中,不使用 JTAG 接口下载编程或实时在线仿真调试,且 JTAG 接口的引脚需要作为 I/O 口使用时,必须设置熔丝位 JTAGEN 的状态

8、为“1”。芯片出厂时 JTAGEN 的状态默认为“0”,表示允许 JTAG 接口,JTAG21 单片机开发实验室 EMail:zrp_ QQ:978710555 电话:13189775550 http:/ 第 2 页 ,共 7 页 的外部引脚不能作为 I/O 口使用。当 JTAGEN 的状态设置为“1”后,JTAG 接口立即被禁止,此时只能通过并行方式或 ISP 编程方式才能将 JTAG 重新设置为“0”,开放 JTAG。 (9)一般情况下不要设置熔丝位把 RESET 引脚定义成 I/O 使用(如设置 ATmega8 熔丝位 RSTDISBL 的状态为“0”),这样会造成 ISP 的下载编程无

9、法进行,因为在进入 ISP 方式编程时前,需要将 RESET 引脚拉低,使芯片先进入复位状态。 (10) 使用内部有 RC 振荡器的 AVR 芯片时, 要特别注意熔丝位特别注意熔丝位 CKSEL 的配置的配置。 一般情况下, 芯片出厂时 CKSEL位的状态默认为使用内部 1MHz 的 RC 振荡器作为系统的时钟源。如果你使用了外部振荡器作为系统的时钟源时,不要忘记首先正确配置 CKSEL 熔丝位,否则你整个系统的定时都会出现问题。而当在你的设计中没有使用外部振荡器(或某钟特定的振荡源)作为系统的时钟源时,千万不要误操作或错误的把 CKSEL 熔丝位配置成使用外部振荡器(或其它不同类型的振荡源)

10、。一旦这种情况产生,使用 ISP 编程方式则无法对芯片操作了(因为 ISP 方式需要芯片的系统时钟工作并产生定时控制信号),芯片看上去“坏了”。此时只有使用取下芯片使用并行编程并行编程方式,或使用 JTAG 方式(如果 JTAG 为允许时且目标板上留有 JTAG 接口)来解救了。另一种解救的方式是:尝试在芯片的晶体引脚上临时人为的叠加上不同类型的振荡时钟信号临时人为的叠加上不同类型的振荡时钟信号,一旦 ISP 可以对芯片操作,立即将 CKSEL 配置成使用内部 1MHz 的 RC 振荡器作为系统的时钟源,然后再根据实际情况重新正确配置 CKSEL。 (11) 使用支持 IAP 的 AVR 芯片

11、时, 如果你不使用 BOOTLOADER 功能, 注意不要把熔丝位 BOOTRST 设置为“0”状态, 它会使芯片在上电时不是从 Flash 的 0x0000 处开始执行程序。 芯片出厂时 BOOTRST 位的状态默认为“1”。关于 BOOTRST 的配置以及 BOOTLOADER 程序的设计与 IAP 的应用请参考本章相关内容。 1.1.2 ATmega128 中重要熔丝位的配置 上一小节介绍了配置 AVR 熔丝位的要点和注意事项,本小节把在一般情况下使用 ATmega128 时,几个重要的熔丝位配置情况进行说明。 (1)熔丝位 M103C。M103C 的配置将设定 ATmega128 是以

12、 ATmega103 兼容方式工作运行还是以ATmega128 本身的方式工作运行。ATmega128 在出厂时 M103C 默认状态为“0”,即默认以 ATmega103 兼容方式工作。当用户系统设计使芯片以 ATmega128 方式工作时,应首先将 M103C 的状态配置为“1”。 (2)CLKSEL0.3。CLKSEL0、CLKSEL1、CLKSEL2、CLKSEL3 用于选择系统的时钟源。有五种不同类型的时钟源可供选择(每种类型还有细的划分)。芯片出厂时的默认情况为 CLKSEL3.0 和 SUT1.0 分别是“0001”和“10”。即使用内部 1MHz RC 振荡器,使用最长的启动延

13、时。这保证了无论外部振荡电路是否工作,都可以进行最初的 ISP 下载。对于 CLKSEL3.0 熔丝位的改写需要十分慎重,因为一旦改写错误,会造成芯片无法启动,见上一小节第 10 点说明。 (3)JTAGEN。如果不使用 JTAG 接口,应将 JTAGEN 的状态设置为“1”,即禁止 JTAG,JTAG 引脚用于 I/O 口。 (4)SPIEN。SPI 方式下载数据和程序允许,默认状态为允许“0”。一般保留其状态。 (5)WDTON。看门狗的定时器始终开启。WDTON 默认为“1”,即禁止看门狗的定时器始终开启。如果该位设置为“0”后,看门狗的定时器就会始终打开,不能被内部程序控制了,这是为了

14、防止当程序跑飞时,未知代码通过写寄存器将看门狗定时器关断而设计的(尽管关断看门狗定时器需要特殊的方式,但它保证了更高的可靠行)。 (6)EESAVE。执行擦除命令时是否保留 E2PROM 中的内容,默认状态为“1”,表示 E2PROM 中的内容同 Flash中的内容一同擦除。 如果该位设置为“0”, 对程序进行下载前的擦除命令只会对 FLASH 代码区有效, 而对 E2PROM区无效。这对于希望在系统更新程序时,需要保留 E2PROM 中数据的情况下是十分有用的。 (7)BOOTRST。决定芯片上电起动时,第一条执行指令的地址。默认状态为“1”,表示起动时从 0x0000 开始执行。如果 BO

15、OTRST 设置为“0”,则起动时从 BOOTLOADER 区的起始地址处开始执行程序。BOOTLOADER 区的大小由 BOOTSZ1 和 BOOTSZ0 决定,因此其首地址也随之变化。(8)BOOTSZ1 和 BOOTSZ0:这两位确定了 BOOTLOADER 区的大小以及其起始的首地址。默认的状态为“00”,表示 BOOTLOADER 区为 4096 字,起始首地址为 0xF000。 (9)推荐用户使用 ISP 方式配置熔丝位。配置工具选用 BASCOM-AVR (网上下载试用版,它对 ISP 下载无限制),和 STK200/STK300 兼容的下载电缆(见第四章内容)。 21 单片机开

16、发实验室 EMail:zrp_ QQ:978710555 电话:13189775550 http:/ 第 3 页 ,共 7 页 注:不同 AVR 的熔丝也不同,使用前必须仔细查看芯片手册。 要重视手册学习,不仅是掌握如何使用,也是从根本上认识和掌握原理和结构。对于硬件工程师来将,数据手册是真正的“经书”,其它都是“修练经验”。不熟读“经书”,你无法修炼成“仙”的。这也是M128 、 M8的目的之一! (二)(二)AVR 熔丝位熔丝位拯救方法拯救方法详细详细攻略攻略 1.1.3 AVR 芯片的芯片的 ISP 全攻略全攻略 当然你在配置熔丝位时要小心从事,防止芯片锁死。有不少网友屡屡遭此不幸。其实你在熔丝位配置时,只要方法正确,一般是不会出错的。如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号