历史上的今天
返回首页

历史上的今天

今天是:2024年09月30日(星期一)

正在发生

2021年09月30日 | STM8时钟树及电源管理

2021-09-30 来源:eefocus

一、时钟树及电源管理


为了提高适用性和可靠性,STM8S单片机增加了许多的特色功能,如多时钟源、多功耗管理模式及自动唤醒功能等。


二、时钟的功能


处理器必须要稳定的时钟源才能可靠的运行。STM8S单片机的时钟配置比较灵活,既可以使用外部的晶体振荡器/陶瓷谐振器作为时钟源,也可以使用外部的时钟信号或片内的RC震荡器作为系统时钟。多时钟源的特点是可以充分利用不同时钟源的特点,让单片机运行更加稳定。


三、时钟的产生途径


1、RC振荡器


什么是RC振荡器?


 通过把电阻和电容搭建成一个正反馈的振荡电路就可以获取时钟信号,通过改变电阻或者电容的值可以调节时钟的频率。


RC振荡电路的优缺点:


优点:起振速度快,加电后可以立即输出满幅的震荡信号。


缺点:当外界温度变化时,阻容原件的值也发生变化,从而引起振荡频率漂移。


2、陶瓷谐振器


陶瓷谐振器是什么?


陶瓷谐振器利用的陶瓷的压电原理,一个两面背覆电极的陶瓷片在外加电场的作用下,陶瓷自身会发生形变产生的振荡,当达到自身的共振频率时,既可进入稳定的谐振状态。


陶瓷谐振器的优缺点:


优点:起振速度快


缺点;频率的稳定性和精度较差。


3、晶体振荡器


      什么是晶体振荡器?


      晶体振荡器简称晶振,其内部是经过精密切割的石英晶体,晶体两端连接电极。


晶体振荡器的优缺点:


优点:石英晶体在受到激励后会输出特定频率的震荡信号,而且频率的稳定性极高。


缺点:它起振速度也有点慢,需要经过一段时间才能输出稳定的满幅的震荡信号,另外就是晶体振荡器受到强烈的撞击或电压冲击,晶体会因物理结构的改变而损毁。


四、时钟是如何控制的?


STM8S单片机使用时钟控制器来管理时钟源,并且将他们的分配到CPU以及各个外设,使用户可以在最快的时钟和最低的功耗间进行取舍。


STM8S还可以在程序运行的时候将主时钟从一个时钟源切换到另一个时钟源,而且安全可靠无故障时钟切换机制。


STM8S单片机而且应对电磁干扰对应用程序误写或系统挂起,大多数关键的时钟配置寄存器都会有一个互补的寄存器。系统自动检测这些寄存器与互补寄存器之间是否匹配,如果不匹配则会产生一个EMS复位,使应用程序回复到正常运行状态。


如下图STM8S单片机的时钟框图:


从图中可以看出系统时钟是F(master)时钟。这个时钟是由F(hse)、F(hsidiv)、F(lsi)时钟提供。

时钟控制器将来自不同振荡器的系统时钟(Fmaster)连接到内核和外设。


时钟控制器有以下的功能:


时钟管理、


4个不同的时钟源通过时钟管理器来选择那时钟作为系统时钟。STM8S单片机系统时钟Fmaster有以下时钟切换而来。


4个时钟源;


1)、1MHz--24MHz 外部晶体/陶瓷谐振器。选项字节EXT_CLK用于选择外部时钟(HSE)。系统刚刚上电的时候振荡器是不稳定的,STM8S单片机需要延时2048个振荡周期,以等待振荡器的稳定,可以通过的软件和硬件设置切换到振荡器。如果感觉2048个振荡周期时间比较长也可以通过选项字节HSECNT对稳定时间进行设置。HSE可以通过外部时钟寄存器CLK_ECKR中的HSEEN位来使能。外时钟的寄存器的CLK_ECKR中的HSERDY位判断振荡器是否稳定。单片机启动时,此标志位被硬件置为后HSE才可以使用。


2)、最高至24MHz的高速外部时钟(USE, USER-EXT)


通过时钟选项字节EXT_CLK来选择用于外部时钟HSE。


3)、16MHz高速内部RC振荡器


16MHz的高速内部时钟被称为HSI,HSI位于单片机的内部,是片内的高速RC振荡器,有16MHz RC振荡器和一个可编程分频器构成,分频因子(1--8)由寄存器CLK_CKDIVR设定。


