基于STM32定时器产生PWM的研究_第1页
基于STM32定时器产生PWM的研究_第2页
基于STM32定时器产生PWM的研究_第3页
基于STM32定时器产生PWM的研究_第4页
基于STM32定时器产生PWM的研究_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、 基于 STM32 定时器产生 PWM 的研究 作者姓名:111 专业班级:222 指导老师:222 摘要 随着科技水平的提高, ARM 的应用越来越广泛。With the develop of technology, ARM is used in various situations. 旨在对 ARM 的深入学习,论文对 STM32 定时器产生 PWM(脉冲宽度调制)输 出进行了研究。On the intention of study on ARM, timer of STM32 produce pulses PWM (width modulation) is studied in this

2、 paper. PWM 就是某个频率占空比的方波,其应用领域包括测量,通信,功率控制 与变换,电动机控制、伺服控制、甚至某些音频放大器,因此研究 PWM 技术具有十分重要的现实意义。PWM is the square wave which has a sure duty-cycle and frequency. Its application fields include measurement, communication, power control and transform, motor control, servo control, even some audio amplifier

3、. Therefore it is important to research PWM technology. 本设计采用 STM32 定时器产生 PWM。It is easy to use the timer of STM32 to produce PWM output. STM32 的 PWM 由定时器产生,PWM 的周期即定时器定时的时间,通过计算方 波的频率,占空比,配置定时器和 IO 口,最后用示波器显示相应通道占空比的 方波即可。PWM is produced by the timer of STM32. The cycle of PWM is the timers regular

4、 time. By calculating the frequency of square wave, duty-cycle, configuring the timer and IO, then use oscilloscope displayed the PWM. 经对 STM32 开发板的研究学习,通过对 STM32 定时器等的配置,用 示波器显示,完成了 PWM 输出。Based on the STM32, by configuring the timer of STM32, PWM is displayed by oscilloscope. 关键词关键词 STM32,定时器,PWM

5、StudyStudy forfor thethe outputoutput ofof PWMPWM produceproduce byby timertimer ofof STM32STM32 BasedBased onon MDKMDK Abstract: With the development of technology, ARM is used in various situations. On the intention of study on ARM, timer of STM32 produce pulses PWM (width modulation) is studied i

6、n this paper. PWM is the square wave which has a sure duty-cycle and frequency. Its application fields include measurement, communication, power control and transform, motor control, servo control, even some audio amplifier. Therefore it is important to research PWM technology. It is easy to use the

7、 timer of STM32 to produce PWM output. PWM is produced by the timer of STM32. The cycle of PWM is the timers regular time. By calculating the frequency of square wave, duty-cycle, configuring the timer and IO, then use oscilloscope displayed the PWM. Based on the STM32, by configuring the timer of S

8、TM32, PWM is displayed by oscilloscope. KeyKey wordswords: STM32,timer,PWM 目录 第 1 章 前言.5 1.1 ARM 应用背景 .5 1.2 研究内容.6 1.3 研究成果.7 第 2 章 STM32 处理器概述 .8 2.1 STM32 简介 .8 2.2 内部资源.10 2.3 CORTEX-M3 内核简介 .10 2.4 STM32 定时器简介 .12 2.4.1 通用定时器 .12 2.4.2 高级控制定时器 .12 2.4.3 小结.15 第 3 章 PWM 概述 .16 3.1 原理.16 3.1.1 PW

9、M 模式 .16 3.1.2 互补输出与死区插入.19 3.2 PWM 输出的实现 .21 第 4 章 软件设计.22 4.1 开发环境.22 4.1.1 STM32 的开发软件.22 4.1.2 MDK370 .22 4.2 软件实现.23 4.2.1 设计标准 .23 4.2.2 程序流程图 .25 第五章 测试及结果.26 5.1 JTAG 仿真器介绍 .26 5.2 测试.27 5.3 现象及结果.28 结论.31 致谢.32 参考文献.33 ARM 处理器 ADC I/O 接口 键盘 RAM LED 传感器 转换器 LCD DAC EPROM主机 第第 1 章章 前言前言 1.1 A

