在芯片系统中,时钟可以视为芯片的“心脏”,控制着芯片的工作节拍。stm32芯片的时钟被应用于CPU时钟、总线时钟、Flash存储器的访问时钟等方面。这些时钟起着关键的作用,对芯片的性能和功耗有着至关重要的影响。
stm32芯片的时钟由两部分构成:外部时钟和内部时钟。外部时钟是通过晶体振荡器或其他外部源提供的,而内部时钟是通过芯片中的内置振荡器提供的。
外部时钟:对于一个晶振系统而言,晶振是必不可少的,而一般使用的正交晶振的精度会比其它晶振更高。
外部时钟的优点是精度高,缺点是在芯片电路设计布局上需要花费大量的功夫进行特殊的防护,而且价格相对内部晶体振荡器而言会比较贵。
内部时钟:为了解决外部时钟使用中的一些缺陷,例如布局留空等问题,这时可以使用芯片上的内置振荡器。 其中HSE(High Speed External,高速外部时钟)使用的就是外部晶振,而HSI(High Speed Internal,高速内部时钟)则是内置使用的振荡器。
stm32芯片使用了一个称为“时钟树”的技术,时钟树可以理解为由多个分频器组成的一个树形结构,通过它可以生成出各种不同频率的时钟信号。时钟分频是为了在给定一个时钟频率的时候,得到一个对应的更低频的时钟信号。
时钟树的构造中采用了分频的技术,例如:PLL(Phase Locked Loop,锁相环)。
除此之外,在STM32系列芯片中,也提供了其他多种时钟源提供其他分频和频率的选择,比如LSI和LSE等。
stm32芯片的时钟应用场景非常丰富,在日常的嵌入式硬件开发中,很多任务都牵扯到时钟的使用:
(1) 控制系统时序与速度:CPU时钟的选取必须满足设备的性能、功耗和稳定性,因此,芯片时钟对控制系统的时序和速度保障起到至关重要的作用;
(2) 调整系统时钟:时钟可以根据实际情况进行调整,比如通过外接校验电路产生导出时钟,对系统时钟进行修正以求更高的精确度;
(3) 控制设备的外设:例如I/O口的使用、串口通讯等都离不开时钟;
(4) 对芯片功耗进行优化:一些低功耗的应用场景需要使用最小化的时钟配合芯片进入低功耗模式以达到功耗优化的效果。