STM32低功耗开发记录(一)

默认情况下MSI作为SYSCLK(RCC_CFGR寄存器的SW位)。在系统重启或从Stop和Standby低功耗模式下唤醒后,都是将MSI作为SYSCLK系统时钟源。MSI的频率可以由RCC_ICSCR寄存器的MSIRANGE[2:0]位来调整。

  时钟源
SysTick HCLK
SYSCLK MSI

STM32低功耗开发记录(一)_第1张图片

6.2.3 MSI时钟
 MSI时钟产生自内部RC振荡器。它的频率可以由RCC_ICSCR寄存器的MSIRANGE[2:0]比特配置。有7种频率范围:65.536kHz,131.072kHz,262.144kHz,524.288kHz,1.048MHz,2.097MHz(默认值)和4.194MHz.
 系统重启、从Stop和Standby低功耗唤醒后系统时钟都使用的是MSI时钟。重启后或者从Standby唤醒之后,MSI频率设置为默认值。RCC_ICSCR寄存器的值在从STOP模式下继续保存,也就是说MSI频率和校准值在唤醒后的值和进入STOP模式前一样。
 MSI的RC振荡器的优点是可以作为低功耗时钟源(无外围电路)。它可以作为低功耗模式下的唤醒时钟以减少功耗和唤醒时间。
 RCC_CR寄存器的MSIRDY标志位表示MSI的RC稳定与否。启动后,MSI的RC输出时钟不释放直到该比特被硬件置1。
 可以通过RCC_CR寄存器的MSION位打开和关闭MSI的RC。
 当HSE晶体出错后,MSI还可以作为辅助的备用时钟源。
 校准
 由于制造过程的差异不同片子的MSI RC振荡器频率也会有差异。这也是为什么每个设备都经过ST的出厂校准,在是室温TA为30度的情形下校准精度1%.
 重启后,出厂校准值从RCC_ICSCR寄存器的MSICAL[7:0]装载。如果应用电压和温度不同,那么会影响到RC振荡器的速率。你还可以通过RCC_ICSCR寄存器的MSITRIM[7:0]比特来调整MSI频率。更多详细关于如何测量MSI的频率变化请参考6.2.14节。

The RCC feeds the Cortex® System Timer (SysTick) external clock with the AHB clock (HCLK) divided by 8. The SysTick can work either with this clock or with the Cortex® clock (HCLK), configurable in the SysTick Control and Status Register.
SysTick的时钟可以是HCLK(内核时钟)也可以是外部时钟(HCLK/8),这是由SysTick控制和状态寄存器配置。

STM32低功耗开发记录(一)_第2张图片

2) FLASH部分

Reference Manual

为了低功耗,Flash的配置也有讲究。
FLASH_ACR寄存器的ACC64应清0,表示不使用64位的访问模式,而采用32位访问方式。32-bit访问模式可以减少功耗,可以在CPU的频率低的时候使用32-bit模式,32-bit访问模式下FLASH_ACR寄存器的LATENCY必须为0,FLASH_ACR寄存器的PRFTEN为0。

你可能感兴趣的:(STM32)