《基于F2812的PWM波形的产生》由会员分享,可在线阅读,更多相关《基于F2812的PWM波形的产生(9页珍藏版)》请在金锄头文库上搜索。
1、 基于 F2812 的 PWM 波形的产生一、任务具体要求:1) 通过示波器能够观察到 EVA事件管理器的 pwm5、6 输出占空比(占空比是指高电平在一个周期之内所占的时间比率)为 5/6的矩形波,其中 pwm6高电平有效,pwm5 低电平有效;pwm3、4 输出占空比为 1/2的矩形波,其中 pwm4高电平有效,pwm3 低电平有效;pwm1、2 输出占空比为 1/6的矩形波,其中 pwm2高电平有效,pwm1 低电平有效;2)调整相关寄存器的值,修改 PWM 波的频率和占空比。二、任务所需基础知识2.1 什么是 PWM?SPWM?PWM(Pulse Width Modulation)就是
2、脉宽调制技术,即通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和赋值) 。PWM 技术应用非常广泛,在电力电子、电机控制、运动控制以及功率控制与变化等许多领域。F2812 芯片提供的 PWM输出,是一种周期和占空比均可变,幅值为 3.3V的脉宽调制信号。2.2 TMS320F2812简介(1)采用了高性能的静态 CMOS 技术,时钟频率可达 150MHZ(6.67ns) ,其核心电压为 1.8V,I/O 口电压 3.3V, Flash 编程电压也为 3.3V。(2)高性能的 32 位 CPU。能够实现 16 x 16 和 32X32 乘法操作,哈佛总线结构,快速的中断操作,寻
3、址程序空间可达 4M,寻址数据空间可达 4G,在 C/C+和汇编语言中代码可得到优化,另外还可向下兼容 TMS320F24X/LF240X 处理器的代码;(3)片上存储器:闪存 128K 字,单访问双口 RAM(SARAM)18k 字;(4)引导(BOOT)ROM4K 字,具有软件启动模式并包含标准的数学表;(5)时钟和系统控制采用锁相环技术 PLL 来控制系统各模块所需要的频率;(6)具有 3 个外部中断和外围中断扩展模块 PIE(Peripheral Interrupt Expansion),PIE可支持多达 45 个外部中断;(7)具有 3 个 32 位的 CPU 定时器和适合电机控制的
4、事件管理模块 EVA 和 EVB;(8)具有很强的外围通讯功能:包括同步串行口 SPI,通用异步串行口 SCI,增强的eCAN 和多通道缓存串行口 MCBSP;(9)16 个通道、12 位精度的 A/D 转换器。(10)56 个独立可编程的多路通用输入/输出(GPIO)引脚。2.3 TMS320F2812 事件管理器模块介绍TMS320F2812 包含两个事件管理器(EV)模块 EVA 和 EVB,这两个 EV 模块具有相同的功能,每个事件管理器模块包括 2 个 16 位通用定时器 (GP)、 3 个全比较 PWM 单元、 1 个正交编码电路以及 3 个捕获单元,具体见图 1.GP1 定时器能
5、可以为所有的比较和 PWM 电路提供时基,这些比较单元通过可编程死区电路可以产生 6 个比较输出或者 PWM 波形输出,6 个输出中的任何一个输出状态都可单独设置。比较单元的比较寄存器是双缓冲的,允许可编程的变换比较/PWM 脉冲宽度;双缓冲的周期和比较寄存器允许用户根据需要对定时器(PWM)的周期和脉冲宽度进行编程。图 1 事件管理器 A的功能模块图(1)可编程通用定时器。 可用于产生采样周期,作为比较单元产生 PWM 输出以及软件定时的时基。在向上或向下记数操作中,每个通用定时器有 3 种连续工作方式,具有可编程预定标器的内部或外部输入时钟。通用定时器也可为其他事件管理器子模块提供时基;双
6、缓冲的周期和比较寄存器允许用户根据需要对定时器(PWM)的周期和脉冲宽度进行编程。通用定时器可独立工作或互相同步工作,与通用定时器有关的比较寄存器可用作比较功能和 PWM 波形的产生。(2)全比较单元。主要用来生成 PWM 波形,每个比较单元可以生成一对(两路)互补的 PWM 波形,生成的 6 路 PWM 波形正好可以驱动一个三相桥电路。F2812 的两个事件管理器可产生 16 路独立 PWM 信号。由 3 个具有可编程死区的全比较单元产生独立的 3对 PWM 信号,由通用定时器比较单元产生独立的两路 PWM 信号。对每一个比较单元输出,死区的产生可单独被使用/ 禁止。利用双缓冲的 ACTRx
7、 寄存器,死区产生器的输出状态可以被高速配置及改变。(3)正交解码电路。 正交编码脉冲(QEP)电路可以对引脚 CAP1/QEP1 和 CAP2/QEP2上的正交编码脉冲进行解码和计数,可以直接处理光电码盘的 2 路正交编码脉冲进行鉴相和 4 倍频。另外,F2812 允许引脚 CAP-QEPI(EVA 的 CAP3-QEPI1 和 EVB 的 CAP6-QEPI2)复位定时器 2。(4)捕获单元。用于捕获输入引脚上信号的跳变,两个事件管理器模块共有 6 个捕获单元。每个单元各有一个两级的 FIFO 缓冲堆栈。当捕获发生时,相应的中断标志被置位,并向 CPU 发中断请求。注:1)PWM 可以由通
8、用定时器和全比较单元来产生,其中全比较单元产生 6路 PWM,每个定时器产生一路 PWM;2)在本次实训的 PWM波形产生过程中并不会涉及到正交编码电路以及捕获单元。1.3.1 生成对称和非对称 PWM信号的条件1、全比较单元非对称 PWM信号产生条件:1)将 T1或 T3设置为连续增计数模式;2)装载周期寄存器=PWM 载波周期的数;3)COMCONA/B 配置成使能比较操作,使能 PWM输出引脚。4)如果死区使能,设置死区时间值(DBTCONA/B 的 11-8位);5) 适当地配置比较方式寄存器 ACRTA/B。 图 2 定时器连续增模式下比较单元的非对称 PWM 波形对称 PWM信号产
9、生条件:1)将 T1或 T3的设置为连续增/减计数模式;2)装载周期寄存器=PWM 载波周期的数;3)COMCONA/B 配置成使能比较操作,使能 PWM输出引脚。4)如果死区使能,设置死区时间值(DBTCONA/B 的 11-8位);5) 适当地配置寄存器 ACRTA/B。 对称 PWM波形比非对称 PWM波形的优越之处在于它存在有两个相同长度的非激活区(无效区),这两个区分别位于 PWM波形的起始和结束处。 图 3 定时器连续增/减模式下比较单元的对称 PWM 波形2 定时器单元 图 4 定时器连续增模式下定时器单元的非对称 PWM 波形图 5 定时器连续增模式下定时器单元的对称 PWM
10、波形定时器 PWM信号产生条件:1)将定时器设置为连续增计数或连续增/减计数模式;2)装载周期寄存器=PWM 载波周期的数;3)GPTCONA/B 寄存器中相应位配置成使能比较操作、计数方向、使能定时器 PWM输出引脚。4)TxCON 设置计数模式,比较使能以及定时器使能等。注意:前面提及的两种产生对称和非对称 PWM 波形之间的区别,一是产生的模块不同一个是全比较单元,另外一个是定时器比较器;二是全比较单元产生的 PWM 波形可以根据需要带死区控制,而定时器产生的不带死区控制;2.3.2 通过全比较单元产生 PWM 信号的相关设置:与全比较单元相关的 PWM电路如下图:图 6 全比较单元结构
11、框图1)比较操作模式- 由比较控制寄存器(COMCONx)相关位决定2 )EV 定时器的计数值 TxCNT不断与比较寄存器的值进行比较,当发生匹配时,比较单元的两个引脚的输出电平按照方式控制寄存器 ACTRA(或 ACTRB)控制的位进行跳变。 匹配时,若比较被使能,则比较匹配中断标志位被置位,这时若中断没有被屏蔽,则会产生外设中断请求,且输出跳变的时序。3)比较单元操作的寄存器配置步骤: 将 I/O口设置为 PWM引脚模式; 设置和装载比较动作寄存器 ACTRA/B,决定 PWM输出的极性; 若死区使能,则设置和装载死区控制寄存器 DBTCONA/B,以决定死区的大小; 设置和装载 TxPR
12、寄存器,以决定 PWM波形的周期; 初始化比较周期寄存器 CMPRx,设置和装载比较控制寄存器 COMCONA/B; 根据需要设置和装载 TxCON寄存器,来启动比较操作; 如果需要更改占空比,则更新 CMPRx寄存器的值,使输出的 PWM波形的占空比发生变化。2.3.3 通过通用定时器产生 PWM 信号的相关设置:图 7 通用定时器功能模块框图从上面得定时器功能结构图可以看出,定时器要产生 PWM 信号,需要对以下的相关寄存器进行设置:周期寄存器 TxPR,比较寄存器 TxCMPR,控制寄存器 TxCON,计数器寄存器 TxCNT 以及全局定时器控制寄存器 GPTCONA/B.通用定时器输出
13、 PWM波形的初始化过程: 将 I/O口设置为 PWM引脚模式设置通用定时器控制寄存器 GPTCONA/B,设定各个定时器的计数方向,比较输出是否允许以及输出引脚极性。 根据 PWM波形的周期设置 TxPR; 设置 TxCON确定各组定时器的工作方式,包括计数模式、时钟源选择、时钟预定标因子、比较操作是否使能以及对比较寄存器和周期寄存器的控制。 根据 PWM脉宽占空比设置 TxCMPR. 新的占空比需要新的比较值,比较寄存器的值根据脉宽的要求不断更新。 定时器一旦触发(TxCON.TENABLE=1) ,时钟立即送入计数寄存器 TxCNT进行计数,如果TxCON.TCOMPOE=1,即使能定时
14、器的比较输出,在 TxCNT=TxCMPR时会从 TxPWM引脚输出方波2.3.4 PWM输出的占空比计算1)、定时器计数方式配置为连续增/减方式。假设 PWM的引脚输出为高电平有效,比较寄存器的值为 TxCMPR,周期寄存器的值为TxPR,正常时有 0TxCMPRTxPR,通用定时器的工作模式为连续增/减方式。由于在一个周期内会发生两次比较匹配事件,如果两次比较值相同,则会产生对称的 PWM波形。由于连续增/减计数模式的脉冲周期为 T=2TxPR,而有效电平时间为:t1=(TxPR - TxCMPRup) + (TxPR - TxCMPRdown)个计数脉冲,其中,TxCMPRup 为第一次
15、比较匹配值,TxCMPRdown 为第二次比较匹配值,故PWM输出波形的占空比为:q=t1/T=(2TxPR - TxCMPRup - TxCMPRdown)/( 2TxPR)在两次比较匹配值相等时(即 TxCMPRup= TxCMPRdown时),PWM 输出的占空比为:q= t1/T=(TxPR - TxCMPR)/TxPR2)、定时器计数方式配置为连续递增计数模式。假设 PWM的引脚输出为高电平有效,比较寄存器的值为 TxCMPR,周期寄存器的值为TxPR,正常时有 0TxCMPRTxPR,通用定时器的工作模式为连续增方式。比较寄存器中的值代表了从计数周期开始到第一次匹配发生之间花费的时
16、间(即无效相位的长度) ,这段时间等于定标的输入时钟周期乘以 TxCMPR寄存器的值。因此,有效电平长度就等于:t1=(T x P R -(TxCMPR)1)个定标的输入时钟周期,也就是输出脉冲的宽度。故 PWM输出波形的占空比为:q=t1/T=(TxPR TxCMPR + 1)/TxPR注意:1)如果是采用全比较单元生成 PWM信号,则上面的占空比的技术中使用的是 CMPRx寄存器中设置的值;2)上面的计算是假设 PWM的输出引脚为高电平有效,如果是设置为低电平有效,则占空比的计算公式需要做出相应的改变。三、任务一实现的基本步骤:1、结合学习前面的 F2812 PWM 波形产生的相关知识分析任务要求;2、根据提供的相关头文件,.c 源文件以及链接器命令文件.cmd 建立该任务的工程