《第6章STM32F10 x最小系统(共48页)》由会员分享,可在线阅读,更多相关《第6章STM32F10 x最小系统(共48页)(48页珍藏版)》请在金锄头文库上搜索。
1、Embedded System Development,嵌入式系统与应用,第6章 STM32F10 x最小系统,6.1 STM32F10 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6 STM32的时钟系统 6.7 仿真器与开发板,6.1 STM32系列微控制器简介,STM32系列是基于ARM CortexM核的32位闪存微控制器,集成度高、性能高、实时性、数字信号处理、低功耗、低电压操作的易开发的芯片,适合不同用户的需求。,片上存储器容量、集成外设、功能模块、封装形式等有所区别。,例:STM32F10X系列,ST
2、M32F10 x系列产品编号,STM32F103系列芯片,STM32F103 功能框图,第6章 STM32F10 x最小系统,6.1 STM32F10 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6 STM32的时钟系统 6.7 仿真器与开发板,6.2 基于Cortex-M3的最小系统,什么是最小系统? 在尽可能减少上层应用的情况下,能够使系统运行的最小化模块配置。 “最小系统”称“嵌入式核心控制模块”更贴切一些。 最小系统的组成: 电源、时钟、复位电路、存储系统、调试系统。,基于Cortex-M3的最小系统,时钟
3、模块通常经ARM内部锁相环进行相应的倍频,以提供系统各模块运行所需的时钟频率输入 复位模块实现对系统的复位 电源系统: 调试系统: JTAG/SW模块实现对程序代码的下载和调试 UART模块实现对调试信息的终端显示 存储系统: Flash存储模块存放启动代码、操作系统和用户应用程序代码 SDRAM模块为系统运行提供动态存储空间,是系统代码运行的主要区域,基于Cortex-M3的STM32F10 x最小系统,第6章 STM32F10 x最小系统,6.1 STM32F10 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6
4、 STM32的时钟系统 6.7 仿真器与开发板,6.3存储器与总线架构,1、总线架构 STM32的各外围模块与Cortex-M3内核,通过各类总线连接在一起,形成一个有机的整体。,Cortex-M3的ICode 、DCode、System总线和DMA总线四个驱动单元, 与闪存存储器接口、SRAM和AHB2APB桥三个被动单元, 通过总线矩阵联接在一起。,总线矩阵采取轮换算法仲裁、协调内核System总线和DMA主控总线之间的访问。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。 两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速
5、72MHz。,2、存储器映像 STM32F1xx,Cortex-M3有32根地址线,所以它的寻址空间大小为232 bit=4GB 程序存储器、数据存储器、外设寄存器、输入输出端口被组织在同一4GB线性地址空间内。 把地址从0 x4000 0000至0 x5FFF FFFF(512MB )的地址分配给片上外设。,外设存储器映像 STM32F103外设寄存器组起始地址,外设存储器映像 STM32F103寄存器组起始地址,嵌入式闪存Flash 存储器映像 *,STM32F10 xxx Flash 高密度闪存模块的组织,擦写次数:1000 次,4、STM32F10X的三种启动模式,通过BOOT1:0引
6、脚选择不同启动模式,实现实例:,STM32F10X的三种启动模式,通过选择管脚设置BOOT配置,内置Flash、系统存储区、内置SRAM会分别被映射到地址0 x00(启动存储区);CPU从的0 x0000_0004地址的值给PC,开始执行代码。 从系统存储器启动:厂家在如EPROM内置了Bootloader代码,用户可以从USART1 或USART2接口接收数据和命令,对内置的FLASH 进行重新编程。ISP模式,在线编程。 从SRAM启动:在应用程序的初始化部分,通过NVIC异常表和偏移寄存器,重新定位Vector Table。,第6章 STM32F10 x最小系统,6.1 STM32F10
7、 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6 STM32的时钟系统 6.7 仿真器与开发板,6.4 电源控制,Cortex-M3主要指标:0.19W/MHz,1.25DMIPS/MHz; 若达到5DMIPS(Million Instructions executed Per Second,每秒百万条指令)的性能: Cortex-M3工作频率只需4MHz,功耗0.76W; 51单片机,工作频率需60MHz,功耗30W; STM32F103处理器系统频率为72MHz,处理器性能可达到90DMIPS,此时Cortex
8、-M3功耗约14W左右。 在性能和功耗上达到了很高的水平!,1、电源供电方案,VDDA/VSSA独立电源/地 2.0-3.6V,为ADC、复位、RC振荡器和PLL供电。 若用ADC,VDDA2.4V;VREF+电压:2.4VVDDA, VREF-引脚连到VSSA。 VDD/VSS主电源/地 2.03.6V:通过内置调压器提供1.8V供内核用,3.3V供I/O管脚用。 VBAT:后备电池1.83.6V,2、电源管理器,STM32内部集成了上电复位POR(Power On Reset)/掉电复位PDR (Power Down Reset)电路,系统在供电超过2V时工作; 内嵌可编程电压探测器PVD
9、检测VDD,当低于设定阀值VPOR/VPDR时,会产生复位中断,而不使用外部复位电路。,约2.5ms,上电复位和掉电复位波形图,PVD (Programmable Voltage Detector)。 在VDD电压由低向高上升越过规定的阀值VPOR之前,保持芯片复位,当越过这个阀值后tRSTTEMPO秒(待电源可靠供电),才开始取复位向量,并执行指令。 在VDD电压由高向低下降越过规定的阀值VPDR后,将在芯片内部产生PVD中断,进行复位。,3、三种低功耗模式,休眠模式Sleep mode: 只有CPU停止工作,调压器1.8V区供电工作,所有外设继续运行,在中断/事件发生时唤醒CPU。 停止模
10、式Stop mode: 调压器以低功耗模式提供1.8V来保持SRAM和寄存器的内容。 但1.8V区域的外设时钟都停止,PLL、HSI和HSE的RC振荡器被禁能。 当外部中断源(16个外部中断线之一)、PVD输出、RTC闹钟、或者USB唤醒信号,退出停止模式。,三种低功耗模式,待机模式Standby mode: 追求最少的功耗,内部调压器被关闭,这样1.8V区域断电。 SRAM和寄存器的内容也会丢失。 只有备份寄存器和待机电路工作。 RTC,IWDG和相关的时钟源不会停止。 当外部复位(NRST引脚)、IWDG复位、WKUP引脚出现上升沿或者RTC闹钟时间到时,退出待机模式。,4、电源控制寄存器
11、组PWR,偏移地址:0 x00h;复位值:0 x0000 0000; 位31:9,保留。始终读为0。 位8,DBP,取消后备区域的写保护,0禁止/1允许; 位7:5,PLS2:0:PVD电平选择,000:2.2V,001:2.3V, 010:2.4V, 位4, PVDE,电源电压监测器使能,0禁止/1允许; 位3,CSBF,置1清除SBF待机位; 位2,CWUF,置1,2个系统时钟后清除WUF唤醒位; 位1,PDDS,掉电深睡眠下,0停止模式/1待机模式; 位0,LPDS,PDDS=0停止模式时,0调压器开/1调压器关;,电源控制寄存器PWR_CR,电源控制寄存器组PWR,偏移地址:0 x04
12、h;复位值:0 x0000 0000; 位8,EWUP使能WKUP管脚,0禁止/1待机模式唤醒; 位2,PVD输出, 0表明VDD高于阀值VPVD /1低于; 位1,SBF待机标志, 0非待机模式/1待机模式; 位0,WUF唤醒标志, 0没有发生唤醒事件/1在WKUP管脚上发生唤醒事件或出现RTC闹钟事件。 PWR寄存器映像和复位值:,电源控制/状态寄存器PWR_CSR,第6章 STM32F10 x最小系统,6.1 STM32F10 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6 STM32的时钟系统 6.7 仿真
13、器与开发板,6.5 复位,STM32F支持三种复位形式: 系统复位 电源复位 备份区域复位。,1、系统复位,系统复位将清除时钟控制状态寄存器RCC_CSR中的复位标志和备用域寄存器之外的所有寄存器。复位事件: NRST管脚上的低电平 窗口看门狗计时器计时终止(WWDG复位) 独立看门狗计数终止(IWDG复位) 软件复位(SW复位) 低功耗管理复位。,2、电源复位,当以下事件中之一发生时,产生电源复位: 上电/掉电复位(POR/PDR复位) 从待机模式中返回,约2.5ms,上电复位和掉电复位波形图,3、备份域复位,当以下事件中之一发生时,产生备份区域复位。 软件复位,备份区域复位可由设置备份区域
14、控制寄存器RCC_BDCR中的BDRST位产生。 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。,第6章 STM32F10 x最小系统,6.1 STM32F10 x系列微控制器简介 6.2 基于Cortex-M3的最小系统 6.3 存储器与总线架构 6.4 电源控制 6.5 复位 6.6 STM32的时钟系统 6.7 仿真器与开发板,6.6 STM32时钟系统,时钟系统是CPU的脉搏,就像人的心跳一样。 STM32芯片为了实现低功耗,设计了一个功能完善但却非常复杂的时钟系统。编程一个重要步骤,就是设置、开启外设时钟。 内部时钟是在芯片内部RC振荡器产生的,起振较快
15、,芯片刚上电的时候使用内部高速时钟。 外部时钟是由外部的晶振输入的,精度和稳定性好,上电之后通过软件配置再转用外部时钟信号。,高速时钟是提供给芯片主体的主时钟,低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。,STM32时钟系统,STM32的4个时钟源: HSI高速内部时钟:内部RC振荡器为时钟源,频率为8MHz,但不稳定。内Interior 外Exterior HSE高速外部时钟:外部晶振(416MHz),一般用8MHz。 LSE低速外部时钟:外部晶振,一般32.768KHz,主要提供给实时时钟RTC模块,还可选HSE的128分频。 LSI低速内部时钟:内部RC振荡器产生,40
16、kHz,供独立看门狗IWDG使用,也可选为实时时钟RTC的时钟源。 下图说明了STM32的时钟走向,从图的左边开始,从时钟源一步步分配到外设时钟。,1、HIS高速内部时钟, 经PLLSRC开关, 给PLL锁相环倍频,或直接送SW开关。,2、HSE高速外部时钟外接晶振8MHz,经PLLXTPRE、PLLSRC开关送PLL锁相环倍频,或直接送SW。,3、PLL倍频锁相环,如倍频因子PLLMUL选为9倍,则得72MHz的PLLCLK时钟;,4、HSI、HSE、PLL经开关SW选择之后就是系统时钟SYSCLK了;,5、经AHB、APB1、APB2分频器得到各内核与外设的时钟源:HCLK、PCLK1、PCLK2等时钟;,SW,PLLXTPRE,PLLSRC,STM32时钟系统,PLL锁相环倍频输出:时钟源的频率可能偏低,通过PLL电路可提高系统所需要的时钟频率,并且更稳定。 PLL时钟输入源可选择为HSI/2、HSE或HSE/2。倍频可选择为216倍,STM32F1xx的输出频率最大72