《STM32应用开发实践》课件第4章 STM32最小系统_第1页
《STM32应用开发实践》课件第4章 STM32最小系统_第2页
《STM32应用开发实践》课件第4章 STM32最小系统_第3页
《STM32应用开发实践》课件第4章 STM32最小系统_第4页
《STM32应用开发实践》课件第4章 STM32最小系统_第5页
已阅读5页,还剩33页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录ContentsIIIIIIIVSTM32电源模块STM32复位电路STM32时钟电路程序下载电路第4章STM32最小系统2知识点1)STM32最小系统电源模块;2)STM32最小系统时钟电路;3)STM32复位电路和程序下载。能力点了解STM32最小系统组成掌握STM32最小系统电源模块、时钟电路、复位电路特点、组成掌握STM32最小系统调试方法课程学习知识点和能力点第4章STM32最小系统34.1电源模块第4章STM32最小系统

STM32最小系统简介

STM32最小系统是系统基本工作电路。包括处理器、电源、时钟和复位四部分组成。嵌入式系统硬件电路的调试从最小系统开始的。处理器配上电源电路、时钟振荡电路、复位电路,处理器就可以正常工作。因此,在焊接和调试硬件电路时,首先焊接最小系统,并使其正常工作,再逐渐增加存储器、接口等电路。按照这样的流程,可以节省调试硬件电路时间、使电路调试准确、快捷、高效。图4.1

STM32最小系统44.1电源模块第4章STM32最小系统

STM32供电方案STM32电源电路结构图,如图4.2所示。单片机内部需要三个部分供电区域,VDDA模拟电路供电区域,VDD数字电路供电区域,VBAT后备供电区域,不同的区域供电的用途不一样,供电方式也会有所不同。虽然,可以使用统一的供电方式,但当在不同的应用环境要采取独立供电时,可参考图4.3所示的STM32供电方案。图4.2STM32内部电源电路结构图54.1电源模块第4章STM32最小系统

STM32供电方案STM32电源电路结构图,如图4.1所示。单片机内部需要三个部分供电区域,VDDA模拟电路供电区域,VDD数字电路供电区域,VBAT后备供电区域,不同的区域供电的用途不一样,供电方式也会有所不同。虽然,可以使用统一的供电方式,但当在不同的应用环境要采取独立供电时,可参考图4.3所示的STM32供电方案。图4.3STM32供电方案64.1电源模块第4章STM32最小系统

电源模块作用为单片机各部分提供电能:数字电路(内核、存储器、外设、I/O等)模拟电路(模数转换)备份电路(32K振荡器、RTC等)电源供电方案不使用内部稳压器工作电压:1.7V—3.6V通过VDD引脚为I/O提供电源PDR_ON引脚(掉电复位输入)须连接VDD使用内部稳压器工作电压:1.8V—3.6V通过VDD引脚为I/O和内部稳压器供电备份电路供电方案目的:在VDD掉电后保存备份寄存器和本分SRAM的内容,并为RTC供电采用电池供电,从VBAT引脚接入。我们通常采用方案②,此时应将BYPASS_REG引脚拉低,使能内部稳压器74.1电源模块第4章STM32最小系统

电源模块引脚说明VBAT:备份电池,VDD:数字电源+VSS:数字电源-(GND)VCAP:滤波电容,用于内部稳压器VDDA:模拟电源+VSSA:模拟电源-(GND)VREF+:ADC参考电压+VREF-:ADC参考电压-BYPASS_REG:稳压器使能控制PDR_ON:掉电复位输入仅100pin封装才有图4,4是电源的典型接法图4.4STM32电源典型接图84.1电源模块第4章STM32最小系统

备份电源备份电压指的是备份域使用的供电电源,如图4.5所示,也就是VBAT引脚的供电,使用电池或者其他电源连接到VBAT引脚上。VBAT为1.8-3.6V,当主电源VDD断电时,经过内部调压器转换为1.2V后,为RTC、外部32KHz振荡器和后备资源区供电。当使用VDD供电时,VBAT上无电流损失。如果没有外部电池,这个引脚必须和一个过滤高频干扰的小电容一起连接到VDD电源上。电源模块为系统其他模块提供所需要的电源。在电路设计中,除要考虑到电压范围和电流容量等基本参数外,还要在电源转换效率,降低噪声,防止干扰和简化电路等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。图4.5备份域供电结构94.1电源模块第4章STM32最小系统