10、RM 应用背景应用背景 如今,学习一种处理器的就有许多ARM内核的处理器可供使用,现在社会已 步入嵌入式学习阶段。在嵌入式领域,8位处理器已经不再胜任一些复杂的应用, 比如GUI,TCP/IP,FILESYSTEM等,而ARM芯片凭借强大的处理能力和极低的功 耗,非常适合这些场合。现在越来越多的产品在选型的时候考虑到使用ARM处理 器,ARM的应用是相当的广泛。 ARM 的嵌入式控制应用如:汽车、电子设备、保安设备、大容量存储器、调 制解调器、打印机等。一个典型的 ARM 嵌入式工业控制系统的功能模块如图 1- 1 所示。 输入输出 图 1-1 ARM 嵌入式工业控制系统的功能模块 目前已有超

11、过 85的无线通信设备采用了 ARM 技术,ARM 以其高性能和低 成本,在该领域的地位日益巩固。ARM 在此方面的应用如:手提式计算机、移 动电话、PDA 等。 随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此 外,ARM 在语音及视频处理上进行了优化,并获得广泛支持。 ARM 技术在目前流行的数字音频播放器、数字机顶盒、游戏机、数码相机、 数字式电视机、GPS、机顶盒中得到广泛采用。现在流行的数码相机和打印机中 绝大部分采用 ARM 技术,手机中的 32 位 SIM 智能卡也采用了 ARM 技术。如图 1-2 所示是基于 ARM 技术的数码相机的功能模块9。

12、ARM 处理器 LCD 控制器 主机 接口 CCDADC 控制电路和 编码电路 存储器 图 1-2 基于 ARM 技术的数码相机的功能模块 1.2 研究内容研究内容 本设计旨在加深对 ARM 的学习,巩固大学四年所学专业知识,提升动手能 力和思考问题解决问题的能力。本设计选择意法半导体的 STM32F 开发板,通过 对该开发板的研究学习,和对 STM32F103C8T6 芯片的学习,掌握其各种外设功 能。 通过对 TIM1 定时器进行控制,使之各通道输出插入死区的互补 PWM 输出, 各通道输出频率均为 17.57KHz。其中,通道 1 输出的占空比为 50%,通道 2 输 出的占空比为 25

13、%,通道 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。 本文第一章讲述了该论文写作背景,主要阐述了 ARM 应用范畴,以及该论 文研究的内容;第二章讲述了该研究课题使用的开发板的内部资源和开发板核 心芯片 STM32F103C8 的各项参数;第三章着重介绍了 PWM 的原理及实现方法; 第

14、四章介绍了本研究的软件设计模块;第五章介绍了测试方法和结果。 1.3 研究成果研究成果 配置好各通道后, 编译运行工程;点击 MDK 的 Debug 菜单,点击 Start/Stop Debug Session;通过示波器察看 PA.08、PA.09、PA.10、PB.13、PB.14、PB.15 的输出波形,其中 PA.08 和 PB.13 为第一通道和互补通道,PB.09 和 PB.14 为第二通道和其互补通道, PB.10 和 PB.15 为第三通道和其互补通道;第一通道显示占空比为 50%,第二通道 占空比为 25%,第三通道占空比为 12.5%。 第第 2 2 章章 STM32STM

15、32 处理器概述处理器概述 2.12.1 STM32STM32 简介简介24 24 STM32F103xx 增强型系列使用高性能的 ARM/Cortex-M3/32 位的 RISC 内核, 工作频率为 72MHz,内置高速存储器(高达 128K 字节的闪存和 20K 字节的 SRAM), 丰富的增强 I/O 端口和联接到两条 APB 总线的外设。所有型号的器件都包含 2 个 12 位的 ADC 、3 个通用 16 位定时器和一个 PWM 定时器,还包含标准和先进 的通信接口:多达 2 个 I2C 和 SPI、3 个 USART、一个 USB 和一个 CAN。 STM32F103xx 增强型系列

