AVR单片机熔丝位设置技巧

发布者:chang_ri最新更新时间:2017-12-17 来源: eefocus关键字: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的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“1”后,JTAG接口立即被禁止,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“0”,开放JTAG。 

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

(11)使用支持IAP的AVR芯片时,如果你不使用BOOTLOADER功能,注意不要把熔丝位BOOTRST设置为“0”状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“1”。关于BOOTRST的配置以及BOOTLOADER程序的设计与IAP的应用请参考本章相关内容。 

现场调试过程中对熔丝位起到的作用。 

 问题一:系统的启动时间,若不配置熔丝位,系统默认为内部时钟,所以系统的启动时间比较长。将熔丝位配置为外部晶振,这样正常,追述原因可参与上面的第10条。 

问题二:串口运行不正常,若不配置熔丝位,其默认是1M的晶振,故所设置的波特率的计算将不正确。出现乱码或串口不同的现象 


关键字:AVR单片机  熔丝位  设置技巧 引用地址:AVR单片机熔丝位设置技巧

上一篇:按键防抖处理程序
下一篇:ATMEGA48与DS1302时钟程序

推荐阅读最新更新时间:2024-03-16 15:49

基于AVR单片机的有害气体红外感应及语音警示控制系统
0引言 利用红外感应系统感应附近有无有害气体,当红外感应系统感受到有有害气体接近时,送出持续一段时间的高电平;单片机通过开启中断,启动语音芯片,单片机通过串口通信,从上位机提取的有害气体参数提示给附近人体,并经过与安全值的比较判定当前环境是否安全。对语音芯片的使用,先将必要的文字、数字信息录制进去,放音时,通过单片机自动寻址,把实时参数读取出来。为便于以后系统改进或移植到其他系统,可设计录音、放音电路,通过切换录制不同内容。系统设计友好、方便,给人的信息也更加直接。 1系统总体设计方案 在气体浓度是现有可利用的数据的基础上,考虑了系统的衔接性和可移植性。系统总体方案见图1。 本系统分为四大模块:核心控制模块、语音电路
[工业控制]
基于<font color='red'>AVR单片机</font>的有害气体红外感应及语音警示控制系统
AVR熔丝位的配置设置
用户使用并行编程方式、ISP编程方式、JTAG编程方式都可以对AVR的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配置方式(指人机界面)也是不同的。有的是通过直接填写熔丝位位值(如:CVAVR、PonyProg2000和SLISP等),有的是通过列出表格选择(如 AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单,但是需要用户在仔细查询操作,会引起一些意想不到的后果,如造成芯片无法正常运行,无法再次定入ISP编程模式等。建议用户对AVR的熔丝位进行配置时,选择用户表格选择方式界面的编程软件,如BASCOM-AVR。不过版主使用的是前者PonyProg2000。 正确配置AVR熔丝位 对AVR熔丝位的配置操
[单片机]
基于AVR 单片机的中频电源测试系统设计
1 引言 电参数的测量和监控是电力系统的重要组成部分,本文从测试系统的工程学实际出发,完成了对中频电源系统的电压、电流、频率、功率因数、有功功率等参数的测量和实时监控,较好的实现了中频电源测试系统的功能和工程要求。AVR 单片机相对传统的 51 系列单片机,具有更高的集成度和更强的功能,与 C 语言有很好的兼容性,RISC 指令架构使其运行速度可达 1MIPS/MHZ。随着其越来越广泛的应用,必将取代 51 系列成为单片机的主流。其主要功能包括看门狗、FLASH 程序存储器、E2PROM、A/D 转换器、定时器、计数器、USART 接口等多种功能,这使得本测试系统的硬件实现变得简单,可靠。 2 硬件结构设计与实现 本文所提及的中
[单片机]
基于AVR 单片机的中频电源测试系统设计
基于AVR单片机的医用智能输液系统
  静脉输液是我国目前临床治疗中最主要的一种输液方式,在实践工作中,医护人员一般是靠经验和观察通过转动输液器上的滑轮对滴速进行手动调节的。本系统是一种非接触式全自动的静滴检测和报警控制装置,时刻检测液体的滴速,并且在药液滴完后能够自动地切断液体进行本地和远程报警,以通知医护人员及时更换液体,对提高现代医疗服务系统的效率和质量都有着非常重要的意义。   1. 研究意义   目前,医院静脉输液主要是人工控制,由人监控的静脉输液,无法正确调解药液流速,速度过快由于点滴里有钾元素的成分会造成血管刺激,通常刺激会表现为疼痛。但通常输液快慢要看自身身体情况,但输液还是会对血管和心脏,肾脏有刺激。利用现有的科技设计智能输液系统,即可以控制药
[单片机]
基于<font color='red'>AVR单片机</font>的医用智能输液系统
AVR单片机的相关总结
1、AVR文档里要求最好不要中断嵌套,只能执行完这个中断再执行下一个中断; 2、ADC采样的时候,外部存在上拉51K的情况下,断路,测量的电压值是5V(工作电压是5V),说明mega88的输入阻抗是相当大的 哈哈; 3、SREG状态寄存器中, SEI、CLI就是开全局中断、关全局中断 (还以为没有来着),_NOP 、 _WDR; 4、Volatile (不稳定的) AVR全局变量的时候用 (可以避免编辑器对其的优化); 5、不用的IO口如果悬空的话,1是耗电量大处于判断状态;2是 受外界一点点干扰就可能成为反复振荡的输入信号(干扰问题); 6、推挽结构,输出不能直接接地 (大电流烧掉管子); 7、明确 PC (Program
[单片机]
<font color='red'>AVR单片机</font>的相关总结
缺少仿真器时AVR单片机的开发方法
对FLASH存贮器单片机,不要仿真机也能方便快速地开发程序。具体可以从以下几方面入手: 一、尽量使用高级语言开发系统程序 您有没有在写汇编程序时,标错一个标号而浪费您大把时间找错或跳转偏移量过大而不得不改动程序结构的经历。其实您如果使用高级语言开发程序,就不会有这样的痛苦。 在开发程序时,除了建立一个良好的开发文档外,使用语言的选择也很重要。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗? 高级语言的优越
[单片机]
ATmega64 低频晶体振荡器
为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置为“1001” 以选择低频晶体振荡器。晶体的连接方式如 Figure 19 所示。通过对熔丝位CKOPT 的编 程,用户可以使能XTAL1 和XTAL2 的内部电容,从而去除外部电容。内部电容的标称数 值为36 pF。 选择了这个振荡器之后,启动时间由熔丝位SUT 确定,如Table 10 所示。 Note: 1. 这些选项只能用于启动时的频率稳定性对应用而言不重要的情况。
[单片机]
ATmega64 低频晶体振荡器
AVR单片机的RC5和RC6算法比较与改进
摘要:RC5及RC6是两种新型的分组密码。AVR高速嵌入式单片机功能强大,在无线数据传输应用方面很有优势。本文基于Atmega128高速嵌入式单片机,实现RC5和RC6加密及解密算法,并对算法进行汇编语言的优化及改进。根据实验结果。对两种算法的优热点进行比较和分析。 关键词:Atmega128 RC5 RC6 分组密码 混合密钥 Flash 引言 在无线局域网中,传输的介质主要是无线电波和红外线,任何具有接收能力的窍听者都有可能拦截无线信道中的数据,掌握传输的内容,造成数据泄密。因此,对于无线局域网来说,数据的加密是关键技术之一。 AVR高速嵌入式单片机是8位RISC MCU,执行大多数指令只需一个时钟周期,速度快(8M
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved