avr单片机熔丝位设置方法和设置步骤 大全

上传人:n**** 文档编号:89208242 上传时间:2019-05-21 格式:PDF 页数:22 大小:1.01MB
返回 下载 相关 举报
avr单片机熔丝位设置方法和设置步骤 大全_第1页
第1页 / 共22页
avr单片机熔丝位设置方法和设置步骤 大全_第2页
第2页 / 共22页
avr单片机熔丝位设置方法和设置步骤 大全_第3页
第3页 / 共22页
avr单片机熔丝位设置方法和设置步骤 大全_第4页
第4页 / 共22页
avr单片机熔丝位设置方法和设置步骤 大全_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《avr单片机熔丝位设置方法和设置步骤 大全》由会员分享,可在线阅读,更多相关《avr单片机熔丝位设置方法和设置步骤 大全(22页珍藏版)》请在金锄头文库上搜索。

1、什么是熔丝位? 熔丝是一个保护知识产权的设计。简单的说,你在特定的引脚上加电压,足够的电流, 就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能 用来运行。一般成品出售时都这样做。专用的写片机支持这个功能。自己也可以根据芯片的 官方文档来操作。 熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。 0 表示已熔断, 1 表示未熔断。 熔丝位介绍 AVR Studio 中 STK500 处理熔丝位有巨大的优势:它是以功能组合让用户配置。 这种 方式与小马(PonyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大 优势”来形容):有效

2、避免因不熟悉熔丝位让芯片锁死 (这是初学者的恶梦), 笔者曾经锁 死过三片 Atmega16。 不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦) 动 手之前:请你一定弄清楚了,你这样改会有什么后果,除非你有很多钱不在乎多锁死几个芯 片。 AVR 单片机熔丝位设置 熔丝配置错,单片机被锁,非常抑闷,这篇文章具有一定价值,留作下次配置时参考之 用。 对 AVR 熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下 面给出对 AVR 熔丝位的配置操作时的一些要点和需要注意的相关事项。 有关 ATmega128 熔丝 位的具体定义和功能请查看本书相关章节,在附录中将给出一个

3、完整的汇总表。 (1) 在 AVR 的器件手册中, 对熔丝位使用已编程 (Programmed) 和未编程 (Unprogrammed) 定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表 示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程 状态“1”或成为已编程状态“0”。 (2)在使用通过选择打钩“”方式确定熔丝位状态值的编程工具软件时,请首先仔 细阅读软件的使用说明,弄清楚“”表示设置熔丝位状态为“0”还是为“1”。 (3)使用 CVAVR 中的编程下载程序时应特别注意,由于 CVAVR 编程下载界面初始打

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

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

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

7、态为“1”。芯片出厂时 JTAGEN 的状态默认为“0”,表示允许 JTAG 接口,JTAG 的外部引脚不能作为 I/O 口使用。当 JTAGEN 的状态设置为“1”后,JTAG 接口立即被禁止,此时只能通过并行方式或 ISP 编程方式才能 将 JTAG 重新设置为“0”,开放 JTAG。 (9)一般情况下不要设置熔丝位把 RESET 引脚定义成 I/O 使用(如设置 ATmega8 熔丝 位 RSTDISBL 的状态为“0”),这样会造成 ISP 的下载编程无法进行,因为在进入 ISP 方式 编程时前,需要将 RESET 引脚拉低,使芯片先进入复位状态。 (10)使用内部有 RC 振荡器的

8、AVR 芯片时,要特别注意熔丝位 CKSEL 的配置。一般情 况下, 芯片出厂时 CKSEL 位的状态默认为使用内部 1MHz 的 RC 振荡器作为系统的时钟源。 如 果你使用了外部振荡器作为系统的时钟源时, 不要忘记首先正确配置 CKSEL 熔丝位, 否则你 整个系统的定时都会出现问题。 而当在你的设计中没有使用外部振荡器 (或某钟特定的振荡 源) 作为系统的时钟源时, 千万不要误操作或错误的把 CKSEL 熔丝位配置成使用外部振荡器 (或其它不同类型的振荡源)。一旦这种情况产生,使用 ISP 编程方式则无法对芯片操作了 (因为 ISP 方式需要芯片的系统时钟工作并产生定时控制信号),芯片看

9、上去“坏了”。此 时只有使用取下芯片使用并行编程方式, 或使用 JTAG 方式 (如果 JTAG 为允许时且目标板上 留有 JTAG 接口)来解救了。另一种解救的方式是:尝试在芯片的晶体引脚上临时人为的叠 加上不同类型的振荡时钟信号,一旦 ISP 可以对芯片操作,立即将 CKSEL 配置成使用内部 1MHz 的 RC 振荡器作为系统的时钟源,然后再根据实际情况重新正确配置 CKSEL。 (11)使用支持 IAP 的 AVR 芯片时,如果你不使用 BOOTLOADER 功能,注意不要把熔丝 位 BOOTRST 设置为 “0” 状态, 它会使芯片在上电时不是从 Flash 的 0x0000 处开始

