《STM32嵌入式单片机原理与应用》 课件 第2章 STM32微控制器_第1页
《STM32嵌入式单片机原理与应用》 课件 第2章 STM32微控制器_第2页
《STM32嵌入式单片机原理与应用》 课件 第2章 STM32微控制器_第3页
《STM32嵌入式单片机原理与应用》 课件 第2章 STM32微控制器_第4页
《STM32嵌入式单片机原理与应用》 课件 第2章 STM32微控制器_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第2章STM32微控制器本章对STM32微控制器进行了概述,介绍了STM32F1系列产品系统构架和STM32F103ZET6内部结构、STM32F103ZET6的存储器映像、STM32F103ZET6的时钟结构、STM32F103VET6的引脚和STM32F103VET6最小系统设计。2.1STM32微控制器概述STM32是意法半导体(STMicroelectronics)较早推向市场的基于Cortex-M内核的微处理器系列产品,该系列产品具有成本低、功耗优、性能高、功能多等优势,并且以系列化方式推出,方便用户选型,在市场上获得了广泛好评。STM32目前常用的有STM32F103~107系列,简称“1系列”,最近又推出了高端系列STM32F4xx系列,简称“4系列”。前者基于Cortex-M3内核,后者基于Cortex-M4内核。STM32F4xx系列在以下诸多方面做了优化:(1)增加了浮点运算(2)DSP处理(3)存储空间更大,高达1M字节以上(4)运算速度更高,以168MHz高速运行时可达到210DMIPS的处理能力(5)更高级的外设,新增外设,例如,照相机接口、加密处理器、USB高速OTG接口等,提高性能,更快的通信接口,更高的采样率,带FIFO的DMA控制器1.先进的内核结构1)哈佛结构使其在处理器整数性能测试上有着出色的表现,可以达到1.25DMIPS/MHz、而功耗仅为0.19mW/MHz。2)Thumb-2指令集以16位的代码密度带来了32位的性能。3)内置了快速的中断控制器。提供了优越的实时特性,中断的延迟时间降到只需6个CPU周期,从低功耗模式唤醒的时间也只需6个CPU周期。4)单周期乘法指令和硬件除法指令。2.三种功耗控制STM32经过特殊处理,针对应用中三种主要的能耗要求进行了优化,这三种能耗需求分别是运行模式下高效率的动态耗电机制、待机状态时极低的电能消耗和电池供电时的低电压工作能力。为此,STM32提供了三种低功耗模式和灵活的时钟控制机制,用户可以根据自己所需要的耗电/性能要求进行合理地优化。3.最大程度集成整合1)STM32内嵌电源监控器,包括上电复位、低电压检测、掉电检测和自带时钟的看门狗定时器,减少对外部器件的需求。2)使用一个主晶振可以驱动整个系统。低成本的4~16MHz晶振即可驱动CPU、USB以及所有外设,使用内嵌锁相环(PhaseLockedLoop,PLL)产生多种频率,可以为内部实时时钟选择32kHz的晶振。3.最大程度集成整合3)内嵌出厂前调校好的8MHzRC振荡电路,可以作为主时钟源。4)针对RTC(RealTimeClock,实时时钟)或看门狗的低频率RC电路。5)LQPF100封装芯片的最小系统只需要7个外部无源器件。因此,使用STM32可以很轻松地完成产品的开发。ST提供了完整、高效的开发工具和库函数,帮助开发者缩短系统开发时间。4.出众及创新的外设STM32的优势来源于两路高级外设总线,连接到该总线上的外设能以更高的速度运行。1)USB接口速度可达12Mbit/s。2)USART接口速度高达4.5Mbit/s。3)SPI接口速度可达18Mbit/s。4)I2C接口速度可达400kHz。5)GPIO的最大翻转频率为18MHz。6)PWM(PulseWidthModulation,脉冲宽度调制)定时器最高可使用72MHz时钟输入。目前,市场上常见的基于Cortex-M3的MCU有意法半导体(STMicroelectronics)有限公司的STM32F103微控制器、德州仪器公司(TI)的LM3S8000微控制器和恩智浦公司(NXP)的LPC1788微控制器等,其应用遍及工业控制、消费电子、仪器仪表、智能家居等各个领域。意法半导体集团于1987年6月成立,是由意大利的SGS微电子公司和法国THOMSON半导体公司合并而成。1998年5月,改名为意法半导体有限公司(ST),是世界最大的半导体公司之一。STM32系列微控制器的产品线包括高性能类型、主流类型和超低功耗类型三大类,分别面向不同的应用,其具体产品系列如图2-1所示。2.1.1STM32微控制器产品线图2-1STM32产品线图1.STM32F1系列(主流类型)STM32F1系列微控制器基于Cortex-M3内核,利用一流的外设和低功耗、低压操作实现了高性能,同时以可接受的价格,利用简单的架构和简便易用的工具实现了高集成度,能够满足工业、医疗和消费类市场的各种应用需求。凭借该产品系列,ST公司在全球基于ARMCortex-M3的微控制器领域处于领先地位。本书后续章节即是基于STM32F1系列中的典型微控制器STM32F103进行讲述的。截至2016年3月,STM32F1系列微控制器包含以下5个产品线,它们的引脚、外设和软件均兼容。1)STM32F100,超值型,24MHzCPU,具有电机控制和CEC功能。2)STM32F101,基本型,36MHzCPU,具有高达1MB的Flash。3)STM32F102,USB基本型,48MHzCPU,具备USBFS。4)STM32F103,增强型,72MHzCPU,具有高达1MB的Flash、电机控制、USB和CAN。5)STM32F105/107,互联型,72MHzCPU,具有以太网MAC、CAN和USB2.0OTG。2.STM32F4系列(高性能类型)STM32F4系列微控制器基于Cortex-M4内核,采用了意法半导体有限公司的90nmNVM工艺和ART加速器,在高达180MHz的工作频率下通过闪存执行时,其处理性能达到225DMIPS/608CoreMark。这是迄今所有基于Cortex-M内核的微控制器产品所达到的最高基准测试分数。由于采用了动态功耗调整功能,通过闪存执行时的电流消耗范围为STM32F401的128μA/MHz到STM32F439的260μA/MHz。截至2016年3月,STM32F4系列包括8条互相兼容的数字信号控制器(DigitalSignalController,DSC)产品线,是MCU实时控制功能与DSP信号处理功能的完美结合体。1)STM32F401,84MHzCPU/105DMIPS,尺寸最小、成本最低的解决方案,具有卓越的功耗效率(动态效率系列)。2)STM32F410,100MHzCPU/125DMIPS,采用新型智能DMA,优化了数据批处理的功耗(采用批采集模式的动态效率系列),配备的随机数发生器、低功耗定时器和DAC,为卓越的功率效率性能设立了新的里程碑(停机模式下89μA/MHz)。3)STM32F411,100MHzCPU/125DMIPS,具有卓越的功率效率、更大的SRAM和新型智能DMA,优化了数据批处理的功耗(采用批采集模式的动态效率系列)。4)STM32F405/415,168MHzCPU/210DMIPS,高达1MB的Flash闪存,具有先进连接功能和加密功能。5)STM32F407/417,168MHzCPU/210DMIPS,高达1MB的Flash闪存,增加了以太网MAC和照相机接口。6)STM32F446,180MHzCPU/225DMIPS,高达512KB的Flash闪存,具有DualQuadSPI和SDRAM接口。7)STM32F429/439,180MHzCPU/225DMIPS,高达2MB的双区闪存,带SDRAM接口、Chrom-ART加速器和LCD-TFT控制器。8)STM32F427/437,180MHzCPU/225DMIPS,高达2MB的双区闪存,具有SDRAM接口、Chrom-ART加速器、串行音频接口,性能更高,静态功耗更低。9)SM32F469/479,180MHzCPU/225DMIPS,高达2MB的双区闪存,带SDRAM和QSPI接口、Chrom-ART加速器、LCD-TFT控制器和MPI-DSI接口。3.STM32F7系列(高性能类型)STM32F7是世界上第一款基于Cortex-M7内核的微控制器。它采用6级超标量流水线和浮点单元,并利用ST的ART加速器和L1缓存,实现了Cortex-M7的最大理论性能-无论是从嵌入式闪存还是外部存储器来执行代码,都能在216MHz处理器频率下使性能达到462DMIPS/1082CoreMark。由此可见,相对于意法半导体以前推出的高性能微控制器,如F2、F4系列,STM32F7的优势就在于其强大的运算性能,能够适用于那些对于高性能计算有巨大需求的应用,对于目前还在使用简单计算功能的可穿戴设备和健身应用来说,将会带来革命性的颠覆,起到巨大的推动作用。4.STM32L1系列(超低功耗类型)STM32L1系列微控制器基于Cortex-M3内核,采用意法半导体专有的超低泄漏制程,具有创新型自主动态电压调节功能和5种低功耗模式,为各种应用提供了无与伦比的平台灵活性。STM32L1扩展了超低功耗的理念,并且不会牺牲性能。与STM32L0一样,STM32L1提供了动态电压调节、超低功耗时钟振荡器、LCD接口、比较器、DAC及硬件加密等部件。STM32L1系列微控制器可以实现在1.65~3.6V范围内以32MHz的频率全速运行,其功耗参考值如下:1)动态运行模式,低至177μA/MHz。2)低功耗运行模式:低至9μA。3)超低功耗模式+备份寄存器+RTC:900nA(3个唤醒引脚)。4)超低功耗模式+备份寄存器:280nA(3个唤醒引脚)。除了超低功耗MCU以外,STM32L1还提供了多种特性、存储容量和封装引脚数选项,如32~512KBFlash存储器、高达80KB的SDRAM、16KB真正的嵌入式EEPROM、48~144个引脚。为了简化移植步骤和为工程师提供所需的灵活性,STM32L1与不同的STM32F系列均引脚兼容。ST公司在推出以上一系列基于Cortex-M内核的STM32微控制器产品线的同时,也制定了它们的命名规则。通过名称,用户能直观、迅速地了解某款具体型号的STM32微控制器产品。STM32系列微控制器的名称主要由以下几部分组成。1.产品系列名STM32系列微控制器名称通常以STM32开头,表示产品系列,代表意法半导体基于ARMCortex-M系列内核的32位MCU。2.产品类型名产品类型是STM32系列微控制器名称的第二部分,通常有F(FlashMemory,通用快速闪存)、W(无线系统芯片)、L(低功耗低电压,1.65~3.6V)等类型。2.1.2STM32微控制器的命名规则3.产品子系列名产品子系列是STM32系列微控制器名称的第三部分。4.引脚数引脚数是STM32系列微控制器名称的第四部分,通常有以下几种:F(20pin)、G(28pin)、K(32pin)、T(36pin)、H(40pin)、C(48pin)、U(63pin)、R(64pin)、O(90pin)、V(100pin)、Q(132pin)、Z(144pin)和I(176pin)等。5.Flash存储器容量Flash存储器容量是STM32系列微控制器名称的第五部分,通常以下几种:4(16KFlash,小容量)、6(32KBFlash,小容量)、8(64KBFlash,中容量)、B(128KBFlash,中容量)、C(256KBFlash,大容量)、D(384KBFlash,大容量)、E(512KBFlash,大容量)、F(768KBFlash,大容量)、G(1MBFlash,大容量)。6.封装方式封装方式是STM32系列微控制器名称的第六部分,通常有以下几种:T(LQFP,Low-profileQuadFlatPackage,薄型四侧引脚扁平封装)、H(BGA,BallGridArray,球栅阵列封装)、U(VFQFPN,VerythinFinepitchQuadFlatPackNo-leadpackage,超薄细间距四方扁平无铅封装)、Y(WLCSP,WaferLevelChipScalePackaging,晶圆片级芯片规模封装)。7.温度范围温度范围是STM32系列微控制器名称的第七部分,通常有以下两种:6(-40~85℃,工业级)、7(-40~105℃,工业级)。STM32F103微控制器的命名规则如图2-2所示。图2-2STM32F103微控制器命名规则STM32F103xx闪存容量、封装及型号对应关系如图2-3所示。图2-3STM32F103xx闪存容量、封装及型号对应关系对STM32单片机内部资源介绍如下。(1)内核ARM32位Cortex-M3CPU,最高工作频率为72MHz,执行速度为1.25DMIPS/MHz,完成32位x32位乘法计算只需用一个周期,并且硬件支持除法(有的芯片不支持硬件除法)。(2)存储器片上集成32~512KB的闪存,6~64KB的静态随机存取存储器(SRAM)。(3)电源和时钟复位电路包括:2.0~3.6V的供电电源(提供I/O端口的驱动电压);上电/断电复位(POR/PDR)端口和可编程电压探测器(PVD);内嵌4~16MHz的晶振;内嵌出厂前调校8MHz的RC振荡电路、40kHz的RC振荡电路;供CPU时钟的PLL锁相环;带校准功能供RTC的32kHz晶振。(4)调试端口有SWD串行调试端口和JTAG端口可供调试用。(5)I/O端口根据型号的不同,双向快速I/O端口数目可为26、37、51、80或112。翻转速度为18MHz,所有的端口都可以映射到16个外部中断向量。除了模拟输入端口,其他所有的端口都可以接收5V以内的电压输入。(6)DMA(直接内存存取)端口支持定时器、ADC、SPI、I2C和USART等外设。(7)ADC带有2个12位的微秒级逐次逼近型ADC,每个ADC最多有16个外部通道和2个内部通道。2个内部通道一个接内部温度传感器,另一个接内部参考电压。ADC供电要求为2.4~3.6V,测量范围为VREF-~VREF+,VREF-通常为0V,VREF+通常与供电电压一样。具有双采样和保持能力。(8)DACSTM32F103xC、STM32F103xD、STM32F103xE单片机具有2通道12位DAC。(9)定时器最多可有11个定时器,包括:4个16位定时器,每个定时器有4个PWM定时器或者脉冲计数器;2个16位的6通道高级控制定时器(最多6个通道可用于PWM输出);2个看门狗定时器,包括独立看门狗(IWDG)定时器和窗口看门狗(WWDG)定时器;1个系统滴答定时器SysTick(24位倒计数器);2个16位基本定时器,用于驱动DAC。(10)通信端口最多可有13个通信端口,包括:2个PC端口;5个通用异步收发传输器(UART)端口(兼容IrDA标准,调试控制);3个SPI端口(18Mbit/s),其中IS端口最多只能有2个,CAN端口、USB2.0全速端口、安全数字输入/输出(SDIO)端口最多都只能有1个。(11)FSMCFSMC嵌在STM32F103xC、STM32F103xD、STM32F103xE单片机中,带有4个片选端口,支持闪存、随机存取存储器(RAM)、伪静态随机存储器(PSRAM)等。在微控制器选型过程中,工程师常常会陷入这样一个困局:一方面抱怨8位/16位微控制器有限的指令和性能,另一方面抱怨32位处理器的高成本和高功耗。能否有效地解决这个问题,让工程师不必在性能、成本、功耗等因素中做出取舍和折中?基于ARM公司2006年推出的Cortex-M3内核,ST公司于2007年推出的STM32系列微控制器就很好地解决了上述问题。因为Cortex-M3内核的计算能力是1.25DMIPS/MHz,而ARM7TDMI只有0.95DMIPS/MHz。而且STM32拥有1μs的双12位ADC,4Mbit/s的UART,18Mbit/s的SPI,18MHz的I/O翻转速度,更重要的是,STM32在72MHz工作时功耗只有36mA(所有外设处于工作状态),而待机时功耗只有2μA。2.1.3STM32微控制器的选型2.2STM32F1系列产品系统构架和STM32F103ZET6内部结构STM32跟其他单片机一样,是一个单片计算机或单片微控制器,所谓单片就是在一个芯片上集成了计算机或微控制器该有的基本功能部件。这些功能部件通过总线连在一起。就STM32而言,这些功能部件主要包括:Cortex-M内核、总线、系统时钟发生器、复位电路、程序存储器、数据存储器、中断控制、调试接口以及各种功能部件(外设)。不同的芯片系列和型号,外设的数量和种类也不一样,常有的基本功能部件(外设)是:输入/输出接口GPIO、定时/计数器TIMER/COUNTER、串行通信接口USART、串行总线I2C和SPI或I2S、SD卡接口SDIO、USB接口等。STM32F10x系列单片机基于ARMCortex-M3内核,主要分为STM32F100xx、STM32F101xx、STM32F102xx、STM32F103xx、STM32F105xx和STM32F107xx。STM32F100xx、STM32F101xx和STM32F102xx为基本型系列,分别工作在24MHz、36MHz和48MHz主频下。STM32F103xx为增强型系列,STM32F105xx和STM32F107xx为互联型系列,均工作在72MHz主频下。其结构特点为:1)一个主晶振可以驱动整个系统,低成本的4~16MHz晶振即可驱动CPU、USB和其他所有外设。2)内嵌出厂前调校好的8MHzRC振荡器,可以作为低成本主时钟源。3)内嵌电源监视器,减少对外部器件的要求,提供上电复位、低电压检测、掉电检测。4)GPIO:最大翻转频率为18MHz。5)PWM定时器:可以接收最大72MHz时钟输入。6)USART:传输速率可达4.5Mbit/s。7)ADC:12位,转换时间最快为1μs。8)DAC:提供2个通道,12位。9)SPI:传输速率可达18Mbit/s,支持主模式和从模式。10)I2C:工作频率可达400kHz。11)I2S:采样频率可选范围为8~48kHz。12)自带时钟的看门狗定时器。13)USB:传输速率可达12Mbit/s。14)SDIO:传输速率为48MHz。STM32F1系列产品系统架构如图2-4所示。STM32F1系列产品主要由以下部分构成:1)Cortex-M3内核DCode总线(D-bus)和系统总线(S-bus)。2)通用DMA1和通用DMA2。3)内部SRAM。4)内部闪存存储器。5)FSMC。6)AHB到APB的桥(AHB2APBx),它连接所有的APB设备。上述部件都是通过一个多级的AHB总线构架相互连接的。2.2.1STM32F1系列产品系统架构图2-4STM32F1系列产品系统架构ICode总线:该总线将Cortex-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。DCode总线:该总线将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。系统总线:此总线连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。DMA总线:此总线将DMA的AHB主控接口与总线矩阵相连,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。总线矩阵:总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁采用轮换算法。总线矩阵包含4个主动部件(CPU的DCode、系统总线、DMA1总线和DMA2总线)和4个被动部件(闪存存储器接口、SRAM、FSMC和AHB2APB桥)。

