STM8 主时钟切换

2020-07-29来源: 51hei关键字:STM8  主时钟切换  复位

时钟切换功能为STM8用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源的途径。


系统启动

为使STM8系统快速启动,复位后时钟控制器自动使用HSI的8分频(HSI/8)做为主时钟。其原因为HSI的稳定时间短,而8分频可保证系统在较差的VDD条件下安全启动。一旦主时钟源稳定,用户程序可将主时钟切换到另外的时钟源。


主时钟切换的过程

用户可选择下面两种方式切换时钟源:


自动切换

自动切换使用户可使用最少的指令完成时钟源的切换。应用软件可继续其它操作而不用考虑切换事件所占的确切时间。如图15所示。

STM8_时钟切换流程图(自动切换)

(图15:STM8 时钟切换流程图(自动切换))


1.设置切换控制寄存器(CLK_SWCR)中的位SWEN,使能切换机制。

2.向主时钟切换寄存器(CLK_SWR)写入一个8位的值,用以选择目标时钟源。寄存器CLK_SWCR中的SWBSY被硬件置位,目标源振荡器启动。原时钟源依然被用于驱动内核和外设。


一旦目标时钟源稳定,寄存器CLK_SWR中的值将被复制到主时钟状态寄存器(CLK_CMSR)中去。


此时,SWBSY位被清除,新时钟源替代旧时钟源。寄存器CLK_SWCR中的标志位SWIF被置位,如果SWIEN为1,则会产生一个中断。


手动切换

手动切换与自动切换不同,不能够立即切换,但它允许用户精确地控制切换事件发生的时间,如图16所示。

STM8_时钟切换流程图(手动切换)

(图14:STM8 时钟切换流程图(手动切换))


1.向主时钟切换寄存器(CLK_SWR)写入一个8位的值,用以选择目标时钟源。寄存器CLK_SWCR中的SWBSY被硬件置位,目标源振荡器启动。原时钟源依然被用于驱动内核和外设。

2.用户软件需等待至目标时钟源稳定。寄存器CLK_SWCR中的标志位SWIF用以指示目标时钟源是否已稳定,如果SWIEN为1,则会产生一个中断。

3.最后,由用户软件在所选的时间点,设置寄存器CLK_SWCR中的位SWEN,执行切换。无论是手动切换还是自动切换,如果原时钟源仍然在被其他模块使用(如LSI在被独立看门狗使用),则原时钟源将不会被自动关闭。配置内部时钟寄存器CLK_ICKR和外部时钟寄存器

CLK_ECKR中的相应位,可关闭原时钟源。如果由于某种原因时钟切换没有成功,软件可通过清除标志位SWBSY以复位当前的切换操作,使寄存器CLK_SWR恢复原值(原时钟源)。

关键字:STM8  主时钟切换  复位 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504692.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8 主时钟源
下一篇:STM8 外设时钟门控

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8 复位寄存器地址映射
复位状态寄存器(RST_SR)请参考对应的数据手册了解基地址信息。(表7:STM8复位寄存器地址映射)
发表于 2020-07-25
STM8 <font color='red'>复位</font>寄存器地址映射
STM8 复位(RST)寄存器
复位状态寄存器(RST_SR)地址偏移值:0x00复位值:未定义位7:5保留位,必须保持为0位4EMCF:EMC复位标志由硬件置位,可通过软件写"1"清除0:无EMC复位发生;1:有一个EMC复位发生(可能的复位原因:互补寄存器或选项字节不匹配)。位3SWIMF:SWIM复位标志位由硬件置位,可通过软件写"1"清除0:无SWIM复位发生;1:有一个SWIM复位发生。位2ILLOPF:非法操作码复位标志位由硬件置位,可通过软件写"1"清除0:无非法操作码复位发生;1:有一个非法操作码复位发生。位1IWDGF:独立型看门狗复位标志位由硬件置位,可通过软件写"
发表于 2020-07-25
STM8 <font color='red'>复位</font>(RST)寄存器
STM8 存储器保护
读保护当选项字节中的ROP字节被编程为'0xAA'时,读保护就生效了。这种情况下,无论写保护是否生效,在ICP模式中(使用SWIM接口)读取或修改FLASH程序存储器和DATA区域都是被禁止的。即使认为没有什么保护是完全不可破解的,对于一个通用微处理器来说,STM8的读保护的特性也提供了一个非常高水平的保护级别。可以在ICP模式中通过对选项字节中的ROP字节重新编程来解除程序存储器、UBC和DATA区域的读保护。在这种情况下,程序存储器、UBC、DATA区域以及选项字节都被自动擦除,器件也可以被重新编程了。存储器存取安全系统(MASS)STM8在复位以后,主程序和DATA区域都被自动保护以防止无意的写操作。在试图
发表于 2020-07-25
STM8 用户启动区域(UBC)
用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两级保护结构可保护用户代码及数据在IAP编程中免于无意的擦除或修改。这意味着该区域总是写保护的,而且写保护不能通过使用MASS密钥来解锁。在ICP模式下(使用SWIM接口)可以通过修改选项字节来配置UBC的大小。UBC选项字节指定了分配在UBC中的页的数量。UBC区域的起始地址是0x00 8000。 可以通过读取UBC选项字节来获得UBC区域的大小。请参考图6,图7和图8来了解UBC区域的存储器映射。对于选项字节部分,请参考相应的数据手册了解更多的UBC选项字节的细节。(图六:小容量STM8S的UBC区域大小)1. UBC[7:0]=0x00
发表于 2020-07-25
<font color='red'>STM8</font> 用户启动区域(UBC)
STM8 存储器组织结构
STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机 构有所不同:小容量STM8S器件8K FLASH程序存储器,每页 64字节,共 128页640字节数据 EEPROM,每页 64字节,共 10页。数据 EEPROM包括一页的选项字节(64字节)。中容量STM8S器件从 16K到 32K FLASH程序存储器,每页 512字节,最多 64页1K字节数据EEPROM,每页 512字节,共 2页。数据 EEPROM包括一页的选项字节(512字节)。大容量STM8S器件从 64K到 128K FLASH程序存储器,每页 512字节,最多 256页从 1K到 2K字节数据 EEPROM,每页
发表于 2020-07-25
<font color='red'>STM8</font> 存储器组织结构
STM8 FLASH主要特性
STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制。用户可以使用这些寄存器来编程或擦除存储器的内容、设置写保护、或者配置特定的低功耗模式。用户也可以对器件的选项字节(Option byte)进行编程。STM8S EEPROM分为两个存储器阵列:最多至 128K字节的FLASH程序存储器,不同的器件容量有所不同。请参考4.4存储器组织结构了解更多细节。最多至 2K字节的数据EEPROM(包括option byte-选择字节),不同的器件容量有所不同。请参考4.4存储器组织结构了解更多细节。编程模式字节编程和自动快速字节编程(没有擦除操作)字编程块编程和快速块编程(没有擦除操作)在编程/擦除操作结束时和发生非法
发表于 2020-07-25
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved