avr单片机熔丝中的真的有熔丝这种东西还是...

& & 熔丝位是ATMEL公司AVR单片机比较独到的特征。在每一种型号的AVR单片机内部都有一些特定含义的熔丝位,其特性表现为多次擦写的E²PROM。用户通过配置(编程)这些熔丝位,可以固定地设置AVR的一些特性,参数以及I/O配置等,当然也包括对片内运行代码的锁定(加密)。
& & 用户使用并行编程方式、ISP编程方式、JTAG编程方式都可以对AVR的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配置方式(指人机界面)也是不同的。有的是通过直接填写熔丝位位值(如:CVAVR、PonyProg2000和SLISP等),有的是通过列出表格选择(如AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单,但是需要用户在仔细查询操作,会引起一些意想不到的后果,如造成芯片无法正常运行,无法再次定入ISP编程模式等。建议用户对AVR的熔丝位进行配置时,选择用户表格选择方式界面的编程软件,如BASCOM-AVR。不过版主使用的是前者PonyProg2000。 对AVR熔丝位的配置操作是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。看到这么多的人对AVR的熔丝位不会使用和误操作,结合本人的使用实践,给出以下方面的意见和参考。 下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项以及相应的拯救方法。
& & &(一)设置方法 1.1.1 正确配置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的应用请参考本章相关内容。
& & &1.1.2 ATmega128中重要熔丝位的配置 上一小节介绍了配置AVR熔丝位的要点和注意事项,本小节把在一般情况下使用ATmega128时,几个重要的熔丝位配置情况进行说明。
(1)熔丝位M103C。M103C的配置将设定ATmega128是以ATmega103兼容方式工作运行还是以ATmega128本身的方式工作运行。ATmega128在出厂时M103C默认状态为&0&,即默认以ATmega103兼容方式工作。当用户系统设计使芯片以ATmega128方式工作时,应首先将M103C的状态配置为&1&。
(2)CLKSEL0..3。CLKSEL0、CLKSEL1、CLKSEL2、CLKSEL3用于选择系统的时钟源。有五种不同类型的时钟源可供选择(每种类型还有细的划分)。芯片出厂时的默认情况为CLKSEL3..0和SUT1..0分别是&0001&和&10&。即使用内部1MHz RC振荡器,使用最长的启动延时。这保证了无论外部振荡电路是否工作,都可以进行最初的ISP下载。对于CLKSEL3..0熔丝位的改写需要十分慎重,因为一旦改写错误,会造成芯片无法启动,见上一小节第10点说明。
(3)JTAGEN。如果不使用JTAG接口,应将JTAGEN的状态设置为&1&,即禁止JTAG,JTAG引脚用于I/O口。
(4)SPIEN。SPI方式下载数据和程序允许,默认状态为允许&0&。一般保留其状态。
(5)WDTON。看门狗的定时器始终开启。WDTON默认为&1&,即禁止看门狗的定时器始终开启。如果该位设置为&0&后,看门狗的定时器就会始终打开,不能被内部程序控制了,这是为了防止当程序跑飞时,未知代码通过写寄存器将看门狗定时器关断而设计的(尽管关断看门狗定时器需要特殊的方式,但它保证了更高的可靠行)。
(6)EESAVE。执行擦除命令时是否保留E2PROM中的内容,默认状态为&1&,表示E2PROM中的内容同Flash中的内容一同擦除。如果该位设置为&0&,对程序进行下载前的擦除命令只会对FLASH代码区有效,而对E2PROM区无效。这对于希望在系统更新程序时,需要保留E2PROM中数据的情况下是十分有用的。
(7)BOOTRST。决定芯片上电起动时,第一条执行指令的地址。默认状态为&1&,表示起动时从0x0000开始执行。如果BOOTRST设置为&0&,则起动时从BOOTLOADER区的起始地址处开始执行程序。BOOTLOADER区的大小由BOOTSZ1和BOOTSZ0决定,因此其首地址也随之变化。
(8)BOOTSZ1和BOOTSZ0:这两位确定了BOOTLOADER区的大小以及其起始的首地址。默认的状态为&00&,表示BOOTLOADER区为4096字,起始首地址为0xF000。
(9)推荐用户使用ISP方式配置熔丝位。配置工具选用BASCOM-AVR (网上下载试用版,它对ISP下载无限制),和STK200/STK300兼容的下载电缆(见第四章内容)。
注:不同AVR的熔丝也不同,使用前必须仔细查看芯片手册。 要重视手册学习,不仅是掌握如何使用,也是从根本上认识和掌握原理和结构。对于硬件工程师来将,数据手册是真正的&经书&,其它都是&修练经验&。不熟读&经书&,你无法修炼成&仙&的。这也是《M128》、《M8》的目的之一!
& &&(二)AVR熔丝位拯救方法详细攻略
& 1.1.3 AVR芯片的ISP全攻略 当然你在配置熔丝位时要小心从事,防止芯片锁死。有不少网友屡屡遭此不幸。其实你在熔丝位配置时,只要方法正确,一般是不会出错的。如果当你改动了AVR的熔丝位配置,重新加电后,想再用ISP下载,提示:&进入编程模式失败&等,极有可能是你搞错了熔丝位,导致芯片不知道使用何种外部主频而无法正常工作(仅限于使用内部RC振荡的情况)。不过,不用太担心,其实拯救的办法还是有很多的,操作起来也是很容易的,具体解决方法为:
1。进入JTAG模式修改SPIEN熔丝位 需要使用JTAGICE调试器,不过一般情况下调试模式也进不去,JTAGEN(值为1)锁死了。
2。并行编程器恢复 需要你有USB或COM1口制作的并行HVPROG编程器,STK200/STK300
3。通过外加有源晶振 需要你有外部有源振荡晶体(石英或晶振1-4M) 这个方法最简单,速度最快(强烈推荐)
4。使用通用编程器将芯片恢复到出厂状态 这个方法,需要你有市场上的通用编程器,可以修改三个熔丝位寄存器数据。
5。寄回给芯片服务商,让他们帮忙将芯片恢复 这是最省事,但是最费时间,最无可奈何的方法。 先介绍一下基本恢复理论 ISP(In System Programmability) 在系统编程,简称为 串行下载 IAP(In Application Programing) 在应用编程,BootLoader也是类似的意思
1. ISP虽然利用了SPI接口(例外:M64/M128为UASRT0接口,Tiny13等没有SPI接口)的引脚,但只在复位时起作用,而且下载完成后合格的下载器会自动断开端口的连接,对正常工作时没有影响的( 在产品应用中,下载器一定是不会一直粘在上面的)。
2. 虽然高压并行下载能修复任何熔丝位,但对于贴片封装来说是很不现实的,所以添加ISP10标准插座接口后就是最常用的ISP下载方式了
3. 虽然IAP是一种新的升级方法,但IAP程序本身也是要先用高压并行下载或ISP来烧进芯片里面才行
4. Tiny13等少管脚AVR芯片因为管脚实在太少了,有ISP,但没有[高压并行编程]而特制了[高压串行编程] 所以,产品上一般都留有ISP10标准接口插座,或更省位置的ISP6标准插座----留6个焊盘就行了
& & &ISP的工作前提 1. 芯片没有物理损坏
2. 芯片的SPIEN熔丝位=0 使能ISP功能
3. 芯片的RSTDISBL熔丝位=1 RESET引脚有效 (假如芯片有这个熔丝位)
4. 线路正常--接错线? 短路?
5. ISP下载器正常-------特别要考虑 连线的接触不良问题
6. 电源正常 (一) 并行编程器恢复,最早的编程方法, 功能最强大,通常需要12V~24V的高压,以示区别,下面称为 高压并行编程。制作方式也有:
1.USB或COM1口制作的并行HVPROG编程器,软件例如USBASP的ISP上位机软件AVR_fighter.exe(zhb2000)和USBAVRISP(ZHIFENG),但需要AVR MCU连接较多的引脚 (一般20脚);
2.并行编程器STK200/STK300,串行编程器软件PonyProg2000. 但需要电脑留有LPT打印机接口,AVR MCU留有ISP6-10标准烧写口。
1.以我们常用的小马PonyProg2000串行编程器下载软件为例,在Command菜单中选Security and Configuration Bits,(或者点Security and Configuration Bits按钮)在接着出现的熔丝位配置窗口的下面,有几个按钮,千万不要乱按。正确的方法是先按&Read&按钮,读出原来芯片中熔丝位的配置,然后再以此为基础,按你的需要进行局部修改,确定无误后再按&Write&按钮,就OK了。一般不会出现锁死的问题。如果万一由于操作不当,出现锁死也不必惊慌。
2.除了用并行编程器恢复的方法以外,对于没有并行编程器的朋友,还可以用外接有源振荡器的方法解锁,方法是用一个1MHz的振荡信号接到ATmega16L的 13脚XTAL1,接通单片机的电源,正常的话你会看到原来单片机中的程序已经可以正常运行了。说明外接振荡器已经使单片机恢复工作了。这下来就好办了,仍然用PonyProg2000,点Security and Configuration Bits按钮,进入熔丝位配置窗口,这时你会看到所有的熔丝位都没打&,连灰色的SPIEN前面那个模糊不清的&也没了,不过没关系Don&t worry,你只要按照下图中ATmega16L出厂时熔丝位的设置打&,然后按&Write&按钮,如果屏幕轻轻的闪一下,OK,恭喜你已经好了,再按&Read&按钮,你会看到除了你打&的地方以外,SPIEN前面那个模糊不清的&也出来了。锁死的芯片已经解锁了。
要注意的是外接的信号幅度不可太大,以免损毁芯片,我开始用一个51单片机的震荡信号接过来,结果不行,可能是驱动能力不够。后来换了一个信号发生器输出的1MHz的信号,就成功了。也可以用NE555芯片搭个振荡器做信号源。 (二)外加有源晶振
运行时钟 ISP时钟(必须低于运行时钟的1/4) 4096Hz &1024Hz //很变态的用法,外接32.768KHz晶体+CKDIV8 ,不过AVRISP还是提供了603Hz这个速度了 //另一简易解决办法是 下载时在32.768KHz晶体并联一个1MHz晶体,双龙的下载线就配有一个8MHz的石英晶体 32768Hz &8192Hz 128KHz & 32KHz //内部RC128KHz 1.0MHz &250KHz //默认值(包括8MHz+CKDIV8),所以AVRISP的ISP速度多为230KHz 8.0MHz &2000KHz 16.0MHz &4000KHz 运行时钟不等于震荡器的频率,因为部分AVR芯片有系统时钟预分频器,可以对震荡器进行1~256分频
CKDIV8熔丝位决定CLKPS位的初始值。 若CKDIV8未编程,CLKPS位复位为&0000&;若CKDIV8 已编程,CLKPS 位复位为&0011&,给出启动时分频因子为8 AVRISP可提供的ISP时钟 921.6KHz,230.4KHz, 57.6KHz,28.8KHz,4.0KHz, 603Hz STK500可提供的ISP时钟 1.845MHz,460.8KHz,115.2KHz,57.6KHz,4.0KHz,1206Hz 时钟设定 ISP方案 内部RC 选择合适的ISP速度 外部RC 接上合适的电阻和电容,选择合适的ISP速度。------补救: 外部时钟源接到XTAL1 外部RC 根本就没有什么意义,频率精度/稳定度不高,成本也没有降低,所以新的AVR芯片已经没有这个选项了。
各位网友要注意的是错误设定后补救方法 外部晶体 接上合适的晶体,选择合适的ISP速度。 ------补救: 外部时钟源接到XTAL1 外部时钟 接上合适的时钟源,选择合适的ISP速度。 ------补救: 外部时钟源接到XTAL1 外部时钟源可以是 外部(4MHz)有源晶体输出,其他MCU的XTAL2脚,各种方波振荡电路(NE555)输出等 大部分AVR芯片的ISP端口是 SCK,MOSI,MISO,RESET 而M64/M128的ISP端口是 SCK, PDI, PDO,RESET&/font& 而且M64/M128出厂默认兼容M103----熔丝位M103C=0,很多新特性不能使用,程序也可能不能正常运行 ----因为C编译器通常默认自动把SP指向SRAM的末端,M103=0x0FFFH, M64/M128=0x10FFH,必然出错! AVR的所有熔丝位均是: 1 未编程,多为不起作用的意思。 0 编程,多为 起作用的意思。 基于可编程工艺的都是这样: PROM/EEPROM/FLASH都是出厂时和擦除后变为全1(0xFF)的,要编程才能变成0。 反过来就是了,跟CE/OE/INT都是[低电平有效]一样,都是很常见。 在ISP模式下永远不能访问(修改)SPIEN位,这是AVR芯片的硬件保护 有独立RESET脚的M16/M32/M64/M128等,在ISP模式下根本就就不会令ISP无效,无论如何修改熔丝位,都能恢复正常。 M8/M48/M88/M168/Tiny系列有RSTDISBL熔丝位可以令导致RESET失效而令ISP无法工作外,其他情况都能恢复正常。
一般来说,只要满足ISP的工作前提,再把XTAL1接到一个4MHz有源晶体的输出,基本是万试万灵的。 通过外加有源晶振的办法,让其恢复, 这个方法最可行。它可以恢复大部分熔丝位搞错的芯片。(重点推荐) 接法如下
打点的口子对应1号脚依次逆时针??1 NC??2 GND??3 CLK??4 VCC 1脚不接,2脚接地,3脚接输出,4脚接电源。恢复方法:
接上上图的有源晶振,重新通电,可以看到芯片又重新正常工作了,这时就能用ISP或JTAG下载线修改错误的熔丝位了。修改完成后,断电,将有源晶振拆走,看看是否已经恢复正常。
& &&还有一个办法,如果没有有源晶振的话可以用其他工作正常的单片机的时钟作为外部晶振,只要将工作正常的单片机的XTAL2脚连接熔丝设置错误的单片机的XTAL1引脚即可。像我使用AVR910下载线的可直接把AT90S2313的时钟输出连到被设置错的芯片就可恢复了,很方便。
& & &不要忘记,并行高压编程的时钟信号也是从XTAL1导入方波信号的。 如果有源晶振的方法不行(除了ISPEN=0,RSTDISBL=0情况外),恐怕高压编程也未必能奏效。 其他一些功能操作对ISP熔丝位的影响
1. JTAG的影响(M16,M32,M128等): JTAG能访问 SPIEN 和 JTAGEN,要是不小心同时改成SPIEN=1,JTAGEN=1,将会导致MCU锁死,需要高压并行编程才能恢复。
2. DebugWIRE的影响:(M48,M88,M168,T2313等,数据手册里面的资料不是很详细) 由于DebugWIRE使用RESET脚来通讯,所以跟ISP有所冲突 可以通过ISP或并行高压编程来使能DebugWIRE功能[即DWEN=0],使能DebugWIRE功能后,ISP功能失效。 可以通过DebugWIRE来关闭DebugWIRE功能[即DWEN=1],关闭DebugWIRE功能后,如果RSTDISBL=1,SPIEN=0,ISP功能有效。 比较特殊的是 DebugWIRE调试中,断点的使用会降低Flash 数据记忆时间 DebugWIRE调试用的器件不能发给最终客户。
3.JTAG MKII同时具备JTAG/DeubgWIRE/ISP三种功能,可以轻松实现DebugWIRE/ISP的切换。 (软件需要升级到1.09版以后 即对应AVRstudio 4.12以后版本) &a href=http://218.16.124.196/bbs/bbs_content.jsp?bbs_sn=551225&bbs_page_no=1&sub_kind_id=1205&bbs_id=1000&最新版本 JTAG MK2使用说明中文pdf() 设计使用debugWIRE 的系统时,必须进行下面的检查: & dW/(RESET) 的上拉电阻不得小于10k&O。debugWIRE 并不需要上拉电阻 & 将 RESET 引脚与 VCC 直接连接将无法工作 & 使用debugWIRE 时必须断开与RESET 引脚连接的电容 & 必须断开所有的外部复位源
阅读(...) 评论()还没有帐号? 赶紧
用户版块帖子
分享AVR单片机锁死后 解锁过程
UID:1460237
在线时间535小时
M币10000专家36
本帖被 發騷友 从 创意DIY 移动到本区()
最近忙些事  都没空上网  这月底后才有空了做电源的朋友只能等等了今天拿点资料来分享初学AVR  熔断丝烧录错误很容易被锁死直接简单有效的方法  用另外的一个51单片机最小系统  接11.0592晶振我用的是stc89c52     第30脚(ALE/PROG)接AVR单片机  我用的是MAGE8单片机   第9脚(PB6/XTAL1/TOSC1)还有两单片机地脚GND相接确保两个单片机最小系统都通电然后就再擦除AVR单片机就可以了一般锁死的单片机都可以起死回生本人还有两个M8被锁死  这种方法也解不了所以只能做一个 解锁的了参考了一个网络来的资料通电12V  装上要解锁的单片机  按一下按键    两秒钟   被锁死的单片机又满血复活了还可以解很多的AVR单片机   现在拿来分享一下这是全图  可能模糊点   可以看下面分割的小图固件熔断丝设置低位(A1):高位(D1):固件在原作者资料的压缩包里我重新Protel 99se画过PCB
本文内容包含图片或附件,获取更多资讯,请
后查看;或者
成为会员获得更多权限
现在的AVR曲高和寡了。
高手啊,单片机都玩得这么好
UID:1255815
在线时间2049小时
M币4889专家71
不懂avr 请教它为什么会锁死呢?
UID:1460237
在线时间535小时
M币10000专家36
回 金向维 的帖子
:不懂avr 请教它为什么会锁死呢?[表情]  ( 20:21) 一般外接晶振的脚设置成IO就容易被锁死了&&或者熔断丝设置不对 内部晶振为1M的时候也容易被锁死
UID:1255815
在线时间2049小时
M币4889专家71
熔断丝是干什么用的?内容来自[短消息]
UID:1038188
在线时间1416小时
M币1899专家80
回 金向维 的帖子
:不懂avr 请教它为什么会锁死呢?[表情]  ( 20:21) AVR靠FUSE位选择时钟,如果在没有时钟的状态下选择了外部时钟,或者错误的时钟,会导致CPU内核无时钟信号,也就没办法再进入ISP模式,可以通过并行编程器解锁,或者提供和设定频率一致的时钟,lz应该是用STC模拟了并行编程擦除掉熔丝位。其实现在新型的ATxmega都没有这种问题了
UID:76859
在线时间1835小时
M币10839专家2
内容留个记号!以后用得着
UID:818370
在线时间1644小时
M币7662专家8
不加分 对不起你的劳动成果啊
UID:1460237
在线时间535小时
M币10000专家36
回 金向维 的帖子
:熔断丝是干什么用的?内容来自[短消息]  ( 20:28) 看4楼的详解·······呵呵
UID:1038188
在线时间1416小时
M币1899专家80
仔细看了下。好象是依靠51的ALE脉冲提供的avr CLK
UID:1050518
在线时间1753小时
M币1589专家3
谢谢分享啦~~~~~~很好的说!
访问内容超出本站范围,不能确定是否安全
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:12-08 04:31,
Gzip enabled&分享给朋友:把视频贴到Blog或BBS&&通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效天狼星AVR单片机第五课AVR单片机熔丝位简介下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效天狼星AVR单片机第五课AVR单片机熔丝位简介扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营-
节目制作经营许可证京字670号
请使用者仔细阅读优酷、、
Copyright(C)2016 优酷
不良信息举报电话:AVR单片机的熔丝位设置问题
> AVR单片机的熔丝位设置问题
AVR单片机的熔丝位设置问题
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定。1:未编程0:编程1、BOD(Brown-out Detection) 掉电检测电路BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=1)或4.0v(BODLEVEL=0);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。2、复位启动时间选择SUT 1/0: 当选择不同晶振时,SUT有所不同。 如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。本文引用地址:3、CKSEL3/0: 时钟源选择(时钟总表)时钟总表:时钟源 启动延时
熔丝外部时钟
6 CK + 0 ms CKSEL=0000 SUT="00"外部时钟
6 CK + 4.1 ms CKSEL=0000 SUT="01"外部时钟
6 CK + 65 ms CKSEL="0000" SUT="10"内部RC振荡1MHZ 6 CK + 0 ms
CKSEL="0001" SUT="00"内部RC振荡1MHZ
6 CK + 4.1 ms
CKSEL="0001" SUT="01"内部RC振荡1MHZ1
6 CK + 65 ms CKSEL="0001" SUT="10"内部RC振荡2MHZ
6 CK + 0 ms
CKSEL="0010" SUT="00"内部RC振荡2MHZ 6 CK + 4.1 ms
CKSEL="0010" SUT="01"内部RC振荡2MHZ
6 CK + 65 ms
CKSEL="0010" SUT="10"内部RC振荡4MHZ
6 CK + 0 ms
CKSEL="0011" SUT="00"内部RC振荡4MHZ
6 CK + 4.1 ms
CKSEL="0011" SUT="01"内部RC振荡4MHZ
6 CK + 65 ms
CKSEL="0011" SUT="10"内部RC振荡8MHZ
6 CK + 0 ms
CKSEL="0100" SUT="00"内部RC振荡8MHZ
6 CK + 4.1 ms
CKSEL="0100" SUT="01"内部RC振荡8MHZ
6 CK + 65 ms CKSEL="0100" SUT="10"外部RC振荡&0.9MHZ
18 CK + 0 ms CKSEL="0101" SUT="00"外部RC振荡&0.9MHZ 18 CK + 4.1 ms CKSEL="0101" SUT="01"外部RC振荡&0.9MHZ 18 CK + 65 ms CKSEL="0101" SUT="10"外部RC振荡&0.9MHZ 6 CK + 4.1 ms CKSEL="0101" SUT="11"外部RC振荡0.9-3.0MHZ 18 CK + 0 ms CKSEL="0110" SUT="00"外部RC振荡0.9-3.0MHZ 18 CK + 4.1 ms CKSEL="0110" SUT="01"外部RC振荡0.9-3.0MHZ 18 CK + 65 ms CKSEL="0110" SUT="10"外部RC振荡0.9-3.0MHZ
6 CK + 4.1 ms CKSEL=0110 SUT="11"外部RC振荡3.0-8.0MHZ
18 CK + 0 ms CKSEL=0111 SUT="00"外部RC振荡3.0-8.0MHZ
18 CK + 4.1 ms CKSEL="0111" SUT="01"外部RC振荡3.0-8.0MHZ
18 CK + 65 ms CKSEL=0111 SUT="10"外部RC振荡3.0-8.0MHZ 6 CK + 4.1 ms CKSEL="0111" SUT="11"外部RC振荡8.0-12.0MHZ 18 CK + 0 ms CKSEL=1000 SUT="00"外部RC振荡8.0-12.0MHZ
18 CK + 4.1 ms
CKSEL="1000" SUT="01"外部RC振荡8.0-12.0MHZ
18 CK + 65 ms
CKSEL="1000" SUT="10"外部RC振荡8.0-12.0MHZ
6 CK + 4.1 ms
CKSEL="1000" SUT="11"低频晶振(32.768KHZ)
1K CK + 4.1 ms CKSEL="1001" SUT="00"低频晶振(32.768KHZ)
1K CK + 65 ms
CKSEL="1001" SUT="01"低频晶振(32.768KHZ) 32K CK + 65 ms
CKSEL="1001" SUT="10"低频石英/陶瓷振荡器(0.4-0.9MHZ) 258 CK + 4.1 ms CKSEL="1010" SUT="00"低频石英/陶瓷振荡器(0.4-0.9MHZ) 258 CK + 65 ms
CKSEL="1010" SUT="01"低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 0 ms CKSEL=1010 SUT="10"低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 4.1 ms
CKSEL="1010" SUT="11"低频石英/陶瓷振荡器(0.4-0.9MHZ) 1K CK + 65 ms
CKSEL="1011" SUT="00"低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 0 ms CKSEL=1011 SUT="01"低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 4.1ms
CKSEL="1011" SUT="10"低频石英/陶瓷振荡器(0.4-0.9MHZ) 16K CK + 65ms
CKSEL="1011" SUT="11"中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 4.1 ms
CKSEL="1100" SUT="00"中频石英/陶瓷振荡器(0.9-3.0MHZ) 258 CK + 65 ms CKSEL="1100" SUT="01"中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 0 ms CKSEL=1100 SUT="10"中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 4.1 ms
CKSEL="1100" SUT="11"中频石英/陶瓷振荡器(0.9-3.0MHZ) 1K CK + 65 ms
CKSEL="1101" SUT="00"中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 0 ms
CKSEL="1101" SUT="01"中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 4.1ms
CKSEL="1101" SUT="10"中频石英/陶瓷振荡器(0.9-3.0MHZ) 16K CK + 65ms
CKSEL="1101" SUT="11"高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 4.1 ms
CKSEL="111"0 SUT="00"高频石英/陶瓷振荡器(3.0-8.0MHZ) 258 CK + 65 ms
CKSEL="111"0 SUT="01"高频石英/陶瓷振荡器(3.0-8.0MHZ)
1K CK + 0 ms CKSEL="111"0 SUT="10"高频石英/陶瓷振荡器(3.0-8.0MHZ)
1K CK + 4.1 ms CKSEL="111"0 SUT="11"高频石英/陶瓷振荡器(3.0-8.0MHZ)
1K CK + 65 ms CKSEL="1111" SUT="00"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 0 ms CKSEL="1111" SUT="01"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 4.1ms CKSEL="111"1 SUT="10"高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL="1111" SUT="11"高位(BOOT区设置):1、 JTAGEN(JTAG允许):1:JTAG禁止;0:JTAG允许 OCDEN(OCD功能允许):1:OCD功能禁止;0:OCD功能允许注:OCDEN(On-chip Debug):片上调试使能位JTAGEN(JTAG使能): JTAG测试访问端口使用方法:在JTAG调试时,使能OCDEN JTAGEN两位(复选框打勾),并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能OCDEN JTAGEN,大约减少2-3mA的电流。2、 SPIEN(SPI下载允许):1:SPI下载禁止;0:SPI下载使能注:在ISP的软件里,SPIEN是不能编辑的,默认为0。3、 CKOPT(选择放大器模式):CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。对于谐振器,当CKOPT未编程时的最大频率为8 MHz,CKOPT编程时为16 MHz。内部RC振荡器工作时不对CKOPT编程。4、EEAVE(烧录时EEPROM数据保留):1:不保留;0:保留5、BOOTRST(复位入口选择):1:程序从0x0000地址开始0:复位后 从BOOT区执行(参考BOOTSZ0/1)6、BOOTSZ 1/0(引导区程序大小及入口):00: 1024Word/0xc00;01: 512Word/0xe00;10: 256Word/0xf00;11: 128Word/0xf80
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 单片机熔丝 的文章

 

随机推荐