




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 2 2 章章STM32F107STM32F107内核架构内核架构本章目标理解CM3内核与STM32F107架构关系理解STM32F107的存储器映像了解位带别名区地址计算方法理解电源管理模式理解CM3的复位序列掌握STM32F107启动配置方法理解STM32F107的时钟系统掌握时钟初始化方法内核架构内核架构 STM32F107是一个ARM单片机,内嵌有一个Cortex-M3简称CM3处理器作为核心。CM3的三条总线通过总线矩阵与STM32F107主要部件及外设相连。STM32F107的架构包括CM3的内核架构和除内核以外的其他架构。 内核架构内核架构-CM3内核架构内核架构 CM3内部
2、数据路径、寄存器和存储器接口都是32位的。它具有以下特点: CM3采用了哈佛结构,拥有独立的指令总线和数据总线。两条总线的寻址空间总共为4GB。 CM3内核提供一个可选的MPU存储器保护单元以应对比较复杂的应用。 CM3内部还有一些调试组件,用于硬件水平上支持调试操作。同时,还有另外一些可选的组件。 内核架构内核架构-CM3内核架构内核架构 NVIC向量中断控制器) 寄存器组 三级流水线 可选的MPU 调试和跟踪 I-Code总线 D-Code总线 系统总线 内核架构内核架构-STM32F107架构架构 DMA总线总线矩阵 AHB/APB桥 存储器组织存储器组织 CM3支持4GB的存储空间,用
3、来映射程序存储器、数据存储器、外设寄存器。CM3将这4GB存储空间,划分为6部分 存储器组织存储器组织 在最高地址的内核外设区,映射CM3内核的外设。 这些外设均使用固定地址。 通过把基础外设的地址定死,至少在内核水平上,为应用程序的移植扫清了障碍。存储器映像存储器映像 STM32F107配备256Kbytes Flash存储器和64Kbytes SRAM存储器。 存储器映像存储器映像 -位带操作位带操作 CM3的存储器系统支持位带bit-band操作。通过它可以对单一比特进行读写操作。在CM3中,共有两个区域可以实现位带 存储器映像存储器映像 -位带计算方法位带计算方法 每一个比特位都被映射
4、到了位带别名区,膨胀成为一个32位的字。在位带别名区写入一个字,相当于对位带区的相应比特进行写入。 位带别名区基地址+位带区偏移量*32+比特位序号*4=位带别名区地址存储器映像存储器映像 -位带计算方法位带计算方法下述代码用于实现任务描述2.D.1,展现了如何把寄存器RCC_CR的PLLON24位,映射到别名区。 /* 定义外设位带区的基地址*/#define PERIPH_BASE (u32)0 x40000000) /* 定义外设位带别名区基地址 */ #define PERIPH_BB_BASE (u32)0 x42000000) /* - 定义RCC 寄存器偏移量 - */ #def
5、ine 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 * 32 + (PLLON_BitNumber * 4) 存储器映像存储器映像 -位带计算方法位带计算方法位带区地址位带区地址比特位比特位对应位带别名区地址
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内存区,位带别名区的映射寄存器组寄存器组 -通用寄存器通用寄存器 CM3处理器拥有R0-R15的通用寄存器组和一些特殊功能寄存器。特殊功
7、能寄存器有预定义的功能,必须通过专用的指令来访问。 堆栈堆栈堆栈是一种寄存器的使用模型。它由一块连续的内存和一个堆栈指针组成,用于实现“后进先出的缓冲区。其典型的应用是在发生中断时,执行中断处理程序前后保护和恢复现场数据。对于具体的堆栈形式,既可以“向上生长也可以“向下生长”。 堆栈堆栈 -CM3的堆栈的堆栈 CM3使用的是“向下生长的堆栈模型。初始化堆栈时,堆栈指针SP指向的第一个地址,叫做栈顶地址。以堆栈栈顶地址为0 x2000_8000为例 堆栈堆栈 -双堆栈机制双堆栈机制 在CM3中,堆栈分为两个:主堆栈MSP和进程堆栈PSP)。 两个堆栈分别存放在内存中,是两个不同的栈顶地址,但在同
8、一时刻只能使用其中一个,不能同时使用。 电源管理电源管理 电源部分是维持整个STM32F107正常工作的重要能源供给,STM32F107正常工作需要电源的供给,STM32F107的工作电压VDD为2.03.6V。在实际电路设计中常用3.3V作为STM32F107的供电电压。 电源管理电源管理 -电源电源 STM32F107电源由供电电源即主电源VDD、备用电源和参考电压三部分构成。 电源管理电源管理 -备份区域备份区域 如果有电池或其他电源连接到VBAT脚上,当VDD断电时,STM32F107可以自动保存备份区域的内容和维持RTC实时时钟的运行。备份寄存器BKP) 备份寄存器是42个16位的寄
9、存器,可用来存储84个字节的用户应用程序数据。它们处在备份域里侵入检测 当TAMPER引脚上的信号从“0变成“1或者从“1变成“0” ,会产生一个侵入检测事件。 电源管理电源管理 -备份区域备份区域 RTC校准校准 为方便测量,为方便测量,RTC时钟可以经时钟可以经64分频输出到侵入检测引脚分频输出到侵入检测引脚TAMPER上。通过设置上。通过设置RTC校验寄存器校验寄存器BKP_RTCCR的的CCO位来开启这一功能。此时钟可以最多减慢位来开启这一功能。此时钟可以最多减慢121ppmpart per million)。)。 电源管理电源管理 -电源管理器电源管理器 PWR 电源管理器PWR负责
10、电源的管理,主要有上电复位、掉电复位和电压监测器三部分。 电源管理电源管理 -电源管理器电源管理器 PWR 上电复位上电复位POR和掉电复位和掉电复位PDR) 当供电电压达到当供电电压达到2V时系统即能正常工作。当时系统即能正常工作。当VDD/VDDA低于指定的限位低于指定的限位电压电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。时,系统保持为复位状态,而无需外部复位电路。电源管理电源管理 -电源管理器电源管理器 PWR 可编程的电压监测器可编程的电压监测器PVD) 可以通过库函数可以通过库函数void PWR_PVDLevelConfig( )进行设置。进行设置。 电源管理
11、电源管理 -电源管理器电源管理器 PWR 【示例【示例2- 12- 1】 设置设置PVDPVD电压电压/ /* * 设置设置 PVD PVD 探测值探测值0 0为为 2.5V 2.5V * */ / PWR_PVDLevelConfig(PWR_PVDLevel_2V5);PWR_PVDLevelConfig(PWR_PVDLevel_2V5);PWR_PVDLevelPWR_PVDLevel描述描述PWR_PVDLevel_2V2PVD 探测电压阈值2.2VPWR_PVDLevel_2V3PVD 探测电压阈值2.3VPWR_PVDLevel_2V4PVD 探测电压阈值2.4VPWR_PVDL
12、evel_2V5PVD 探测电压阈值2.5VPWR_PVDLevel_2V6PVD 探测电压阈值2.6VPWR_PVDLevel_2V7PVD 探测电压阈值2.7VPWR_PVDLevel_2V8PVD 探测电压阈值2.8VPWR_PVDLevel_2V9PVD 探测电压阈值2.9V电源管理电源管理 -低功耗模式低功耗模式 在系统或电源复位以后,单片机处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗 模式模式进入方法进入方法唤醒唤醒对对1.8V1.8V区域时区域时钟的影响钟的影响对对VDDVDD区域区域时钟的影响时钟的影响电压调节器电压调节器睡眠(SLEEP-NOW或SL
13、EEP-ON-EXIT)WFI指令任一中断CPU时钟关,其他时钟和ADC时钟无影响无开WFE指令唤醒事件停机PDDS和LPDS位+SLEEPDEEP位+WFI或WFE指令任一外部中断(在外部中断寄存器中设置)关闭所有1.8V区域的时钟HSI和HSE的振荡器关闭开启或处于低功耗模式(依据PWR_CR的设定)待机PDDS位和+SLEEPDEEP位+WFI或WFE指令WKUP引脚的上升沿、RTC闹钟事件、NRST引脚的外部复位、IWGD复位关复位和启动配置复位和启动配置复位是STM32F107启动的第一步,通过复位,MCU各寄存器恢复到初始状态。只有经过初始化后,才可以开始工作。复位并非只有上电才会
14、产生,产生复位的方法和原因也有很多。 复位和启动配置复位和启动配置 -CM3的复位机制的复位机制 复位信号复位信号 复位信号复位信号描述描述上电复位在器件上电时,把处理器核心和调试系统一起复位系统复位只影响处理器核心、NVIC(与调试相关的除外)以及MPU,不复位调试系统测试复位只复位调试系统复位和启动配置复位和启动配置 -CM3的复位机制的复位机制 复位序列复位序列 在离开复位状态后,在离开复位状态后,CM3做的第一件事就是读取下列两个做的第一件事就是读取下列两个32位整数的值:位整数的值: 从地址从地址0 x0000_0000处取出处取出MSP的初始值。的初始值。 从地址从地址0 x000
15、0_0004处取出处取出PC的初始值。的初始值。 复位和启动配置复位和启动配置 -CM3的复位机制的复位机制 留意,这与传统的ARM架构不同。在CM3中,在0地址处提供MSP的初始值,然后紧跟着就是向量表。向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行的第一条指令。复位和启动配置复位和启动配置 -RCC 具体到STM32F107单片机,它有三种复位:系统复位、电源复位和后备域复位。 STM32F107复位和时钟控制相关的库函数,都在stm32f10 x_rcc.c中,相关宏定义在stm32f10 x_rcc.h中。RCC有多种用途,包括时钟设置,外设复位和时钟
16、管理。 复位和启动配置复位和启动配置 -RCC 系统复位系统复位 系统复位将复位所有寄存器除时钟控制寄存器系统复位将复位所有寄存器除时钟控制寄存器CSR中的复中的复位标志和备份区域中的寄存器以外为它们的默认数值。位标志和备份区域中的寄存器以外为它们的默认数值。 电源复位电源复位 当以下事件中之一发生时,产生电源复位:当以下事件中之一发生时,产生电源复位:上电上电/掉电复位掉电复位POR/PDR复位)。复位)。从待机模式中返回。从待机模式中返回。 复位和启动配置复位和启动配置 -RCC 备份域复位备份域复位 备份区域拥有两个专门的复位条件,它们只影响备份区域。备份区域拥有两个专门的复位条件,它们
17、只影响备份区域。当以下事件中之一发生时,产生备份区域复位。当以下事件中之一发生时,产生备份区域复位。 软件复位:备份区域复位可由设置备份域控制寄存器软件复位:备份区域复位可由设置备份域控制寄存器RCC_BDCR中的中的BDRST位产生。位产生。 在在VDD和和VBAT两者掉电的前提下,两者掉电的前提下,VDD或或VBAT上电将引发上电将引发备份区域复位。备份区域复位。复位和启动配置复位和启动配置 -STM32F107的的启动配置启动配置 在STM32F107里可以通过BOOT1:0引脚选择三种不同启动模式。 启动模式选择引脚启动模式选择引脚启动模式启动模式说明说明BOOT1BOOT1BOOT0
18、BOOT0X0主内存存储器主内存存储器区被选为启动区域01系统存储器系统存储器区被选为启动区域,可启动内嵌的自举程序11内置SRAM内置SRAM被选为启动区域复位和启动配置复位和启动配置 -STM32F107的的启动配置启动配置 内嵌的自举程序内嵌的自举程序 内嵌的自举程序存放在系统存储区,可以作为程序引导或其内嵌的自举程序存放在系统存储区,可以作为程序引导或其他特殊用途。由他特殊用途。由ST在生产线上写入,用于通过可用的串行接在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程。口对闪存存储器进行重新编程。 时钟时钟STM32F107共有五个时钟源,分别为HSI、LSI、HSE、L
19、SE和PLL。它们用来给核心以及外设提供运行的“步伐”,以及协调互相运行的“步伐”。 时钟时钟 -时钟概述时钟概述 按照速度分为高速和低速按照速度分为高速和低速 高速时钟共有三个,分别为:高速时钟共有三个,分别为: HSE高速外部振荡器时钟高速外部振荡器时钟 HSI高速内部振荡器时钟高速内部振荡器时钟 PLL锁相环倍频时钟锁相环倍频时钟 低速时钟共有两个,分别为:低速时钟共有两个,分别为: 40kHz低速内部低速内部RCLSI RC振荡器振荡器 32.768kHz低速外部晶体低速外部晶体LSE晶体)晶体) 时钟时钟 -时钟概述时钟概述 按照位置分为外部和内部按照位置分为外部和内部内部时钟源共有
20、三个内部时钟源共有三个 ,分别为:,分别为: HSI高速内部振荡器时钟高速内部振荡器时钟 40kHz低速内部低速内部RCLSI RC振荡器振荡器 PLL锁相环倍频时钟锁相环倍频时钟 芯片外部的时钟源有两个芯片外部的时钟源有两个 ,分别为:,分别为: HSE高速外部振荡器时钟高速外部振荡器时钟32.768kHz低速外部晶体低速外部晶体LSE晶体)晶体) 时钟时钟 -时钟概述时钟概述 时钟时钟 -系统时钟系统时钟SYSCLK) 系统时钟作为整个系统的时间基准,有重要的作用,其特点如下:选择系统复位后,HSI振荡器被选为系统时钟。 只有当目标时钟源准备就绪了,从允许一个时钟源到另一个时钟源的切换。 在时钟控制寄存器RCC_CR里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统时钟。 时钟时钟 -RTC时钟时钟 通过设置备份域控制寄存器RCC_BDCR里的,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年不调偏机头分流器项目可行性研究报告
- 2025年高级木门行业深度研究报告
- 2024年5月份生猪追溯管理系统设备技术租赁细则
- 人教部编版语文八年级上册语文第8课《列夫·托尔斯泰》(新课标单元整体教学设计+课时教学设计)
- 人才培训与激励双轮驱动企业发展
- 企业内部沟通与信息共享机制
- 育婴师交流与互动试题及答案
- 初级中学教师资格证考试试题及答案全景图
- 互动式教学策略在课堂实践中的运用
- 人教版生物七年级上册期末复习题含解析
- 2024-2025年上海中考英语真题及答案解析
- 自然地理学-中科院考博重点答案
- 《脑科学基础知识》课件
- 科伦员工手册
- 绿化租摆服务投标方案技术标
- 珠宝店应急预案范本
- 《全面与进步跨太平洋伙伴关系协定》(CPTPP)
- 电梯维保服务投标方案
- 小学生班主任三年级家长会课件
- 跨省户口网上迁移告知单
- 高中物理实验目录及器材
评论
0/150
提交评论