历史上的今天
今天是:2024年10月18日(星期五)
2021年10月18日 | STM8 时钟寄存器
2021-10-18 来源:eefocus
STM8S 的时钟管理可以通过对 13 个寄存器的设置来实现,它们是
● 内部时钟寄存器 CLK_ICKR
● 外部时钟寄存器 CLK_ECKR
● 主时钟状态寄存器 CLK_CMSR
● 主时钟切换寄存器 CLK_SWR
● 切换控制寄存器 CLK_SWCR
● 时钟分频寄存器 CLK_CKDIVR
● 外设时钟门控寄存器 1CLK_PCKENR1
● 外设时钟门控寄存器 2CLK_PCKENR2
● 时钟安全系统寄存器 CLK_CSSR
● 可配置时钟输出寄存器 CLK_CCOR
● CAN外部时钟控制寄存器 CLK_CANCCR
● HSI 时钟修正寄存器 CLK_HSITRIMR
● SWIM 时钟控制寄存器CLK_SWIMCCR
内部时钟寄存器 CLK_ICKR

内部时钟寄存器用来设置 STM8 内部的时钟参数及获取内部时钟的状态。BIT7、BIT6 是保留位;
BIT5 是活跃停机模式(Active Halt)下电压调节器的设置位,由软件清零或置位。0—打开主电压调节器;1—关闭主电压调节器,由活跃停机状态下唤醒的时间较长。
BIT4 是 LSI 准备就绪状态位,由硬件置位或清零。0—LSI 未准备就绪;1—LSI 已准备就绪。
BIT3 是 LSI 使能位,一般由软件置位或清零。0—关闭 LSI;1—打开 LSI。如果在进行其他操作时,操作的过程中 LSI 是必需的,则该位会被硬件自动置位。例如:
■时钟源切换至 LSI;
■LSI 被设置为 CCO 时钟源;
■BEEP 被使能;
■LSI 测量被使能;
LSI 被设置位主时钟源、CCO 时钟源、自动唤醒模块时钟源、独立看门狗时钟源时,此位不能被清零。BIT2 是快速唤醒使能位,用来设置从停机模式(Halt)或活跃停机模式(Active Halt)快速唤醒功能的开关,由软件设置。0—快速唤醒禁用;1—快速唤醒开启。
BIT1 是 HSI 是否就绪状态位,由硬件设置。0—HSI 未准备就绪;1—HSI 准备就绪。
BIT0 是 HSI 使能位,一般由软件设置。0—HSI 关闭;1—HSI 开启。如果进行其他操作时,HSI 是必需的,则该位会被硬件置位。例如::
■CSS 被**;
■时钟源切换至 HIS;
■HSI 被设置为 CCO 时钟源;
外部时钟寄存器 CLK_ECKR

外部时钟寄存器与 HSE 相关。
BIT2~BIT7 为保留位;
BIT1 为 HSE 是否就绪状态位,由硬件置位或清零。0—HSE 未就绪;1—HSE 已就绪。BIT0 为 HSE 使能位,0—关闭HSE;1—开启 HSE。
主时钟状态寄存器 CLK_CMSR

主时钟状态寄存器用于指示当前系统所选的主时钟源。
0xE1—主时钟源为 HSI;
0xD2—主时钟源为LSI;
0xB4—主时钟源为 HSE。
主时钟切换寄存器 CLK_SWR

该寄存器用于选择主时钟源,时钟切换正在进行时,该寄存器被写保护。
0xE1—主时钟源为 HSI;
0xD2—主时钟源为 LSI;
0xB4—主时钟源为 HSE。
切换控制寄存器 CLK_SWCR

该寄存器的 BIT4~BIT7 位为保留位。
SWIF 位为时钟切换中断标志位,由硬件置位、软件清零。在手动切换模式(SWEN=0)下,0—目标时钟源未准备就绪;1—目标时钟源准备就绪;在自动切换模式(SWEN=1)下,0—无时钟切换事件发生;1 —有时钟切换事件发生。
SWIEN 位为时钟切换中断使能位,由软件置位或清零。0—禁止时钟切换中断;1—使能时钟切换中断。
SWEN 位为启动/停止切换位。向该位写 1,系统主时钟源会切换至 CLK_SWR 设定的时钟源。0—禁止时钟切换;1—启动时钟切换。
SWBSY 位为时钟切换忙状态位,由硬件置位或清零。0—无时钟切换在进行;1—时钟切换正在进行。
时钟分频寄存器 CLK_CKDIVR

时钟分频寄存器用来设置 HSI 和 CPU 时钟分频,其中 BIT4、BIT3 设置 HSI 分频值,BIT0~BIT2 设置 CPU 分频。
[BIT4:BIT3]:
00—f HSI =f HSI 输出;
01—f HSI =f HSI 输出/2;
10—f HSI =f HSI 输出/4;
11—f HSI =f HSI 输出/8;
[BIT2:BIT0]:
000—f CPU =f MASTER ;
001—f CPU =f MASTER /2;
010—f CPU =f MASTER /4;
011—f CPU =f MASTER /8;
100—f CPU =f MASTER /16;
101—f CPU =f MASTER /32;
110—f CPU =f MASTER /64;
111—f CPU =f MASTER /128;
外设时钟门控寄存器 1CLK_PCKENR1