RC振荡器的起振速度快比HSE晶体振荡器的快,但是其精度较低。单片机刚刚上电时使用的内部的16MHzRC振荡器8分频时钟。HSI时钟源可以通过设置内部的CLK_ICKR寄存器中的HSIEN位打开或关闭。


内部时钟寄存器CLK_ICKR中的标志位HSIRDY用来指示HSI RC振荡器是否稳定。


单片机为了时钟使用安全,如果使能了时钟的安全机制,当外部的HSE时钟的失效时,HSI/8可以作为备用时钟。


4)、128KHz低速内部RC振荡器


128KHz低速内部RC振荡器简称为LSI,该时钟同样位于单片机的内部。LSI时钟既可以配置为系统时钟,也可以在停机模式下也可以作为独立看门狗和自动唤醒单元运行的低功耗时钟。


LSI时钟可以通过CLK_ICKR的LSIEN位打开或关闭。CLK_ICKR中的LSIRDY来判断时钟是否稳定。


时钟分频、


时钟控制器通过一个可编程的预分频器来调整CPU和外设时钟。


时钟切换、


通过配置寄存器可以是单片机运行的时候进行时钟切换。


启动时钟、


单片机刚刚上电的时候默认的时钟时内部的HSI/8的时钟运行。


时钟监控、


时钟的安全系统CSS,可以持续监视HSE时钟的稳定性能,一旦HSE时钟出现故障,会马上切换到内部RC时钟下运行。


启动时钟:单片机复位后默认运行的时钟为内部时钟(HSI/8)即使2MHz的时钟频率。用户可以通过软件在系统运行稳定后改变时钟源,并设定相应的预分频比。


五、什么是系统时钟?


系统时钟是指为单片机CPU和外设提供时钟的时钟。


1)、1MHz--24MHz 外部晶体/陶瓷谐振器。选项字节EXT_CLK用于选择外部时钟(HSE)。系统刚刚上电的时候振荡器是不稳定的,STM8S单片机需要延时2048个振荡周期,以等待振荡器的稳定,可以通过的软件和硬件设置切换到振荡器。如果感觉2048个振荡周期时间比较长也可以通过选项字节HSECNT对稳定时间进行设置。HSE可以通过外部时钟寄存器CLK_ECKR中的HSEEN位来使能。外时钟的寄存器的CLK_ECKR中的HSERDY位判断振荡器是否稳定。单片机启动时,此标志位被硬件置为后HSE才可以使用。


2)、最高至24MHz的高速外部时钟(USE, USER-EXT)


通过时钟选项字节EXT_CLK来选择用于外部时钟HSE。


3)、16MHz高速内部RC振荡器


16MHz的高速内部时钟被称为HSI,HSI位于单片机的内部,是片内的高速RC振荡器,有16MHz RC振荡器和一个可编程分频器构成,分频因子(1--8)由寄存器CLK_CKDIVR设定。


RC振荡器的起振速度快比HSE晶体振荡器的快,但是其精度较低。单片机刚刚上电时使用的内部的16MHzRC振荡器8分频时钟。HSI时钟源可以通过设置内部的CLK_ICKR寄存器中的HSIEN位打开或关闭。


内部时钟寄存器CLK_ICKR中的标志位HSIRDY用来指示HSI RC振荡器是否稳定。


单片机为了时钟使用安全,如果使能了时钟的安全机制,当外部的HSE时钟的失效时,HSI/8可以作为备用时钟。


4)、128KHz低速内部RC振荡器


128KHz低速内部RC振荡器简称为LSI,该时钟同样位于单片机的内部。LSI时钟既可以配置为系统时钟,也可以在停机模式下也可以作为独立看门狗和自动唤醒单元运行的低功耗时钟。


LSI时钟可以通过CLK_ICKR的LSIEN位打开或关闭。CLK_ICKR中的LSIRDY来判断时钟是否稳定。


六、时钟是如何切换的?


时钟切换有两种方式:自动切换 和 手动切换


自动切换:

自动切换的过程如下:


1】、设置切换控制寄存器CLK_SWCR中的SWEN为使能切换机制。

2】、向时钟切换寄存器CLK_SWR中写入一个8位值,用于选择目标芯片。

七、如何配置时钟


八、什么是时钟的中断


九、时钟控制寄存器

推荐阅读

史海拾趣

