历史上的今天
返回首页

历史上的今天

今天是:2025年07月07日(星期一)

正在发生

2020年07月07日 | ATtiny13 系统时钟预分频器

2020-07-07 来源:eefocus

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 为新设置后相应的时钟周期。

推荐阅读

史海拾趣

问答坊 | AI 解惑

2-60V可调

最近打算做一个2-60V可调电源,最大电流为10A,纹波<100mv,不知大家有什么建议给我吗?虽然做过电源但是还没有做过这么大功率的,第一次尝试,不知该考虑些什么? 希望各位大虾多给提点意见 …

查看全部问答>

自己的4*4键盘扫描实现

本人刚开始学弹片,对C语言也是刚刚接触,看了 对于入门还不错. 在这里贴出自己写的键盘扫描实现,小弟初学者,也没考虑那么多,如效率之类的 有不足之处 欢迎大家讨论 #include #include #define uint unsigned int #define uchar unsigned char s ...…

查看全部问答>

请教等效阻抗

在网上下载的电路相关学习资料,学习到电路短路判断这一块时。遇到等效阻抗这一概念。根据学习资料上给出的电阻值,其等效阻抗=并联电路的电阻值。但是我看电路图上给出的量电阻的位置处于一条直线上,很矛盾。所以发帖请教各位老师。希望能得到等 ...…

查看全部问答>

请教高手 jffs2_get_inode_nodes(): Data CRC failed on node...问题

/bin/mount -n -t jffs2 /dev/mtdblock/3 -o rw,noatime /app jffs2: Erase block size too small (16KiB). Using virtual blocks size (32KiB) instead Empty flash at 0x02407104 ends at 0x02407200 set hw ether and ip of eth0 eth0: Sett ...…

查看全部问答>

ST给的Demo中的STM3210E-EVAL如何产生的?

IAR编译器下本来的工程应该是Debug,Release,但是ST给的Demo中的 TM3210E-EVAL如何产生的?属于Debug呢还是Release呢?…

查看全部问答>

1602显示问题

我的电路和程序如下,按照郭天祥教程做的,为什么仿真不了??             感谢各路大侠指导     [ 本帖最后由 sphshine 于 2011-10-29 20:29 编辑 ]…

查看全部问答>

P1REN没有定义?

我刚开始学430在编译下面代码的时候,IAR报错 Error[Pe020]: identifier \"P1REN\" is undefined E:\\workspace\\main.c 12 #include \"io430.h\"#include \"intrinsics.h\" int main( void ){  // Stop watchdog timer to prevent time out ...…

查看全部问答>

用LM Flash Programmer通过串口给LM 3S800下载程序时,包长的确定

在boot_serial工程中有config.h配置文件,其中有一个变量为BUFFER_SIZE,原文件中默认为20,当把这样配置的引导程序下载到芯片中后,用LM Flash Programmer通过串口下载程序时,LM Flash Programmer中在“Configation”下的“Transfer Size”最大只 ...…

查看全部问答>

分享目前最详细最好的SD卡学习视频教程,阿迪的《MMC/SD卡入门到精通》

比较不错的SD卡/MMC卡学习视频教程,AVR单片机驱动的,在线稍微没有那么清晰东西比较大,没有上传,大家先网上看看在线的,有时间了传清晰版版本优酷网在线观看地址:第一集:http://v.youku.com/v_playlist/f5066832o1p1.html第二集:http://v.you ...…

查看全部问答>