完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,新的一天又来了,让我们一起来学习这个伟大的单片机吧!
今天我们来讲RCC 这个RCC是复位和时钟控制的英文缩写。 问题:什么是复位?什么是时钟? STM32有三种复位功能 1.系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为他们的复位数值。 2.电源复位:电源复位将复位除了备份区域外的所有寄存器。 3.后备域复位: 备份区域拥有两个专门的复位,他们只影响备份区域。 系统复位 除了时钟控制寄存器 CSR 中的复位标志和备份域中的寄存器外,系统复位会将其它全部寄 存器都复位为复位值。 只要发生以下事件之一,就会产生系统复位: NRST 引脚低电平(外部复位) 窗口看门狗计数结束( WWDG 复位) 独立看门狗计数结束( IWDG 复位) 软件复位( SW 复位)(请参见软件复位) 低功耗管理复位(请参见低功耗管理复位) 软件复位 可通过查看 RCC 时钟控制和状态寄存器 (RCC_CSR) 中的复位标志确定。 要对器件进行软件复位,必须将 Cortex™-M4F 应用中断和复位控制寄存器中的 SYSRESETREQ 位置 1。 低功耗管理复位 引发低功耗管理复位的方式有两种: 进入待机模式时产生复位: 此复位的使能方式是清零用户选项字节中的 nRST_STDBY 位。使能后,只要成功执行 进入待机模式序列,器件就将复位,而非进入待机模式。 进入停止模式时产生复位: 此复位的使能方式是清零用户选项字节中的 nRST_STOP 位。使能后,只要成功执行 进入停止模式序列,器件就将复位,而非进入停止模式 电源复位 只要发生以下事件之一,就会产生电源复位: 3. 上电/掉电复位( POR/PDR 复位)或欠压 (BOR) 复位 4. 在退出待机模式时 除备份域内的寄存器以外,电源复位会将其它全部寄存器设置为复位值(请参见图 4) 这些源均作用于 NRST 引脚,该引脚在复位过程中始终保持低电平。 RESET 复位入口向量 在存储器映射中固定在地址 0x0000_0004。 芯片内部的复位信号会在 NRST 引脚上输出。脉冲发生器用于保证最短复位脉冲持续时间, 可确保每个内部复位源的复位脉冲都至少持续 20 μs。 对于外部复位,在 NRST 引脚处于低 电平时产生复位脉冲。 备份域复位 备份域复位会将所有 RTC 寄存器和 RCC_BDCR 寄存器复位为各自的复位值。 BKPSRAM 不受 此复位影响。 BKPSRAM 的唯一复位方式是通过 Flash 接口将 Flash 保护等级从 1 切换到 0。 只要发生以下事件之一,就会产生备份域复位: 5. 软件复位,通过将 RCC 备份域控制寄存器 (RCC_BDCR) 中的 BDRST 位置 1 触发。 6. 在电源 VDD 和 VBAT 都已掉电后,其中任何一个又再上电。 这是复位电路 当我们按下按键的时候,NRST直接接地,就是接到低电平上。 就会触发系统复位 电源复位 只要发生以下事件之一,就会产生电源复位: 上电/掉电复位( POR/PDR 复位)或欠压 (BOR) 复位 在退出待机模式时 除备份域内的寄存器以外,电源复位会将其它全部寄存器设置为复位值 复位说完了,我们开始说说时钟。 时钟就是心跳。 7. 时钟 可以使用三种不同的时钟源来驱动系统时钟 (SYSCLK): ● HSI 振荡器时钟(这是内部的,不需要额外的电路来支持) ● HSE 振荡器时钟(需要外接外部晶振) ● 主 PLL (PLL) 时钟(芯片使用中非常常用的,可以使主频提高到比较高的水平,来提高芯片的性能,是基于其他时钟) 器件具有以下两个次级时钟源:(提供给其他器件使用的二级时钟) ● 32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用 于停机/待机模式下的自动唤醒。 ● 32.768 kHz 低速外部晶振( LSE 晶振),用于驱动 RTC 时钟 (RTCCLK) 对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。 上面LSE晶振可以给RTC外设提供一个计时器。 STM32频率越高 耗电量越大 打开Cube 这里可以选择使用哪个时钟源 HSE是高速时钟 LSE是低速 HSE高速时钟可以提供STM32的系统时钟。 高速外部时钟信号 (HSE) 有 2 个时钟源: ● HSE 外部晶振/陶瓷谐振器 ● HSE 外部用户时钟 就是外部晶振。 HSI 时钟 HSI 时钟信号由内部 16 MHz RC 振荡器生成,可直接用作系统时钟,或者用作 PLL 输入。 HSI RC 振荡器的优点是成本较低(无需使用外部组件)。此外,其启动速度也要比 HSE 晶振块,但即使校准后,其精度也不及外部晶振或陶瓷谐振器。 PLL 配置 STM32F4xx 器件具有两个 PLL: ● 主 PLL (PLL) 由 HSE 或 HSI 振荡器提供时钟信号,并具有两个不同的输出时钟: — 第一个输出用于生成高速系统时钟(最高达 168 MHz) — 第二个输出用于生成 USB OTG FS 的时钟 (48 MHz)、随机数发生器的时钟 (48 MHz) 和 SDIO 时钟 ( 48 MHz)。 ● 专用 PLL (PLLI2S) 用于生成精确时钟,从而在 I2S 接口实现高品质音频性能。 由于在 PLL 使能后主 PLL 配置参数便不可更改,所以建议先对 PLL 进行配置,然后再使能(选择 HSI 或 HSE 振荡器作为 PLL 时钟源,并配置分频系数 M、 N、 P 和 Q)。PLLI2S 使用与 PLL 相同的输入时钟( PLLM[5:0] 和 PLLSRC 位为两个 PLL 所共用)。但是, PLLI2S 具有专门的使能/禁止和分频系数( N 和 R)配置位。在 PLLI2S 使能后,配置参数便不能更改。 当进入停机和待机模式后,两个 PLL 将由硬件禁止;如将 HSE 或 PLL(由 HSE 提供时钟信号)用作系统时钟,则在 HSE 发生故障时,两个 PLL 也将由硬件禁止。 RCC PLL 配置寄存器 (RCC_PLLCFGR) 和RCC 时钟配置寄存器 (RCC_CFGR) 可分别用于配置 PLL 和 PLLI2S。 这里的意思是选择晶振。 我们可以看到这个页面。 HSI是内部时钟振荡器 现在我们需要配置HSE外部晶振时钟 **注意:**那么一般我们在STM32中,会使用HES来作为PLL这个倍频的时钟源输入,最终通过PLL来对我们的输入时钟倍频再输出作为系统的总时钟,这样我们就可以得到一个较高的时钟频率。 如果想得到一个很高的时钟频率那我们就要用PLL 我们要根据这部分的限定 分频因子就是做除法。 根据这个图 我们不难发现 都在范围内,所以说着CubeMX是真的好用啊! 详细请见STM32F4xx中文参考手册107页 系统时钟可以通过一个引脚来输出 |
|
|
|
只有小组成员才能发言,加入小组>>
2549 浏览 0 评论
1148浏览 2评论
747浏览 1评论
500浏览 0评论
266浏览 0评论
429浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:20 , Processed in 1.312226 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号