首页 > 技术文章 > 复位和时钟控制

Random-Boy 2020-11-27 11:37 原文

一.复位

1.系统复位

当发生以下任一事件时,产生一个系统复位

  • NRST引脚上的低电平(外部复位)
  • 窗口看门狗计数终止(WWDG复位)
  • 独立看门狗计数终止(IWDG复位)
  • 软件复位(SW复位)
  • 低功耗管理复位

2.软件复位

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

3.低功耗管理复位

 

 

4.电源复位

 

 

 

5.复位电路

 

 

 

 

 

 

 二.时钟

 

 

 

上图为从STM32CubeMX中截取的关于时钟树的内容,以下关于时钟的介绍可以对照上图进行了解

 

三种不同的时钟源可被用来驱动系统时钟(SYSCLK)

  • HSI振荡器时钟
  • HSE振荡器时钟
  • PLL时钟

这些设备有以下2种二级时钟源:

  • 40KHZ低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。
  • 32.768KHZ低速外部晶体也可以用来通过程序选择驱动RTC(RTCCLK)

当不被使用时,任一个时钟源都可被独立的启动或关闭,由此优化系统功耗。

 

1.当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是64MHZ

2.用户可通过多个预分频器配置AHB,高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHZ。APB1域的

最大允许频率是36MHZ。SDIO接口的时钟频率固定为HCLK/2。

3.RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上

述时钟或Cortex(HCLK)时钟作为SysTick时钟。 ADC时钟由高速APB2时钟经2、 4、 68分频后获得。 

 

 

 

(1)HSE时钟

高速外部时钟信号(HSE)由以下两种时钟源产生:

  • HSE用户外部时钟
  • HSE外部晶体/陶瓷谐振器

为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能的靠近振荡器引脚。负载电容值必须根据所选振荡器来调整。

 

 

 

 

 

 (2)HSI时钟

HSI时钟由内部8MHZ的RC振荡器产生,可直接作为系统时钟或在二分频后作为PLL输入。

 

HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差 

 

(3)PLL

内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。

PLL的设置(选择HIS振荡器除2HSE振荡器为PLL的输入时钟,和选择倍频因子)必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。 

如果需要在应用中使用USB接口, PLL必须被设置为输出4872MHZ时钟,用于提供48MHzUSBCLK时钟。 

(4)LSE时钟

LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。 

 

(5)LSI时钟

LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。 LSI时钟频率大约

40kHz(30kHz60kHz之间) 

 

(6)系统时钟

系统复位后, HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。 
只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时钟源的切换才会发生。在被选择时钟源没有

就绪时,系统时钟的切换不会发生。直至目标时钟源就绪,才发生切换。 

(7)RTC时钟

 

 

(8)看门狗时钟

 

 

(9)时钟输出

微控制器允许输出时钟信号到外部MCO引脚。

 

以下四个时钟信号可被选作MCO时钟:

  • SYSCLK
  • HSI
  • HSE
  • 除2的PLL时钟

 

推荐阅读