历史上的今天
返回首页

历史上的今天

今天是: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 分频。

时钟寄存器地址映射

在这里插入图片描述


推荐阅读

史海拾趣

APM Hexseal公司的发展小趣事

随着公司的发展,APM Hexseal不断拓展其产品线,推出了包括断路器、密封开关、过滤器和密封件等一系列产品。这些产品都经过了严格的测试和认证,以确保其能够满足各种恶劣环境下的使用要求。其中,许多产品都获得了UL认证,进一步证明了其卓越的品质和可靠性。

APEM公司的发展小趣事

为了进一步拓展北美市场,APEM在1991年收购了位于美国波士顿的American Switch Corp.,并成立了子公司APEM COMPONENTS Inc.。这一收购使APEM得以在北美市场建立稳固的地位,为其全球扩张提供了有力支持。

无锡友达公司的发展小趣事

无锡友达注重企业文化建设和团队建设,致力于为员工创造一个良好的工作环境和发展空间。公司设有完善的培训及考核晋升制度,员工上升空间广阔。同时,无锡友达还积极与省内各大高校合作,建立产学研基地,培养出一二级工程师50余名。这些优秀的人才为公司的发展提供了有力的人才保障。

请注意,以上故事均为根据公开信息概括的框架性内容,具体细节可能因实际情况而有所不同。

Corsair Memory Inc公司的发展小趣事

随着公司的发展,Corsair Memory Inc不仅局限于内存产品的生产,还积极扩大业务范围。其中,收购SCUF Gaming是Corsair在扩展业务版图上的重要一步。这一收购使Corsair得以进入游戏外设市场,进一步丰富了其产品线,也为其带来了更多的增长机会。

飞虹(FeiHong)公司的发展小趣事

自成立以来,苏州锋驰不断投入研发力量,致力于技术创新。公司成功研发出152、153、2501等系列单片机产品,这些产品广泛应用于消费电子、小家电等产业,赢得了市场的广泛认可。随着技术的不断积累,苏州锋驰还不断推出新产品,以满足客户日益多样化的需求,进一步巩固了其在行业内的地位。

Amphion Semiconductor Ltd公司的发展小趣事

2013年8月26日,苏州锋驰微电子有限公司在江苏省苏州市张家港市正式成立,法定代表人为Fang Gang Feng。公司初期便明确了以集成电路IP、物联网、计算机软硬件、电子产品、集成电路及应用电路方案技术的设计、研发为核心业务的发展方向。在成立之初,面对激烈的市场竞争,苏州锋驰凭借对技术的执着追求和敏锐的市场洞察力,逐步在行业内站稳脚跟。

问答坊 | AI 解惑

单片机怎样处理LM331送来的信号

本帖最后由 paulhyde 于 2014-9-15 09:41 编辑 当将模拟信号转换成方波脉冲后,再将脉冲信号送入单片机,那么单片机是怎样处理这个脉冲信号的?  …

查看全部问答>

8051fxxx IDE出现下列问题

note:usb address and data registers will not valid until usb clock is running 这是什么造成的呢?…

查看全部问答>

技术在于积累!-------谈谈偶做LED驱动电源的经历

技术在于积累!        第一次刚接触LED驱动是从一块DEMO板: DC输入,输出是低电流大致200MA的; 因为客户的需求,后来公司头一次想用SMD802开发一块非隔离的7*1w 450MA驱动板;那时候没买样板,也没找专门的IC厂商,要求技 ...…

查看全部问答>

关于AT89S52单篇机,

你好,我刚买了上面那个型号,,但是,我烧写时,出现了编程器不存在,什么回事?…

查看全部问答>

用软件如何实现蓝牙接收的数据转换

最近做了一个题目,使用蓝牙接收到的数据在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口是正常的 ...…

查看全部问答>

【求助】JTAG下载遇到问题:-(

我在使用msp430F149的JTAG模块下载时,一开始还能下载运行,试了有两三天,突然一天不能下载了,后来就再也不能下了,软件提示不能发现目标。然后又贴了一块板子,结果这块好了半天就又出现和前面一样的现象。很是郁闷 量了下载口各个引脚的电压 ...…

查看全部问答>

I2C连续读写请教

想通过I2C连续写数据和读数据,用for循环来操作,写入的都是第一个数据,后面的就没有写入了,读也是这样。但如果不用for循环写,直接写入两个数据可以实现,但是读得时候也不能实现;在网上搜了下也是用for循环啊,但是我的怎么不能实现呢?请大家 ...…

查看全部问答>