如何正确配置AVR熔丝位

发布者:梦想启航最新更新时间:2020-02-04 来源: eefocus关键字:正确配置  AVR  熔丝位 手机看文章 扫描二维码
随时随地手机看文章

(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0””。熔丝位状态显示框,显示芯片的各个熔丝位的详细状况,AVR的熔丝位打勾表示0,表示启用该选项;取消表示1,表示不启用该选项,需要注意。


(2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“还是为“。


(3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read->fuse bits”读取芯片中熔丝位实际状态后,再使用“all” 选项。


(4)新的AVR芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个熔丝位的状态记录备案。


(5)AVR芯片加密以后仅仅是不能读取芯片内部Flash和E2PROM中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯片擦除命令是将Flash和 E2PROM中的数据清除,并同时将两位锁定位状态配置成“,处于无锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。


(6)正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。


(7)使用ISP串行方式下载编程时,应配置SPIEN熔丝位为“。芯片出厂时SPIEN位的状态默认为“,表示允许ISP串行方式下载数据。只有该位处于编程状态“,才可以通过AVR的SPI 口进行ISP下载,如果该位被配置为未编程“后,ISP串行方式下载数据立即被禁止,此时只能通过并行方式或JTAG编程方式才能将SPIEN的状态重新设置为“,开放ISP。通常情况下,应保持SPIEN的状态为“,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电路设计时,注意 ISP接口与其并接的器件进行必要的隔离,如使用串接电阻或断路跳线等。


(8)当你的系统中,不使用JTAG接口下载编程或实时在线仿真调试,且JTAG接口的引脚需要作为I/O口使用时,必须设置熔丝位JTAGEN的状态为 “。芯片出厂时JTAGEN的状态默认为“,表示允许JTAG接口,JTAG的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“ 后,JTAG接口立即被禁止,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“,开放JTAG。


(9)一般情况下不要设置熔丝位把RESET引脚定义成I/O使用(如设置ATmega8熔丝位RSTDISBL的状态为“),这样会造成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设置为“状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“。关于BOOTRST的配置以及BOOTLOADER程序的设计与IAP的应用请参考本章相关内容。


(12)CKOPT 不编程即不打勾时为0状态为晶体振荡器;打勾为选中为谐振器;


XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,如Figure 12 所示,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。熔丝位CKOPT 用来选择这两种放大器模式的其中之一。


当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况。而且这种模式的频率范围比较宽。当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器


对于谐振器, CKOPT 未编程时的最大频率为8 MHz, CKOPT 编程时为16 MHz。C1和C2 的数值要一样,不管使用的是晶体还是谐振器。最佳的数值与使用的晶体或谐振器有关,还与杂散电容和环境的电磁噪声有关。

关键字:正确配置  AVR  熔丝位 引用地址:如何正确配置AVR熔丝位

上一篇:基于AVR单片机的RTU无线电遥测系统设计
下一篇:AVR的C语言优秀编程风格

推荐阅读最新更新时间:2024-11-11 21:26

AVR定时器—关于16位的timer1定时器的具体使用
刚开始学的时候,8位的timer0和timer2用的比较熟练,timer1一直迷迷糊糊。于是找了一些书籍,好心人把原理图翻译成了中文,易懂推荐《AVR单片机菜鸟进阶》沈添国主编 这是我好不容易从两本书上找到的中英文的对照图 这是我在课本上找的,共用寄存器部分的图,学到这里就一下子通了 还有一个要注意的点就是: timer1的时钟源选择是靠TCCR1B来控制的,例如A的工作方式啥的还是用TCCR1A来配置,但是时钟源又得靠TCCR1B来进行配合。 (这里真的是有点奇葩) 现在那我自己的话语总结一下实际使用方法: timer1和timer0/2的用法十分相似,主要区别在于两个共有的寄存器,和timer1独有的A
[单片机]
<font color='red'>AVR</font>定时器—关于16位的timer1定时器的具体使用
AVR BOOTLOADER 实例开发笔记
写了一个基于Atmega8 的Bootloader应用实例,其间遇到了一些问题,下面把过程和问题叙述如下,供朋友们参考。工程实例的代码在http://download.csdn.net/detail/knowmuch/7712209,也包含了一个C#的配套烧录程序,欢迎有兴趣的朋友们下载。 1、准备一个目标程序(被加载的应用程序),一般环境编译生成的结果是Hex文件,而写进Flash的是Bin文件。二者转换其实很简单,去掉Hex中的类型、长度、校验等,只留下数据依次排列就好了。 a)Hex文件格式:以ASCII格式记录,“:”表示一行开始,第1、2个字符表示此行数据长度。第3-6字符表示数据存储的起始地址,第7、8字符表示
[单片机]
<font color='red'>AVR</font> BOOTLOADER 实例开发笔记
AVR stdio写的ATMEGA16控制步进电机正反转和速度
AVR stdio写的ATMEGA16控制步进电机正反转和速度,供大家免费参阅和批评 适合初学者,总共七个按键 三个按键控制三个速度正转,三个按键控制三个速度反转,一个按键控制停止。 本程序控制步进电机是和步进电机驱动器相连接的,所以脉冲只有一路,如果想直接连步进电机只需要稍加改动即可。 主程序预览: #define F_CPU 800000UL #include avr/io.h #include util/delay.h #define INT8U unsigned int #define INT16U unsigned int const INT8U FFW ={0x01,0x00,0x01,0x00,0x01
[单片机]
<font color='red'>AVR</font> stdio写的ATMEGA16控制步进电机正反转和速度
博采众长又具独特技术的AVR单片机优缺点分析
AVR单片机 是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 AVR单片机的特点及优点 高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。 早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未
[电源管理]
滑动窗口均值滤波用于avr单片机AD转换
程序代码: /* 程序功能:用单片机内部AD实现外部电压转换为数字信号 作者:朱波 时间:2012年1月14日 AD工作流程:1.配置引脚为不带上拉电阻的输入 2.进行ADC多工选择寄存器(ADMUX)的设置(参考电压的选择和输入通道、增益的选择) 3.进行ADC控制和状态寄存器A(ADCSRA) 的设置(使能AD) 4.进行ADC控制和状态寄存器A(ADCSRA) 的设置(启动AD) 5.进行查询设置(转换完成后跳出循环) 6.进行ADC数据寄存器(ADCL、ADCH)的设置 7.返回AD转换结果 完整程序源代码下载: http://www.51hei.com/f/hdjz.rar 滑动窗口均值滤波函数应用的注意事项
[单片机]
滑动窗口均值滤波用于<font color='red'>avr</font>单片机AD转换
bascom avr tiny45驱动74hc595
如题,代码如下: $regfile = attiny45.dat '指定单片机型号 $crystal = 8000000 '指定频率 $hwstack = 2 $swstack = 8 $framesize = 24 Config Portb = Output '定义B口为输出 Config Portb.4 = Input '定义C.0口为输入 Config Adc = Single , Prescaler =
[单片机]
AVR Mega16的熔丝位用法总结
熔丝位: 1, 关闭功能 未编程(框内不打钩) 0, 开启功能 编程(框内打钩) Mega16的出厂默认设置为:内部RC振荡8MHZ 6CK+65 ms CKSEL=0100 SUT=10 在配置熔丝之前先读出单片机原来的熔丝位,然后再修改熔丝位。 低位:时钟及启动时间设置: 1.BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平挑选) 1:2.7V电平;0:4.0V电平 BODEN(BOD功能使能) 1:BOD功能禁止;0:BOD功能允许 使用方法:BOD(Brown-out Detection)掉电检测电路,若BODEN使能(BO
[单片机]
基于AVR的笔记本电池检测仪
引言 普通电池仅有作为电源向负载供电的功能.而智能电池是由电池组、电池管理芯片、充放电电路、保护电路等共同组成的。智能电池不仅可以提供电源,而且由于电池管理芯片中内置了微处理器和通信接口,它还可以向外部提供电池当前电压、当前电量、温度、门槛电压、充放电次数、生产厂商、生产日期等动态信息和设计信息。笔记本电池就是一种智能电池.它采用SMBUS向操作系统提供当前电池电量的余量、还能使用多长时间等数据。 笔记本电池在生产完成后。要老化电池。也就是测试电池是否能够正常工作。检测的步骤通常分步进行.首先读取电池的各种设计信息检查是否正确.其次对电池充放电检查是否可充放.最后校正电池电压、电流和温度。本文提出一种自动流程的笔记本电池检测仪.
[单片机]
基于<font color='red'>AVR</font>的笔记本电池检测仪
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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