10、执行程序。 芯片出厂时 BOOTRST 位的状态默认为“1”。关于 BOOTRST 的配置以及 BOOTLOADER 程序的设 计与 IAP 的应用请参考本章相关内容。 二、mega8 熔丝位:1:未编程(不选中)0:编程(选中) * 熔丝位 说明 缺省设置 * RSTDISBL: 复位或 I/O 功能选择 1 1:复位功能;0:I/O 功能(PC6) WDTON: 看门狗开关 1 1:看门狗打开(通过 WDTCR 允许);0:看门狗禁止 SPIEN: SPI 下载允许 0 1:SPI 下载禁止;0:SPI 下载允许(注:当使用 SPI 编程时, 该项不可用) EEAVE: 烧录时 EEPRO

11、M 数据保留 1 1:不保留;0:保留 BODEN: BOD 功能控制 1 1:BOD 功能禁止;0:BOD 功能允许 BODLEVEL: BOD 电平选择 1 1:2.7V 电平;0:4.0V 电平 BOOTRST: 复位入口选择 1 1:程序从 0x0000 地址开始执行;0:程序从引导区确定的 入口地址开始执行 * BOOTSZ1/0: 引导程序大小及入口 00 00:1024Word/0xc00; 01:512Word/0xe00; 10:256Word/0xf00; 11:128Word/0xf80 * BLB02/01: 程序区指令位选择 11 11:SPM 和 LPM 指令都允许

12、执行 10:SPM 指令禁止写程序区 01:引导区 LPM 指令禁止读取程序区内容;如果中断向量定义在引导区,则禁止该中断 在程序区执行。 00:SPM 指令禁止写程序区;引导区 LPM 指令禁止读取程序区内容;如果中断向量定义 在引导区,则禁止该中断在程序区执行。 * BLB12/11: 引导区指令位选择 11 11:SPM 和 LPM 指令都允许执行 10:SPM 指令禁止写引导区 01:程序区 LPM 指令禁止读取引导区内容;如果中断向量定义在程序区,则禁止该中断 在引导区执行。 00:SPM 指令禁止写引导区;程序区 LPM 指令禁止读取引导区内容;如果中断向量定义 在程序区,则禁止该

13、中断在引导区执行。 * LB2/1: 程序区加密位选择 11 11:未加密 10:程序和 EEPROM 编程功能禁止,熔丝位锁定 00:程序和 EEPROM 编程及校验功能禁止,熔丝位锁定 (注:先编程其他熔丝位,再编程加密位) * CKSEL3/0: 时钟源选择 0001 CKOPT: 晶振选择 1 SUT1/0: 复位启动时间选择 10 * CKSEL3/00000:外部时钟,CKOPT0:允许芯片内部 XTAL1 管脚对 GND 接一个 36PF 电容;CKOPT1:禁止该电容 - CKSEL3/000010100:已经校准的内部 RC 振荡,CKOPT 总为 1 0001:1.0M 0

14、010:2.0M 0011:4.0M 0100:8.0M - CKSEL3/001011000:外部 RC 振荡,CKOPT0:允许芯片内部 XTAL1 管脚对 GND 接 一个 36PF 电容;CKOPT1:禁止该电容 0101: 现在主要有两种硬件(电路)。USBASP 和 AVR-USB。 USBASP 官方公开的模拟 USB 范例 用的就是这个。是最早的应用。缺点:占用 3 个 IO 脚(PB0、PB1、PD2_INT0),比 AVR-USB 多用 1 个 广东 yleee 电子,一乐,一乐社区,yleee$ t$ 2 L% a+ O. O4 k / - P0 a3 “ e# - $D

15、0z+m/P!C3i0 单片机的 BOOT 文件也有两类,一种就是早期需要安装驱动软件,一种是模拟 HID 类,不需安装驱动软件。BootloadHIDhttp:/www.obdev.at/products/avrusb/bootloadhid.html M8 单片机恒流型数字电子负载M8 单片机恒流型数字电子负载 基本功能% m0 7 S0 l“ A) ; q7 w: h 1、恒流型电子负载 2、电池容量测试 3、开关电源最大工作电流测试 参数:A/D10BIT 1 电压50V 50mV(使用 8 倍取样 降低到10mV)电 流5A5mA(扩展30A30mA)电流调节13BIT PWMD/A5A 的最小调节度1mA30A 的最小调节度4mA0 S6 Y- $ T“ h; n* |- L 显示格式 设定电流功率电池容量 AH 实际电流电压工作电压一乐社区# |6 w: 8 U! u( T W; E) N$ ? VFD 2402 屏/

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

当前位置:首页 > 高等教育 > 其它相关文档

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