第14章 STM32F429的电源,复位和时钟系统

发布者:素心悠远最新更新时间:2022-04-13 来源: eefocus关键字:STM32F429  电源  复位  时钟系统 手机看文章 扫描二维码
随时随地手机看文章

14.1 初学者重要提示

电源管理部分涉及到的各种低功耗方式会在后面章节中为大家讲解,当前阶段仅需了解低功耗属于电源管理部分即可。


14.2 电源

电源是系统稳定运行的根本,主要分为以下几个知识点,电源供电、供电监控、电源管理和低功耗。当前阶段主要了解电源供电和硬件上电时序。


14.2.1 电源供电

学习STM32F429的电源供电,往往被一堆电源标识Vdd,Vdda,Vcap,Vss等搞迷糊,这些标识整明白了,电源供电部分也就理解了,首先看下面的框图:

这些常用标识的解释如下:

对于电源供电部分了解了这些知识点就够用。


14.2.2 电源去耦电容的选择

每个电源对 (VDD/VSS, VDDA/VSSA ...)必须使用下述的滤波陶瓷电容去耦。这些电容必须尽量靠近芯片引脚,以确保器件正常工作。不建议去掉滤波电容来降低PCB 尺寸或成本,这可能导致器件工作不正常。 


14.3 硬件复位

所有数字计算机系统都是由某种形式的震荡时钟电路驱动的。这种电路被称为系统的“脉搏”,是系统正确运行的关键。如果振荡器失灵,系统将完全无法运行,如果振荡器运行不规律,系统执行的所有与时间有关的计算都会有误差。


所有微控制器的启动流程都不通用。由于硬件的复杂性,必须运行一段由厂家定义的短小的“复位程序”来使硬件处于一种正确的状态,然后再开始执行用户程序。运行这个复位程序需要时间并且要求微控制器的振荡器已经运行。


当系统由可靠的电源供电时,一旦通电,电源迅速地达到额定输出电压,一旦断电,电源迅速地下降到0V,并且在接通的时候,电压不会降低。这时能够可靠地使用基于一个电容和一个电阻的低成本硬件复位。这种形式的复位电路称为阻容复位。


如果电源不够可靠,而涉及安全性,这种简单的阻容解决方案就不合适了。


14.3.1 上电复位和手动复位

STM32F429开发板的硬件复位原理图如下:

STM32这款CPU的复位引脚是低电平有效,即NRST为低电平时,CPU处于复位状态。


R173和C114组成简单的RC复位电路。当系统上电瞬间,C114电容两端电压可以认为是0,CPU处于复位状态。3.3V电源通过R173给C114充电,当C114的电压升到CPU的高电平门槛电压时,CPU退出复位状态转入运行状态。


在设计电路时,需要选择适当的R值和C值,以保证NRST低电平持续时间满足CPU复位最小脉宽的要求。


当按下S4轻触开关时,C114两端被短路接地,可实现手动复位CPU。

 

注,根据需要,大家也可以使用STM32F429 NRST引脚的内部上拉:


http://www.armbbs.cn/forum.php?mod=viewthread&tid=93144


14.3.2 复位序列

前面第11章的13.3.1小节讲解了复位系列的相关知识,再结合本章节的上电复位和下电复位,大家会对其有一个较全面的认识,更多复位序列的知识直接看13.3.1小节即可。


14.4 软件复位

除了上电和手动复位,程序设计设置中还经常要用到软件复位,即调用一条函数就可以实现复位功能。此函数已经由CMSIS软件包中的core_cm4.h文件提供,函数如下:


/**

  brief   System Reset

  details Initiates a system reset request to reset the MCU.

 */

__STATIC_INLINE void __NVIC_SystemReset(void)

{

  __DSB();                                  /* Ensure all outstanding memory accesses included

                                              buffered write are completed before reset */

  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |

                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

                            SCB_AIRCR_SYSRESETREQ_Msk    );        /* Keep priority group unchanged */

  __DSB();                                                         /* Ensure completion of memory access */


  for(;;)                                                          /* wait until reset */

  {

    __NOP();

  }

}


软件复位反映到实际硬件上,就是给硬件复位部分发一个复位信号

14.5 RCC时钟控制

STM3F429有如下六种时钟可供使用:


HSI (High-speed internal oscillator) :

