复位和时钟控制(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):
HSI HSE PLL:
注:在激活PLL的设置时,必须先完成选择HSI振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子。
RTC时钟源(RTCCLK):
LSE LSI 经过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时钟。