Floeth Electronic Ltd公司的发展小趣事

Floeth Electronic Ltd公司的发展故事

故事一:技术创新与产品线拓展

Floeth Electronic Ltd自1987年在德国迪特FLOETH成立以来,始终致力于电力自动化领域的技术创新。公司最初专注于DC-DC转换器的研发与生产,针对工业、汽车及机载设备设计了能在极端温度(-40℃至+105℃)下稳定工作的产品。随着市场需求的变化,Floeth Electronic逐步扩展了其产品线,推出了包括转换器、驱动器、控制器、放大器、过滤器、逆变器和脉冲变压器在内的多种电力自动化产品。这些产品不仅满足了工业客户对高性能和可靠性的需求,还因其高绝缘性和符合EN/UL/CSA等安全法规认证而备受信赖。

故事二:台湾生产单元的建立

为了进一步提升产能和效率,Floeth Electronic于1994年在台湾桃园设立了生产单元。这一战略举措使得公司能够更灵活地应对亚洲市场的需求,并利用台湾成熟的电子制造业供应链优势。台湾生产单元专注于高精度、高效率的电力自动化产品生产,不仅提高了产品质量,还降低了生产成本。这一举措不仅增强了Floeth Electronic在全球市场的竞争力,也为其后续的发展奠定了坚实基础。

故事三:IGBT驱动器及控制器的高电压应用

在电力电子领域,IGBT(绝缘栅双极型晶体管)的应用日益广泛。Floeth Electronic凭借其深厚的技术积累,成功研发了高电压应用的IGBT驱动器及控制器,最高可达8kVAC MS。这些产品广泛应用于高压电力传输、工业电机控制等领域,以其卓越的性能和稳定性赢得了市场的广泛认可。这一技术的突破不仅提升了Floeth Electronic在电力自动化领域的地位,也为其在新能源、智能电网等新兴领域的发展提供了有力支持。

故事四:脉冲变压器的广泛应用

Floeth Electronic的脉冲变压器在雷达、变换技术等领域有着广泛的应用。这些变压器通过匹配负载电阻与馈线特性阻抗、升高或降低脉冲电压、改变脉冲极性等方式,实现了对复杂电路的高效控制。此外,脉冲变压器还广泛应用于变压器次级电路和初级电路的隔离应用,以及作为功率合成及变换元件等。这些产品的广泛应用不仅展示了Floeth Electronic在电力电子技术领域的深厚实力,也为其在更多领域的发展提供了可能。

故事五:国际合作与市场拓展

随着全球电子市场的不断融合与发展,Floeth Electronic积极寻求国际合作机会,以拓展其市场版图。公司与中国、美国等多个国家的知名企业建立了紧密的合作关系,共同研发和推广电力自动化产品。这些合作不仅为Floeth Electronic带来了先进的技术和管理经验,还帮助其更好地了解不同市场的需求和趋势。通过国际合作,Floeth Electronic不断提升其品牌影响力和市场竞争力,为全球客户提供更加优质的产品和服务。

COTO TECHNOLOGY公司的发展小趣事

COTO TECHNOLOGY的故事始于1917年,当时它在美国罗德岛州的普罗维登斯以Coto Coil Incorporated的名字诞生,专注于线圈绕组的设计与制造。这个初创公司凭借对技术的深入理解和对质量的执着追求,逐渐在电子行业中崭露头角。它的线圈绕组产品以高精度、高稳定性而受到市场的青睐,为公司的初步发展奠定了坚实的基础。

ALPS公司的发展小趣事

近年来,随着全球电子产业的快速发展,中国市场的重要性日益凸显。COTO TECHNOLOGY也看到了这一机遇,开始深耕中国市场,寻求与当地企业的合作。通过与成都迈极芯科技等公司的战略合作,COTO不仅将先进的技术和产品引入中国,还为中国半导体测试产业提供了更优质的产品和服务。这一系列的合作不仅促进了COTO在中国市场的发展,也推动了中国电子产业的进步。

这五个故事只是COTO TECHNOLOGY发展历程中的一部分,但它们充分展示了这家公司在电子行业中的成长与变迁。从初创时期的线圈绕组制造商,到后来的干簧继电器领导者,再到全球范围内的扩张与战略合作,COTO始终保持着对技术的追求和对市场的敏锐洞察。这些故事不仅反映了COTO的发展历程,也见证了整个电子行业的变革与进步。

