第2章STM32F107内核架构课件.ppt

上传人(卖家):晟晟文业 文档编号:4073823 上传时间:2022-11-08 格式:PPT 页数:45 大小:2.33MB
下载 相关 举报
第2章STM32F107内核架构课件.ppt_第1页
第1页 / 共45页
第2章STM32F107内核架构课件.ppt_第2页
第2页 / 共45页
第2章STM32F107内核架构课件.ppt_第3页
第3页 / 共45页
第2章STM32F107内核架构课件.ppt_第4页
第4页 / 共45页
第2章STM32F107内核架构课件.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、第第 2 2 章章STM32F107STM32F107内核架构内核架构-2-本章目标理解CM3内核与STM32F107架构关系理解STM32F107的存储器映像了解位带别名区地址计算方法理解电源管理模式理解CM3的复位序列掌握STM32F107启动配置方法理解STM32F107的时钟系统掌握时钟初始化方法-3-内核架构内核架构 STM32F107是一个ARM单片机,内嵌有一个Cortex-M3(简称CM3)处理器作为核心。CM3的三条总线通过总线矩阵与STM32F107主要部件及外设相连。STM32F107的架构包括CM3的内核架构和除内核以外的其他架构。-4-内核架构内核架构-CM3内核架构

2、内核架构 CM3内部数据路径、寄存器和存储器接口都是32位的。它具有以下特点:CM3采用了哈佛结构,拥有独立的指令总线和数据总线。两条总线的寻址空间总共为4GB。CM3内核提供一个可选的MPU(存储器保护单元)以应对比较复杂的应用。CM3内部还有一些调试组件,用于硬件水平上支持调试操作。同时,还有另外一些可选的组件。-5-内核架构内核架构-CM3内核架构内核架构 NVIC(向量中断控制器)寄存器组 三级流水线 可选的MPU 调试和跟踪 I-Code总线 D-Code总线 系统总线-6-内核架构内核架构-STM32F107架构架构 DMA总线总线矩阵 AHB/APB桥-7-存储器组织存储器组织

3、CM3支持4GB的存储空间,用来映射程序存储器、数据存储器、外设寄存器。CM3将这4GB存储空间,划分为6部分-8-存储器组织存储器组织 在最高地址的内核外设区,映射CM3内核的外设。这些外设均使用固定地址。通过把基础外设的地址定死,至少在内核水平上,为应用程序的移植扫清了障碍。-9-存储器映像存储器映像 STM32F107配备256Kbytes Flash存储器和64Kbytes SRAM存储器。-10-存储器映像存储器映像-位带操作 CM3的存储器系统支持位带(bit-band)操作。通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带-11-存储器映像存储器映像-位带计

4、算方法 每一个比特位都被映射到了位带别名区,膨胀成为一个32位的字。在位带别名区写入一个字,相当于对位带区的相应比特进行写入。位带别名区基地址+位带区偏移量*32+比特位序号*4=位带别名区地址-12-存储器映像存储器映像-位带计算方法下述代码用于实现任务描述2.D.1,展现了如何把寄存器RCC_CR的PLLON24位,映射到别名区。/*定义外设位带区的基地址*/#define PERIPH_BASE(u32)0 x40000000)/*定义外设位带别名区基地址*/#define PERIPH_BB_BASE(u32)0 x42000000)/*-定义RCC 寄存器偏移量-*/#define

5、RCC_OFFSET(RCC_BASE-PERIPH_BASE)/*-定义CR 寄存器偏移量-*/#define CR_OFFSET(RCC_OFFSET+0 x00)/*定义PLLON bit位置*/#define PLLON_BitNumber 0 x18/*定义PLLON bit的位带别名区地址*/#define CR_PLLON_BB(PERIPH_BB_BASE+(CR_OFFSET#define CR_PLLON_BB(PERIPH_BB_BASE+(CR_OFFSET*32+(PLLON_BitNumber 32+(PLLON_BitNumber*4)4)-13-存储器映像存储器

6、映像-位带计算方法位带区地址位带区地址比特位比特位对应位带别名区地址对应位带别名区地址比特位比特位0 x2000_000000 x2200_000000 x2000_000010 x2200_000400 x2000_000020 x2200_000800 x2000_0000310 x2200_007C00 x2000_000400 x2200_008000 x2000_000410 x2200_008400 x2000_000420 x2200_00880.0 x200F_FFFC310 x23FF_FFFC0对于SRAM内存区,位带别名区的映射-14-寄存器组寄存器组-通用寄存器通用寄存

7、器 CM3处理器拥有R0-R15的通用寄存器组和一些特殊功能寄存器。特殊功能寄存器有预定义的功能,必须通过专用的指令来访问。-15-堆栈堆栈堆栈是一种寄存器的使用模型。它由一块连续的内存和一个堆栈指针组成,用于实现“后进先出”的缓冲区。其典型的应用是在发生中断时,执行中断处理程序前后保护和恢复现场数据。对于具体的堆栈形式,既可以“向上生长”也可以“向下生长”。-16-堆栈堆栈-CM3的堆栈的堆栈 CM3使用的是“向下生长”的堆栈模型。初始化堆栈时,堆栈指针SP指向的第一个地址,叫做栈顶地址。以堆栈栈顶地址为0 x2000_8000为例-17-堆栈堆栈-双堆栈机制双堆栈机制 在CM3中,堆栈分为