16、工作于-40至+105 的温度范围,供电电压 2.0V 至 3.6V,一系列的省电模式保证低功耗应用的要求。 完整的 STM32F103xx 增强型系列产品包括从 36 脚至 100 脚的五种不同封 装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系 列产品中所有外设的基本介绍。 这些丰富的外设配置,使得 STM32F103xx 增强型微控制器适合于多种应用 场合: 电机驱动和应用控制 ; 医疗和手持设备 ; PC 外设和 GPS 平台; 工业应用:可编程控制器、变频器、打印机和扫描仪 ; 警报系统,视频对讲,和暖气通风空调系统 ; 2.1.12.1.1 STM32F103C

17、8STM32F103C8 的参数的参数 STM32 开发板核心芯片的参数如表 2-1 表表 2-12-1 器件功能和配置器件功能和配置(STM32F103xx(STM32F103xx 增强型增强型) ) 芯片引脚图如图 2-2: 图图 2-22-2 STM32F103xxSTM32F103xx 增强型增强型 LQPFP48LQPFP48 管脚图管脚图 2.22.2 内部资源内部资源 STM32 有丰富的内部资源,如下所示: RealView MDK(Miertocontroller Development Kit)基于 ARM 微控制器 的专业嵌入式开发工具; 内置闪存存储器; 内置 SRAM

18、; 嵌套的向量式中断控制器(NVIC); 外部中断/事件控制器(EXTI); 时钟和启动; 自举模式; DMA ; RTC(实时时钟)和后备寄存器 ; 窗口看门狗; I2C 总线 ; 通用同步/异步接受发送器(USART); 串行外设接口(SPI); 控制器区域网络(CAN) ; 通用串行总线(USB); 通用输入输出接口(GPIO); ADC(模拟/数字转换器) ; 温度传感器; 串行线 JTAG 调试口(SWJ-DP)。 2.32.3 Cortex-M3Cortex-M3 内核简介内核简介 Cortex-M3 内核包含一个适用于传统 Thumb 和新型 Thumb-2 指令的译码器、 一个

19、支持硬件乘法和硬件除法的先进 ALU、控制逻辑和用于连接处理器其他部 件的接口。Cortex-M3 处理器是首款基于 ARMv7-M 架构的 ARM 处理器。中央 Cortex-M3 内核使用 3 级流水线哈佛架构,运用分支预测、单周期乘法和硬件 除法功能实现了出色的效率(1.25DMIPS/MHz) 。Cortex-M3 处理器是一个 32 位 处理器,带有 32 位宽的数据路径、寄存器库和基于传统 ARM7 处理器的系统只 支持访问对齐的数据,沿着对齐的字边界即可对数据进行访问和存储。Cortex- M3 处理器采用非对齐数据访问方式,使非对齐数据可以在单核访问中进行传输。 Cortex-

20、M3 处理器是专为那些对成本和功耗非常敏感但同时对性能要求又 相当高的应用而设计的。凭借缩小的内核尺寸和出色的中断延迟性能、集成的 系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3 处理 器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案。表 2-3 为 Cortex-M3 处理器与 ARM7 作比较。 表表 2-3 Cortex-M3 与与 ARM7 相比较相比较 2.4 STM32 定时器简介定时器简介 2.4.1 通用定时器通用定时器22 22 STM32F103xx 增强型系列产品中内置了多达 3 个同步的标准定时器。每个 定时器都有一个 16 位的