电源管理器电源管理器硬件包括两个部分,即电源的上电复位(POR)和掉电复位(PDR)部分,以及可编程电压监测器(PVD)部分。电源的上电复位和掉电复位详见4.3节。PWR电源控制/状态寄存器(PWR_CSR)中提供了PVDO标志,用于指示VDD是大于还是小于PVD阈值。该事件内部连接到EXTI线16,当VDD降至PVD阈值以下或者当VDD升至PVD阈值以上时,可以产生PVD输出中断。该功能的用处之一就是可以在中断服务程序中执行紧急关闭系统的任务,如图4.6所示。

图4.6PVD阈值104.1电源模块第4章STM32最小系统

电源管理器电源管理器硬件包括两个部分,即电源的上电复位(POR)和掉电复位(PDR)部分,以及可编程电压监测器(PVD)部分。电源的上电复位和掉电复位详见4.3节。PWR电源控制/状态寄存器(PWR_CSR)中提供了PVDO标志,用于指示VDD是大于还是小于PVD阈值。该事件内部连接到EXTI线16,当VDD降至PVD阈值以下或者当VDD升至PVD阈值以上时,可以产生PVD输出中断。该功能的用处之一就是可以在中断服务程序中执行紧急关闭系统的任务,如图4.6所示。

图4.6PVD阈值114.1电源模块第4章STM32最小系统电源监控器上电复位后,单片机进入运行模式,并执行程序代码。电源监视器检测单片机

电源的状态,若电源掉电或欠压会引发“电源复位”:上电复位(POR)掉电复位(PDR)欠压复位(BOR)提供多个低功耗模式:睡眠模式:内核停止,外设保持运行停止模式:所有时钟停止待机模式:(内核)1.2V域掉电电源监控器的配置寄存器有两个:PWR_CR:电源控制寄存器PWR_CSR:电源控制/状态寄存器124.1电源模块第4章STM32最小系统低功耗模式

系统复位或上电复位后,微控制器进入运行模式。在运行模式下,处理器通过HCLK提供时钟,并执行程序代码。系统提供了多个低功耗模式,可在处理器不需要运行时(例如等待外部事件时)节省功耗。由用户根据应用选择具体的低功耗模式,以在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡。

处理器提供三个低功耗模式:睡眠模式:内核停止,外设保持运行停止模式:所有时钟停止待机模式:(内核)1.2V域掉电表4.1低功耗模式汇总134.1电源模块第4章STM32最小系统电源控制寄存器(PWR_CR)

32位,但高16位保留不用,只使用低16位。复位值:0x00008000主调压器输出级别选择,使性能与功耗平衡与ADC精度有关的设置深度睡眠低压主调压器输出设置深度睡眠低压低功率调压器设置停止模式下FLASH掉电设置备份域写保护设置设置可编程电压检测(PVD)级别选择使能电压检测器待机标志清零唤醒标志清零深度睡眠掉电控制低功耗深度睡眠控制134.1电源模块第4章STM32最小系统电源控制/状态寄存器(PWR_CSR)

32位,但高16位保留不用,只使用低16位。复位值:0x0000000014主调压器输出级别选择就绪备份调压器使能控制WKUP引脚使能控制备份调压器就绪电压检测(PVD)输出指示待机标志唤醒标志4.2复位模块第4章STM32最小系统

STM32F4xx复位种类

系统复位:复位几乎整个芯片

电源复位:复位几乎整个芯片。分为上电/掉电复位(POR/PDR)和欠压

复位(BOR)备份域复位:仅复位备份域图4.7STM32复位电路154.2复位模块第4章STM32最小系统

系统复位

除了时钟控制寄存器RCC_CSR中的复位标志和备份域中的寄存器

外,系统复位会将其他全部寄存器设置为复位值。

发生以下事件之一,就会产生系统复位:NRST引脚低电平(外部复位)窗口看门狗计数结束(WWDG复位)独立看门狗计数结束(IWDG复位)软件复位(SW复位)低功耗管理复位164.2复位模块第4章STM32最小系统

电源复位

除备份域内的寄存器以外,电源复位会将其它全部寄存器设置为复位值。

与系统复位效果基本相同只要发生以下事件之一,就会产生电源复位:

上电/掉电复位(POR/PDR复位)或欠压(BOR)复位

在退出待机模式时这些事件源均作用于NRST引脚,使其在复位过程中始终保持低电平

