复位和时钟控制(RCC)
一、系统复位
- 复位除了部分RCC寄存器和备份区域以外的其他所有的寄存器;
来源:NRST引脚上的低电平(外部复位)WWDG计数结束IWDG计数结束软件复位(通过NVIC)低电压管理的复位
- 电源复位
复位除了备份区域以外所有的寄存器;来源:上电/掉电复位(POR/PDR复位)退出STANDBY模式
- 软件复位
通过将Cortex-M3中断应用和复位控制寄存器中的SYSRESETREQ位置1。
- 低功耗管理复位
在进入待机模式时,系统产生低功耗管理复位:
设置选择字中的nRST_STDBY位为1。
在进入停止模式时,系统产生低功耗管理复位:
设置选择字中的nRST_STOP位为1。
- 备份区域的复位
复位所有的备份区域;复位源:
设置RCC的BDCR寄存器的BDRST位;
如果VDD和VBAT都已掉电,二者再次上电。
二、时钟
- 外部高速振荡器(HSE):4MHz到16MHz主振荡器,可通过PLL进行倍频用以提供宽广的频率范围。
可使用外部时钟信号(最大25MHz):设置时钟控制寄存器的HSEBYP和HSEON位。
- 内部高速RC振荡器(HSI):频率为8MHz,温度在0-70°C时误差位为±1%。(出厂时进行校准,工厂校准值被装载到时钟控制寄存器的HSICAL[7:0]位)
为了节省功耗,运行后可以关闭内部RC振荡器:清除HISON位;复位或从停止模式退出后,用作MCU的系统时钟,可快速启动(启动时间:最大2us);如果应用基于不同的电压或环境温度,将会影响RC振荡器的精度。可通过利用时钟控制寄存器里的HSITRIM[4:0]位来调整HSI频率;当HSE失效时,HSI将被切换为系统时钟源(如果HSI被关闭,硬件将其开启);
注: 当HSI被用作PLL的时钟输入时,最大系统时钟可达64MHz。
- 外部低速振荡器(LSE): 32.768kHz振荡器,提供一个极低功耗(最大1?A)的精确的时钟。可选用为驱动RTC从停止/待机模式中唤醒。
通过备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。
可用外部时钟信号 --- 具有50%占空比的外部时钟信号(方波、正弦波或三角波)连到OSC32_IN管脚,同时保证OSC32_OUT管脚悬空。
- 内部低速RC(LSI): 40KHz的内部RC,可用作IWDG和自动唤醒的RTC的时钟。
通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。LSI校准:(仅大容量产品有)
可以通过校准内部低速振荡器LSI来补偿其频率偏移,获得精度可接受的RTC时间基数,以及独立看门狗(IWDG)的超时时间(当这些外设以LSI为时钟源)。
三、时钟配置
- 系统时钟源(SYSCLK):
HSIHSEPLL:
注:在激活PLL的设置时,必须先完成选择HSI振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子。
- RTC时钟源(RTCCLK):
LSELSI经过128分频的HSE时钟
- 当HSE时钟失效时,时钟安全系统将系统(CSS)时钟切换到使用备用时钟HSI。
通过软件使能,将该中断连接到CortexM3内核的NMI中断上。(不可屏蔽中断)
- 在MCO引脚(PA.08)可将时钟输出。
最大可达50MHz
- 多个时钟源可实现全速运行/低功耗模式下的复杂应用。
- 可配置分频器为AHB、APB1/2、ADC、TIM提供时钟。
HCLK --- Cortex-M3内核、AHB总线、内存、DMA
- USB时钟源(USBCLK)由内部的PLL倍频提供。
使用USB接口时,PLL必须被设置为输出48或72MHZ时钟。
http://blog.sina.com.cn/s/blog_6cd2030b01019i9j.html
http://www.51hei.com/bbs/dpj-30961-1.html
复位和时钟控制(RCC)的更多相关文章
- STM32L0 复位和时钟控制 Reset and clock control (RCC)
时钟源: HSE:外部时钟 HSI16:可以直接用于系统时钟或者作为PLL输入.一般是1%精度 HSI48:The HSI48 clock signal is generated from an in ...
- 【STM32H7教程】第14章 STM32H7的电源,复位和时钟系统
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第14章 STM32H7的电源,复位和时钟系 ...
- STM8S学习笔记-时钟控制1
1.图13可见,STM8S单片机主要有四种时钟源可供选择: 1).1-24MHz外部晶体振荡器(HSE). 2).最大24MHz外部时钟(HSE ext). 3).16MHz高速内部RC振荡器(HSI ...
- Maxim实时时钟芯片设计指南5791-关于编写健壮的实时时钟控制代码的提示
用DS12C887设计一个万年历,虽然反复查看说明书,还是出各种的错误. 因此,从美信官网查询资料,翻译的不太通,凑合着对照看. 原文链接 Tips for Writing Bulletproof R ...
- stm32之时钟控制
本文提到的有以下内容: 时钟系统与总线矩阵 SysTick系统定时器 RTC实时时钟 看门狗定时器 通用定时器 一.时钟系统与总线矩阵 stm32F4的时钟树如下图所示: 在STM32中,有五个时钟源 ...
- STM32的时钟系统RCC详细整理(转载)
一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...
- M0 M4时钟控制(一)
时钟控制器为整个芯片提供时钟源,包括系统时钟和所有外围设备时钟.该控制器还通过单独时钟的开或关,时钟源选择和分频器来进行功耗控制.在CPU使能低功耗PDEN(CLK_PWRCTL[7]) 位和Cort ...
- STM8S学习笔记-时钟控制2
今天把时钟系统的最后部分,时钟安全系统(CSS)和时钟输出功能(CCO),做一个简答的说明. 1.时钟安全系统(以下简称CSS) CSS功能很简单,就是监控HSE是否实效(如果系统使用HSE作为主时钟 ...
- android timed gpio (linux 3.0.0) 受时钟控制的gpio【转】
本文转载自:https://blog.csdn.net/linxi_hnh/article/details/8043417 1 路径: drivers/staging/android/timed_gp ...
随机推荐
- Delphi abstract error异常
今天在编译之前的一个的项目时, 退出程序时出现abstract error抽象错误的异常, 点击Continue又出现释放对象的异常, 百思不得其解, 之前还好好的,突然这样了, 经过一上午的调试, ...
- Linux0.11内核源码——内核态线程(进程)切换的实现
以fork()函数为例,分析内核态进程切换的实现 首先在用户态的某个进程中执行了fork()函数 fork引发中断,切入内核,内核栈绑定用户栈 首先分析五段论中的第一段: 中断入口:先把相关寄存器压栈 ...
- 处理警告:编码 GBK 的不可映射字符
怎么处理警告:编码 GBK 的不可映射字符:javac -encoding UTF-8 XX.java使用-encoding参数指明编码方式: 或者 用记事本打开文件,然后另存为,选择ANSI编码,覆 ...
- python魔法方法__reduce__()的妙用
一.__reduce__()介绍 当定义扩展类型时(也就是使用Python的C语言API实现的类型),如果你想pickle它们,你必须告诉Python如何pickle它们. __reduce__ 被定 ...
- 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响
原文地址 背景 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当a标签内部存在嵌套时, 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存 ...
- Class-DbConnectionManipulator:Execute,QueryFirstDefault<>
ylbtech-Class-DbConnectionManipulator:Execute,QueryFirstDefault<> 1.返回顶部 1. public object GetS ...
- ceph安装问题
ceph-deploy安装 Yum priorities pluginLoaded plugins: fastestmirror Loaded plugins: fastestmirror, prio ...
- Linux随笔 - Linux LVM逻辑卷配置过程详解[转载]
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...
- jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传
jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...
- mysql + grafana监控
1.首先需要增加授权 CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3 ...
