logo

AVR应用笔记 AVR单片机内核剖析 ATmega64 标定的片内RC振荡器

ATmega64 标定的片内RC振荡器

以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!

标定的片内RC 振荡器提供了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是 5V、25°C 下的标称数值。这个时钟也可以作为系统时钟,只要按照Table 13 对熔丝位 CKSEL进行编程即可。选择这个时钟(此时不能对CKOPT进行编程)之后就无需外部器件 了。复位时硬件将标定字节加载到OSCCAL 寄存器,自动完成对RC 振荡器的标定。在 5V, 25°C 和频率为1.0 MHz 时,这种标定可以提供标称频率 ± 3% 的精度;使用 www.atmel.com/avr 中所给出的方法,可在任何电压、任何温度下,使精度达到± 1% 。当 使用这个振荡器作为系统时钟时,看门狗仍然使用自己的看门狗定时器作为溢出复位的 依据。更多的有关标定数据的信息请参见 P284“ 标定字节” 。

ATmega64 片内标定的RC 振荡器工作模式
Note: 1. 出厂时的设置。

选择了这个振荡器之后,启动时间由熔丝位SUT 确定,如Table 14 所示。XTAL1 和 XTAL2 要保持为空(NC)。

ATmega64 内部标定RC 振荡器的启动时间
Note: 1. 出厂时的设置。

振荡器标定寄存器- OSCCAL

ATmega64 振荡器标定寄存器
Note: 1. ATmega103 兼容模式没有OSCCAL 寄存器。

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

ATmega64 内部RC 振荡器频率范围
 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

ATmega64 标定的片内RC振荡器

——