拿到STM32L476 NUCLEO板子有好一段时间了,之前也用它来做了手势传感器的测试,使用的是mbed编译器做的,因为是使用任何一款NUCLEO板子都可以做,没有什么特色,就没有想着发帖分享。刚好最近有空了,开始准备低功耗之旅了。先晒个板子图,焊接了外部晶振8M的。 说到时钟源,就不得不提一下MSI,这个是L系列独具的,它是一个产生于内部的可选择的时钟源,能提供12种不同频率:100 kHz, 200 kHz, 400 kHz, 800 kHz, 1 MHz, 2 MHz, 4 MHz (default value), 8 MHz, 16 MHz, 24 MHz, 32 MHz and 48 MHz。 它可以直接选择为系统主系统时钟,也可以作为PLL源,经倍频后选择作为系统的主系统时钟。选择MSI,系统的工作时钟选择范围更广,从而为低功耗提供更多的选择。 下面是三种时钟做倍频源的对比,都是倍频至80MHz的输出至PA8引脚。 1.HSE,为了使系统得到更精准的时钟,HSE是首选,板子接的是8M晶振,测试发现非常稳定,79.9938MHz,一点不变化。 2.HSI,也是产生自内部的一个时钟振荡器,其频率固定为16MHz,它是STM32系列内部皆有的一个时钟源,不需要外部器件即可为系统提供时钟,另外在外部晶振失效时也可以继续系统提供时钟源。但是精度稍微差点,在室温15度左右的情况下,实际输出一直在80.1538MHz附近跳变,几乎没有低于过80.1MHz过。 3.MSI,前文有提到它的特点,感觉STM32L系列有了它之后,HSI存在的意义就不是很大了,或许是因为兼容性的问题,才得以保留。另外其精度还是可以的,同样的条件下,一直在80MHz左右跳变。 |
我也不明白新加入的MSI作用是什么,原来我的问题应该改成HSI有什么用?
然后我发现L073是没法选择MSI作为PLL的时钟源的,所以还只能用HSI和HSE