AHB外设通过总线矩阵与系统总线相连,允许DMA访问。AHB/APB桥(APB):两个AHB/APB桥在AHB和两个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。上述模块由AMBA(AdvancedMicrocontrollerBusArchitecture)总线连接到一起。AMBA总线是ARM公司定义的片上总线,已成为一种流行的工业片上总线标准。它包括AHB(AdvancedHighperformanceBus)和APB(AdvancedPeripheralBus),前者作为系统总线,后者作为外设总线。为更加简明地理解STM32单片机的内部结构,对图2-4进行抽象简化后如图2-5所示,这样对初学者的学习理解会更加方便些。

为更加简明地理解STM32单片机的内部结构,对图2-4进行抽象简化后如图2-5所示,这样对初学者的学习理解会更加方便些。

图2-5STM32F1系列产品系统架构现结合图2-5对STM32的基本原理做一简单分析,主要包括以下内容。(1)程序存储器、静态数据存储器、所有的外设都统一编址,地址空间为4GB。但各自都有固定的存储空间区域,使用不同的总线进行访问。(2)可将Cortex-M3内核视为STM32的“CPU”,程序存储器、静态数据存储器、所有的外设均通过相应的总线再经总线矩阵与之相接。Cortex-M3内核控制程序存储器、静态数据存储器、所有外设的读写访问。(3)STM32的功能外设较多,分为高速外设、低速外设两类,各自通过桥接再通过AHB系统总线连接至总线矩阵,从而实现与Cortex-M3内核的接口。(4)STM32的系统时钟均由复位与时钟控制器RCC产生,它有一整套的时钟管理设备,由它为系统和各种外设提供所需的时钟以确定各自的工作速度。根据程序存储容量,ST芯片分为三大类:LD(小于64KB),MD(小于256KB),HD(大于256KB),而STM32F103ZET6类型属于第三类,它是STM32系列中的一个典型型号。STM32F103ZET6的内部架构如图2-6所示。STM32F103ZET6包含以下特性。1)内核。①ARM32位的Cortex-M3CPU,最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz(Dhrystone2.1)。②单周期乘法和硬件除法。

