logo

AVR应用笔记 AVR单片机内核剖析 ATtiny13 系统时钟预分频器

ATtiny13 系统时钟预分频器

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

ATtiny13 系统时钟可通过设置时钟预分频寄存器 CLKPR 来分频。该特性可用来降低功 耗。该分频器对所有时钟源都有效,且可影响 CPU 时钟频率及所有同步外设。 clkI/O、 clkADC、clkCPU 及clkFLASH 分频因子见Table 9 。

时钟预分频寄存器-CLKPR

ATtiny13 CLKPR

· Bits 7 – CLKPCE: 时钟预分频器变化使能
CLKPCE 位必须置"1”使能 CLKPS位。只有当CLKPR寄存器的其他位同时写"0”时, CLK- PCE位改变。CLKPCE在写入四个周期后或当CLKPS位写入后由硬件清零。在暂停周期 中重新写 CLKPCE 位,既不扩展暂停周期,也不清除 CLKPCE 位。

· Bits 6..4 –Res: 保留
保留位,读操作返回值为零。

·Bits 3..0 – CLKPS3..0: 时钟预分频器选择位 3 - 0
这几位定义所选时钟源与内部系统时钟所分频因子。这几位写入运行时间来改变时钟频 率以适应运行需要。当作为 MCU 主时钟输入分频器,使用分频因子时,所有同步外设速 度将会下降。分频因子见 Table 9。

为避免时钟频率的无意改变,对 CLKPS 位的写入必须按照如下步骤进行:
1. 将 CLKPCE位写 "1”,而 CLKPR 寄存器的其他位写 "0”。
2. 在四个时钟周期内,将期望值写入 CLKPS,并在 CLKPCE 位写 "0”。
在改变预分频器设置时必须禁止中断,以保证在写入过程中不会出现中断。

CKDIV8熔丝位决定CLKPS位的初始值。若CKDIV8未编程,CLKPS位复位为“0000”;若 CKDIV8 已编程,CLKPS 位复位为 “0011”,给出启动时分频因子为 8。若所选时钟源频率 大于当前工作状态下器件最大频率时,应利用该特性分频。注意,CLKPS 位写入值不受CKDIV8 熔丝位设置影响。若所选时钟源频率大于当前工作状态下器件最大频率,应用程 序必须保证选择一个足够大的分频因子。芯片出厂时 CKDIV8 熔丝位已编程。

ATtiny13 时钟预分频选择

转换时间


当预分频器转换时,系统时钟预分频器保证时钟系统中不会出现毛刺,且频率低于转换前后的频率。

脉动计数器使预分频器在未分频时钟频率下运行,这可能比 CPU 时钟频率快。因此即使预分频器可读,我们也无法确定其状态,所以我们也无法得到准确的转换时间。

CLKPS值的写入时间介于T1 + T2与T1 + 2*T2之间。在此间隔中,产生2个时钟边沿。其中 T1 为前一个时钟周期, T2 为新设置后相应的时钟周期。

 相关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

ATtiny13 系统时钟预分频器

——