HSI是内部的高速RC振荡器,频率16MHz,可被用于系统时钟。优势是低成本,无需外部时钟,快速启动(仅需几个微秒),缺点是精度差,即使经过校准。


HSE (High-speed external oscillator):

HSE是外部的高速振荡器,通过外接时钟源,有源或者无源晶振驱动,时钟范围4-26MHz。优势是精度高,缺点是增加成本。


LSE (Low-speed external oscillator)

LSE是外部的低速振荡器,通过外接时钟源,有源或者无源晶振驱动,一般接32.768KHz,主要用于RTC实时时钟。


LSI (Low-speed internal oscillator)

LSI是内部的低速RC振荡器,频率约是32KHz,主要用于独立看门狗和自动唤醒,也可以用于RTC实时时钟。


通过下面的时钟树再进一步的认识这几个时钟:

14.5.1 HSE和LSE硬件设计

HSE时钟

当前V6开发板是用的8MHz晶振为HSE提供时钟,硬件设计如下:

晶振和负载电容需要尽可能近地靠近F4的晶振引脚,以减小输出失真和启动稳定时间。负载电容值必须根据选定的晶振进行调节。


对于C109和C111,我们推荐使用高质量陶瓷电容,这种电容是设计用于需要高频率的场合,并且可以满足晶体或谐振器的需求。C109和C111通常具有相同的值。


这里再额外补充一个知识点,HSE旁路时钟和外置晶振区别:当前V6板子是采用的外置晶振模式,高速外部 (HSE) 时钟可以使用一个4到26MHz 的晶振 / 陶瓷谐振振荡器产生:

而bypass 旁路的意思就是不使用它,绕过它。具体到HSE旁路的话,用户直接提供4-26MHz的时钟源即可,可以使用有源晶振或者FPGA提供时钟等方式:

LSE时钟

当前V6开发板是用的32768Hz晶振为LSE提供时钟,硬件设计如下:

STM32的LSE晶振起振难(又称RTC起振)是老毛病了,选取晶振和配套电容比较讲究,最好按照ST提供的厂家和配套电容选取:http://www.armbbs.cn/forum.php?mod=viewthread&tid=87673 。


14.5.2 时钟配置

STM32F4开发板使用的外部晶振频率是8MHz,下面分步说明如何让其通过这个频率工作到168MHz的主频。


  第1步:在stm32f4xx_hal_conf.h文件配置HSE_VALUE

配置的大小要跟板子的实际晶振大小匹配。


#if !defined  (HSE_VALUE) 

#define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */

#endif /* HSE_VALUE */

  第2步:系统上电后,在启动文件startup_stm32f429xx.s的复位中断服务程序里面会调用函数SystemInit。

Reset_Handler    PROC

                 EXPORT  Reset_Handler                    [WEAK]

        IMPORT  SystemInit

        IMPORT  __main


                 LDR     R0, =SystemInit

                 BLX     R0

                 LDR     R0, =__main

                 BX      R0

                 ENDP

以往STM32F1和STM32F4系列都会在函数SystemInit里面配置PLL锁相环,使用了HAL后,需要在main函数里面配置。当前SystemInit函数实现的功能如下:


1.    /**

2.      * @brief  Setup the microcontroller system

3.      *         Initialize the FPU setting, vector table location and External memory

4.      *         configuration.

5.      * @param  None

6.      * @retval None

7.      */

8.    void SystemInit(void)

9.    {

10.      /* FPU settings ------------------------------------------------------------*/

11.      #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)

12.        SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */

13.      #endif

14.      /* Reset the RCC clock configuration to the default reset state ------------*/

15.      /* Set HSION bit */

16.      RCC->CR |= (uint32_t)0x00000001;

17.    

18.      /* Reset CFGR register */

19.      RCC->CFGR = 0x00000000;

20.    

21.      /* Reset HSEON, CSSON and PLLON bits */

22.      RCC->CR &= (uint32_t)0xFEF6FFFF;

23.    

24.      /* Reset PLLCFGR register */

25.      RCC->PLLCFGR = 0x24003010;

26.    

27.      /* Reset HSEBYP bit */

28.      RCC->CR &= (uint32_t)0xFFFBFFFF;

29.    

30.      /* Disable all interrupts */

31.      RCC->CIR = 0x00000000;

32.    

33.    #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)

34.      SystemInit_ExtMemCtl(); 

35.    #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */

36.    

37.      /* Configure the Vector Table location add offset address ------------------*/

38.    #ifdef VECT_TAB_SRAM

39.      SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */

40.    #else

41.      SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */

42.    #endif

43.    }

