STM8 时钟寄存器

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 分频。

时钟寄存器地址映射

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值