21、自动加载递加/递减计数器、一个 16 位的预分频器和 4 个独立的通道,每个通道都可用于输入捕获、输出比较、PWM 和单脉冲模式输 出,在最大的封装配置中可提供最多 12 个输入捕获、输出比较或 PWM 通道。它 们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接 功能。 在调试模式下,计数器可以被冻结。任一个标准定时器都能用于产生 PWM 输出。每个定时器都有独立的 DMA 请求机制。 2.4.2 高级控制定时器高级控制定时器22 22 高级控制定时器(TIM1)由一个 16 位的自动装载计数器组成,它由一个可 编程预分频器驱动。它适合多种用途,包含测输入信号的脉冲宽(输入

22、捕获), 或者产生输出波形(输出比较,PWM,嵌入死区时间的互补 PWM 等)。 使用定时器预分频器和 RCC 时钟控制预分频器,可以实现脉冲宽和波形 周期从几个微秒至几个毫秒的调节。高级控制(TIM1)和通用(TIMx)定时器是完 全独的,它们共享任何资源,它们可以同步操作。 高级控制定时器(TIM1)可以被看成是一个分配到 6 个通道的三相 PWM 发生 器,它还可以被当成一个完整的通用定时器。四个独立的通道可以用于: 输入捕获 ; 输出比较 ; 产生 PWM(边缘或中心对齐模式) ; 单脉冲输出 ; 反相 PWM 输出,具有程序可控的死区插入功能; 配置为 16 位标准定时器时,它与 T

23、IMx 定时器具有相同的功能。配置为 16 位 PWM 发生器时,它具有全调制能力(0100%)。 在调试模式下,计数器可以被冻结。很多功能都与标准的 TIM 定时器相同, 内部结构也相同,因此高级控制定时器可以通过定时器链接功能与 TIM 定时器 协同操作,提供同步或事件链接功能。 TIM1 定时器的功能包括: 16 位上,下,上/下自动装载计数器 ; 16 位可编程预分频器,计数器时钟频的分频系数为 165535 之间 的任意数值; 4 个独通道: 输入捕获 ; 输出比较; PWM 生成(边缘或中间对齐模式); 单脉冲模式输出 ; 死区时间可编程的互补输出。 使用外部信号控制定时器和定时器

24、互连的同步电; 在指定数目的计数器周期之后更新定时器寄存器; 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态; 如下事件发生时产生中断/DMA: 新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内 部/外部触发); 触发事件(计数器启动,停止,初始化或者由内部/外部触发计数); 输入捕获; 输出比较; 刹车信号输入。 时基单元 可编程高级控制定时器的主要部分是一个 16 位计数器和与其相关的自动 装载寄存器。这个计数器可以向上计数、向下计数或者向上向下双向计数。此 计数器时钟由预分频器分频得到。 计数器、自动装载寄存器和预分频器寄存器可以由软件读写,即使计数器 还在运读写

25、仍然有效。 时基单元包含: 计数器寄存器(TIM1_CNT); 预分频器寄存器 (TIM1_PSC); 自动装载寄存器 (TIM1_ARR); 周期计数寄存器 (TIM1_RCR); 自动装载寄存器是预先装载的。写或读自动重装载寄存器将访问预装载寄 存器。根据在 TIM1_CR1 寄存器中的自动装载预装载使能位(ARPE)的设置,预 装载寄存器的内容被永久地或在每次的更新事件 UEV 时传送到影子寄存器。当 计数器达到溢出条件(向下计数时的下溢条件)并当 TIM1_CR1 寄存器中的 UDIS 位等于 0 时,产生新事件。更新事件也可以由软件产生。随后会详细描述每 一种配置下更新事件的产生。

26、计数器由预分频器的时钟输出 CK_CNT 驱动,仅当设置计数器 TIM1_CR1 寄存器中的计数器使能位(CEN)时,CK_CNT 才有效。(有关多的计数器使能的 细节,请参见控制器的从模式描述)。 注:真正的计数器使能信号 CNT_EN 是在 CEN 后的一个时钟周期后被设置。 预分频器描述 。 预分频器可以将计数器的时钟频按 1 到 65536 之间的任意值分频。它是 基于一个(在 TIM1_PSC 寄存器中的)16 位寄存器控制的 16 位计数器。因为这 个控制寄存器带有缓冲器,它能够在工作时被改变。新的预分频器的参数在下 一次更新事件到来时被采用。 图 2-4 和 图 2-5 给出一些

27、在预分频器工作时,改其参数的情况下计数 器操作的例子。 图图 2-42-4 当预分频器的参数从当预分频器的参数从 1 1 变到变到 2 2 时,计数器的时序图时,计数器的时序图 图图 2-52-5 当预分频器的参数从当预分频器的参数从 1 1 变到变到 4 4 时,计数器的时序图时,计数器的时序图 2.4.3 小结小结 经过比较和针对设计需要,使用定时器预分频器和 RCC 时钟控制预分频器, 可以实现脉冲宽和波形周期从几个微秒至几个毫秒的调节。高级控制(TIM1) 和通用(TIMx)定时器是完全独的,共享任何资源,可以同步操作。 高级控 制定时器(TIM1)还可以被看成是一个分配到 6 个通道

28、的三相 PWM 发生器,它还 可以被当成一个完整的通用定时器。因此该设计选择高级控制定时器(TIM1)。 第第 3 章章 PWM 概述概述 3.1 原理原理 PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简 称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常 有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广 泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机 控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此研究基 于 PWM 技术的正负脉宽数控调制信号发生器具有十分重要的现实意义。 PW

29、M 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的 使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信 号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON), 要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被 加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候 即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。 多数负载(无论是电感性负载还是电容性负载)需要的调制频率高 10Hz,通 常调制频率为 1kHz 到 200kHz 之间。占空比是接通时间与周期之比;调

30、制频率 为周期的倒数。 目前,运动控制系统或电动机控制系统中实现PWM的方法主要有传统的数字 电路方式、专用的PWM集成电路、单片机实现方式和可编程逻辑器件实现方式。 用传统的数字电路实现PWM,电路设计较复杂,体积大,抗干扰能力差,系统的 控制周期较长。专用的PWM集成电路或带有PWM的单片机价格较高。对于单片机 中无PWM输出功能的情况,实现PWM将消耗大量的时间,大大降低了CPU的效率, 而且得到的PWM信号精度不太高15。 3.1.1 PWM 模式模式 脉冲宽调制模式可以产生一个由 TIM1_ARR 寄存器确定频、由 TIM1_CCRx 寄存器确定占空比的信号。在 TIM1_CCMRx

31、 寄存器中的 OCxM 位写入 “110”(PWM 模式 1)或“111”(PWM 模式 2),能够独地设置每个通道工作在 PWM 模式,每个 OCx 输出一路 PWM。必须通过设置 TIM1_CCMRx 寄存器 OCxPE 位使能相应的预装载寄存器,最后还要设置 TIM1_CR1 寄存器的 ARPE 位使能自 动重装载的预装载寄存器(在向上计数或中心对称模式中)。 因为仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存 器,因此在计数器开始计数之前,必须通过设置 TIM1_EGR 寄存器中的 UG 位来 初始化所有的寄存器。 OCx 的极性可以通过软件在 TIM1_CCER 寄存器

32、中的 CCxP 位设置,它可以 设置为高电平有效活和低电平有效。OCx 输出通过 CCxE、CCxNE、MOE、OSSI 和 OSSR 位(在 TIM1_CCER 和 TIM1_BDTR 寄存器中)的组合控制。 在 PWM 模式(模式 1 或模式 2)下,TIM1_CNT 和 TIM1_CCRx 始终在进比 较,(依据计数器的计数方向)以确定是否符合 TIM1_CCRxTIM1_CNT 或者 TIM1_CNTTIM1_CCRx。根据 TIM1_CR1 寄存器中 CMS 位的状态,定时器能够产 生边沿对齐的或中央对齐的 PWM 信号。 PWM 边沿对齐模式 向上计数配置 当 TIM1_CR1 寄