Chips And Technologies Inc公司的发展小趣事

在创立初期,C&T就展现出了强大的技术创新能力。公司不断推出新产品,这些产品不仅性能卓越,而且具有高度的集成性和稳定性,深受市场欢迎。此外,C&T还积极与业界合作,推动技术标准的制定和完善,为整个行业的发展做出了重要贡献。

Crocus公司的发展小趣事

随着市场的不断变化和需求的日益增长,Crocus意识到只有不断创新才能保持竞争优势。因此,公司加大了研发投入,成功推出了一系列具有创新性和竞争力的TMR传感器产品。这些产品不仅具有高精度、高灵敏度等优异性能,还广泛应用于电动汽车、清洁能源和自动化等领域,为行业的快速发展提供了有力支持。

Data Translation Inc公司的发展小趣事

在电子行业中,市场竞争激烈、技术更新换代迅速。Data Translation在发展过程中也遇到了不少挑战和困难。但公司始终坚持以客户为中心、以技术创新为驱动的发展理念,积极应对市场变化和挑战。公司通过加大研发投入、优化产品结构、拓展市场渠道等方式不断提升自身的竞争力和适应能力。这些努力使公司在面对市场变化和挑战时能够保持稳健的发展态势。

问答坊 | AI 解惑

这段是在运算什么?

有哪位高手能看懂下边程序在做什么? MOV   A,4AH                        MOV   R0,A           &n ...…

查看全部问答>

C++ 设备驱动 交互

在做C++编程的时候,常常要用到和摄像头什么的做信息采集 这时候常常会需要得到系统设备驱动,这是如何做到的,设备驱动号是什么东西,怎么用啊? 系统的设备是不是都是统一编号的? 设备驱动是如何在系统中存储和使用的啊?…

查看全部问答>

无法卸载驱动模块

把驱动装到开发板上后无法卸载,执行rmmod my_bdri.ko后提示: rmmod: chdir(2.6.29.4-FriendlyARM): No such file or directory 执行lsmod: [root@FriendlyARM /]# lsmod my_bdri 3348 0 - Live 0xbf000000 该怎么办啊????…

查看全部问答>

研华PCL 816

第一次调试板卡,我想了解一下板卡是怎么初始化的,还有通道的选择以及AD转化的触发,数据的读取等。 为什么每次读取AD数据后,BASE+13的DRDY位仍为0啊?…

查看全部问答>

关于电源问题

隔离变压器:额定功率50W,3个绕组变比n1:n2:n3=20:10:1,电流依次为I1=1.5A、I2=3A、I3=0.1A 电阻器: 30Ω/30W,36Ω/30W   这是09年电子竞赛中的元件,大家帮猜猜会出什么样的电源题 …

查看全部问答>

winCE能否生成类似DLL的第三方程序供他人调用?

如题 因为我是初学者 但公司的新项目是做一个外包 而这个外包是在手机平台上运行的 所以来问问是否有相关参考文档 多谢达人指点~~~~~~…

查看全部问答>

阻塞与非阻塞语句的区别

module DataBusOfBus(DataBus,link_bus,write); inout[11:0] DataBus; input link_bus; reg [11:0] outsigs;   assign DataBus=(link_bus)?outsigs:12\'hzzz;   always @(posedge write)       &n ...…

查看全部问答>

想要多少个跑马灯?用74hc595来扩展输出口

  先用两片扩出16个输出,不够还可以再增加     grace生成的USI初始化,还用翻译么?   /* *  ======== USI_init ======== *  Initialize Universal Serial Interface */void USI_init(void){& ...…

查看全部问答>

【lauchpad_g2231】关于OUTMOD1置位后复位问题?

g2231资源有限,只有一个timer_A2,用过的都知道,只有两个比较器。但是我想生成两路pwm波,必然用OUTMOD7的话只能产生一路,所以我用想用OUTMOD1自动置位的方法,taccr0,taccr1控制占空比产生两路,通过看门狗定时做pwm周期控制(在定时中断 ...…

查看全部问答>

关于Xilinx调用IPcore 与 原语的区别

Xilinx FPGA中有的可以通过原语(Primitives)调用来例化一些特殊功能,比如: ODDR2、IOBUF、ISERDES2、OSERDES2等。   有的可以用IP core来例化一些特殊功能,比如: DCM、加法/减法器 等。   有两个问题想跟各位高手讨论: &nb ...…

查看全部问答>