2.2.2STM32F103ZET6的内部架构2)存储器。①512KB的闪存程序存储器。②64KB的SRAM。③带有4个片选信号的灵活的静态存储器控制器,支持CompactFlash、SRAM、PSRAM、NOR和NAND存储器。3)LCD并行接口,支持8080/6800模式。4)时钟、复位和电源管理。①芯片和I/O引脚的供电电压为2.0~3.6V。②上电/断电复位(POR/PDR)、可编程电压监测器(PVD)。③4~16MHz晶体振荡器。④内嵌经出厂调校的8MHz的RC振荡器。⑤内嵌带校准的40kHz的RC振荡器。

⑥带校准功能的32kHzRTC振荡器。5)低功耗。①支持睡眠、停机和待机模式。②VBAT为RTC和后备寄存器供电。6)3个12位模数转换器(ADC),lμs转换时间(多达16个输入通道)。①转换范围:0~3.6V。②采样和保持功能。③温度传感器。7)2个12位数模转换器(DAC)。8)DMA。①12通道DMA控制器。②支持的外设包括:定时器、ADC、DAC、SDIO、I2S、SPI、I2C和USART。

9)调试模式。①串行单线调试(SWD)和JTAG接口。②Cortex-M3嵌入式跟踪宏单元(ETM)。10)快速I/O端口(PA~PG)。多达7个快速I/O端口,每个端口包含16根I/O口线,所有1/0口可以映像到16个外部中断;几乎所有端口均可容忍5V信号。11)多达11个定时器。①4个16位通用定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入。②2个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器。

