标定的片内RC振荡器提供了固定的1.0、2.0、4.0或8.0MHz的时钟。这些频率都是5V、25℃下的标称数值。这个时钟也可以作为系统时钟,只要按照表2-13对熔丝位CKSEL进行编程即可。选择这个时钟(此时不能对CKOPT进行编程)之后就无需外部器件了。复位时硬件将标定字节加载到OSCCAL寄存器,自动完成对RC振荡器的标定。在5V、25℃和频率为1.0MHz时,这种标定可以提供标称频率±1%的精度。当使用这个振荡器作为系统时钟时,看门狗仍然使用自己的定时器作为溢出复位的依据。
表2-13 片内标定的RC振荡器工作模式
选择了这个振荡器之后,启动时间由熔丝位SUT确定,如表2-14所示。XTAL1和XTAL2要保持为空(NC)。
表2-14 内部标定的RC振荡器的启动时间
通过振荡器标定寄存器来设置片内RC。振荡器标定寄存器OSCCAL定义如下:(www.xing528.com)
●位[7∶0]——CAL[7∶0]:振荡器标定数据
将标定数据写入这个地址可以对内部振荡器进行调节以消除由于生产工艺所带来的振荡器频率偏差。复位时1MHz的标定数据(标识数据的高字节,地址为0x00)自动加载到OS-CCAL寄存器。如果需要内部RC振荡器工作于其他频率,标定数据必须人工加载:首先通过编程器读取标识数据,然后将标定数据保存到Flash或EEPROM之中。这些数据可以通过软件读取,然后加载到OSCCAL寄存器。当OSCCAL为零时振荡器以最低频率工作。当对其写入不为零的数据时内部振荡器的频率将增长。写入0xFF即得到最高频率。标定的振荡器用来为访问EEPROM和Flash定时。有写EEPROM和Flash操作时不要将频率标定到超过标称频率的10%,否则写操作有可能失败。要注意振荡器只对1.0、2.0、4.0和8.0MHz这四种频率进行了标定,其他频率则无法保证,如表2-15所示。
表2-15 内部RC振荡器频率范围
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。