外设时钟门控寄存器用来设置 f MASTER 与外设的连接或断开,断开不使用的外设的时钟可以降低系统的功耗。将某位设置为 0,对应外设的时钟与 f MASTER 断开,反之则连接。
外设时钟门控寄存器 2CLK_PCKENR2

外设时钟门控寄存器 1 和 2 对应的外设如表 4.9 所示。
时钟安全系统寄存器 CLK_CSSR

时钟安全系统用于监测系统的外部时钟 HSE 是否有效,并在 HSE 失效时将主时钟源切换至备用时钟源。
BIT4~BIT7 为保留位;BIT3 为时钟安全系统监测位,由硬件置位或软件清零。0—CSS 关闭或未检测到 HSE 失效;1—检测到 HSE 失效。
BIT2 为时钟安全系统监测中断使能位,由软件置位或清零,0—禁用;1—使能。
BIT1 为辅助振荡器使能位,它由硬件置位或清零,0—辅助振荡器关闭;1—辅助振荡器开(HSI/8),并作为当前的主时钟源。
BIT0 为时钟安全系统使能位,只能由软件写一次,可读,0—关闭时钟安全系统;1—打开时钟安全系统。
可配置时钟输出寄存器 CLK_CCOR

该寄存器用于设置可配置时钟输出功能。
BIT7 为保留位。
CCOBSY 为 CCO 忙标志位,由硬件置位或清零,用于指示所选的 CCO 时钟源正处于切换状态或稳定状态。0—CCO 时钟空闲;1—CCO 时钟忙,CCOSEL 被写保护,直至 CCO 时钟被使能。
CCORDY 用于指示 CCO 时钟的状态,由硬件置位或清零,0—CCO 时钟可用;1—CCO 时钟不可用。
CCOSEL0~CCOSEL3 用于选择 CCO 时钟源。
0000—f HSIDIV ;
0001—f LSI;
0010—f HSE ;
0011—保留;
0100—f CPU ;
0101—f CPU /2;
0110—f CPU /4;
0111—f CPU /8;
1000—f CPU /16;
1001—f CPU /32;
1010—f CPU /64;
1011—f HSI ;
1100—f MASTER ;
1101、1110、1111—f CPU 。
CCOEN 为 CCO 功能使能位,由软件置位或清零。0—禁止 CCO;1—使能 CCO。
CAN 外部时钟控制寄存器 CLK_CANCCR

该寄存器用于设置外部 CAN 时钟的分频值。
000—外部 CAN 时钟=f HSE ;
001—外部 CAN 时钟=f HSE /2;
010—外部 CAN 时钟=f HSE /4;
……
111—外部 CAN 时钟=f HSE /8;
HSI 时钟修正寄存器 CLK_HSITRIMR

该寄存器用于微调 HSI 的校准值,由软件写入。HSIRIMR0~HSITRIMR
SWIM 时钟控制寄存器 CLK_SWIMCCR

SWIMCLK 位为 SWIM 时钟分频值,由软件置位或清零。0—SWIM 时钟被 2 分频;1—SWIM 时钟未被 2 分频。
时钟寄存器地址映射

史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:41 编辑 当将模拟信号转换成方波脉冲后,再将脉冲信号送入单片机,那么单片机是怎样处理这个脉冲信号的? … 查看全部问答> |
|
note:usb address and data registers will not valid until usb clock is running 这是什么造成的呢?… 查看全部问答> |
|
技术在于积累! 第一次刚接触LED驱动是从一块DEMO板: DC输入,输出是低电流大致200MA的; 因为客户的需求,后来公司头一次想用SMD802开发一块非隔离的7*1w 450MA驱动板;那时候没买样板,也没找专门的IC厂商,要求技 ...… 查看全部问答> |
|
最近做了一个题目,使用蓝牙接收到的数据在LED点阵上显示出来,但是前提是不知道要接收的数据的内容。该如何实现接收到的数据用编程直接转换成LED点阵上能识别的二进制数。是该做一个字库还是有其他什么别的方法。请专业人士帮忙解决一下。谢谢。… 查看全部问答> |
|
windows ce stream driver wizard 搜遍了整个网络也没有找到windows ce stream driver wizard这个工具,哪位大哥大姐弟弟妹妹能够慷慨解囊,帮小弟一把,不胜感激。小弟的邮箱是:cougarz@somagic.com.cn… 查看全部问答> |
|
哪位达人用过《EVC高级编程及其应用开发》这本书上基础数据库的例子? 我在wince下试了这个程序,可是不好使阿,添加不了,也删除不了,请问是还需要安装什么程序还是本身实例程序有问题啊?… 查看全部问答> |
|
今天用Proteus仿真的ADC0809。。。但实际0809不工作啊。。。。 单片机的对应ST脚的P口接上0809时就被拉低了。Proteus仿真什么问题都没有。0809要注意什么问题么?有两个问题:1,我希望设定的是500K,用定时器方式2也是设成255。可从P口出来的就是50K 啊。2,ST脚被拉低,但不接0809时单片机P口是正常的 ...… 查看全部问答> |
|
我在使用msp430F149的JTAG模块下载时,一开始还能下载运行,试了有两三天,突然一天不能下载了,后来就再也不能下了,软件提示不能发现目标。然后又贴了一块板子,结果这块好了半天就又出现和前面一样的现象。很是郁闷 量了下载口各个引脚的电压 ...… 查看全部问答> |