③2个看门狗定时器(独立看门狗定时器和窗口看门狗定时器)。④系统滴答定时器:24位自减型计数器。⑤2个16位基本定时器用于驱动DAC。12)多达13个通信接口。①2个IC接口(支持SMBus/PMBus)。②5个USART接口(支持ISO7816接口、LIN、IrDA兼容接口和调制解调控制)。③3个SPI接口(18M位/秒),2个带有PS切换接口。④1个CAN接口(支持2.0B协议)。⑤1个USB2.0全速接口。⑥1个SDIO接口。

13)CRC计算单元,96位的芯片唯一代码。14)LQFP144封装形式。15)工作温度:-40℃~+105℃。以上特性,使得STM32F103ZET6非常实用于电机驱动、应用控制、医疗和手持设备、PC和游戏外设、GPS平台、工业应用、PLC、逆变器、打印机、扫描仪、报警系统、空调系统等领域。

图2-6STM32F103ZET6的内部架构2.3STM32F103ZET6的存储器映像STM32F103ZET6的存储器映像如图2-7所示。图2-7STM32F103ZET6的存储器映像程序存储器、数据存储器、寄存器和输入/输出端口被组织在同一个4GB的线性地址空间内。可访问的存储器空间被分成8个主要的块,每块为512MB。数据字节以小端格式存放在存储器中。一个字中的最低地址字节被认为是该字的最低有效字节,而最高地址字节是最高有效字节。STM32F103ZET6中内置外设的地址范围如书中表2-1所示。

