嵌入式学习小组
直播中

刘璇

7年用户 176经验值
私信 关注

哪位大神可以详细介绍一下ATtiny13标定的片内RC振荡器吗?

ATtiny13标定的片内RC振荡器

回帖(1)

李小雯

2020-11-17 15:28:13
标定的片内 RC 振荡器提供了固定的 8 MHz 或 4 MHz 的时钟。 这些频率都是 3V、 25 C下的标称数值。若频率超出器件标称值,必须对CKDIV8熔丝位编程,以在启动阶段 对内部频率 8 分频,详见 P24“ 系统时钟预分频器 ” 。
这个时钟也可以作为系统时钟,只 要按照 Table 4 对熔丝位 CKSEL 进行编程即可。选择这个时钟之后就无需外部器件了。 复位时硬件将标定字节加载到 OSCCAL 寄存器,自动完成对 RC 振荡器的标定。在 3V、 25度时,这种标定可以提供标称频率 ± 10%的精度。
当使用这个振荡器作为系统时钟时,看门狗仍然使用自己的看门狗定时器作为溢出复位的依据。更多的有关标定数据的信息请参见 P152“ 校准字节 ” 。

选择了这个振荡器之后,启动时间由熔丝位 SUT确定,如 Table 7 所示。

振荡器标定寄存器- OSCCAL

Bits 7 –RES: 保留
保留位,读操作返回值为零。
Bits 6..0 – CAL6..0: 振荡器标定值
将标定数据写入这个地址可以对内部振荡器进行调节以消除由于生产工 器频率偏差。这在复位时自动完成。当 OSCCAL 为零时振荡器以最低频率工作。当对其 写如不为零的数据时内部振荡器的频率将增长。写入 0x7F即得到最高频率。标定的振荡 器用来为访问 EEPROM 和 Flash 定时。有写 EEPROM 和 Flash 的操作时不要将频率标 定到超过标称频率的 10%,否则写操作有可能失败。要注意振荡器只对 8 MHz 和 4 MHz 这两种频率进行了标定,其他频率则无法保证。
为保证 MCU 稳定工作,当标定内部 RC振荡器时避免大幅度改变标称值。工作频率突变 超过 2%将会产生异常现象。每次对 OSCCAL 寄存器中值的改变不应超过 0x20。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分