第12行:使能FPU单元。


第16 – 31行:复位RCC相关寄存器。


第69 – 73行:设置中断向量表的位置。


第3步:在main函数的外设驱动初始化函数里面完成时钟初始化,主要是PLL锁相环,让芯片最终工作到168MHz。


14.6 总结

本章节就为大家讲解这么多,本章节的知识点相对比较多,比较杂,不容易一下子都掌握了。随着后面章节的进行,还会深入的讲解这些知识点。

关键字:STM32F429  电源  复位  时钟系统 引用地址:第14章 STM32F429的电源,复位和时钟系统

上一篇:第15章 STM32F429的GPIO基础知识(重要)
下一篇:第13章 STM32F429启动过程详解

推荐阅读最新更新时间:2024-11-09 18:40

realme移动电源3 Pro火影忍者联名款解密,“鸣人忍者跑”图案
数码博主 @熊猫很禿然 此前消息称,realme Pad 真我平板将于 5 月 26 日 14:00 发布,并且还有火影忍者联名。   近日,推特爆料者 @OnLeaks 放出了号称是 realme 移动电源 3 Pro 火影忍者联名款的图片。   这款移动电源采用了橙、黑配色,从图中可以看到鸣人忍者跑的图案,配备一个 USB-A 口和一个 USB-C 口,还有指示灯和物理按键。   IT之家了解到,realme 的移动电源还没有发布第三代,根据曝光的命名来看,预计会有 realme 移动电源 3 和 realme 移动电源 3 Pro 两款,我们可以期待一下。   realme 移动电源 3 Pro 火影忍者
[手机便携]
realme移动<font color='red'>电源</font>3 Pro火影忍者联名款解密,“鸣人忍者跑”图案
浅谈UPS不间断电源的重要性
UPS,即不间断电源,是一种含有储能装置,以逆变器为主要组成部分的恒压恒频的不间断电源。它主要作用是为单台计算机、计算机网络系统或其它电力电子设备提供不间断的电力供应。当市电输入正常时,UPS不间断电源将市电稳压后提供负载使用,此时的UPS不间断电源就相当于是一台交流市电稳压器,同时它还向机内电池进行充电;当市电中断时,UPS就会立即将机内电池的电能,通过逆变转换的方法向负载继续供应220V交流电,使负载维持正常工作并保护负载软、硬件不受损坏。 此外,UPS不间断电源作为保护性的电源设备,它的性能参数具有重要意义是我们选购时的考虑重点之一。市电电压输入范围宽,则表明对市电的利用能力强(减少电池放电)。输出电压、频率范围小,则表
[电源管理]
Microchip宣布业界唯一的标准非混合型宇航级电源转换器系列
Microchip宣布业界唯一的标准非混合型宇航级电源转换器系列,现已新增28伏(V)输入耐辐射选项 这款混合型转换器的替代品提高了设计灵活性,同时减少了系统体积、成本和开发时间 空间系统设计人员无法方便地利用传统混合型电源转换器来支持非标准电压或增加功能。通过提供基于分立元件的宇航级DC-DC电源转换器系列,Microchip Technology Inc.(美国微芯科技公司)消除了此类混合解决方案在成本、复杂性和定制化方面的挑战。Microchip近日宣布该系列器件现已新增28V输入、50瓦(W)耐辐射选项。 Microchip分立产品业务部副总裁Leon Gross表示:“我们最新的28V输入SA50-28
[电源管理]
Microchip宣布业界唯一的标准非混合型宇航级<font color='red'>电源</font>转换器系列
ADI电源产品推陈出新 突破性能“老三篇
在半导体技术中,与数字技术随着摩尔定律延续神奇般快速更新迭代不同,模拟技术的进步显得缓慢,其中电源半导体技术尤其波澜不惊,在十年前开关电源就已经达到90+%的效率下,似乎关键指标难以有大的突破,永远离不开的性能“老三篇”——效率、尺寸、EMI/噪声,少有见到一些突破性的新技术面市。 在前不久举办的第七届EEVIA年度中国ICT媒体论坛暨2018产业和技术展望研讨会上,ADI电源产品中国区市场总监梁再信(Lorry)就高性能电源技术的发展态势与创新趋势发表了演讲,并向业界媒体揭了 “家底”——ADI电源品牌Power By Linear的技术家底,以及在电源领域的不同玩法。 1+1》2之ADI“Power by Linear” A
[电源管理]
XP Power推出两款新的AC-DC电源系列 提供BF级绝缘
XP Power正式宣布推出两款新的AC-DC电源系列,可为医疗应用提供BF级绝缘,在这些应用中,优异的EMC性能是一个关键要求。 PBR500和PBR650系列分别提供高达500W和650W的功率。两个系列都提供超宽的通用输入范围,即在47Hz至63Hz时为80VAC–264VAC,并提供总共8个单输出电压(12V、15V、18V、24V、28V、36V、48V和57V),使系统研发人员能够灵活将同一系列产品用于很多应用。 这两个系列都提供90%的效率,可减少产品运行过程中产生的热量,从而延长产品使用寿命。 PBR500系列有两种外壳可选。当对流冷却时,U外壳型提供350-400W功率,外部强制风冷时,提供45
[电源管理]
XP Power推出两款新的AC-DC<font color='red'>电源</font>系列 提供BF级绝缘
Bourns新系列AEC-Q200功率电感器产品 专精使用于汽车电源转换
Bourns 近日推出了三款符合标准的AEC-Q200 功率电感器产品,专精使用于汽车电源转换,可以大幅提高DC/DC转换器的整体效能,提高了机械稳定性。 Bourns,全球知名电子组件领导制造供货商,近日推出符合标准的三款新系列AEC-Q200 高电流屏蔽功率电感器产品。Bourns® 的PQ2614BLA、PQ2614BHA 与 PQ2617BHA等型号采用扁平电线缠绕设计,提供超低DC和AC电阻,以及超过100 A 的高饱和电流。 扁平电线缠绕设计亦提供轻小、高效的电感解决方案。这些特色让新型电感器产品专精使用于汽车电源转换,以及消费电子、工业、医疗和通信电子设备中的DC/DC转换器、开关式电源供应器与过滤应用。
[传感器]
解析罗姆新一代车载一次电源转换BD9P系列
随着汽车电子化和电气化进程的加速,汽车中的电子含量越来越多,系统也越来越复杂,就比如罗姆,在汽车电子中的产品就覆盖了包括LED照明、ADAS、车载信息娱乐与仪表盘、ECU、电动汽车以及动力系统等多领域。 罗姆半导体(上海)有限公司技术中心主管朱莎勤介绍道,传统燃油车的电源包括发电机和电池两种,电压范围一般是10-16V左右。而汽车电子中的各元件的工作电压范围不一,需要一次以及二次电源转换的多级降压,才可以确保各芯片正常工作。 针对下一代汽车技术,朱莎勤总结了电源转换芯片的四大特点,包括提高功率转换效率,低耗电量工作;提高耐压能力,支持大电流;提高集成度,减少外围元器件数量/小型化;以及保护功能、长时间高可靠稳定工作。
[电源管理]
解析罗姆新一代车载一次<font color='red'>电源</font>转换BD9P系列
张文宾加入宜普电源转换公司(EPC)担任大中华及东南亚区销售副总裁
张先生将带领EPC公司的大中华及东南亚区销售团队协助客户采用氮化镓场效应晶体管(eGaN®FET)及集成电路,设计领先的功率转换系统。下面就随电源管理小编一起来了解一下相关内容吧。 张文宾加入宜普电源转换公司(EPC)担任大中华及东南亚区销售副总裁 宜普电源转换公司(EPC)宣布张文宾(Roy Chang)加人管理团队,担任大中华及东南亚区销售副总裁职位,支持亚太区业务高速增长。张先生在计算机及半导体行业拥有超过20年的研发、技术销售和市场营销的经验。他的主要职责是制定及执行销售策略以达到公司在大中华及东南亚区的销售目标。张先生的主要工作地点为台湾台北市。 张先生在加入宜普公司之前为Transphorm公司的台湾销售副总裁
[电源管理]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved