STM32F4再探-1.时钟系统
2016-12-05 19:18
113 查看
在算已经入门了STM32之后(其实也不算入门了,只是会使用STM32的各种外设,会GPIO,会复用,能使用SPI,串口,会输出PWM,会定时器,刚刚实现一个无线通信控制步进电机按照一定流程运动,下一步打算移植UCOSIII到板子中),在这之前觉着好像仅仅只是会使用STM32,能看得懂例程,但是对于一些原理性的东西好像很模糊,觉着要重新学习一遍STM32F4,然后搞明白以前很模糊的一些概念和原理。
首先要搞清楚的是时钟系统。上图
STM32的外设很多,并不是所有的外设都需要像系统时钟那么高的频率,RTC+看门狗只需要几十K即可。频率越高,功耗越大,抗电磁干扰能力越弱,所以在STM32中不像51只有一个时钟源。
STM32F4中有5个最重要的时钟源:
HSI-高速内部时钟(RC振荡器产生,16M,可作为系统时钟)
HSE-高速外部时钟(外部晶振,一般用8M晶振)
LSI-低速内部时钟(RC振荡器产生,32kHz左右,供看门狗和自动唤醒单元使用)
LSE-低速外部时钟(32.768kHz外部晶振,主要为RTC时钟源)
PLL-锁相环倍频输出(分为主PLL和专用PLL)
PLL的来源其实是HSI或者HSE。
主PLL(PLL):具有两个不同的输出时钟(PLLP,PLLQ)。
PLLP用于生成高速系统时钟(SYSCLK,最高168MHz)
PLLQ用于成成USB OTG FS的时钟(48MHz),
专用PLL(PLLI2S):在I2S接口实现高品质音频。
PLLP->SYSCLK 计算系统频率的方法:
(eg. 外部晶振8M 分频系数M=8 倍频系数N=336 分频系数P=2)
则: PLLP=8MHz * N / (M * P) = 168MHz
系统时钟为PTP(以太网时钟),AHB,APB1,APB2作为时钟源。
注意:PTP使用系统时钟频率,AHB,APB1,APB2都是经过分频之后的时钟。
AHB最高168MHz APB2最高84MHz APB1最高42MHz
最后总结一下SystemInit()函数中设置的系统时钟的大小:
SYSCLK(系统时钟):168MHz
AHB(HCLK=SYSCLK):168MHz
APB1(PCLK1=SYSCLK/4):42MHz
APB2(PCLK2=SYSCLK/2):84MHz
PLL主时钟:168MHz
首先要搞清楚的是时钟系统。上图
STM32的外设很多,并不是所有的外设都需要像系统时钟那么高的频率,RTC+看门狗只需要几十K即可。频率越高,功耗越大,抗电磁干扰能力越弱,所以在STM32中不像51只有一个时钟源。
STM32F4中有5个最重要的时钟源:
HSI-高速内部时钟(RC振荡器产生,16M,可作为系统时钟)
HSE-高速外部时钟(外部晶振,一般用8M晶振)
LSI-低速内部时钟(RC振荡器产生,32kHz左右,供看门狗和自动唤醒单元使用)
LSE-低速外部时钟(32.768kHz外部晶振,主要为RTC时钟源)
PLL-锁相环倍频输出(分为主PLL和专用PLL)
PLL的来源其实是HSI或者HSE。
主PLL(PLL):具有两个不同的输出时钟(PLLP,PLLQ)。
PLLP用于生成高速系统时钟(SYSCLK,最高168MHz)
PLLQ用于成成USB OTG FS的时钟(48MHz),
专用PLL(PLLI2S):在I2S接口实现高品质音频。
PLLP->SYSCLK 计算系统频率的方法:
(eg. 外部晶振8M 分频系数M=8 倍频系数N=336 分频系数P=2)
则: PLLP=8MHz * N / (M * P) = 168MHz
系统时钟为PTP(以太网时钟),AHB,APB1,APB2作为时钟源。
注意:PTP使用系统时钟频率,AHB,APB1,APB2都是经过分频之后的时钟。
AHB最高168MHz APB2最高84MHz APB1最高42MHz
最后总结一下SystemInit()函数中设置的系统时钟的大小:
SYSCLK(系统时钟):168MHz
AHB(HCLK=SYSCLK):168MHz
APB1(PCLK1=SYSCLK/4):42MHz
APB2(PCLK2=SYSCLK/2):84MHz
PLL主时钟:168MHz
相关文章推荐
- STM32F4_RCC系统时钟配置及描述
- STM32F4系统时钟配置及描述
- 利用意法的工具进行STM32F4系统时钟设定
- STM32F4 系统时钟
- STM32F4时钟系统常用的寄存器记录
- 学习STM32F429时钟系统笔记
- STM32F4_RCC系统时钟配置及描述
- STM32F4_RCC系统时钟配置及描述
- STM32F429 时钟系统笔记
- STM32F4xx那点事(二)——系统时钟的配置
- STM32F4如何设置系统时钟,非常重要
- linux 系统时钟设置 (抄)
- 数字时钟系统
- 浅析MPEG-2标准系统层的节目时钟参考
- 多时钟系统-3 Crossing clock domains - Task
- linux 系统下使用C程序实现时钟的函数
- OAL之系统时钟
- 多时钟系统-4 Crossing clock domains - Data bus
- JAVA下的多线程程序造成系统时钟变快
- PXA270嵌入式系统设计二:时钟及复位部分