(即低电平有效)复位入口向量映射到固定地址:0x0000_0004。芯片内部的复位信号会在NRST引脚上输出。脉冲发生器用于保证复位持续时间(确保各内部复位源的复位脉冲都至少

持续20μs)。174.2复位模块第4章STM32最小系统

备份域复位

备份域复位仅对备份域有效。

将所有RTC寄存器和RCC_BDCR(备份域控制寄存器)设置为各

自的复位值。只要发生以下事件之一,就会产生备份域复位:

软件复位,通过将RCC的RCC_BDCR寄存器中的BDRST位置1触发。

在电源VDD和VBAT都已掉电后,其中任何一个又再上电。

RCC:ResetandClockControl(复位和时钟控制)184.2复位模块第4章STM32最小系统

启动设置与启动过程启动设置STM32启动模式由BOOT0和BOOT1两引脚电平决定,引脚电平不同对应着不同的启动模式。BOOT0=0,BOOT1=X,从用户闪存(FLASH)启动,这是正常的启动模式B.OOT0=1,BOOT1=0,从系统存储器启动,这种模式启动的程序是由厂家设置。

芯片出厂时在这个区域预置了一段bootloader,也就是通常所说的ISP程序,这个区域在芯片出厂后不能够修改或擦除,即它是一个ROM区。BOOT0=1,BOOT1=1,从内置SRAM启动,这种模式可以用于调试。BOOT0BOOT1启动模式说明0X用户闪存存储器用户闪存存储器,也就是FLASH启动10系统存储器系统存储器启动,用于串口下载11SRAM启动SRAM启动,用于在SRAM中调试代码4.2复位模块第4章STM32最小系统

启动设置与启动过程启动过程

嵌入式系统的启动还需要一段启动代码(Bootloader),类似电脑启动时的BIOS,一般用于完成为控制器的初的启动代码在startup_stm32f40_41xxx.s中,其中的程序主要完成包括初始化堆栈。定义程序启动地址、中断向量表和中断程序入口地址,以及系统复位启动时,从启动代码跳转到用户main函数入口地址。Cortex-M4处理器启动有如下3种情况。通过BOOT引脚设置可以将终端向量表定位到位于SRAM区,即起始地址为:0x20000000,同时复位后PC指针位于0x20000000处。通过BOOT引脚设置可以将终端向量表定位到位于FLASH区,即起始地址为:0x80000000,同时复位后PC指针位于0x80000000处。通过BOOT引脚设置可以将终端向量表定位到位于内置的Bootloader区。4.2复位模块第4章STM32最小系统

启动设置与启动过程启动过程

以STM32的1.8固件库提供的启动文件“startup_stm32f40_41xxx.s”为例,对STM32的启动过程做一个简单而全面的解析:

该文件首先对堆和栈的大小进行定义,定在代码区的起始处建立中断向量表,其第一个表项是栈顶地址,第二个表项是复位中断服务入口地址。

然后在复位中断服务程序中跳转到C/C++标准实时库的__main函数。假设STM32F407ZGT6被设置为从内部FLASH启动,中断向量表起始地址为0x08000000,则栈顶地址存放于0x08000000处,而复位中断服务入口地址存放于0x08000004处。

当STM32遇到复位信号后,则从0x08000004处取出复位中断服务入口地址,继而执行中断服务程序,然后跳转到__main函数,最后开始执行C语言部分。4.3时钟电路第4章STM32最小系统时钟电路作用

为单片机各部分提供动力。只有时钟跑起来了,设备才能工作。可以通过控制设备的时钟,来控制设备的运转(启动、关闭)。

分散式结构,各管各的要用的,就启动,不用的,就关闭。注意:STM32F4xx在复位之后,所有的外设都处于关闭状态(这么做的目的是为了降低功耗),所以,当我们要使用相关外设时,务必先启动相应外设的时钟!!!224.3时钟电路第4章STM32最小系统时钟电路专业词汇OSC:振荡器RC:阻容式振荡电路(RC振荡器)HSE:高速外部时钟源(接石英/陶瓷谐振器,或接外部时钟源)HSI:高速内部时钟源(RC振荡器,频率为16MHz)LSE:低速外部时钟源(接32.768kHz的石英晶体)LSI:低速内部时钟源(RC振荡器,频率为32kHz)PLL:锁相环电路(倍频输出)HCLK:高速时钟(用于AHB、内核、存储器等)SYSCLK:系统时钟234.3时钟电路第4章STM32最小系统时钟管理模块