8、两个:主堆栈(MSP)和进程堆栈(PSP)。两个堆栈分别存放在内存中,是两个不同的栈顶地址,但在同一时刻只能使用其中一个,不能同时使用。-18-电源管理电源管理 电源部分是维持整个STM32F107正常工作的重要能源供给,STM32F107正常工作需要电源的供给,STM32F107的工作电压(VDD)为2.03.6V。在实际电路设计中常用3.3V作为STM32F107的供电电压。-19-电源管理电源管理-电源电源 STM32F107电源由供电电源即主电源VDD、备用电源和参考电压三部分构成。-20-电源管理电源管理-备份区域备份区域 如果有电池或其他电源连接到VBAT脚上,当VDD断电时,ST

9、M32F107可以自动保存备份区域的内容和维持RTC(实时时钟)的运行。备份寄存器(备份寄存器(BKP)备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。它们处在备份域里侵入检测侵入检测 当TAMPER引脚上的信号从“0”变成“1”或者从“1”变成“0”,会产生一个侵入检测事件。-21-电源管理电源管理-备份区域备份区域 RTC校准校准 为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存器(BKP_RTCCR)的CCO位来开启这一功能。此时钟可以最多减慢121ppm(part per million)。-22-电源管理电源管理-

10、电源管理器电源管理器 PWR 电源管理器(PWR)负责电源的管理,主要有上电复位、掉电复位和电压监测器三部分。-23-电源管理电源管理-电源管理器电源管理器 PWR 上电复位(上电复位(POR)和掉电复位()和掉电复位(PDR)当供电电压达到2V时系统即能正常工作。当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。-24-电源管理电源管理-电源管理器电源管理器 PWR 可编程的电压监测器(可编程的电压监测器(PVD)可以通过库函数void PWR_PVDLevelConfig()进行设置。-25-电源管理电源管理-电源管理器电源管理器 PWR【示

11、例【示例2-12-1】设置设置PVDPVD电压电压/*设置 PVD 探测值0为 2.5V*/PWR_PVDLevelConfig(PWR_PVDLevel_2V5);PWR_PVDLevelPWR_PVDLevel描述描述PWR_PVDLevel_2V2PVD 探测电压阈值2.2VPWR_PVDLevel_2V3PVD 探测电压阈值2.3VPWR_PVDLevel_2V4PVD 探测电压阈值2.4VPWR_PVDLevel_2V5PVD 探测电压阈值2.5VPWR_PVDLevel_2V6PVD 探测电压阈值2.6VPWR_PVDLevel_2V7PVD 探测电压阈值2.7VPWR_PVDLe

12、vel_2V8PVD 探测电压阈值2.8VPWR_PVDLevel_2V9PVD 探测电压阈值2.9V-26-电源管理电源管理-低功耗模式低功耗模式 在系统或电源复位以后,单片机处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗 模式模式进入方法进入方法唤醒唤醒对对1.8V1.8V区域时钟的影区域时钟的影响响对对VDDVDD区域时钟的区域时钟的影响影响电压调节器电压调节器睡眠(SLEEP-NOW或SLEEP-ON-EXIT)WFI指令任一中断CPU时钟关,其他时钟和ADC时钟无影响无开WFE指令唤醒事件停机PDDS和LPDS位+SLEEPDEEP位+WFI或WFE指令任一外

13、部中断(在外部中断寄存器中设置)关闭所有1.8V区域的时钟HSI和HSE的振荡器关闭开启或处于低功耗模式(依据PWR_CR的设定)待机PDDS位和+SLEEPDEEP位+WFI或WFE指令WKUP引脚的上升沿、RTC闹钟事件、NRST引脚的外部复位、IWGD复位关-27-复位和启动配置复位和启动配置复位是STM32F107启动的第一步,通过复位,MCU各寄存器恢复到初始状态。只有经过初始化后,才可以开始工作。复位并非只有上电才会产生,产生复位的方法和原因也有很多。-28-复位和启动配置复位和启动配置-CM3的复位机制的复位机制 复位信号复位信号 复位信号复位信号描述描述上电复位在器件上电时,把

14、处理器核心和调试系统一起复位系统复位只影响处理器核心、NVIC(与调试相关的除外)以及MPU,不复位调试系统测试复位只复位调试系统-29-复位和启动配置复位和启动配置-CM3的复位机制的复位机制 复位序列复位序列 在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:从地址0 x0000_0000处取出MSP的初始值。从地址0 x0000_0004处取出PC的初始值。-30-复位和启动配置复位和启动配置-CM3的复位机制的复位机制 注意,这与传统的ARM架构不同。在CM3中,在0地址处提供MSP的初始值,然后紧跟着就是向量表。向量表中的数值是32位的地址,而不是跳转指令。向量表的

15、第一个条目指向复位后应执行的第一条指令。-31-复位和启动配置复位和启动配置-RCC 具体到STM32F107单片机,它有三种复位:系统复位、电源复位和后备域复位。STM32F107复位和时钟控制相关的库函数,都在stm32f10 x_rcc.c中,相关宏定义在stm32f10 x_rcc.h中。RCC有多种用途,包括时钟设置,外设复位和时钟管理。-32-复位和启动配置复位和启动配置-RCC 系统复位系统复位 系统复位将复位所有寄存器(除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外)为它们的默认数值。电源复位电源复位 当以下事件中之一发生时,产生电源复位:上电/掉电复位(POR/P

16、DR复位)。从待机模式中返回。-33-复位和启动配置复位和启动配置-RCC 备份域复位备份域复位 备份区域拥有两个专门的复位条件,它们只影响备份区域。当以下事件中之一发生时,产生备份区域复位。软件复位:备份区域复位可由设置备份域控制寄存器(RCC_BDCR)中的BDRST位产生。在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。-34-复位和启动配置复位和启动配置-STM32F107的的启动配置启动配置 在STM32F107里可以通过BOOT1:0引脚选择三种不同启动模式。启动模式选择引脚启动模式选择引脚启动模式启动模式说明说明BOOT1BOOT1BOOT0BOOT0

17、X0主内存存储器主内存存储器区被选为启动区域01系统存储器系统存储器区被选为启动区域,可启动内嵌的自举程序11内置SRAM内置SRAM被选为启动区域-35-复位和启动配置复位和启动配置-STM32F107的的启动配置启动配置 内嵌的自举程序内嵌的自举程序 内嵌的自举程序存放在系统存储区,可以作为程序引导或其他特殊用途。由ST在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程。-36-时钟时钟STM32F107共有五个时钟源,分别为HSI、LSI、HSE、LSE和PLL。它们用来给核心以及外设提供运行的“步调”,以及协调互相运行的“步伐”。-37-时钟时钟-时钟概述时钟概述 按照速度

18、分为高速和低速按照速度分为高速和低速 高速时钟共有三个,分别为:HSE(高速外部)振荡器时钟 HSI(高速内部)振荡器时钟 PLL(锁相环倍频)时钟 低速时钟共有两个,分别为:40kHz低速内部RC(LSI RC)振荡器 32.768kHz低速外部晶体(LSE晶体)-38-时钟时钟-时钟概述时钟概述 按照位置分为外部和内部按照位置分为外部和内部内部时钟源共有三个,分别为:HSI(高速内部)振荡器时钟 40kHz低速内部RC(LSI RC)振荡器 PLL(锁相环倍频)时钟 芯片外部的时钟源有两个,分别为:HSE(高速外部)振荡器时钟32.768kHz低速外部晶体(LSE晶体)-39-时钟时钟-时

19、钟概述时钟概述-40-时钟时钟-系统时钟(系统时钟(SYSCLK)系统时钟作为整个系统的时间基准,有重要的作用,其特点如下:选择系统复位后,HSI振荡器被选为系统时钟。只有当目标时钟源准备就绪了,从允许一个时钟源到另一个时钟源的切换。在时钟控制寄存器(RCC_CR)里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统时钟。-41-时钟时钟-RTC时钟时钟 通过设置备份域控制寄存器(RCC_BDCR)里的,RTCCLK时钟源可以由HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。-42-时钟时钟-时钟输出时钟输出 微控制器允许输出时钟信号到外部MCO引脚。相应的GP

20、IO端口寄存器必须被配置为相应功能。以下8个时钟信号可被选作MCO时钟:SYSCLK HSI HSE 除2的PLL时钟 PLL2时钟 PLL3时钟除以2 XT1外部325MHz振荡器(用于以太网)PLL3时钟(用于以太网)-43-小结STM32F107是一个ARM单片机,内嵌有一个Cortex-M3处理器作为核心。CM3的三条总线通过总线矩阵与STM32F107主要部件及外设相连CM3支持4GB的存储空间,用来映射程序存储器、数据存储器、寄存器和输入输出端口 CM3的存储器系统支持位带(bit-band)操作,通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带 CM3处理器

21、拥有R0-R15的通用寄存器组和一些特殊功能寄存器。特殊功能寄存器由于定义的功能,而且必须通过专用的指令来访问 CM3使用的是“向下生长”的堆栈模型,即堆栈指针SP指向最后一个被压入堆栈的32位数值-44-小结STM32F107的工作电压(VDD)为2.03.6V,通过内置的电压调节器提供所需的1.8V电源 在CM3中,在0地址处提供MSP的初始值,然后紧跟着就是向量表,向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行的第一条指令 在STM32F107内部有三种不同的时钟源可被用来驱动系统时钟(SYSCLK):HSI振荡器时钟、HSE振荡器时钟和PLL时钟-45-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第2章STM32F107内核架构课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|