历史上的今天
返回首页

历史上的今天

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

正在发生

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

2018-08-22 来源:eefocus

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端口寄存器必须被配置为相应功能。


推荐阅读

史海拾趣

HIT(日立)公司的发展小趣事
在电路中设置过流、过压等保护电路,以防止电路在异常情况下损坏或引发安全事故。
ABL Heatsink公司的发展小趣事

早期,ABL Heatsink公司主要生产通用型散热器,但随着市场竞争的加剧,公司意识到必须调整市场定位。于是,公司开始专注于研发针对特定电子设备的高性能散热器。通过深入了解客户需求,ABL Heatsink成功开发出一系列定制化产品,赢得了市场的青睐。

Essentra Components公司的发展小趣事

面对日益激烈的市场竞争,Essentra Components公司决定实施全球化战略,以拓展更广阔的市场。公司先后在亚洲、欧洲、美洲等多个地区设立了生产基地和销售服务点,实现了产品的全球覆盖。同时,公司还积极与当地企业合作,共同开发适合当地市场需求的产品,进一步巩固了其在全球市场的地位。

C-MAX Time Solutions公司的发展小趣事

随着国内市场的饱和,C-MAX Time Solutions公司开始将目光投向国际市场。公司通过设立海外分支机构、参加国际展会等方式,积极推广自己的产品和服务。同时,公司还加大了对国际标准的研究和遵循力度,以确保其产品在全球范围内都能得到广泛认可和应用。这一国际化布局不仅提升了C-MAX的竞争力,也为其未来的发展奠定了坚实基础。

Consolidated Wire公司的发展小趣事

随着业务的不断发展,Consolidated Wire公司开始积极拓展国内外市场。公司加大了市场推广力度,通过参加行业展会、举办技术研讨会等方式提升品牌知名度。同时,公司还积极开拓海外市场,与国际知名企业建立合作关系,实现了业务的全球化布局。这些举措不仅提升了公司的市场份额,也增强了公司在电子行业的影响力。

DOMINANT公司的发展小趣事

在LED产业蓬勃发展的背景下,统明亮(DOMINANT)公司在2000年应运而生。它的诞生源于欧司朗(OSRAM)在马六甲工厂的分拆,加上马来西亚财团的加持,这家新公司迅速崭露头角。统明亮公司从成立之初就专注于LED技术的研发和生产,凭借其卓越的技术实力和创新能力,逐渐在电子行业中树立了良好的口碑。经过数年的不懈努力,统明亮在全球贴片式LED领域取得了领先地位,特别是在车用LED封装领域,其产品质量和技术水平均处于行业前列。

问答坊 | AI 解惑

基于最新款飞思卡尔片子(MC9S08AC32)的实际应用代码

如题所说. 对于想使用这款飞思卡尔芯片,MC9S08AC32,FLASH有32K的同志位来说,我认为这个片子做得不错了,你们可以试着尝试一下,飞思卡尔是俺使用过的代码中,我觉得相对来说,抗干扰性较强的一款片子. 这里有一些代码,可以帮你迅速入门,迅速走入开发.…

查看全部问答>

id卡读卡器ps2口怎么读不出卡号啊??也是和键盘输入一样的读卡器

id卡读卡器ps2口怎么读不出卡号啊??也是和键盘输入一样的读卡器…

查看全部问答>

8255求救 引脚电平变化无法读取

8255引脚电平变化无法读取 #define PA8255 (*((unsigned char xdata *)0x1fff))//总线地址 #define PB8255 (*((unsigned char xdata *)0x3fff))//总线地址用16位表示 p0是低八位 p2是高八位    #define PC8255 (*((unsigned char xdat ...…

查看全部问答>

PNG图片旋转任意角度

WinCE5.0下有什么好的方法实现啊?…

查看全部问答>

导出的SDK要安装在VS2005的哪个目录下????

如题。   我自己定制了一个PB,编译好了后,把SDK导出了,但是这个SDK是要安装在VS2005的安装目录下吗??(我用的开发 工具是VS2005,但是是第一次使用)安装完了SDK,在启动VS2005,新建工程时,需要对它进行选择吗????…

查看全部问答>

c语言程序问题

#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit lcden=P2^7;sbit lcdrs=P2^6;sbit lcdrw=P3^6;uchar count,shi,fen ,miao;uchar code table[]=\"   2009-5-16\";uchar code table1[]=\"   0 ...…

查看全部问答>

[交换]我有MSP430 Value Line LaunchPad +Capacitive Touch BoosterPack

我有MSP430 Value Line LaunchPad +Capacitive Touch BoosterPack全新套件想交换个JLINK仿真器,有意者站内联系。 MSP430 LaunchPad+Capacitive Touch BoosterPack 超值系列开发套件 详细见TI官网: http://e2e.ti.com/group/msp430launchpad/b/ ...…

查看全部问答>

坛子里有使用ZUKEN CR5000的软件的么?

如题,欢迎使用的公司和个人跟贴,这款软件好像满偏门的,是么?…

查看全部问答>

Getting Started with the MSP430 LaunchPad_Student Guide and Lab Manual

内容和大课堂的内容差不多,只不过是英文的。 大家看看!…

查看全部问答>

AD器件大全

本帖最后由 paulhyde 于 2014-9-15 03:16 编辑 AD芯片大全,及其基本性能指标。供大家比赛参考!!    …

查看全部问答>