STM32F429第七篇之RCC(复位与时钟)

您所在的位置:网站首页 复位英语怎么翻译的 STM32F429第七篇之RCC(复位与时钟)

STM32F429第七篇之RCC(复位与时钟)

2024-07-10 04:18| 来源: 网络整理| 查看: 265

文章目录 前言更新 复位系统复位电源复位备份域复位 时钟时钟树图时钟源A 高速外部时钟HSEB 低速外部时钟LSEC 高速内部时钟HSID 低速内部时钟LSI 外接时钟信号MCO 系统时钟线(1)高速外部时钟HSE(2)锁相环PLL(3)系统时钟SYSCLK(4)AHB总线时钟HCLK(5)APB总线时钟PCLK 其余部分a 独立看门狗时钟b RTC时钟c I2S时钟d SAI1时钟e LTDC时钟

前言

本文主要讲解STM32F429的RCC模块,即Reset and Clock Control,也就是复位与时钟控制。本文主要参考:

STM32F4XX 英文参考手册STM32F4XX 中文参考手册STM32F4XX 数据手册刘火良.STM32库开发实战指南——基于STM32F4.

注意: STM32F429相对于其他4系列的STM32在时钟模块还是有些不同,而由于中文参考手册已经很长时间没有更新,所以,不同之处还需参考英文参考手册。

更新 20200914,更新主PLL中的频率参数表。 复位

复位主要有三种复位类型:

系统复位电源复位备份域复位 系统复位

其中,系统复位 会将所有的寄存器复位为复位值,除了:

时钟控制寄存器CSR中的复位标志备份域的寄存器

系统复位 的产生条件:

NRST引脚低电平(外部复位)窗口看门狗计数结束(WWDG复位)独立看门狗计数结束(IWDG复位)软件复位(SW复位)低功耗管理复位 电源复位

电源复位 产生的条件:

上电/掉电复位或者欠压复位退出待机模式时

电源复位 和 系统复位 的复位源均作用在 NRST 引脚上。当 NRST 引脚维持低电平 20us 时,触发复位信号。如下图所示: 在这里插入图片描述

备份域复位

备份域复位 会将以下两种寄存器复位为复位值:

RTC寄存器RCC_BDCR寄存器

注意: BKPSRAM不受此复位的影响。BKPSRAM的唯一复位方式就是通过FLASH接口将flash保护等级由1切换到0。

备份域复位 触发的条件为:

软件复位,通过将 RCC_BDCR 寄存器的 BDRST 位置1.电源VDD和VBAT都已经掉电之后,其中任何一个又再上电。 时钟 时钟树图

在这里插入图片描述 在STM32CUBEMX中,还有时钟树另一种表示方式,具体参考博客。

时钟源

在STM32中,最重要的时钟源有4个,在图中用大写字母标记:

高速外部时钟HSE——图中标注A低速外部时钟LSE——图中标注B高速内部时钟HSI——图中标注C低速内部时钟LSI——图中标注D A 高速外部时钟HSE

HSE 是高速外部时钟信号,可以由有源或者无源晶振提供,频率范围可以取由4MHz~26MHz。当取有源晶振时,引脚SOC_IN进入时钟,引脚SOC_OUT高阻状态。当选取无源晶振时,时钟从引脚SOC_IN和SOC_OUT进入,且需要配置好谐振电容。如下图所示:

在这里插入图片描述

B 低速外部时钟LSE

LSE 是32.768kHz的速度外部时钟,可以外接低速晶振或者陶瓷谐振器。其产生的信号可以用作实时时钟外设(RTC),例如:时钟/日历或者其他定时功能。

C 高速内部时钟HSI

HSI时钟即高速内部时钟,由内部16MHz RC谐振器生成。其时钟信号输出可以有两种用途:

直接作为系统时钟(SYSCLK)PLL输入

内部时钟成本很低,芯片内部集成。但是内部时钟的精度比外部时钟低。

D 低速内部时钟LSI

LSI 时钟可以作为时钟源在停机和待机模式下保持运行,供独立看门狗(IWDG)和自动唤醒单元(AWU)使用。时钟频率在32kHz左右。

外接时钟信号

其中,HSE和LSE可以外接晶振。其中可以和通过引脚和外部连接的时钟信号共有6处,都在图的最左侧,用 蓝色数字 标注:

HSELSEI2SCKIN以太网外部PHY设备USB外部PHY设备MCO时钟输出

其中,1-3都是通过引脚将外部时钟信号输入,4-5都需要外接PHY设备,6是信号的输出。1-2前面已经介绍过,3-5此处不再详细介绍,详细信息请查看手册。重点介绍一下时钟输出MCO。

MCO

时钟输出共有两个引脚,分别为:

MCO1——PA8MCO2——PC9 用户可以通过分别配置对应的预分配器(从1到5),来输出四个不同的时钟源:MCO1——HSI,LSE,HSE,PLLMCO2——HSE,PLL,SYSCLK,PLLI2S

注意: MCO输出时钟不得超过100MHz。

系统时钟线

在实际使用中,通过时钟初始化,完成以下几个功能:

将系统时钟 SYSCLK 设置为 180MHz将 AHB 的时钟 HCLK 设置为 180MHz将 APB2 的时钟 PCLK2 设置为 90MHz将 APB1 的时钟 PCLK1 设置为 45MHz 下面,我们就以上述初始化功能为主线,来分析时钟树。这条主线的顺序,同样是时钟走向。在图中用红色括号括起来的数字。 (1)高速外部时钟HSE

