历史上的今天

今天是:2024年08月22日(星期四)

正在发生

2018年08月22日 | STM32F10x的复位与时钟控制

发布者:yunhui 来源: eefocus关键字:STM32F10x  复位  时钟控制 手机看文章 扫描二维码
随时随地手机看文章

RC(Reset and Clock Control)复位和时钟控制
STM32F10x支持三种复位形式,分别为系统复位、上电复位和备份区域复位。
系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器。
当以下事件中的一件发生时,产生一个系统复位: 
1. NRST管脚上的低电平(外部复位) 
2. 窗口看门狗计数终止(WWDG复位) 
3. 独立看门狗计数终止(IWDG复位) 
4. 软件复位(SW复位) 
5. 低功耗管理复位
可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

软件复位 
通过将Cortex?-M3中断应用和复位控制寄存器中的SYSRESETREQ位置’1’,可实现软件复位。

低功耗管理复位
在以下两种情况下可产生低功耗管理复位: 
1. 在进入待机模式时产生低功耗管理复位: 
通过将用户选择字节中的nRST_STDBY位置’1’将使能该复位。
这时,即使执行了进入待机模式的过程,系统将被复位而不是进入待机模式。 
2. 在进入停止模式时产生低功耗管理复位: 
通过将用户选择字节中的nRST_STOP位置’1’将使能该复位。
这时,即使执行了进入停机模式的过程,系统将被复位而不是进入停机模式。 

电源复位 
当以下事件中之一发生时,产生电源复位: 
1. 上电/掉电复位(POR/PDR复位) 
2. 从待机模式中返回
电源复位将复位除了备份区域外的所有寄存器。
备份区域拥有两个专门的复位,它们只影响备份区域。

备份域复位 
当以下事件中之一发生时,产生备份区域复位。 
1. 软件复位,备份区域复位可由设置备份区域控制寄存器RCC_BDCR中的BDRST位产生。 
2. 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。

HSE(High Speed External)高速外部时钟信号
在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。
在启动时,直到这一位被硬件置’1’,时钟才被释放出来。
如果在时钟中断寄存器RCC_CIR中允许产生中断,将会产生相应中断。
HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。 


时钟 

三种不同的时钟源可被用来驱动系统时钟(SYSCLK): 
●  HSI振荡器时钟 
●  HSE振荡器时钟 
●  PLL时钟 
这些设备有以下2种二级时钟源: 
●  40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。
RTC用于从停机/待机模式下自动唤醒系统。 
●  32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。 
当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。


HSI(High Speed Internal)高速内部时钟信号
HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。
HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。
它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差。
系统复位时,工厂校准值被装载到时钟控制寄存器的HSICAL[7:0]位。 
如果用户的应用基于不同的电压或环境温度,这将会影响RC振荡器的精度。
你可以通过利用在时钟控制寄存器里的HSITRIM[4:0]位来调整HSI频率。
时钟控制寄存器中的HSIRDY位用来指示HSI RC振荡器是否稳定。
在时钟启动过程中,直到这一位被硬件置’1’,HSI RC输出时钟才被释放。
HSI RC可由时钟控制寄存器中的HSION位来启动和关闭。
如果HSE晶体振荡器失效,HSI时钟会被作为备用时钟源。

PLL(Phase Locking Loop)锁相环路
内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。
PLL的设置(选择HIS振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子)
必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。 
如果PLL中断在时钟中断寄存器里被允许,当PLL准备就绪时,可产生中断申请。
如果需要在应用中使用USB接口,PLL必须被设置为输出48或72MHZ时钟,用于提供48MHz的USBCLK时钟。 

LSE(Low Speed External)低速外部时钟信号
LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器
它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
LSE晶体通过在备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。
在备份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶体振荡是否稳定。
在启动阶段,直到这个位被硬件置’1’后,LSE时钟信号才被释放出来。
如果在时钟中断寄存器里被允许,可产生中断申请。

LSI(Low Speed Internal)低速内部时钟信号
LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。
LSI时钟频率大约40kHz(在30kHz和60kHz之间)。
LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。
在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。
在启动阶段,直到这个位被硬件设置为’1’后,此时钟才被释放。
如果在时钟中断寄存器(RCC_CIR)里被允许,将产生LSI中断申请。

SYSCLK(System Clock)系统时钟选择 
系统复位后,HSI振荡器被选为系统时钟。
当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。
只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时钟源的切换才会发生。
在被选择时钟源没有就绪时,系统时钟的切换不会发生。直至目标时钟源就绪,才发生切换。 
在时钟控制寄存器(RCC_CR)里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统时钟。

CSS(Clock Security System)时钟安全系统
时钟安全系统可以通过软件被激活。
一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被使能,并在HSE时钟关闭后关闭。 

RTC(Real Time Clock)实时时钟
通过设置备份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK时钟源可以由HSE/128、LSE或LSI时钟提供。
除非备份域复位,此选择不能被改变。LSE时钟在备份域里,但HSE和LSI时钟不是。

