STM32论文.pdf
淮南师范学院毕业设计(论文)第 1 页 电子课程设计报告 题 目:STM32 定时器产生 PWM 的研究 课 程:原子教你玩 STM32(库函数版)学生姓名:汪强 学生学号:1214020132 年 级:大学三年级 专 业:电子信息工程 班 级:电子信息工程(1)班 指导教师:陈帅 电子工程学院制 成绩 淮南师范学院毕业设计(论文)第 2 页 目录 第 1 章 前言.3 1.1 ARM 应用背景.3 1.2 研究内容.4 1.3 研究成果.错误!未定义书签。第 2 章 STM32 处理器概述.4 2.1 STM32 简介.4 2.2 内部资源.错误!未定义书签。2.3 CORTEX-M3 内核简介.错误!未定义书签。2.4 STM32 定时器简介.错误!未定义书签。2.4.1 通用定时器.5 2.4.2 高级控制定时器.6 2.4.3 小结.错误!未定义书签。第 3 章 PWM 概述.9 3.1 原理.9 3.1.1 PWM 模式.10 3.1.2 互补输出与死区插入.11 3.2 PWM 输出的实现.12 第 4 章 软件设计.13 4.1 开发环境.错误!未定义书签。4.1.1 STM32 的开发软件.错误!未定义书签。4.1.2 MDK370.13 4.2 软件实现.错误!未定义书签。4.2.1 设计标准.错误!未定义书签。4.2.2 程序流程图.错误!未定义书签。第五章 测试及结果.错误!未定义书签。5.1 JTAG 仿真器介绍.14 5.2 测试.错误!未定义书签。5.3 现象及结果.15 结论.错误!未定义书签。致谢.错误!未定义书签。参考文献.错误!未定义书签。淮南师范学院毕业设计(论文)第 3 页 ARM 处理器 ADC I/O 接口 键盘 RAM LED 传感器 转换器 LCD DAC EPROM 主机 第 1 章 前言 1.1 ARM 应用背景 ARM 的嵌入式控制应用如:汽车、电子设备、保安设备、大容量存储器、调制解调器、打印机等。一个典型的 ARM 嵌入式工业控制系统的功能模块如图 1-1所示。输入 输出 图 1-1 ARM 嵌入式工业控制系统的功能模块 目前已有超过 85的无线通信设备采用了 ARM 技术,ARM 以其高性能和低成本,在该领域的地位日益巩固。ARM 在此方面的应用如:手提式计算机、移动电话、PDA 等。随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此外,ARM 在语音及视频处理上进行了优化,并获得广泛支持。ARM 技术在目前流行的数字音频播放器、数字机顶盒、游戏机、数码相机、数字式电视机、GPS、机顶盒中得到广泛采用。现在流行的数码相机和打印机中绝大部分采用 ARM 技术,手机中的 32 位 SIM 智能卡也采用了 ARM 技术。如图 1-2所示是基于 ARM 技术的数码相机的功能模块9。淮南师范学院毕业设计(论文)第 4 页 图 1-2 基于 ARM 技术的数码相机的功能模块 1.2 研究内容 本设计旨在加深对 ARM 的学习,巩固大学四年所学专业知识,提升动手能力和思考问题解决问题的能力。本设计选择意法半导体的 STM32F 开发板,通过对该开发板的研究学习,和对 STM32F103C8T6 芯片的学习,掌握其各种外设功能。通过对 TIM1 定时器进行控制,使之各通道输出插入死区的互补 PWM 输出,各通道输出频率均为 17.57KHz。其中,通道 1 输出的占空比为 50%,通道 2 输出的占空比为 25%,通道 3 输出的占空比为 12.5%。各通道互补输出为反相输出。TIM1 定时器的通道 1 到 4 的输出分别对应 PA.08、PA.09、PA.10 和 PA.11引脚,而通道 1 到 3 的互补输出分别对应 PB.13、PB.14 和 PB.15 引脚,中止输入引脚为 PB.12。将这些引脚分别接入示波器,在示波器上观查相应通道占空比的方波12。第 2 章 STM32 处理器概述 2.1 STM32 简介24 STM32F103xx增强型系列使用高性能的ARM/Cortex-M3/32位的 RISC 内核,工作频率为 72MHz,内置高速存储器(高达 128K 字节的闪存和 20K 字节的 SRAM),ARM 处理器 LCD 控制器 主机 接口 CCD ADC 控制电路和编码电路 存储器 淮南师范学院毕业设计(论文)第 5 页 丰富的增强 I/O 端口和联接到两条 APB 总线的外设。所有型号的器件都包含 2个 12 位的 ADC、3 个通用 16 位定时器和一个 PWM 定时器,还包含标准和先进的通信接口:多达 2 个 I2C 和 SPI、3 个 USART、一个 USB 和一个 CAN。STM32F103xx 增强型系列工作于-40至+105 的温度范围,供电电压2.0V至 3.6V,一系列的省电模式保证低功耗应用的要求。完整的STM32F103xx增强型系列产品包括从36脚至100脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。这些丰富的外设配置,使得 STM32F103xx 增强型微控制器适合于多种应用场合:电机驱动和应用控制;医疗和手持设备;PC 外设和 GPS 平台;工业应用:可编程控制器、变频器、打印机和扫描仪;警报系统,视频对讲,和暖气通风空调系统;2.1.1 STM32F103C8 的参数 STM32 开发板核心芯片的参数如表 2-1 表 2-1 器件功能和配置(STM32F103xx 增 芯片引脚图如图 2-2:2.4.1 通用定时器22 STM32F103xx 增强型系列产品中内置了多达 3 个同步的标准定时器。每个定时器都有一个 16 位的自动加载递加/递减计数器、一个 16 位的预分频器和 4 个独立的通道,每个通道都可用于输入捕获、输出比较、PWM 和单脉冲模式输出,在最大的封装配置中可提供最多 12 个输入捕获、输出比较或 PWM 通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一个标准定时器都能用于产生 PWM输出。每个定时器都有独立的DMA 请求机制。淮南师范学院毕业设计(论文)第 6 页 2.4.2 高级控制定时器22 高级控制定时器(TIM1)由一个 16 位的自动装载计数器组成,它由一个可编程预分频器驱动。它适合多种用途,包含测输入信号的脉冲宽(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补 PWM 等)。使用定时器预分频器和 RCC 时钟控制预分频器,可以实现脉冲宽和波形周期从几个微秒至几个毫秒的调节。高级控制(TIM1)和通用(TIMx)定时器是完全独的,它们共享任何资源,它们可以同步操作。高级控制定时器(TIM1)可以被看成是一个分配到 6 个通道的三相 PWM 发生器,它还可以被当成一个完整的通用定时器。四个独立的通道可以用于:输入捕获;输出比较;产生 PWM(边缘或中心对齐模式);单脉冲输出;反相 PWM 输出,具有程序可控的死区插入功能;配置为 16 位标准定时器时,它与 TIMx 定时器具有相同的功能。配置为 16位 PWM 发生器时,它具有全调制能力(0100%)。在调试模式下,计数器可以被冻结。很多功能都与标准的TIM 定时器相同,内部结构也相同,因此高级控制定时器可以通过定时器链接功能与TIM 定时器协同操作,提供同步或事件链接功能。TIM1 定时器的功能包括:16 位上,下,上/下自动装载计数器;16 位可编程预分频器,计数器时钟频的分频系数为 165535 之间的任意数值;4 个独通道:输入捕获;输出比较;PWM 生成(边缘或中间对齐模式);淮南师范学院毕业设计(论文)第 7 页 单脉冲模式输出;死区时间可编程的互补输出。使用外部信号控制定时器和定时器互连的同步电;在指定数目的计数器周期之后更新定时器寄存器;刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态;如下事件发生时产生中断/DMA:新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发);触发事件(计数器启动,停止,初始化或者由内部/外部触发计数);输入捕获;输出比较;刹车信号输入。时基单元 可编程高级控制定时器的主要部分是一个 16 位计数器和与其相关的自动装载寄存器。这个计数器可以向上计数、向下计数或者向上向下双向计数。此计数器时钟由预分频器分频得到。计数器、自动装载寄存器和预分频器寄存器可以由软件读写,即使计数器还在运读写仍然有效。时基单元包含:计数器寄存器(TIM1_CNT);预分频器寄存器(TIM1_PSC);自动装载寄存器(TIM1_ARR);周期计数寄存器(TIM1_RCR);自动装载寄存器是预先装载的。写或读自动重装载寄存器将访问预装载寄存器。根据在 TIM1_CR1 寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被永久地或在每次的更新事件 UEV 时传送到影子寄存器。当计数器达到溢出条件(向下计数时的下溢条件)并当 TIM1_CR1 寄存器中的 UDIS 位等于 0 时,产生新事件。更新事件也可以由软件产生。随后会详细描述每一种淮南师范学院毕业设计(论文)第 8 页 配置下更新事件的产生。计数器由预分频器的时钟输出 CK_CNT 驱动,仅当设置计数器 TIM1_CR1寄存器中的计数器使能位(CEN)时,CK_CNT 才有效。(有关多的计数器使能的细节,请参见控制器的从模式描述)。注:真正的计数器使能信号 CNT_EN 是在 CEN 后的一个时钟周期后被设置。预分频器描述。预分频器可以将计数器的时钟频按 1 到 65536 之间的任意值分频。它是基于一个(在 TIM1_PSC 寄存器中的)16 位寄存器控制的 16 位计数器。因为这个控制寄存器带有缓冲器,它能够在工作时被改变。新的预分频器的参数在下一次更新事件到来时被采用。图 2-4 和 图 2-5 给出一些在预分频器工作时,改其参数的情况下计数器操作的例子。图 2-4 当预分频器的参数从 1 变到 2 时,计数器的时序图 淮南师范学院毕业设计(论文)第 9 页 图 2-5 当预分频器的参数从 1 变到 4 时,计数器的时序图 第 3 章 PWM 概述 3.1 原理 PWM 是 Pulse Width Modulation的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此研究基于 PWM 技术的正负脉宽数控调制信号发生器具有十分重要的现实意义。PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。多数负载(无论是电感性负载还是电容性负载)需要的调制频率高 10Hz,通常调制频率为 1kHz 到 200kHz 之间。占空比是接通时间与周期之比;调制频率为淮南师范学院毕业设计(论文)第 10 页 周期的倒数。目前,运动控制系统或电动机控制系统中实现PWM的方法主要有传统的数字电路方式、专用的PWM集成电路、单片机实现方式和可编程逻辑器件实现方式。用传统的数字电路实现PWM,电路设计较复杂,体积大,抗干扰能力差,系统的控制周期较长。专用的PWM集成电路或带有PWM的单片机价格较高。对于单片机中无PWM输出功能的情况,实现PWM将消耗大量的时间,大大降低了CPU的效率,而且得到的PWM信号精度不太高15。3.1.1 PWM 模式 图 3-1 边沿对齐的 PWM 波形(ARR=8)向下计数的配置 当 TIM1_CR1 寄存器的 DIR 位为高时执向下计数。在 PWM 模式 1,当 TIM1_CNTTIM1_CCRx时参考信号 OCxREF 为低,否则为高。如果 TIM1_CCRx 中的比较值大于 TIM1_ARR 中的自动重装载值,则 OCxREF保持为“1。该模式下能产生 0的 PWM 波形。PWM 中央对齐模式 当 TIM1_CR1 寄存器中的 CMS 位为 00 时为中央对齐模式(所有其他的配置对 OCxREF/OCx 信号都有相同的作用)。根据同的 CMS 位的设置,比较标志可能淮南师范学院毕业设计(论文)第 11 页 在计数器向上计数时被置 1、在计数器向下计数时被置 1、或在计数器向上和向下计数时被置 1。TIM1_CR1 寄存器中的计数方向位(DIR)由硬件新,要用软件修改它。图 3-2 给出一些中央对齐的 PWM 波形的子 TIM1_ARR=8;PWM 模式 1;TIM1_CR1 寄存器中的 CMS=01,在中央对齐模式 1 时,当计数器向下计数时标志被设置。21 图 3-2 中央对齐的 PWM 波形(APR=8)3.1.2 互补输出与死区插入 淮南师范学院毕业设计(论文)第 12 页 图 3-3 带死区插入的互补输出 图 3-4 死区波形延迟大于负脉冲 3.2 PWM 输出的实现12 STM32 的高级定时器时钟 TIM1CLK 为固定 72MHz,TIM1 预分频为 0 x0(系统高速时钟不分频),所以 TIM1 计数器时钟频率为 72MHz。I/O 口时钟为固定值50MHz,PA8、PA9、PA10、PA11 设为推拉模式。TIM1 在下面定义的频率下工作:TIM1 频率=TIM1CLK/(TIM1_Period+1)=17.57 KHz。TIM1 CC1 寄存器的值为 0 x7FFF,所以 TIM1_CH1 和 TIM1_CH1N 产生一个频率为 17.57KHz 的信号,这个信号的占空比为:TIM1_CH1 占空比=TIM1_CCR1/(TIM1_Period+1)=50%。TIM1 CC2 寄存器的值为 0 x3FFF,所以 TIM1_CH2 和 TIM1_CH2N 产生一个 17.57KHz 的信号,它的占空比为:TIM1_CH2 占空比=TIM1_CCR2/(TIM1_Period+1)=25%。TIM1 CC3 寄存器的值为 0 x1FFF,所以 TIM1_CH3 和 TIM1_CH3N 产生一个 17.57KHz 的信号,它的占空比为:TIM1_CH3 占空比=TIM1_CCR3/(TIM1_Period+1)=12.5%。淮南师范学院毕业设计(论文)第 13 页 TIM1 波形可以在示波器上显示出来。输出信号观察 下列引脚分别依次接到示波器上(两个一组),示波器接线正接触线下列引脚,负接触线接地(GND)。TIM1_CH1 pin(PA8);TIM1_CH1N pin(PB13);TIM1_CH2 pin(PA9);TIM1_CH2N pin(PB14);TIM1_CH3 pin(PA10);TIM1_CH3N pin(PB15);TIM1_CH4 pin(PA11)。第 4 章 软件设计 4.1.2 MDK37011 Real View MDK(Miertocontroller Development Kit)是 ARM 公司最先推出的基于 ARM 微控制器的专业嵌入式开发工具。它采用了 ARM 的最新技术编工具RVCT,集成了享誉全球的 Vision IDE,因此特别易于使用,同时具备非常高的性能。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK 包括符合工业标准的 Real View 编译工具、测试器以及实时内核等组件,支持所有基于 ARM 的设备,能帮助工程师按照计划完成项目。MDK 提供启动代码生成向导提高开发效率;MDK 提供强大的设备模拟器缩短开发周期:目标设备的所有组件都可仿真,代码可在整个设备上运行。完全的目标硬件仿真,完整的目标,高效指令集仿真,中断仿真,片内外围设备有 ADC,DAC,EBI,Timers,UART,CAN,I2C,包含外部信号和 I/O。充足的仿真信息,包含在设备数据库里。MDK 提供高效的性能开发工具;MDK 支持最新的 Cortex-M3 处理器:淮南师范学院毕业设计(论文)第 14 页 Cortex-M3处理器是 ARM 公司推出的最新的针对微控制应用的内核,提供业界领先的高性能和低成本解决方案,将成为 MCU 应用的热点和主流。但是目前能支持 Cortex-M3 构架的开发工具很少,包括SDT,ADS1.2 等多数开发工具都不支持。MDK 是目前性价比最高的支持Cortex-M3处理器的开发工具。MDK 集成了 Flash 编程模块;MDK 提供业界最好的 Vision IDE 易学易懂 5.1 JTAG 仿真器介绍11 J-Link 是支持仿真 ARM 内核芯片的 JTAG 仿真器。配合 IAR EWARM,ADS,KEIL,WINARM,RealView 等集成开发环境支持所有 ARM7/ARM9 内核芯片的仿真,通过RDI 接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发 ARM 最好最实用的开发工具。DQ 电子推出的 J-LinkV7 仿真器采用原版固件,参照原版原理图,经过 DQ团队的长时间精工制作,板型合理,元件布局美观大方,走线严谨精致,并且每一个产品都经过功能和老化测试,功能完全与原版一致,支持在线升级。J-Link ARM 主要特点:IAR EWARM 集成开发环境无缝连接的 JTAG 仿真器。支持所有 ARM7/ARM9 内核的芯片,以及 cortexM3,包括 Thumb 模式。支持 ADS,IAR,KEIL,WINARM,REALVIEW 等几乎所有的开发环境。下载速度高达 ARM7:600kB/s,ARM9:550kB/s,通过 DCC 最高可达 800 kB/s*最高 JTAG 速度 12MHz。目标板电压范围 1.2V3.3V。自动速度识别功能。监测所有 JTAG 信号和目标板电压。完全即插即用。使用 USB 电源(可接通 J12 跳线给目标板供电,出厂时未接通)。带 USB 连接线和 20 芯 JTAG 连接排线。淮南师范学院毕业设计(论文)第 15 页 支持多 JTAG 器件串行连接。标准 20 芯 JTAG 仿真插头。带 J-Link TCP/IP server,允许通过 TCP/IP 网络使用 J-Link 支持的内核:ARM7TDMI(Rev 1);ARM7TDMI(Rev 3);ARM7TDMI-S(Rev 4);ARM720T;CORTEXM3。5.3 现象及结果通道 1 和其互补通道,频率为 17.57kHz,占空比为 50%,PWM 输出显示如图 5-1:淮南师范学院毕业设计(论文)第 16 页 图 5-1 通道 1 与其互补通道的 PWM 输出图通道 2 频率 17.57 kHz,占空比为 25%,其互补通道频率 17.57 kHz,占空比为 75%,PWM 输出显示如图 5-2。图 5-2 通道 2 与其互补通道的 PWM 输出图 淮南师范学院毕业设计(论文)第 17 页 通道 3 频率 17.57 kHz,占空比为 12.5%,其互补通道频率 17.57 kHz,占空比为 87.5%,PWM 输出显示如图 5-3。图 5-3 通道 3 与其互补通道的 PWM 输出图 1 康华光.电子技术基础模拟部分第四版M.北京:高等教育出版社,1999.6.2 阎石.数字电子技术基础第四版M.北京:高等教育出版社,1999.6.3王福瑞等 单片微机测控系统设计大全 M 北京航空航天大学出版社,1998(331337)4宁改娣,杨拴科DSP 控制器原理及应用M科学出版社,2002 5 周立功等.ARM嵌入式系统基础教程M.北京:北京航空航天大学出版社,2005.1.6 周立功等.ARM嵌入式系统实验教程M.北京:北京航空航天大学出版社,2005.1.7 唐清善.Protel DXP高级实例教程M.中国水利水电出版社,2004.4.8 罗浩等.一种新的基于ARM的数据采集系统设计J.信阳师范学院学报(自然科学版),2006.4.9 秦伟等.基于ARM 处理器的数据采集系统的设计J.自动化技术与应用.2006 年第10 期.10 杜春雷.ARM体系结构与编程.清华大学出版社,2003.11 李宁.ARM开发工具ReaIView MDK使用入门M.北京航空航天大学出版社,2008.淮南师范学院毕业设计(论文)第 18 页 12 李宁.基于MDK的STM32处理器开发应用M.北京航空航天大学出版社,2008.13刘黎明等.单片机与嵌入式系统应用J.英文刊名MICROCON TROLLER&EMBEDDED SYSTEM.2002(7).14 赵葵银,王辉,吴俊.电压空间矢量控制的三相PWM整流器的研究J.上海第二工业大学学报,2003(2):43-50.15吴安顺.高效率抑制PWM逆变器谐波的梯形调制信号J,电气传动.1987,No6,P1015.16 Malinowski Mariusz.Jasinski Marek,Kazmierkowski Marian P.Simple Direct Power Control of Three-Phase PWM Rectifier Using Space-Vector ModulationJ.IEEE Transactions on Industrial,Electronics,2004,51(2):447-454.17 K.S.RAJASHEKARA等.Microprocessoy Based Sinusoidal PWM Imverter by DMA Transfer.IEEE.Trans.Ind Electrol,Vol.IE-29,No1,1982 P4651.18 GIVSEPPE S.BUJA AND GIOVANNI B.INDRI.Optimal Pulsewidth Modulation for Feeding Ac Motors.IEEE Trans.Ind Appl,Vol,IA-13,No1,1977 P3844.19S.R.BOWES等.New PWM Switching Strategy for Microprocessor Controlled Inveter Drives.IEE PROCEEDINGS,Vol.133,Pt.B,No4 1986 P237254.20S.R.BOWES等.Suboptimal Switching Strategies for Microprocessor_Controlled PWM Inverter Drives.IEE PROCEEDINGS,Vol.132,Pt.B,No3 1985 P133148.21 STM32F10 xxx TIM1 application examplesDB/OL.22 ARM-based 32-bit MCU STM32F103xx Firmware libraryDB/OL.23 Medium-density performance line ARM-based 32-bit MCU interfacesDB/OL.24 STM32F103xx HandbookEB/OL.