2019年 12月 31日 星期二
您的位置: 威廉希尔主页 > 单片机技术 >

avr单片机熔丝位设置方法及步骤及设置注意事项

来源:未知     作者:威廉希尔     发布时间:2019-12-31 09:03         

  熔丝是一个知识产权的设计。简单的说,你在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。一般成品出售时都这样做。专用的写片机支持这个功能。自己也可以根据芯片的文档来操作。熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。0表示已熔断,1表示未熔断。

  AVR Studio 中 STK500 处理熔丝位有巨大的优势:它是以功能组合让用户配置。 这种方式与小马(PonyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):有效避免因不熟悉熔丝位让芯片锁死 (这是初学者的), 笔者曾经锁死过三片Atmega16。 不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的) 动手之前:请你一定弄清楚了,你这样改会有什么后果,除非你有很多钱不在乎多锁死几个芯片。

  对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。

  (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”();“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0””。

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

  (3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read-》fusebits”读取芯片中熔丝位实际状态后,再使用“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接口与其并接的器件进行必要的隔离,如使用串接电阻或断跳线)当你的系统中,不使用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”。

  对于AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出AVR熔丝位配置操作时的一些要点和需要注意的相关事项。

  (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”();“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0””。

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

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

  (4)使用ISP串行方式下载编程时,应配置SPIEN熔丝位为“0”。芯片出厂时SPIEN位的状态默认为“0”,表示允许ISP串行方式下载数据。只有该位处于编程状态“0”,才可以通过AVR的SPI口进行ISP下载,如果该位被配置为未编程“1”后,ISP串行方式下载数据立即被,此时只能通过并行方式或JTAG编程方式才能将SPIEN的状态重新设置为“0”,ISP。通常情况下,应保持SPIEN的状态为“0”,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电设计时,注意ISP接口与其并接的器件进行必要的隔离,如使用串接电阻或断跳线)当你的系统中,不使用JTAG接口下载编程或实时在线仿真调试,且JTAG接口的引脚需要作为I/O口使用时,必须设置熔丝位JTAGEN的状态为“1”。芯片出厂时JTAGEN的状态默认为“0”,表示允许JTAG接口,JTAG的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“1”后,JTAG接口立即被,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“0”,JTAG。这一条要重点记住,因为如果JTAGEN是默认设置“0”的线个I/O口是不能当做通用I/O来操作的,我曾经就吃过大亏,从硬件到程序反复检查就是找不到错误,浪费了太多的时间。

  (6)使用内部有RC振荡器的AVR芯片时,要特别注意熔丝位CKSEL的配置。一般情况下,芯片出厂时CKSEL位的状态默认为使用内部1MHz的RC振荡器作为系统的时钟源。如果你使用了外部振荡器作为系统的时钟源时,不要忘记首先正确配置CKSEL熔丝位,否则你整个系统的定时都会出现问题。对于CKSEL3/0位的设置就是对时钟的设置,一般来说我都是采用外部晶振(8M或16M)直接将CLSEL3/0全部都设置为“1”就可以了。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  AVR单片机生成负压的原理解析红外测温传感器的输出是一个mV级的电压信号,大约在室温下(26℃左右)输出0电压,温度再低就是负电压了。要用单片机检测这样一个小信号,必须进行放大,可一般的单电压运放都不能放大小信号(我曾经过LM324的单电压小信号放大,发现大约在100mV以下,LM324就没有反应了),最常规的解决方案就是使用双电压供电。双电压是个头疼的事情,弄两电压一般来说要使用变压器,还得是双绕组的,全桥整流,78 79系列IC伺候着。。。看着就不爽! 如果要改用电池供电。。。麻烦啊!于是打算用负压生成电。 负压生成都是一个套,用振荡器产生交流电,然后用电感产生电动势,或者用二极管和电容组成的倍压电。。。既然用了单片机,那么产生交流电发表于2019-12-27

  AVR端口是线伪双向。这也是AVR的一项优势,只是操作时大家注意DDRn就可以了。真正双向端口在模拟时序方面不如伪双向的方便。DDRnPORTnPINn解释:n为端口号:ABCDEDDRn:控制端口是输入还是输出,0为输入,1为输出。个人记忆方法:一比零大所以往外挤,即1为输出,0为输入。PORTn:从引脚输出信号,当DDRn为1时,可以通过PORTn=x等端口操作语句给引脚输出赋值。PINn:从引脚读输入信号,无论DDRn为何值,都可以通过x=PINn获得端口n的外部电平。当引脚配置为输入时,若PORTxn为“1“,上拉电阻将使能。内部上拉电阻的使用在键盘扫描的时候还要说到。端口更详细功能及介绍以

  引 言随着人们生活水平的提高, 各种热水器的使用已相当普及, 与之相配套的控制仪也相继问世。然而, 目前市场上的各种热水器控制电还与理想要求相差甚远。消费者需要真正的全自动 控制, 以实现使用的最简单化, 就像家用电视机、电冰箱一样, 接通电源、设定完毕就不用再操心了。鉴于国内太阳能热水器市场不断扩大, 而与其相配套的控制器却急需改进的情况, 研制了这套太阳能热水器控制器。本文设计的太阳能热水器是以AVR Meg a 32单片机为检测控制核心,不仅实现了温度、水位两种参数的实时显示功能, 而且具有温度设定与控制功能。控制器可以根据天气情况利用辅助加热装置使蓄水箱内的水温达到预先设定的温度, 从而达到24 小时供应热水

  AVR的主要特性高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以的必要条件。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作

  一、常规方法AVR单片机的各类教材或编程应用,对介绍的端口位操作方法不外乎宏定义及整体和某个常量相或、相与来实现某一单个位状态的改变。如:PORT&=-(1《1);等价于:PORTB&=oxfd;作用是PB1清零而其余位不变。与之类似的还有:PORTBl=(1《4);PB4置位,其余位不变。PORTB=(k《4);PB4翻转,其余位不变。上述方法,无论是常量值参与还是移位操作,用起来总嫌麻烦,不够直观,且具体常量值还需人工推算,易出错。移位操作生成的目标代码偏大,在大量运用时,占用系统内存或flash空间,执行效率低。以实际运用效果来看,宏定义比较好。也偏好运用宏定义。C编译器在编译之前会事先进行宏替换,所以,如果宏定义

  最近在用STM8S003这个片子做项目,在做串口通信的时候,发现以前写的协议太简单了,项目中用不适合。//协议 : 0XDD xx xx xx xx xx xx 0XAA@r @interrupt void UART1_Receive(void){unsigned char res;res=UART1_DR;if(res==0xDD) //头{Rec_statu=1; //标志开始接收Rec_Cnt=0;Rec_End=0;return;}if(res==0xAA) &

  了解ADI电网管理、能源计量方案,答题赢Kindle、《新概念模拟电》【世健的ADI之主题游 能源站】

  【1月14日 技术直播】工程师请就位,Keysight计量专家开讲啦 ~电子仪器计量校准基础知识与校准周期探讨

  有直播:ADI在中国能源互联网应用中的技术及产品 1月8日上午10:00-11:30 准时!

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

      威廉希尔