文档库 最新最全的文档下载
当前位置:文档库 › AVR单片机熔丝位详解

AVR单片机熔丝位详解

AVR单片机熔丝位详解
AVR单片机熔丝位详解

注意:对于所有的熔丝位, “1” 表示未编程, “0” 代表已编程。

壱、CKSEL3..0、CKOPT、SUT1.0:用于设置系统时钟?CKSEL3..0 --- 时钟源模式选择。

?SUT1.0 --- 复位启动时间选择。

1、如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。

2、对应时钟源模式的不同,SUT的设置也不同,详情看下文说明。

?CKOPT --- 选择放大器模式。

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

1、当用外部晶体/ 陶瓷振荡器

(1)CKOPT和CKSEL3..1设置晶体振荡器工作模式

大器的输入和输出,如左图所示,这个振荡器可以使

用石英晶体,也可以使用陶瓷谐振器。C1和C2 的数值

要一样,不管使用的是晶体还是谐振器。最佳的数值与

使用的晶体或谐振器有关,还与杂散电容和环境的电

磁噪声有关。表1-1给出了不同模式对应的频率范围及

针对晶体选择电容的一些指南。对于陶瓷谐振器,应该

使用厂商提供的数值。

表1-1:振荡器工作模式

(1)SUT1.0和CKSEL0设置选择启动时间

表1-2:晶体振荡器时钟选项对应的启动时间表

2、当用外部低频振荡器

为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置“1001”以选择低频晶体振荡器。晶体的连接方式和用上面外部晶振的一样。通过对熔丝位CKOPT 的编程,可以使能XTAL1 和XTAL2 的内部电容,从而去除外部电容。内部电容的标称数值为36 pF。选择了这个振荡器之后,启动时间由熔丝位SUT 确定,如表2-1所示。

表2-1:低频晶体振荡器启动时间表

3、当用外部R-C振荡器

(1)CKOPT和CKSEL3..0设置晶体振荡器工作模式

对于时间不敏感的应用可以使用左图的外部RC 振荡器。

频率可以通过方程f =1/(3RC) 进行粗略地鼓估计。电容C 至

少要22 pF。通过编程熔丝位CKOPT,用户可以使能XTAL1 和

GND 之间的片内 36 pF 电容,从而无需外部点燃。若想获取

有关振荡器如何工作以及如何选择R 和C 的具体信息,请参

考外部RC 振荡器应用手册。振荡器可以工作于四个不同的模

式,每个模式有自己的优化频率范围。工作模式通过熔丝位

CKSEL3..0 选取,如表3-1所示。

表3-1:外部R-C振荡器工作模式

(2)SUT1.0设置选择启动时间

选择了振荡器之后,启动时间由熔丝位SUT 确定,如表3-2所示:

表3-2:外部R-C振荡器启动时间

4、当用标定内部R-C振荡器

(1)CKOPT和CKSEL3..0设置晶体振荡器工作模式

标定的片内RC 振荡器提供了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是5V、25°C 下的标称数值。这个时钟也可以作为系统时钟,只要按照表4-1对熔丝位CKSEL 进行编程即可。选择这个时钟(此时不能对CKOPT进行编程)之后就无需外部器件了。复位时硬件将标定字节加载到OSCCAL 寄存器,自动完成对RC 振荡器的标定。在5V,25°C 和频率为1.0 MHz 时,这种标定可以提供标称频率 ± 1% 的精度。当使用这个振荡器作为系统时钟时,看门狗仍然使用自己的看门狗定时器作为溢出复位的依据。

表4-1:片内标定R-C振荡器工作模式

(2)SUT1.0设置选择启动时间

启动时间由熔丝位SUT 确定,如表4-2所示。XTAL1 和XTAL2 要保持为空(NC)。

表4-2:片内标定R-C振荡器启动时间

(3)振荡器标定寄存器OSCCAL的设置

将标定数据写入这个地址可以对内部振荡器进行调节以消除由于生产工艺所带来的振荡器频率偏差。复位时1 MHz 的标定数据( 标识数据的高字节,地址为0x00) 自动加载到OSCCAL 寄存器。如果需要内部RC 振荡器工作于其他频率,标定数据必须人工加载:首先通过编程器读取标识数据,然后将标定数据保存到F lash 或EEPROM 之中。这些数据可以通过软件读取,然后加载到OSCCAL 寄存器。当OSCCAL 为零时振荡器以最低频率工作。当对其写如不为零的数据时内部振荡器的频率将增长。写入0x FF 即得到最高频率。标定的振荡器用来为访问EEPROM 和F lash 定时。有写EEPROM 和F lash 的操作时不要将频率标定到超过标称频率的10%,否则写操作有可能失败。要注意振荡器只对1.0、2.0、4.0 和8.0

MHz 这四种频率进行了标定,其他频率则无法保证。

5、当用外部时钟

为了从外部时钟源驱动芯片,

XTAL1 必须如左图所示的进行连

接。同时,熔丝位CKSEL必须编程

为“0000”。若熔丝位CKOPT也被

编程,用户就可以使用内部的

XTAL1和GND 之间的36 pF 电容。

选择了这个振荡器之后,启

动时间由熔丝位SUT 确定,如表

5-1所示。

表5-1:外部时钟启动时间

为了保证MCU 能够稳定工作,不能突然改变外部时钟源的振荡频率。工作频率突变超过2% 将会产生异常现象。应该在MCU 保持复位状态时改变外部时钟的振荡频率。

附:时钟源和启动时间设置对照表

时钟源 启动延时 熔丝

外部时钟 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="111"1 SUT="01"

高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 4.1ms CKSEL="111"1 SUT="10"

高频石英/陶瓷振荡器(3.0-8.0MHZ) 16K CK + 65ms CKSEL="111"1 SUT="11"

弐、BOD(Brown-out Detection) 掉电检测电路

B ODEN(B OD功能控制)--- 1:B OD功能禁止;0:B OD功能允许

如果BODEN使能(启动掉电检测),则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。

?B ODLE V EL(B OD电平选择)---1: 2.7V电平; 0:4.0V电平

因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(B ODLE V EL=0)或

4.0v(B ODLE V EL=1);而M16工作在4.5~

5.5V,所以只能选

B ODLE V EL=0,B ODLE V EL=1不适用于AT mega16。

参、SPIEN(SPI下载使能)

1:SP I下载禁止;0:SP I下载使能。默认为0。

四、JTAGEN(JTAG使能)和OCDEN(OCD功能允许)

?J TAGEN(J TAG测试访问端口使能)---1:J TAG禁止; 0:J TAG允许

?OCDEN(片上调试使能)---1:OCD功能禁止;0:OCD功能允许

?使用方法:

在J TAG调试时,使能OCDEN 和J TAGEN两位(复选框打勾),并保持所有的锁定位处于非锁定状态;在实际使用时为降低功耗,不使能OCDEN 和J TAGEN,大约减少2-3m A的电流。

伍、EEA VE(烧录时EEPROM数据保留)

?EEA V E ---1:不保留;0:保留

使用EEP rom时,若没注意EEA V E位的编程,调试程序每次烧f lash时,上次的EEP rom都没了。

六、BOOTRST(复位入口地址选择)

1:程序从0x0000地址开始 0:复位后从B OOT区执行(参考B OOTS Z0/1)。

七、BOOTSZ 1/0(引导区程序大小及入口)

00: 1024Word/0xc00; 01: 512Word/0xe00;

10: 256Word/0x f00; 11: 128Word/0x f80

相关文档