33、存器中的 DIR 位为低的时候执向上计数。 当 TIM1_CNTTIM1_CCRx 时参考信号 OCxREF 为低,否则 为高。如果 TIM1_CCRx 中的比较值大于 TIM1_ARR 中的自动重装载值,则 OCxREF 保持为“1。该模式下能产生 0的 PWM 波形。 PWM 中央对齐模式 当 TIM1_CR1 寄存器中的 CMS 位为 00 时为中央对齐模式(所有其他的配 置对 OCxREF/OCx 信号都有相同的作用)。根据同的 CMS 位的设置,比较标志 可能在计数器向上计数时被置 1、在计数器向下计数时被置 1、或在计数器向 上和向下计数时被置 1。TIM1_CR1 寄存器中的计数

34、方向位(DIR)由硬件新, 要用软件修改它。 图 3-2 给出一些中央对齐的 PWM 波形的子 TIM1_ARR=8 ; PWM 模式 1; TIM1_CR1 寄存器中的 CMS=01,在中央对齐模式 1 时,当计数器向下计 数时标志被设置。21 图图 3-23-2 中央对齐的中央对齐的 PWMPWM 波形波形(APR=8)(APR=8) 3.1.2 互补输出与死区插入互补输出与死区插入 高级控制定时器 TIM1 能够输出两互补信号并且能够管输出的瞬时关 断和接通。这段时间通常被称为死区,应该根据连接到输出的器件和它们的特 性(电平转换的延时、电源开关的延时等)来调整死区时间。 配置 TIM1

35、_CCER 寄存器中的 CCxP 和 CCxNP 位,可以为每一个输出独 地选择极性(主输出 OCx 或互补输出 OCxN)。互补信号 OCx 和 OCxN 通过下控 制位的组合进控制:TIM1_CCER 寄存器的 CCxE 和 CCxNE 位,TIM1_BDTR 和 TIM1_CR2 寄存器中的 MOE、OISx、OISxN、OSSI 和 OSSR 位,带刹车功能的互补 输出通道 OCx 和 OCxN 的控制位。特别的是,在转换到 IDLE 状态时(MOS 下到 0)死区被激活。 同时设置 CCxE 和 CCxNE 位将插入死区,如果存在刹车电,则还要设置 MOE 位。每一个通道都有一个 1

36、0 位的死区发生器。参考信号 OCxREF 可以产生 2输出 OCx 和 OCxN。如果 OCx 和 OCxN 为高有效: OCx 输出信号与参考信号相同,只是它的上升沿相对于参考信号的上 升沿有一个延迟。 OCxN 输出信号与参考信号相反,只是它的上升沿相对于参考信号的 下沿有一个延迟。 如果延迟大于当前有效的输出宽(OCx 或 OCxN),则会产生相应的脉冲。 图 3-3,3-4 显示死区发生器的输出信号和当前参考信号 OCxREF 之间的关系 (假设 CCxP=0、CCxNP=0、MOE=1、CCxE=1 并且 CCxNE=1)。 图图 3-33-3 带死区插入的互补输出带死区插入的互补

37、输出 图图 3-43-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_CH1

38、N 产生一个频 率为 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 占空比

39、= TIM1_CCR3 / (TIM1_Period + 1) = 12.5%。 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 章章 软件设计软件设计 4.1 开发环境开发环境

40、4.1.14.1.1 STM32STM32 的开发软件的开发软件 STM32 自问世至今,采用过如下软件,皆有利弊。 IAR IAR 是 STM32 开发使用最多的软件平台。IAR 官方提供 IAR for ARM 两种 类型的版本供免费评估: 32K 学习版,只能支持编译 32K 目标代码,等效无时 间限制 ;30 天评估版,无编译代码限制。 MDK 自从 keil 被 ARM 收购以后,在 keil 中集成了 ARM 自己的编译器,改名 MDK。 RIDE 该软件支持 GCC 编译器开发 STM32 产品。该套开发板使用 keilmdk370 开发 软件,该软件使用简单,keil 是众多单

41、片机应用开发的优秀软件之一,它集编 辑编译仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面清晰,易 学易懂。 这里选用的是 keilmdk370,4.1.2 节着重介绍。 4.1.24.1.2 MDK370MDK37011 11 Real View MDK(Miertocontroller Development Kit)是 ARM 公司最先推 出的基于 ARM 微控制器的专业嵌入式开发工具。它采用了 ARM 的最新技术编工 具 RVCT,集成了享誉全球的 Vision IDE,因此特别易于使用,同时具备非 常高的性能。它适合不同层次的开发者使用,包括专业的应用程序开发工程师 和

42、嵌入式软件开发的入门者。MDK 包括符合工业标准的 Real View 编译工具、 测试器以及实时内核等组件,支持所有基于 ARM 的设备,能帮助工程师按照计 划完成项目。 MDK 提供启动代码生成向导提高开发效率; MDK 提供强大的设备模拟器缩短开发周期: 目标设备的所有组件都可仿真,代码可在整个设备上运行。完全的目标硬 件仿真,完整的目标,高效指令集仿真,中断仿真,片内外围设备有 ADC, DAC, EBI, Timers ,UART,CAN,I2C,包含外部信号和 I/O。充足的仿真信息,包含 在设备数据库里。 MDK 提供高效的性能开发工具; MDK 支持最新的 Cortex-M3

43、处理器: Cortex-M3 处理器是 ARM 公司推出的最新的针对微控制应用的内核, 提供业界领先的高性能和低成本解决方案,将成为 MCU 应用的热点和主流。 但是目前能支持 Cortex-M3 构架的开发工具很少,包括 SDT,ADS1.2 等多 数开发工具都不支持。MDK 是目前性价比最高的支持 Cortex-M3 处理器的 开发工具。 MDK 集成了 Flash 编程模块; MDK 提供业界最好的 Vision IDE易学易懂。 4.2 软件实现软件实现 4.2.14.2.1 设计标准设计标准 该设计对 TIM1 定时器进行控制,使之各通道输出插入死区的互补 PWM 输出, 各通道输出

44、频率均为 17.57KHz。 I/O 口时钟为固定值 50MHz,PA8、PA9、PA10、PA11 设为推拉模式。 其中,通道 1 输出的占空比为 50%,通道 2 输出的占空比为 25%,通道 3 输 出的占空比为 12.5%。各通道互补输出为反相输出。TIM1 定时器的通道 1 到 4 的输出分别对应 PA.08、PA.09、PA.10 引脚,而通道 1 到 3 的互补输出分别对 应 PB.13、PB.14 和 PB.15 引脚,这些处理器引脚在开发板上已经以插针形式引 出。 由于 TIM1 计数器的时钟频率为 72MHz,各通道输出频率 fTIM1 为 17.57KHz,根据:fTIM

45、1=TIM1CLK/(TIM1_Period + 1),可得到 TIM1 预分频器 的 TIM1_Period 为 0 xFFFF。根据通道输出占空比 TIM1_CCRx/(TIM1_Period + 1),可以得到各通道比较/捕获寄存器的计数值。其中:TIM1_CCR1 寄存器的值 0 x7FFF、TIM1_CCR2 寄存器的值为 0 x3FFF、TIM1_CCR3 寄存器的值为 0 x1FFF。 程序部分原代码: /* Channel 1, 2, 3 and 4 Configuration in PWM mode */ TIM1_OCInitStructure.TIM1_OCMode =

46、TIM1_OCMode_PWM2; TIM1_OCInitStructure.TIM1_OutputState = TIM1_OutputState_Enable; TIM1_OCInitStructure.TIM1_OutputNState = TIM1_OutputNState_Enable; TIM1_OCInitStructure.TIM1_Pulse = CCR1_Val; TIM1_OCInitStructure.TIM1_OCPolarity = TIM1_OCPolarity_Low; TIM1_OCInitStructure.TIM1_OCNPolarity = TIM1_O