2.3.1STM32F103ZET6内置外设的地址范围STM32F103ZET6内置64KB的静态SRAM。它可以以字节、半字(16位)或字(32位)访问。SRAM的起始地址是0x20000000。Cortex-M3存储器映像包括两个位带区。这两个位带区将别名存储器区中的每个字映射到位带存储器区的一个位,在别名存储区写入一个字具有对位带区的目标位执行读-改写操作的相同效果。在STM32F103ZET6中,外设寄存器和SRAM都被映射到位带区里,允许执行位带的写和读操作。

2.3.2嵌入式SRAM高达512KB闪存存储器,由主存储块和信息块组成:主存储块容量为64Kx64位,每个存储块划分为256个2KB的页。信息块容量为258x64位。闪存模块的组织如表2-2所示。2.3.3嵌入式闪存表2-2闪存模块的组织模块名称地址大小/B主存储块页00x08000000~0x080007FF2K页10x08000800~0x08000FFF2K页20x08001000~0x080017FF2K页30x08001800~0x08001FFF2K.........页2550x0807F800~0x0807FFFF2K信息块系统存储器0x1FFFF000~0x1FFFF7FF2K选择字节0x1FFFF800~0x1FFFF80F16闪存存储器接口寄存器FLASH_ACR0x40022000~0x400220034FLASH_KEYR0x40022004~0x400220074FLASH_OPTKEYR0x40022008~0x4002200B4FLASH_SR0x4002200C~0x4002200F4FLASH_CR0x40022010~0x400220134FLASH_AR0x40022014~0x400220174保留0x40022018~0x4002201B4FLASH_OBR0x4002201C~0x4002201F4FLASH_WRPR0x40022020~0x400220234闪存存储器接口的特性为:1)带预取缓冲器的读接口(每字为2x64位)。2)选择字节加载器。3)闪存编程/擦除操作。4)访问/写保护。闪存的指令和数据访问是通过AHB总线完成的。预取模块通过ICode总线读取指令。仲裁作用在闪存接口,并且DCode总线上的数据访问优先。读访问可以有以下配置选项。1)等待时间:可以随时更改的用于读取操作的等待状态的数量。

