历史上的今天
今天是:2025年03月08日(星期六)
2019年03月08日 | STM32之RCC原理
2019-03-08 来源:eefocus
1、时钟源
在 STM32 中,一共有 5 个时钟源,分别是 HSI 、 HSE 、 LSI 、 LSE 、 PLL 。
①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ;
②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz ;
③LSI 是低速内部时钟, RC 振荡器,频率为 40KHz ;
④LSE 是低速外部时钟,接频率为 32.768KHz 的石英晶体;
⑤PLL 为锁相环倍频输出,严格的来说并不算一个独立的时钟源, PLL 的输入可以接 HSI/2 、 HSE 或者 HSE/2 。PLL倍频可选择为 2 – 16 倍,但是其输出频率最大不得超过 72MHz 。
其中, 40kHz 的 LSI 供独立看门狗 IWDG 使用,另外它还可以被选择为实时时钟 RTC 的时钟源。另外,实时时钟 RTC 的时钟源还可以选择LSE ,或者是 HSE 的 128 分频。
STM32 中有一个全速功能的 USB 模块,其串行接口引擎需要一个频率为 48MHz 的时钟源。该时钟源只能从 PLL 端获取,可以选择为 1.5 分频或者 1 分频,也就是,当需使用到 USB 模块时, PLL 必须使能,并且时钟配置为 48MHz 或 72MHz 。
另外 STM32 还可以选择一个时钟信号输出到 MCO 脚 (PA.8) 上,可以选择为 PLL 输出的 2 分频、 HSI 、 HSE 或者系统时钟。
系统时钟 SYSCLK ,它是提供 STM32 中绝大部分部件工作的时钟源。系统时钟可以选择为 PLL 输出、 HSI 、 HSE 。系系统时钟最大频率为72MHz ,它通过 AHB 分频器分频后送给各个模块使用, AHB 分频器可以选择 1 、 2 、 4 、 8 、 16 、 64 、 128 、 256 、 512 分频,AHB分频器输出的时钟送给 5 大模块使用:
①送给 AHB 总线、内核、内存和 DMA 使用的 HCLK 时钟;
②通过 8 分频后送给 Cortex 的系统定时器时钟STCLK;
③直接送给 Cortex 的空闲运行时钟 FCLK ;
④送给 APB1 分频器。 APB1 分频器可以选择 1 、 2 、 4 、 8 、 16 分频,其输出一路供 APB1 外设使用( PCLK1 ,最大频率 36MHz),另一路送给定时器 (Timer)2 、 3 、 4 倍频器使用。该倍频器根据PCLK1的分频值自动选择 1 或者 2 倍频,时钟输出供定时器 2 、3 、 4 使用。
⑤送给 APB2 分频器。 APB2 分频器可以选择 1 、 2 、 4 、 8 、 16 分频,其输出一路供 APB2 外设使用( PCLK2 ,最大频率 72MHz),另外一路送给定时器 (Timer)1 倍频使用。该倍频器根据PCLK2的分频值自动选择1 或 2 倍频,时钟输出供定时器 1 使用。另外 APB2分频器还有一路输出供 ADC 分频器使用,分频后送给 ADC 模块使用。 ADC 分频器可选择为 2 、 4 、 6 、 8 分频。
需要注意的是定时器的倍频器,当 APB 的分频为 1 时,它的倍频值为 1 ,否则它的倍频值就为 2 。

2、APB1和APB2连接的模块
①连接在 APB1( 低速外设 ) 上的设备有:电源接口、备份接口、 CAN 、 USB 、 I2C1 、 I2C2 、 UART2 、 UART3 、 SPI2 、窗口看门狗、 Timer2 、 Timer3 、 Timer4 。 注意 USB 模块虽然需要一个单独的 48MHz 的时钟信号,但是它应该不是供 USB 模块工作的时钟,而只是提供给串行接口引擎 (SIE) 使用的时钟。 USB 模块的工作时钟应该是由 APB1 提供的。
②连接在 APB2 (高速外设)上的设备有: UART1 、 SPI1 、 Timer1 、 ADC1 、 ADC2 、 GPIOx(PA~PE) 、第二功能 IO 口。

上一篇:STM32之RCC配置
下一篇:STM32__main代码分析
史海拾趣
|
STM32F103Z核心板,板载512K SRAM/64M NAND flash http://item.taobao.com/auction/item_detail-db2-2494f2cca7bcf576c2eb50164b94ab8e.htm QQ:21578936 资源: 1:REV1.1版 STM32F103Z核心板,板载512K SRAM/64M NAND flash 2:引出所有I/O口 3:独立BOOT跳针 4:20PIN标准JTAG接口(支持JTA ...… 查看全部问答> |
|
我这个问题好像是新手必问的问题。 在VS2005,没有Wince5.0的仿真程序。现在我要做个Wince5.0 的应用程序,想调测,就必须先接设备。 接设备我是通过ActiveSync4.5做的。 问题是我习惯开发时每一段代 ...… 查看全部问答> |
|
该TDA3560设计为一个3毫米功率LED具有某些特点:(1)高通量输出;(2)超薄;(3)较低的热阻;(4)低功耗;(5)在反射的荧光粉转换的氮化铟镓蓝色发光芯 片到理想的白色;(6)典型的色度坐标x = 0.30,y = 0.29根据CIE1931;(7)本产品本身将保持在符合R ...… 查看全部问答> |
|
请教:在掌握51的基础上,进一步提高是学习ARM呢还是DSP好点呢?学习他们有什么分别? 我想请教大家,现在我对51有一定掌握了,想进一步提高一下,DSP和ARM学习那个好点呢?他们的应用前景怎样?学习起来难易程度又如何?我本人偏向DSP,DSP算法是 精髓,有的研究。这只是我个人看法,不知具体他们的情况如何,还望大家不吝赐教。… 查看全部问答> |
|
USB学习板做完了,最近做了批,大家如果需要可以参与本次团购活动。 团长备案号: EEWORLD_005 团长承诺:我已经详细阅读过论坛自发团购规则,并愿意严格遵照此规则执行,愿意为大家提供货真价实、物美价廉的产品。 【征询贴】链接:ht ...… 查看全部问答> |
|
keil 下编译LM3S9B96官方例程boot_eth出错 官方提供的StellarisWare\\boards\\dk-lm3s9b96\\boot_eth\\ 使用keil的工程编译,出现下面提示: Build target \'boot_eth\'User command #1: armcc --device DLM -I . -E -o bl_config.inc ..\\..\\..\\boot_loader\\bl_config.c--- Error: User ...… 查看全部问答> |
|
最近学习LaunchPAD,在看到这个文档的时候(文档名称Getting Started with the MSP430 LaunchPad--- Student Guide and Lab Manual), 发现一个疑似错误,发帖求证一下! 该文档的第36页, 我用的版本是 好像之前的版本也有这 ...… 查看全部问答> |
|
新手求教。除了传统的PWM输入捕获方式测PWM周期和占空比,还有其他方法可以实现么? 例如,信号输入Pin口外部中断exit(双边沿),开定时器TIM3,不同边沿中断时,记下不同的TIM3->cnt的值。 不知道这样可以否? 因为遇到了非TIMx输入通道的信号测频率和占空比问题,所以想到了这个方法。 请教下各位大大! 还有其他更好的方法么 ...… 查看全部问答> |