上文已经详细描述,次数不再详细介绍。此处我们选择HSE=25MHz。 在这里插入图片描述 注意: 在应用中,谐振器和负载电容应该尽可能靠近振荡器的引脚,以尽量减小输出失真和起振稳定时间。

(2)锁相环PLL

锁相环电路主要功能就是对时钟进行倍频处理,在STM32F429有三个PLL:主PLL,PLLI2S和PLLSAI。这三个PLL电路在图中均用黄色方框标记。需要注意的是,一旦PLL电路使能,PLL相关的参数将不能改变。

这三路PLL输入都来自经过M分频的HSI或者HSE。 在这里插入图片描述

其中主PLL有两路不同的时钟输出:

第一路用作高速系统时钟(SYSCLK)(最大可达180MHz)。第二路用作USB OTG FS(48MHz),随机数发生器的时钟,以及SDIO时钟。

PLLI2S产生两路输出:

第一路用于PLLI2SCLK,为I2S提供时钟。第二路用于PLLSAICLK,为SAI提供时钟。

PLLSAI产生两路输出:

第一路用于PLLSAICLK,为SAI提供时钟。第二路用于PLLLCDCLK,为LCD-TFT提供时钟。

HSE或者HSI经过预分频因子M(2-36)分频之后,成为VCO的时钟输入,VCO的时钟输入必须在1-2MHz之间(如下图所示),我们选择HSE=25MHz作为PLL的时钟输入,M设为25,那么VCO输入时钟就等于1HMZ。VCO输出时钟须在(192-432MHz )之间(根据最新的数据手册,此处应该为(100MHz-432MHz)),所以,可以配置N为360,则VCO输出时钟等于360MHz。

在这里插入图片描述 在这里插入图片描述

VCO输出之后三路输出,对应三个分频因子:

P:输出为系统时钟。可以取2,4,6,8。Q:输出为48MHz时钟,用于USB。可以取4-15。R:不用

于是,可以设置P为2,则系统时钟为: P L L C L K = V C O O U T / 2 = 180 M H z PLLCLK=VCOOUT/2=180M Hz PLLCLK=VCOOUT/2=180MHz 而USB时钟必须为48MHz,但是当VCOOUT为360MHz时,分频数必须为7.5,此时出现了小数错误。所以,为了弥补这个问题,当用到USB时,则需将VCOOUT设置为336MHz。此时

P L L C L K = V C O O U T / 2 = 336 / 2 = 168 M H z U S B C L K = V C O O O U T / 7 = 336 / 7 = 48 M H z PLLCLK=VCOOUT/2=336/2=168M Hz \\ USBCLK=VCOOOUT/7=336/7=48MHz PLLCLK=VCOOUT/2=336/2=168MHzUSBCLK=VCOOOUT/7=336/7=48MHz 只能通过降频到168MHz,来使用USB。

(3)系统时钟SYSCLK

可以使用三个时钟源来驱动系统失踪(SYSCLK):

HSI高速内部时钟HSE高速外部时钟主PLL时钟

在系统复位之后,默认的系统时钟为HSI。只有在目标时钟源就绪之后(时钟在启动延时或PLL锁相后稳定时),才可以切换时钟。若选择切换到未就绪的时钟源,则切换会等到时钟源就绪后才进行。

这里,我们设置 S Y S C L K = P L L C L K = 180 M H z SYSCLK=PLLCLK=180MHz SYSCLK=PLLCLK=180MHz

(4)AHB总线时钟HCLK

系统时钟经过AHB预分频之后得到的时钟为HCLK,预分频因子可以为1,2,4,8,…,512。芯片上具体挂在AHB总线的外设可以通过查找芯片参考手册获得,或者可以参阅博客。使用具体外设的时候,还可以根据需要再次分频,所以,在这里可以将预分频因子设置为1,令 H C L K = S Y S C L K = 180 M H z HCLK=SYSCLK=180MHz HCLK=SYSCLK=180MHz

(5)APB总线时钟PCLK

同样的挂在APB总线上的外设可以通过查找手册或者博客中查找。 APB总线可以分成两个部分APB2和APB1,两部分都是由AHB总线时钟HCLK分频而来,分频因子为:1,2,4,8,16.在STM32F429中,APB2时钟频率最大为90MHz,APB1时钟频率最大为45MHz。所以此处可以设置APB2位2分频,APB1为4分频。

其余部分

其余的时钟,在图中,都用粉红色矩形标记了出来,且用小写字母做了标号。

a 独立看门狗时钟

独立看门狗时钟由LSI提供,频率为32kHz。如果独立看门狗(IWDG)已经通过硬件选项字节或者软件设置方式启动,则LSI振荡器将会强制被打开且不可被禁用。

b RTC时钟

RTCCLK时钟源可以为:

HSE 1MHz(通过预分频器分频)LSELSI

所做的选择只能通过复位备份域的方式修改。 通常的做法是,有LSE给RTC提供时钟,大小为32.768kHz。

c I2S时钟

I2S时钟可以在两种时钟源之间选择其一:

外部时钟引脚I2S_CKIN专用的PLLI2SCLK d SAI1时钟

SAI1时钟可以在三种时钟源之间选择其一:

外部时钟引脚I2S_CKIN专用的PLLI2SCLK专用的PLLSAICLK e LTDC时钟

LTDC时钟由特定的PLLSAI产生。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3