2)预取缓冲区(2个64位):在每一次复位以后被自动打开,由于每个缓冲区的大小(64位)与闪存的带宽相同,因此只通过需一次读闪存的操作即可更新整个级中的内容。由于预取缓冲区的存在,CPU可以工作在更高的主频。CPU每次取指最多为32位的字,取一条指令时,下一条指令已经在缓冲区中等待。

2.4STM32F103ZET6的时钟结构STM32系列微控制器中,有5个时钟源,分别是高速内部时钟(HighSpeedInternal.HSI)、高速外部时钟(HighSpeedExternal,HSE)、低速内部时钟(LowSpeedInternal.LSD、低速外部时钟(LowSpeedExternal,LSE)、锁相环倍频输出(PhaseLockedLoop.PLL)。STM32F103ZET6的时钟系统呈树状结构,因此也称为时钟树。STM32处理器因为低功耗的需要,各模块需要分别独立开启时钟。因此,当需要使用某个外设模块时,务必要先使能对应的时钟。否则,这个外设不能工作。STM32时钟树如图2-8所示。图2-8STM32时钟树1.HSE时钟高速外部时钟信号(HSE)可以由外部晶体/陶瓷谐振器产生,也可以由用户外部产生。一般采用外部晶体/陶瓷谐振器产生HSE时钟。在OSC_IN和OSC_OUT引脚之间连接4~16MHz外部振荡器为系统提供精确的主时钟。为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。2.HSI时钟HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。HSIRC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差。如果HSE晶体振荡器失效,HSI时钟会被作为备用时钟源。3.PLL内部PLL可以用来倍频HSIRC的输出时钟或HSE晶体输出时钟。PLL的设置(选择HSI振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子)必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。如果需要在应用中使用USB接口,PLL必须被设置为输出48或72MHz时钟,用于提供48MHz的USBCLK时钟。4.LSE时钟LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。5.LSI时钟LSIRC担当着低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。6.系统时钟(SYSCLK)选择系统复位后,HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时钟源的切换才会发生。在被选择时钟源没有就绪时,系统时钟的切换不会发生。直至目标时钟源就绪,才发生切换。7.RTC时钟通过设置备份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK时钟源可以由HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。LSE时钟在备份域里,但HSE和LSI时钟不是。因此:1)如果LSE被选为RTC时钟,只要VBAT维持供电,尽管VDD供电被切断,RTC仍可继续工作。2)LSI被选为自动唤醒单元(AWU)时钟时,如果切断VDD供电,不能保证AWU的状态。3)如果HSE时钟128分频后作为RTC时钟,VDD供电被切断或内部电压调压器被关闭(1.8V域的供电被切断)时,RTC状态不确定。必须设置电源控制寄存器的DPB位(取消后备区域的写保护)为1。8.看门狗时钟如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关闭。在LSI

温馨提示

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

评论

0/150

提交评论