STM32L4xx系列MCU基于ARM Cortex-M4,具有FPU内核、高度灵活性和高级外设集,实现了首屈一指的超低功耗性能。这些器件非常适合电池供电的产品,所需供电电压可低至1.71V。
与一般MCU只有4路时钟相比,STM32L4xx多提供了一个时钟源,具有多功能的时钟管理,5个时钟源(HSE、LSE、 LSI、HSI、MSI)可通过复位和时钟控制器(RCC)外设来管理。以下做简单介绍。
五个时钟源:HSE、LSE、 LSI、HSI、MSI
通过HSE、LSE两个外部振荡器,应用能获得高精度:
◆ HSE时钟(4至80MHz的高速外部时钟),通常用来馈送PLL,并能产生高达80MHz的CPU时钟频率,以及USB控制器和音频时钟所需的独立频率。
◆ LSE(典型的32.768kHz低速外部时钟)一般用于为实时时钟提供低功耗时钟源,不过也能用作LCD时钟。
对于多种不同的任务,STM32L4xx有3个内部振荡器可供选择:
◆ LSI时钟(32kHz低速内部时钟)是超低功耗源,能够馈送实时时钟(精度有限)、LCD控制器和独立看门狗
◆ HSI时钟(16MHz高速内部时钟)是高速电压补偿振荡器。
◆ MSI时钟(100kHz至48MHz多种速率内部时钟)是振荡器,具有可调的频率和低电流消耗。它的工作电流与频率成比例,以便最小化内部振荡器在低CPU频率下的功耗开销。
配置为PLL模式时,该振荡器利用LSE自动校准,能够实现高精度。
RC48可用时,利用时钟恢复系统(HSI48):内部48MHz时钟源(HSI48)可用于驱动USB、SDMMC或RNG外设。此时钟可在MCO上输出。
此外,STM32L4xx微控制器嵌入了三个PLL,每个都具有多达3个独立输出,并可由HSI、HSE或MSI馈送。这九个输出可分别配置为:
- 系统时钟
- ADC接口时钟
- USB时钟
- 串行音频接口SAI1时钟
- 串行音频接口SAI2时钟
外设时钟的选择
多个其他外设可由非系统时钟提供时钟:USARTx(x= 1、2、3、4、5),LPUART,SWPMI和I2Cx(x=1、2、3、4)接收独立时钟。
消除外设在系统时钟上的限制条件,这可降低系统和APB总线频率,并保持通信外设波特率不变,与系统时钟频率独立。
- 在运行和低功耗运行模式下,所有外设时钟可单独使能或禁用。
- 在睡眠和低功耗睡眠模式下,所有外设时钟也可单独使能或禁用。
HSI和LSI的校准
在成本敏感的应用中,晶体振荡器的价格可能无法忽略。出于这个原因,STM32L4xx提供了多种选择来测量内部振荡器。尽管HSI和MSI是工厂修调的,但它们能在运行时间内进一步修调0.5%个单位,以补偿因温度和电压变化引起的频率偏移。
当应用中存在LSE时,MSI可利用LSE(PLL模式配置)自动校准,从而可能长期达到LSE精确度。该模式可提供USB时钟,具有器件模式中运行所要求的精确度,节约了高速晶振的成本。而且,当MCU从Stop模式退出时,系统时钟在任意频率范围内均可配置为HSI或MSI。这允许在48MHz时直接退出停止模式,无需等待PLL启动时间。