AVR单片机熔丝位详解

  • 格式:pdf
  • 大小:300.36 KB
  • 文档页数:8

注意:对于所有的熔丝位, “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.0MHz 这四种频率进行了标定,其他频率则无法保证。

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决定。