这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » AVR的熔丝配置

共1条 1/1 1 跳转至

AVR的熔丝配置

助工
2014-11-14 00:31:42     打赏


对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。
(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的应用请参考本章相关内容。
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熔丝位的改写需要十分慎重,因为一旦改写错误,会造成芯片无法启动。
(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熔丝位的配置熔丝位是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. 在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝位的状态为1(禁止);“Programmed” 表示熔丝位的状态为0(允许)。因此,配置         熔丝位的过程实际上是“配置熔丝位成为未编程状态1或成为已编程状态0”。
    2. 在使用通过选择打钩“?”方式确定熔丝位状态值的编程工具软件时,首先仔细阅读软件的使用说明书,弄清“?”表示设置熔丝位状态为0还是为1。
    3. 新的AVR芯片在使用前,应先查看它的熔丝位的配置情况,再根据实际需要进行熔丝位的配置,并将各个熔丝位的状态记录备案。
    4. AVR芯片加密以后仅仅是不能读取芯片内部的Flash和E²PROM中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯片擦除命令是将Flash和E²PROM中的数据清除,并同时并两位锁定位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不能改变其他熔丝位的状态。
    5. 正确的操作步骤是:在芯片无锁定状态下,将代码写入芯片中,配置相关的熔丝位,最后配置芯片的锁定位。芯片锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令清除芯片中的数据,并解除锁定。然后重新写入代码,修改相关的熔丝位,最后再次配置芯片的锁定位。
    6. 使用ISP串行方式下载编程时,应配置SPIEN熔丝位为0,芯片出厂时SPIEN位的状态默认为0,表示允许ISP串行方式下载编程。只有该位处于编程状态0时才可以通过AVR的ISP口进行ISP下载编程,如果该位处于编程状态1后,ISP串行方式下载数据立即被禁止,此时只有通过并口方式或JTAG编程方式才能将SPIEN的状态重新设置为0来开放ISP编程方式。所以有时芯片在ISP方式下不能写入,不要认为芯片已坏,可以按以上方法开放ISP编程。通常情况下,应保持SPIEN的状态为0,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电路设计时,注意ISP接口与其接口器件进行必要的隔离,如使用串接电阻或断路跳线等。
    7. 当不需要使用JTAG接口编程方式,且JTAG接口引脚需要作为I/O口使用时,最好设置熔丝位JTAGEN的状态为1。芯片出厂时 JTAGEN的状态默认为0,表示允许JTAG编程方式,JTAG引脚不能作为I/O口使用,所以新的芯片如果需要用到JTAG引脚作I/O口,需设置 JTAGEN为1,当JTAGEN的状态设置为1后JTAG接口立即被禁止,此时只有通过并行方式或ISP编程方式才能将JTAG重新设置为0开放 JTAG。 
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
AVR芯片的ISP全攻略+熔丝补救方法
AVR芯片的ISP全攻略 


并行编程,最早的编程方法,功能最强大,但需要连接较多的引脚,通常需要12V~24V的高压 
ISP(In System Programmability)  在系统编程,简称为 串行下载 
IAP(In Application Programing)  在应用编程,BootLoader也是类似的意思 


1 ISP虽然利用了SPI接口(M64/M128除外),但只在复位时起作用,而且下载完成后合格的下载器会自动断开端口的连接,对正常工作时没有影响的( 在产品应用中,下载器一定是不会一直粘在上面的)。 
2 虽然高压并行下载能修复任何熔丝位,但对于贴片封装来说是很不现实的,所以ISP接口是最常用的下载方式了 
3 虽然IAP是一种新的升级方法,但IAP程序本身也是要先用高压并行下载或ISP来烧进芯片里面才行 


所以,产品上一般都留有ISP接口插座,或更省位置的----留6个焊盘就行了 




ISP的工作前提  
    1 芯片没有物理损坏 
    2 芯片的SPIEN熔丝位=0    使能ISP功能 
    3 芯片的RSTDISBL熔丝位=1 RESET引脚有效 (假如芯片有这个熔丝位) 
    4 线路正常---------接错线? 短路? 
    5 下载器正常-------特别要考虑 连线的接触不良问题 
    6 电源 




   运行时钟      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 


在ISP模式下永远不能访问(修改)SPIEN位,这是AVR芯片的硬件保护 


有独立RESET脚的M16/M32/M64/M128等,在ISP模式下根本就就不会令ISP无效,无论如何修改熔丝位,都能恢复正常。 
M8/M48/M88/M168/Tiny系列有RSTDISBL熔丝位可以令导致RESET失效而令ISP无法工作外,其他情况都能恢复正常。 


一般来说,只要满足ISP的工作前提,再把XTAL1接到一个4MHz有源晶体的输出,基本是万试万灵的。 


不要忘记,并行高压编程的时钟信号也是从XTAL1导入方波信号的。 
如果有源晶振的方法不行(除了ISPEN=0,RSTDISBL=0情况外),恐怕高压编程也未必能奏效。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ATmega16的熔丝设置详解
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定
在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。力求易懂、全面。
下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。
a intro
b 低位(时钟及启动时间设置):
c 时钟总表
d 高位(BOOT区设置):
e 常用熔丝设置


[url=]打开运行[/url]SLISP.exe,首先记住:
1:未编程(配置熔丝检查框未打钩)
0:编程 (配置熔丝检查框打钩)
建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。
先了解一下M16的出厂设置。
默认设置为:内部RC振荡8MHz 6 CK + 65 ms CKSEL=0100 SUT=10




[url=]低位[/url](时钟及启动时间设置):
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)         以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。
注:1.复选框选中代表0,0电平有效。
   2.因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=0)或4.0v(BODLEVEL=1);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。
2.复位启动时间选择
SUT 1/0:  当选择不同晶振时,SUT有所不同。
如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
CKSEL3/0: 时钟源选择 ([url=]时钟总表[/url])
时钟总表  
  时钟源               启动延时         熔丝
  外部时钟             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=1110 SUT=00
高频石英/陶瓷振荡器(3.0-8.0MHZ)    258 CK + 65 ms    CKSEL=1110 SUT=01
高频石英/陶瓷振荡器(3.0-8.0MHZ)    1K CK + 0 ms      CKSEL=1110 SUT=10
高频石英/陶瓷振荡器(3.0-8.0MHZ)    1K CK + 4.1 ms    CKSEL=1110 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=1111 SUT=10
高频石英/陶瓷振荡器(3.0-8.0MHZ)    16K CK + 65ms     CKSEL=1111 SUT=11


[url=]高位[/url](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下载使能
注:在双龙的软件里,SPIEN是不能编辑的,默认为0。
3. CKOPT(选择放大器模式): CKOPT=0:高幅度振荡输出;CKOPT=1:低幅度振荡输出
   当CKOPT 被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽。当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。
   其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。(据我测量功耗差别在1mA左右)。
   对于谐振器,当CKOPT未编程时的最大频率为8 MHz,CKOPT编程时为16 MHz。内部RC振荡器工作时不对CKOPT编程。
4.EEAVE(烧录时EEPROM数据保留):  1:不保留;0:保留
  在一次使用EEProm时没注意EEAVE位的编程,调试程序每次烧flash时,EEProm都没了,后来才知道,EEAVE打了勾。
5.BOOTRST(复位入口选择):  1:程序从0x0000地址开始 0:复位后从BOOT区执行(参考BOOTSZ0/1)
6.BOOTSZ 1/0(引导区程序大小及入口):  
00: 1024Word/0xc00;
01: 512Word/0xe00;
10: 256Word/0xf00;
11: 128Word/0xf80

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]