时钟树图例说明功能电路选通门电路控制门电路分频器引脚24分频器功能电路选通门分频器控制门4.3时钟电路第4章STM32最小系统时钟管理模块

时钟引脚说明25时钟输出(1、2两路)外部主时钟输入,或外接主时钟晶体(4--26MHz)外部实时钟输入,或外接实时钟晶体(32.768KHz)I2S外设时钟输入4.3时钟电路第4章STM32最小系统时钟管理模块STM32F4xx时钟树从时钟的源头开始,不断地变换、延伸,到达芯片的各处,为每个功能模块提供动力类似于一棵树,从树根开始生长、分叉……264.3时钟电路第4章STM32最小系统时钟管理模块

STM32F4xx时钟源时钟源分为两类:驱动系统时钟驱动特殊功能外设

(非系统时钟)时钟管理模块STM32F4xx时钟源驱动系统时钟时钟源:内部高速时钟

(HSI,即16MRC振荡器)外部高速时钟(HSE)锁相环时钟(PLL)274.3时钟电路第4章STM32最小系统时钟管理模块

STM32F4xx系统时钟源

HSE时钟,有两个来源:外接晶振/陶瓷谐振器产生外部直接引入频率准确、稳定。频率范围:4—26MHz。晶振和负载电容应尽量靠近芯片的引脚。负载电容值须根据所选振荡器的不同做适当调整频率范围:1—50MHz。占空比必须50%,对幅度、上升/下降沿都有要求284.3时钟电路第4章STM32最小系统时钟管理模块

STM32F4xx系统时钟源HSE时钟,有两个来源:外接晶振/陶瓷谐振器产生外部直接引入频率准确、稳定。频率范围:4—26MHz。晶振和负载电容应尽量靠近芯片的引脚。负载电容值须根据所选振荡器的不同做适当调整频率范围:1—50MHz。占空比必须50%,对幅度、上升/下降沿都有要求294.3时钟电路第4章STM32最小系统STM32F4xx系统时钟源HSI时钟,由内部16MHzRC振荡器产生由芯片内集成的电阻+电容+运放构成无需外接电路,简单精度低,一致性差。支持校准和微调。芯片出厂时会校准,校准值在复位时自动加载到时钟控制

寄存器(RCC_CR)中,用户可以修改PLL时钟,由锁相环电路(PLL)产生。锁相环需要输入时钟,可选HSE或HSI。STM32F4xx有2个PLL:主PLL:产生系统时钟(84MHz)和USBOTG时钟(42MHz)专用PLL(PLLI2S):用于生成I2S接口所需的精准时钟4.3时钟电路第4章STM32最小系统STM32F4xx非系统时钟源驱动非系统时钟的时钟源有:内部低速时钟(LSI)外部低速时钟(LSE)4.3时钟电路第4章STM32最小系统STM32F4xx非系统时钟源LSI时钟,由内部32KRC振荡器产生内部集成,无需外接电路作为低功耗时钟源在停机和待机模式下保持运行,供

独立看门狗(IWDG)和自动唤醒单元(AWU)使用也可作为RTC的时钟源支持出厂校准4.3时钟电路第4章STM32最小系统STM32F4xx非系统时钟源LSE时钟,有2个来源:

外接晶振/陶瓷谐振器产生

外部直接引入频率准确、稳定。晶振频率:32.768KHz。晶振和负载电容应尽量靠近芯片的引脚。频率:32.768KHz。占空比:50%,对幅度、上升/下降沿都有要求4.3时钟电路第4章STM32最小系统

时钟源的选择和控制系统时钟(HSE、HSI、PLL三选一)系统复位后,HSI有效。HSI可通过时钟控制寄存器中(RCC_CR)

中的HSION位打开或关闭要选择外部直接输入(HSE旁路),将RCC_CR中的HSEON和

HSEBPY

两位设为1要选择外接晶振(HSE晶振),将RCC_CR中的HSEON位设为1,同

时HSEBYP位设为0PLL和PLLI2S时钟由PLL配置寄存器(RCC_PLLCFGR)和时钟配置

寄存器(RCC_CFGR)分别配置4.3时钟电路第4章STM32最小系统

时钟源的选择和控制系统时钟(SysCLK)的选择应根据硬件设计来选择:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论