47、CNPolarity_Low; TIM1_OCInitStructure.TIM1_OCIdleState = TIM1_OCIdleState_Set; TIM1_OCInitStructure.TIM1_OCNIdleState = TIM1_OCIdleState_Reset; TIM1_OC1Init ( TIM1_OCInitStructure.TIM1_Pulse = CCR2_Val; TIM1_OC2Init ( TIM1_OCInitStructure.TIM1_Pulse = CCR3_Val; TIM1_OC3Init ( 运行过程: (1) 使用 Keil uVisio

48、n3 编译链接工程; (2) 点击 MDK 的 Debug 菜单,点击 Start/Stop Debug Session; (3) 通过示波器察看 PA.08、PA.09、PA.10、PB.13、PB.14、PB.15 的输出波形, 其中 PA.08 和 PB.13 为一组,PB.09 和 PB.14 为一组,PB.10 和 PB.15 为一组。 4.2.24.2.2 程序流程图程序流程图 整个设计程序流程如图 4-1 所示: 否 是 否 是 初始化 TIM1 设置 配置 各通道配置为 PWM 模式 TIM1 计数使能 输出使能 读通道数据 输出 第第 5 章章 测试及结果测试及结果 5.1

49、JTAG 仿真器介绍仿真器介绍11 J-Link 是支持仿真 ARM 内核芯片的 JTAG 仿真器。配合 IAR EWARM,ADS,KEIL,WINARM,RealView 等集成开发环境支持所有 ARM7/ARM9 内 核芯片的仿真,通过 RDI 接口和各集成开发环境无缝连接,操作方便、连接方 便、简单易学,是学习开发 ARM 最好最实用的开发工具。 DQ 电子推出的 J-LinkV7 仿真器采用原版固件,参照原版原理图,经过 DQ 团队的长时间精工制作,板型合理,元件布局美观大方,走线严谨精致,并且 每一个产品都经过功能和老化测试,功能完全与原版一致,支持在线升级。 J-Link ARM

50、 主要特点: 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 连

51、接线和 20 芯 JTAG 连接排线。 支持多 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.2 测试测试 在电脑主机 USB 接口上插入开发板的电源线和 J-LINK 的连接线,同时给示 波器供电,示波器两个通道接线的负接线与开发板 STM32 的 GND 连接,正接线 分别接通道 n(n=1,2,3)和其互补通道。其中

52、,通道 1 到 3 的输出分别对应 PA.08、PA.09、PA.10 引脚,而通道 1 到 3 的互补输出分别对应 PB.13、PB.14、PB.15 引脚。前序工作准备好后,再在 Keil uVision3 环境里 打开 TIM1 的工程,编译连接运行,观察示波器图像,并记录。 5.3 现象及结果现象及结果 通道 1 和其互补通道,频率为 17.57kHz,占空比为 50%,PWM 输出显示如图 5- 1: 图 5-1 通道 1 与其互补通道的 PWM 输出图 通道 2 频率 17.57 kHz,占空比为 25%,其互补通道频率 17.57 kHz,占空比为 75%, PWM 输出显示如图

53、 5-2。 图 5-2 通道 2 与其互补通道的 PWM 输出图 通道 3 频率 17.57 kHz,占空比为 12.5%,其互补通道频率 17.57 kHz,占空比 为 87.5%, PWM 输出显示如图 5-3。 图 5-3 通道 3 与其互补通道的 PWM 输出图 结论结论 通过对 TIM1 定时器进行控制,使之各通道输出插入死区的互补 PWM 输出, 各通道输出频率均为 17.57KHz。 其中,通道 1 输出的占空比为 50%,通道 2 输出的占空比为 25%,通道 3 输 出的占空比为 12.5%。各通道互补输出为反相输出。 TIM1 定时器的通道 1 到 3 的输出分别对应 PA.08、PA.09、PA.10 引脚,而 通道 1 到 3 的互补输出分别对应 PB.13、PB.14 和 PB.15 引脚,将这些引脚分别 接入示波器正接线,GND

温馨提示

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

评论

0/150

提交评论