看门狗时钟 
如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关闭。
在LSI振荡器稳定后,时钟供应给IWDG。

时钟输出 
微控制器允许输出时钟信号到外部MCO管脚。 
相应的GPIO端口寄存器必须被配置为相应功能。


关键字:STM32F10x  复位  时钟控制 引用地址:STM32F10x的复位与时钟控制

上一篇:STM32 内核复位 与 系统复位 区别及程序实现
下一篇:基于ARM-LINUX的温度传感器驱动(DS18B20)

推荐阅读

1.首先看一下stm32启动模式 stm32的启动模式由32芯片的boot0与boot1引脚决定。分为内嵌flash启动模式(正常启动模式)、内存启动模式、rom启动模式启动方式与引脚高低电平的对应关系如下,芯片复位的四个时钟周期内会去读取boot0和boot1引脚的电平情况确定芯片的运行模式。boot0=0,boot1=x ----------------内嵌flash启动模式boot0=1,boot1=1 ---------...
海宁经开产业园区开发建设有限公司声表面波滤波器生产用净化(装修)厂房工程举行了开工仪式。据中电精泰官方消息,此次开工的声表面波滤波器生产用净化(装修)厂房工程项目建筑面积约47000平,主要包含洁净生产区、仓储区、动力支持区等三大功能区域,可为声表面滤波器提供可靠的生产环境与动力支持,净化厂房洁净度达到百级、千级,为一个综合、复杂、...
集邦咨询(TrendForce)8月21日发表报告,分析美国一系列打压华为的政策对整个半导体芯片行业和5G产业的影响。报告指出,在美国近日出台华为“最严禁令”之前,虽然已经对华为实施了一段时间的制裁,但实际的禁令一直在延迟,给了华为足够的时间来应对最坏的情况——即无法再从供应商那里获取足够多的芯片零部件。比如,华为的回应之一就是大量购买5G基站...
8月20日消息,据91Mobile报道,Redmi 10 Prime获得蓝牙SIG认证。  报道指出,Redmi 10 Prime型号为21061119BI,该机将会在印度市场上市发售。  值得注意的是,蓝牙SIG网站上出现了多个型号,具体包括21061119AG、21061119AL和21061119DG,这似乎意味着Redmi 10系列会有多个版本。  遗憾的是,关于Redmi 10 Prime的细节暂时不得而知...

史海拾趣

问答坊 | AI 解惑

想要报今年省赛,却找不到合适的项目

本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 想要报今年的省赛,却找不到合适的项目 而且本人技术又刚刚入门,这学期才学的数电、模电。 请大家帮忙。  …

查看全部问答∨

我在写一个读取spd的软件,可是不知道怎么判断dimm是几,请各位大侠帮忙!谢谢

我在写一个读取spd的软件,可是不知道怎么判断dimm是几,怎么判断哪个插槽中插有DDR,请各位帮忙小弟,谢谢!…

查看全部问答∨

重金求购 Tornado V 2.2.1的序列号(现金)

高价求购 Tornado V 2.2.1的序列号 联系方式:站内消息.…

查看全部问答∨

请问国内51通用性单片机仿真器都有那些牌子?

请问国内51通用性单片机仿真器都有那些牌子? 功能较为齐全的有哪些? 本人想买个AT89S51/52仿真器(不限ATMEL这个型号),价位在1000左右,大家推荐一个吧。…

查看全部问答∨

驱动编译方法问题

各位大侠,我想请问一下我所编写的某个驱动程序 *.c一定要和内核配置一起才能进行编译吗?如果每修改一次驱动程序都要进行内核编译,太不方便(我的机子编译内核直到生成image.rom都要半小时),有什么更好的不用配置内核就可以编译驱动程序的方法 ...…

查看全部问答∨

a(long)*b(long)=c(long long)为什么不对啊?

尊敬的老师:   我用两个long型数a*b相乘,为什么结果c(long long型)不对啊?不是说long long型数可以表示64位的吗?这是怎么回事啊?如果必须用c语言做32位*32位怎么办啊?谢谢!…

查看全部问答∨

MSP430F22X学习套件硬件仿真问题

MSP430F22X学习套件选择硬件仿真DEBUG的时候,会出现连接不上的问题,请问是什么缘故?大家又遇到这个情况的吗?…

查看全部问答∨

关于BQ2054的问题~

我想请问一下,BQ2054芯片的温度补偿可以不接吗? 还有就是VCOMP和ICOMP接口怎么接啊…

查看全部问答∨

请问一下大家关于zigbee技术

请问大家对于zigbee技术是否可以应用与视频数据传输,实现实时监控呢?谢谢  有知道的希望与您交流一下                     联系方式:q ...…

查看全部问答∨

谁有IAR Embedded Workbench For MSP430 v5.40软件或者提供下载地址,谢谢!

谁有IAR Embedded Workbench For MSP430 v5.40软件或者提供下载地址,谢谢! 有低版本的也行谢谢…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved