DSP课件第九章TMS320LF240 x片内外设.ppt_第1页
DSP课件第九章TMS320LF240 x片内外设.ppt_第2页
DSP课件第九章TMS320LF240 x片内外设.ppt_第3页
DSP课件第九章TMS320LF240 x片内外设.ppt_第4页
DSP课件第九章TMS320LF240 x片内外设.ppt_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章 TMS320LF240 x片内外设,9.1 看门狗(WD)定时器模块,看门狗(WD)定时器模块用来监视软件和硬件操作,在软件进入一个不正确的循环或者CPU出现暂时性异常时,WD定时器溢出以产生一个系统复位。大多数芯片的异常操作和CPU非正常工作的情况都能通过看门狗的功能清除和复位。因此看门狗的监视功能可增强CPU的可靠性,以确保系统运行的安全和稳定。,1、 看门狗(WD)定时器模块的结构,看门狗(WD)定时器模块的结构如下图所示。WD模块的所有寄存器都是8位长,该模块与CPU的16位外设总线的低8位相连。 看门狗定时器的时钟(WDCLK)是一个低频时钟,由CPU的CLKOUT产生。当C

2、PU处于低功耗模式IDLE1和IDLE2时,仍能保证看门狗继续计数。仅当看门狗使能时,WDCLK才有效。WDCLK的频率由下式计算: WDCLK=(CLKOUT)512 当CLKOUT=40MHz时,WDCLK=78125Hz是一个典型值。 除HALT低功耗模式外,无论片内任一寄存器的状态如何。WDCLK都将使能WD定时器功能。,WD模块的结构框图,WD模块有3个控制寄存器对其进行控制和管理: (1)WD计数寄存器(WDCNTR)地址7023h 8位WD计数寄存器存放WD计数器的当前值D7D0。WDCNTR是一个只读寄存器,复位后为0,写寄存器无效。由预定标器的输出提供计数时钟。 (2)WD复

3、位关键字寄存器(WDKEY)地址7025h 当55h及紧接其后的AAh(复位关键字)写入WDKEY时,将清除WDCNTR。其他任何值的结合写入或写入任何值都不能清除WDCNTR。 8位WDKEY是一个可读写寄存器,复位后为0。读该寄存器WDKEY并不返回最近的关键字值,而是返回WDCR的内容。 (3)WD定时器控制寄存器(WDCR)地址7029h 8位WDCR用来存放看门狗配置的控制位。,2、 看门狗(WD)定时器的操作,(1)、WD计数器(WDCNTR)溢出或向WD复位关键字寄存器(WDKEY)写入一个不正确的值 当系统正常工作时,WD计数器WDCNTR以WD控制寄存器所选的速率进行增计数,

4、在WDCNTR溢出前,只要给复位关键字寄存器WDKEY写入一个正确值(先写入55h,紧接着写入AAh)就可以使WDCNTR清0,即从0开始计数而不会产生溢出。 当系统不正常时,也就不能给WDKEY写入正确值使WDCNTR清0,则WDCNTR将计满溢出,并在一个WDCLK(或用WDCLK除以预定标因子)时钟后发生系统复位操作。 任何其他次序的写入55h和AAh值或写入其他值都不能使WDCNTR清0,从而使系统复位。,(2)、使用WD检查位 WD定时器控制寄存器(WDCR)的检查位(WDCHK2WDCHK0)一直和一个二进制常量101相比较。如果WD检查位与这个值不匹配,就会产生一个系统复位。所以

5、一旦软件执行了错误的WDCR写操作或一个外部激励干扰(例如电压尖峰或其他干扰源)破坏了WDCR的内容,即除101以外的任何值写到WDCR的D5D3位都会产生一个系统复位。 注意,向WDCR写入值时必须包括写到D5D3的值101。 当系统上电复位时,看门狗就被使能。WD定时器被缺省为最快的WD速率。一旦复位由内部释放,CPU就开始执行程序,同时WD定时器就开始计数。因此为了避免过早发生复位,应在程序刚开始时就对WD进行配置。,9.2 数字输入/输出(I/O)模块,LF240 x采用哈佛结构,有3个独立的空间:程序空间、数据空间和I/O空间。3个空间对外共用一个16位地址总线和一个16位数据总线,

6、并以3个片选线、和区分不同空间。其中,I/O空间可接外部设备,是LF240 x与外部设备联系的接口。 数字I/O模块也具有连接外部设备的功能,是LF240 x除I/O空间外另一个与外部设备联系的接口。 LF240 x有41个数字I/O口,其中绝大多数具有另一功能,“另一功能”都是SCI、SPI等片内外设模块的功能引脚。数字I/O口是第二功能。,LF240 x有41个数字I/O口,所有这些共享引脚的功能可通过数字I/O模块中的9个16位控制寄存器来控制。 控制寄存器可以分为两类。 (1) I/O复用控制寄存器(MCRx,x=A,B,C) 控制两种功能的选择。 (2)数据和方向控制寄存器(PxDA

7、TDIR,x=A,B,C,D,E,F) 当引脚作为通用I/O时,用来控制选择各I/O引脚的数据方向(输入还是输出)和当前引脚对应的电平(高或低)。读通用I/O引脚的电平或向引脚输出电平,实际上是对相应的寄存器(PxDATDIR)进行读写操作。,I/0复用控制寄存器用来控制多路选择器,选择功能复用引脚是作为特殊功能(MCRx.n=1)还是通用I/0功能(MCRx.n=0)。,1、I/O复用控制寄存器,2、数据和方向控制寄存器,1、端口A数据和方向控制寄存器 (PADATDIR) 地址7098h D15D8 AnDIR定义IOPAn(n:70)引脚的方向和电平。 0 定义对应的引脚IOPA7IOP

8、A0为输入。 1 定义对应的引脚IOPA7IOPA0为输出。 D7D0 IOPAnI/O引脚名(n:70)。 如果AnDIR=0即引脚IOPAn(n:70)为输入时, 0 对应的I/O引脚输入的值为低电平。 1 对应的I/O引脚输入的值为高电平。 如果AnDIR=1即引脚IOPAn(n:70)为输出时, 0 设置相应的引脚使其输出为低电平。 1 设置相应的引脚使其输出为高电平。,3、程序举例,.title “240 xAGPIO” .data;装载到数据区300h b0.word 0FFFEh;通用I/O端口的DO位为0 b1.word0FFFDh;通用I/O端口的D1位为0 b2.word0

9、FFFBh;通用I/O端口的D2位为0 b3.word0FFF7h;通用I/O端口的D3位为0 b4.word0FFEFh;通用I/O端口的D4位为0 b5.word0FFDFh;通用I/O端口的D5位为0 b6.word 0FFBFh;通用I/O端口的D6位为0 b7.word 0FF7Fh;通用I/O端口的D7位为0 GPR0.word 0;通用目的寄存器 .include 240 xA.h .def _c_into .text _c_into:LDP #0h;设置DP=0 SETCINTM;禁止中断,(1)IOPx0 IOPx7(x=A、B、C、E、F)轮流设置低电平输出,SETCCNF

10、 SPLK#0000h,IMR;屏蔽所有中断 LACCIFR;读中断标志 SACLIFR;清所有中断标志 LDP#00E0h SPLK#0000h, SCSR1 SPLK#006Fh,WDCR;禁止WD LDP#6h;设置DP=6h,则地址为300h37Fh SPLK#0h,GPR0;为外部地址空间设置等待状态 OUTGPR0,WSGR LDP#00E1h;设置DP=E1h,则地址为7080h70FFh SPLK#00000h,MCRA;定义IOPAn和IOPBn作为通用I/O引脚 SPLK#0FF00h,MCRB;定义IOPCn作为通用I/O引脚 SPLK#00000h,MCRC;定义IOP

11、En和IOPFn作为通用I/O引脚 SPLK#0FFFFh,PADATDIR;所有引脚均配置为输出并置为高电平 SPLK#0FFFFh,PBDATDIR SPLK#0FFFFh,PCDATDIR SPLK#0FFFFh,PEDATDIR SPLK#0FFFFh,PFDATDIR,MAIN:LDP #0 LARAR0,#300h;300h单元的内容(位模式:FFFEh)送; AR0 LARAR1,#7;ARl是计数器 LOOP:MAR*,AR0;下次辅助寄存器为AR0 LACC*+,AR2;装载位模式到累加器,AR0=301h,下次 ;辅助寄存器为AR2 LDP#00E1h SACLPADATD

12、IR;输出同样的位模式到所有的通用I/O口 SACL PBDATDIR SACL PCDATDIR SACL PEDATDIR SACL PFDATDIR CALLDELAY;在每个模式间延时 MAR*,AR1;检查是否所有的8个位模式己被输出引脚;轮流被置为低),若没有则继续 BANZLOOP BMAIN;循环输出,DELAY: LARAR2,#0FFFFh;延时子程序 D_LOOP:RPT#0FFh NOP BANZD_LOOP RET PHANTOM KICK_DOG;复位WD计数器 BPHANTOM .end,void sys_ini() asm( setc INTM); asm( c

13、lrc SXM); asm( clrc OVM); * WDCR=0 x00E8; * SCSR1=0 x0000; ,void IOPort_Initializing() * MCRA=0 x0FFF; *PBDATAIR=PBDATAIR|0 x0F000; ,(2)IOPB端口4个LED循环显示,#include “exp4_2407.h” unsigned int led; void main(void) unsigned int i; unsigned int k; sys_ini(); IOPort_Initializing() led=0 x0080; while(1) for(

14、i=0;i1 if(led=0 x0008) led=0 x0080; ,9.3 事件管理器(EV)模块,TMS320LF240 xA提供了两个事件管理器EVA和EVB模块,用于运动控制和电机控制。每个事件管理器模块都含有: (1)两个16位通用可编程定时器GPtimer1,GPtimer2。 (2)3个全比较单元和与之对应的脉宽调制电路PWM。 (3)3个捕获单元CAP。 (4)正交编码脉冲(QEP)电路。 (5)中断逻辑。,9.3.1 通用定时器,DSP事件管理器EVA和EVB内部均有两个通用定时器(GPT),EVA中为通用定时器1(GPT1)和通用定时器2(GPT2);EVB中为通用定时

15、器3(GPT3)和通用定时器4(GPT4),计数范围为065535。每个通用定时器可以各自独立工作,也可以相互同步工作。16位的全局通用定时器控制寄存器GPTCONA(EVA中)和GPTCONB(EVB中)用来规定这4个通用定时器在不同定时器事件中所采取的操作,并记录它们的计数方向。,每个通用定时器包括: (1)一个16位可读写的定时器计数器TxCNT(x=1,2,3,4)。 (2)一个16位可读/写的定时器比较寄存器TxCMPR(x=1,2,3,4)。 (3)一个16位可读/写的定时器周期寄存器TxPR(x=1,2,3,4)。 (4)一个16位可读写的定时器控制寄存器TxCON(x=1,2,

16、3,4)。 (5)一个通用定时器比较输出引脚TxCMP/TxPWM(x=1,2,3,4)。 (6)用于内部或外部时钟输入的可编程定标器。 (7)控制和中断逻辑。,1、通用定时器中的寄存器 (1)全局通用定时器控制寄存器A/B(GPTCONA/B)映射地址7400h/7500h D15Reserved保留位。 D14T2STAT/T4STAT通用定时器2/4的计数状态,只能读。 0 减计数。 1 增计数。 D13T1STAT/T3STAT通用定时器1/3的计数状态,只能读。 0 减计数。 1 增计数。 D12D11 Reserved保留位。 D10D9T2TOADC/T4TOADC设置通用定时器

17、2/4启动模数转换事件。 00 不启动模数转换。 01 下溢中断标志启动。 10 周期中断标志启动。 11 比较中断标志启动。,D8D7T1TOADC/T3TOADC-设置通用定时器1/3启动模数转换事件。 00 不启动模数转换。 01 下溢中断标志启动。 10 周期中断标志启动。 11 比较中断标志启动。 D6TCOMPOE比较输出允许,电源驱动保护中断PDPINTA/B有效时,向该位写0。 0 禁止所有通用定时器比较输出(比较输出都置成高阻态)。 1 使能所有通用定时器比较输出。 D5D4Reserved保留位。 D3D2T2PIN/T4PIN设置通用定时器2/4比较输出极性。 00 强制

18、为低电平。 01 低电平有效。 10 高电平有效。 11 强制为高电平。 D1D0T1PIN/T3PIN设置通用定时器1/3比较输出极性。 00 强制为低电平。 01 低电平有效。 10 高电平有效。 11 强制为高电平。,(2)通用定时器控制寄存器TxCON(x=1,2,3,4) D15D14 FREE,SOFT仿真控制位。 00 仿真悬挂时立即停止。 01 仿真悬挂时在当前定时器周期结束后停止。 1x 操作不受仿真悬挂的影响。 D13 Reserved保留位。 D12D11 TMODE计数模式选择。 00 停止/保持。 01 连续增/减计数模式。 10 连续增计数模式。 11 定向增/减计

19、数模式。 D10D8 TPS输入时钟预定标系数。(设x=CPU时钟频率) 000 x/1 001 x/2 010 x/4 011 x/8 100 x/16 101 x/32 110 x/64 111 x/128 D7 T2SWTl/T4SWTl通用定时器2(EVA)或定时器4(EVB)使能选择位。 0 使用自己的寄存器使能位。 1 使用SELT1PR(EVA)或SELT3PR(EVB)作为周期寄存器,而忽略自身 的周期寄存器。,(3)通用定时器计数器TxCNT(x=1,2,3,4) 每个通用定时器都有一个计数器,其映射地址为:T1CNT7401h,T2CNT7405h, T3CNT7501h,

20、T4CNT7505h。 计数器的初值可以是0000hFFFFh中的任意值。通用定时器中的计数器用来存放开始计数时的初值,当进行计数时存放当前计数值。 计数器可以进行增1或减1计数,由控制寄存器TxCON的D12D11确定其计数模式。,(4)比较寄存器TxCMPR(x=1,2,3,4) 每个通用定时器都有一个比较寄存器,其映射地址为:T1CMPR7402h,T2CMPR7406h,T3CMPR7502h,T4CMPR7506h。 通用定时器中的比较寄存器TxCMPR存放着与计数器TxCNT进行比较的值。如果设置控制寄存器TxCON中的D1位为1,即允许比较操作,则当计数器的值计到与比较寄存器值相

21、等时产生比较匹配,从而将有以下事件发生: (1)EVA/EVB中断标志寄存器中相应的比较中断标志位在匹配后的一个CPU时钟周期后被置位。 (2)在匹配后的一个CPU时钟周期后,根据全局通用定时器控制器GPTCONA/B中的D3D2或D1D0位的配置,相应地比较输出TxPWM引脚将发生跳变。 (3)当全局通用定时器控制寄存器GPTCONA/B的D10D9或D8D7位设置为由周期中断标志启动模数转换ADC时,模数转换被启动。 (4)如果比较中断未被屏蔽,则产生一个外设中断请求。,(5)周期寄存器TxPR(x=1,2,3,4) 每个通用定时器都对应一个周期寄存器,其映射地址为:T1PR7403h,T

22、2PR一一7407h,T3PR7503h,T4PR7507h。 周期寄存器的值决定了定时器的周期,当定时器的计数值与周期寄存器的值相等时产生周期匹配,此时通用定时器停止操作并保持当前计数值,然后根据计数器的计数方式执行复位操作或递减计数。 每个比较寄存器和周期寄存器都有一个暂存单元(称为影子寄存器)存放它们的新值,任何时刻都可对比较寄存器和周期寄存器写入新的比较值或周期值,这些新值被存放在影子寄存器中。对比较寄存器,仅当由控制寄存器TxCON规定的定时事件发生时,才能装入新值;对周期寄存器,仅当计数寄存器TxCNT为0时,才能装入新值。之后,被装载新值的寄存器按新的设置工作,从而改变了下一个周

23、期的定时器周期和PWM脉冲宽度。,2、通用定时器的中断和仿真中断 通用定时器在模块EVA和EVB的中断标志寄存器EVAIFRA,EVAIFRB,EVBIFRA,EVBIFRB中有16个中断标志。 每个通用定时器可根据以下4种事件产生中断: 上溢定时计数器的值达到FFFFh时,产生上溢事件中断。此时标志寄 存器中的TxOFINF位(x=l,2,3,4)置1。 下溢定时计数器的值达到0000h时,产生下溢事件中断。此时标志寄 存器中的TxUFINF位(x=1,2,3,4)置1。 比较匹配当通用定时计数器的值与比较寄存器的值相等时, 产生定时 器比较匹配事件中断。此时标志寄存器中的TxCINT位(x

24、=1,2, 3,4)置1。 周期匹配当通用定时计数器的值与周期寄存器的值相等时, 产生定时 器周期匹配事件中断。此时标志寄存器中的TxPINT位(x=1,2, 3,4)置1。,(1)停止保持模式 通用定时器的操作停止,定时器的计数器、比较输出和预定标计数器均保持当前状态。,3、通用定时器的计数操作,如果设定计数器的初值(0000hFFFFh中的任意值)大于周期寄存器的值,则计数器进行加1计数至FFFFh后置上溢中断标志:再加1计满为0后,从0开始继续计数直到等于周期寄存器的值,此时产生周期匹配,并设置周期中断标志和下溢中断标志,且计数器复位为0;然后再从0开始继续计数(好像初值为0一样),直到

25、等于周期寄存器的值,重复上述操作。 如果设定计数器的初值小于周期寄存器的值,则计数器从初值开始加1计数直到等于周期寄存器的值,然后复位为0,再从0开始计数,同时设置周期中断和下溢中断标志,重复上述操作。,(2)连续增计数模式,例7.3 连续增计数模式的初始化编程。设置通用定时器1在该模式下工作,其计数器初始值为0,周期寄存器值为3。(计数器波形为图7.18中点划线的右半部分) LDP #DP_EVA ;装入数据页面指针,指向7400h7480h单元 SPLK #01h,GPTCONA ;允许定时器比较输出且低电平有效 SPLK #3h,T1PR ;设置周期寄存器的值为3 SPLK #2h,T1

26、CMPR ;设置比较寄存器的值为2 SPLK #0h,T1CNT ;设置计数初值为0 SPLK #174Eh,T1CON ;设置连续增计数模式,输入时钟为CPU ;时钟的128分频,定时器计数使能,输入 ;时钟为内部CPU时钟,定时器比较使能,通用定时器在定标的输入时钟上升沿开始计数,计数方向由输入引脚TDIRMB确定:引脚为高时,进行增计数,增计数与连续增计数模式完全相同:引脚为低时,进行减计数,从初值(0000hFFFFh中的任何值)开始减计数直到计数值为0,此时如果TDIRA/B引脚仍保持为低,定时器的计数器将重新装入周期寄存器的值,开始新的减计数。 读GPTCONA/B寄存器中的D14

27、和D13位,可以监测定时器的计数方向。 周期下溢和上溢中断的产生方式与连续增计数模式相同,定向增减计数模式的初始化编程与连续增计数模式方法相同。仅TxCON寄存器的TMODE为11。,(3)定向增/减计数模式,(4)连续增/减计数模式,连续增/减计数模式与定向增/减计数模式基本相同。区别是:计数方向不受引脚TDIRA/B的状态影响,而是在计数值达到周期寄存器的值时或FFFFh(初值大于周期寄存器的值)时,才从增计数变为减计数;在计数值为0时,从减计数变为增计数。,4、通用定时器的输入和输出信号,(1)时钟输入,通用定时器的时钟源可采用内部时钟或外部时钟输入TCLKINA/B,或正交编码器脉冲电

28、路QEP,由每个通用定时器的控制寄存器TxCON的D5D4位选择决定,并通过D10D8位选择8种输入时钟的预定标系数。 当使用外部时钟时,要求其最大频率是CPU时钟频率的1/4。 在定向增/减计数器模式下,EVA模块中的通用定时器2和EVB中的 通用定时器4可用于正交编码脉冲(QEP)电路,此时正交编码脉冲电路不仅为定时器2/4提供时钟,而且还提供输入方向。,(2)方向输入,当通用定时器处于定向增/减计数模式时,输入引脚TDIRA/B决定了计数的方向:TDIRA/B为高电平时,规定为增计数;为低电平时,规定为减计数。 读全局控制寄存器GPTCONA/B的TxSTAT位可检查通用定时器的计数方向

29、状态。,(3)比较输出,每个通用定时器都可以独立地提供一个PWM输出通道。所以通用定时器可提供4个PWM输出TxPWM(或称比较输出TxCMP,x=1,2,3,4)。 比较输出引脚TxPWM由全局通用定时器控制寄存器GPTCONA/B的D3D2位和D1D0位规定为强制高、强制低、高有效或低有效。 强制高/低若GPTCONA/B的相应位规定PWM输出为强制高/低后,输出引脚TxPWM立即变为高电平/低电平。 高有效/低有效若GPTCONA/B的相应位规定PWM输出为高有效/低有效后,则可以产生非对称或对称波形:,当通用定时器工作在连续增/减计数模式时,产生对称波形;当通用定时器工作在连续增计数模

30、式时,产生非对称波形。PWM输出在以下事件的影响下发生变化: (1)计数操作开始前,输出引脚TxPWM保持无效状态。 (2)当第一次比较匹配发生时,输出引脚TxPWM跳变为有效状态,同时产生触发。 (3)如果通用定时器工作在连续增/减计数模式,则在第二次比较匹配时TxPWM变为无效状态,并一直保持到下一个周期的第一次比较匹配发生。如下图所示,该波形称为对称波形。,连续增/减计数模式下的比较输出(TxPWM),如果通用定时器工作在连续增计数模式,则在周期匹配时TxPWM变为无效状态,并一直保持到下一个周期的比较匹配发生。如下图所示,该波形称为非对称波形。,连续增计数模式下的比较输出(TxPWM)

31、,(4)如果比较值在一个周期开始时为0,则在整个周期PWM输出为有效状态; 如果下一周期比较值仍为0,则PWM输出将不再改变,继续保持有效状态; 如果比较值大于或等于周期值,则在整个周期PWM输出为无效状态,直到比较值小于周期值并发生比较匹配时,PWM输出才发生跳变。 在连续增/减计数模式下的比较输出图中,比较寄存器在增计数和减计数模式下可以有不同的值,所以TxPWM输出的有效相位长度Ta可由下式计算: Ta =(TxPR)- (TxCMPR)up+(TxPR)- (TxCMPR)dn*Tc,在连续增计数模式下的比较输出图中,TxPWM输出的有效相位长度Ta和无效相位长度Ti由下式计算: Ta

32、=(TxPR)-(TxCMPR)+1*Tc Ti =(TxCMPR)* Tc 式中,TxPR为周期寄存器的值;(TxCMPR) 为连续增/减计数模式下增计数的比较值(TxCMPR)dn为连续增/减计数模式下减计数的比较值;(TxCMPR)为连续增计数模式下的比较值;Tc为定标输入时钟周期。 可见,输出信号的跳变时间由比较寄存器的值决定,改变比较寄存器中的值就可以改变TxPWM输出脉冲的宽度。,同一模块的通用定时器可以实现同步。即EVA模块中定时器2和1可以同步:EVB模块中定时器4和3可以实现同步。方法如下: (1)置T1CON(EVA模块)或T3CON(EVB模块)寄存器中的TENABLE位

33、为1,且置T2CON(EVA)中的T2SWT1或T4CON(EVB)寄存器中的T4SWT3位为1,此时将同时启动本模块中的两个计数器。 (2)在启动同步操作前,可将本模块的两个计数器初始化成不同的值。 (3)置T2CON/T4CON寄存器中的SELT1PR/SELT3PR位为10使通用定时器1/3的周期寄存器也作为通用定时器2/4的周期寄存器(而忽略2/4自身的周期寄存器)。,5、通用定时器的同步,该程序检查EVA中定时器1的操作。定时器的模式为连续增/减计数,x/128。输出对应于上溢、下溢、比较、周期中断进入相应的中断服务程序SISR2x中,使通用I/O引脚IOPB0(上溢时),IOPB1

34、(下溢时),IOPB2(比较匹配发生时),IOPB3(周期匹配发生时)相继输出高电平。,6、通用定时器程序举例(程序名为EV _T1INT.asm),.include“240 xA.h”;变量和寄存器说明 .include“240 xA vector.h”;矢量标志说明 .def_c_into .text _c_into:LDP#0h;设置DP=0 SETCINTM;禁止中断 SPLK#0000h,IMR;屏蔽所有核心中断 LACCIFR;读中断标志 SACLIFR;清所有中断标志 LDP#00E0h;设置DP=E0h,外设页面 SPLK#0004h,SCSR1;为EVA模块打开时钟 SPLK

35、#006Fh,WDCR;禁止看门狗 MAR*,AR0 LDP#0E1h;外设页面 SPLK #0FF00h,PBDATDIR;设置IOPBn引脚为输出低电平 ;装入通用定时器1 LDP#00E8h;设置DP=E0h,则地址为7400h747Fh SPLK#0000h,GPTCONA,SPLK#0000h,T1CNT;将定时器1计数清零 SPLK#0F42h,T1CON;使能增/减计数,x/128,内部时钟,使 能比较,计数器为0时重装比较寄存器, 使用自己的周期寄存器。 SPLK#0FFFh,T1PR SPLK#00FFh,T1CMPR SPLK#0780h,EVAIMRA;使能定时器1的上溢

36、、下溢、比较、周期中断 SPLK#0FFFFh,EVAIFRA;清中断 LDP#0 SPLK#0002h, IMR;使能INT2 CLRCINTM WAIT:NOP;循环等待中断 NOP BWAIT GISR2:;Int2通用中断服务程序GISR2 LDP#00E0h;设置外设页面 LACLPIVR;将外设中断矢量PIVR值装入累加器,XOR#002Ah ;GPT1上溢中断矢量 BCND SISR2A,EQ;如果相等转上溢中断服务程序 LACLPIVR XOR#0029h;GPTl下溢中断矢量 BCNDSISR29,EQ ;如果相等转下溢中断服务程序 LACLPIVR XOR#0028h ;G

37、PT1比较中断矢量 BCNDSISR28,EQ;如果相等转比较中断服务程序 LACLPIVR XOR#0027h ;GPTl周期中断矢量 BCNDSISR27,EQ;如果相等转周期中断服务程序 RET SISR2A:;GPTl上溢中断服务程序 LDP#0E1h;设置外部页面 SPLK#0FF01h, PBDATDIR;设置IOPB0引脚输出高电平 CALLDELAY LDP#0E8h;外设页面 LACC#0400h;清上溢中断标志 SACLEVAIFRA;在EVAIFRA内 CLRCINTM;使能所有标志 RET,SISR29:GPT1;下溢中断服务程序 LDP#0E1h;外设页面 SPLK#

38、0FF02h, PBDATDIR;设置IOPB1引脚输出高电平 CALLDELAY LDP#0E8h;外设页面 LACC#0200h;清下溢中断标志 SACLEVAIFRA;在EVAIFRA内 CLRCINTM;使能所有标志 RET SISR28:GPT1L;中断服务程序 LDP#0E1h外设页面 SPLK#0FF04h, PBDATDIR;设置101,B2引脚输出高电平 CALLDELAY LDP#0E8h;外设页面 LACC#0100h;清比较中断标志 SACLEVAIFRA;在EVAIFRA内 CLRCINTM;使能所有中断 RET,SISR27:;GPT1周期中断服务程序 LDP#0E

39、1h;外设页面 SPLK#0FF08h, PBDATDIR;设置IOPB3引脚输出高电平 CALLDELAY LDP#0E8h;外设页面 LACC#0080h;清周期中断标志 SACLEVAIFRA;在EVAIFRA内 CLRCINTM;使能所有标志 RET DELAY:LARAR0,#01h;通用目的延时 D_LOOP: RPT#01h;修改RPT值可改变延时时间 NOP BANZD_LOOP RET GISR1: RET GISR3: RET GISR4: RET GISR5: RET GISR6: RET PHANTOM RET .end,9.3.2 全比较单元和脉宽调制电路PWM,事件

40、管理器(EVA)模块中有3个全比较单元(全比较单元1,2和3),对应于3个16位的全比较寄存器(CMPR1、CMPR2和CMPR3);事件管理器模块(EVB)中有3个全比较单元(全比较单元4,5和6),对应于3个16位的全比较寄存器(CMPR4、CMPR5和CMPR6)。 每个EV模块中与比较单元相关的PWM电路带有可编程死区和输出极性控制,以产生独立的3对(即6路)PWM输出。每个全比较单元(或全比较寄存器)对应于两个PWM输出,即全比较单元1,2,3(EVA)对应于PWMy( y=l,2,3,4,5,6),全比较单元4,5,6(EVB)对应于PWMz (z=7,8,9,10,11,12)。

41、 每个EV模块有一个16位可读写的比较控制寄存器COMCONA/B,一个16位的比较方式控制寄存器ACTRA/B(各带一个可读/写的影子寄存器)。比较单元的时基由通用定时器1(EVA模块)和通用定时器3(EVB模块)提供。,1、全比较单元,全比较单元中的16位比较寄存器(CMPR1CMPR6)各带一个可读/写的影子寄存器,它们用于存放与通用定时器1/3相比较的值,比较寄存器的地址分别为:CMPR17417h,CMPR27418h,CMPR37419h,CMPR47517h,CMPR57518h,CMPR67519h。 比较控制寄存器COMCONA/B控制全比较单元的操作;比较方式控制寄存器TC

42、TRA/B控制12个PWM输出引脚的输出方式。,(1)比较控制寄存器A/B(COMCONA/B)地址7411h/7511h D15CENABLE比较使能位。 0 禁止比较操作。 1 使能比较操作。 D14D13CLD1CLD0比较寄存器CMPRx重装条件。 00 当T1CNT/T3CNT=0时(即下溢)。 11 T1CNT/T3CNT=0或T1CNT/T3CNT=T1PR/T3PR(即下溢或周 期 匹配) 时 10 立即重装 11 保留,结果不可预测。 D12SVENABLE空间矢量PWM模式矢量位。 0 禁止空间矢量PWM模式。 1 使能空间矢量PWM模式。,D11D10 ACTRLD1/A

43、CTRLD0方式控制寄存器重装条件。 00 当T1CNT/T3CNT=0时(即下溢)。 01 当T1CNT/T3CNT=0或 T1CNT/T3CNT=T1PR/T3PR(即下溢或周期 匹配)时。 10 立即重装。 11 保留,结果不可预测。 D9FCOMPOE比较输出使能位,有效的PDPINTA/PDPINTB将该位清0。 0 PWM输出引脚为高阻态,即禁止。 1 PWM输出引脚使能。 D8PDPINTA/PDPINTBSTATUS该位反映了当前PDPINTA/PDPINTB引脚 的状态(该位只在240 xA系列中应用,在240 x系列中为保留位)。 D7D0 Reserved保留位。,(2)

44、比较方式控制寄存器(ACTRA/ACTRB)地址7413h/7513h D15SVRDIR空间矢量PWM旋转方向位,仅用于空间矢量PWM输出的 产生。 0 正向(CCW)。 1 反向(CW)。 D14D12D2D0基本的空间矢量位,仅用于空间矢量PWM 输出的产生。 D11D10CMP6ACT/CMP12ACT比较输出引脚 CMP6/CMP12的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。 D9D8CMP5ACT/CMP11ACT比较输出引脚 CMP5/CMP11的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。,D7D6 CMP4ACT

45、/CMP10ACT比较输出引脚CMP4/CMP10的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。 D5D4 CMP3ACT/CMP9ACT比较输出引脚CMP3/CMP9的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。 D3D2 CMP2ACT/CMP8ACT比较输出引脚CMP2/CMP8的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。 D1D0 CMPlACT/CMP7ACT比较输出引脚CMP1/CMP7的输出方式。 00 强制低。 01 低有效。 10 高有效。 11 强制高。,2、PWM电路,在数字控制系

46、统中,通常需要将数字信号转换成模拟信号以控制外设对象。这种转换过程最常用的方法就是采用脉宽调制(PWM)技术。调制技术的核心就是产生周期不变但脉宽可变的信号。也就是说一个PWM信号是一串宽度变化的脉冲序列,这些脉冲平均分布在一段定长的周期中;在每个周期中有一个脉冲。这个定长的周期被称为PWM(载波)周期,其倒数被称为PWM(载波)频率。,在一个电机控制系统中,通过功率器件(大部分是开关型器件)将所需的电流和能量送到电机线圈绕组中,这些相电流的形状、频率及能量的大小控制着电机所需的速度和扭矩,而脉宽调制信号PWM就是用来控制功率器件的开启和关断时间的。在具体应用中,常将两个功率器件(一个正相导通

47、,另一个负相导通)串联到一个功率转换器的引脚上,为了避免击穿,要求这两个器件的开启时间不能相同。死区就是为了使这两个器件的开启存在一定的时间间隔,即死区时间。,通用定时器的周期匹配可以保证PWM波形的周期不变,通用定时器比较匹配可以产生不同的PWM脉宽,因此,根据调制频率来设置通用定时器周期寄存器的值。根据已得到的脉宽变化规律在每个周期内修改通用定时器比较寄存器的值,以得到不同的脉宽。通过设置死区控制寄存器可选择死区时间。 综上所述,与比较单元相关的PWM电路中PWM波形的产生由以下寄存器控制:通用定时器计数器T1CON/T3CON,比较控制寄存器COMCONA/B,比较方式控制寄存器ACTR

48、A/B和死区控制寄存器DBTCONA/B。,(1)可编程的死区单元,死区单元主要用于控制每个比较单元相关的2路PWM输出不在同时间内发生,从而保证了所控制的一对正向和负向设备在任何情况下不同时导通。 事件管理模块EVA和EVB都有各自的可编程死区单元,每个可编程死区单元都有一个16位的死区控制寄存器DBTCONA/B(可读写):一个输入时钟预分频器(x/1,x/2,x/4,x/8,x/16,x/32。x为器件CPU的时钟输入);3个4位的减计数器和控制逻辑。 死区单元的操作方式由死区控制寄存器DBTCONA/B来控制。DBTCONA和DBTCONB各位的定义完全相同。不同之处用“/”符号区分。

49、,死区控制寄存器A/B(DBTCONA/DBTCONB)地址7415h/7515h D15D12 Reserved保留位。 D11D8 DBT3DBT0死区定时器周期,这4位定义了3个死区定时器的周 期值(m)。 D7 EDBT3死区定时器3使能位(对应比较单元3的引脚PWM5/PWM11 和PWM6/PWM12)。 0 禁止。 1 使能。 D6 EDBT2死区定时器2使能位(对应比较单元2的引脚PWM3/PWM9 和PWM4/10)。 0 禁止。 1 使能。,D5 EDBT1死区定时器1使能位(对应比较单元1的引脚PWM1/PWM7 和PWM2/PWM8)。 0 禁止。 1 使能。 D4D2

50、 DBTPS2一DBTPS0死区定时器的预分频器(x=CPU的时钟频率)。 000 x/1 001 x/2 010 x/4 011 x/8 100 x/16 101 x/32 110 x/32 111 x/32 D1D0 Reserved保留位。,死区的输入是PH1、PH2和PH3,分别由比较单元1,2和3对称/非对称波形发生器产生,与其相对应的死区单元的输出是DTPH1,DTPH1_:DTPH2,DTPH2_:DTPH3,DTPH3_,经过输出逻辑,DTPH1和DTPH1_对应于PWM输出PWM1和PWM2(EVB为PWM7和PWM8),DTPH2和DTPH2_对应于PWM3和PWM4(EV

51、B为PWM9和PWM10),DTPH3和DTPH3_对应于PWM5和PWM6(EVB为PWM11和PWM12)。 上述每两个信号的跳变沿有一段时间间隔,该时间间隔称为死区,死区的值由DBTCONA/B寄存器中的相应位决定:假如DBTCONA/B的D11D8位定义的值为m,D4D2位中的值对应的预分频因子为x/p(x为CPU时钟周期),则死区值为(p*m)个CPU时钟周期。,(2) 比较单元和PWM电路中的PWM波形产生 比较单元的输出逻辑电路决定了比较发生匹配时,输出引脚PWM112上的输出极性和方式。通过设置ACTRA/B寄存器中的相应位可使输出方式为低有效,高有效,强制低,强制高。 产生P

52、WM输出需要对事件管理器中相关的寄存器进行配置,步骤如下 : a. 设置和装载ACTRx寄存器,以确定输出方式和极性。 b. 如果使用死区单元,则设置和装载DBTCONx寄存器。 c. 设置和装载通用定时器周期寄存器T1PR或T3PR以确定PWM周期。 d. 初始化比较寄存器CMPRx,即装入比较值,以确定PWM波形的占空比。 e. 设置和装载COMCONx,以使能比较操作和PWM输出。 f. 设置T1CON(EVA)或T3CON(EVB),用来设置计数模式和启动比较操作。 g. 更新CMPRx寄存器的值,以改变PWM波形的占空比。,非对称PWM波形的产生 将定时器1或3设置为连续增计数模式,

53、则将产生非对称PWM波形。 按上述步骤设置好各个寄存器后,就能在与比较单元相关的一对PWM输出引脚上产生一路正常的PWM脉冲信号(如PWMx+1)。如果死区未使能,另一路PWM输出引脚(如PWMx)则具有相同跳变的脉冲;如果死区使能,该输出引脚则在PWM周期的任一时刻内跳变为低电平(低有效)或高电平(高有效)。这两个输出引脚的跳变时间间隔即形成了死区。这种用软件灵活控制的PWM输出适用于对开关磁阻电机的控制。 在每个PWM周期的任何时刻可将新的比较值、周期值写入比较寄存器CMPRx、周期寄存器T1PR(T2PR)中,以改变PWM输出的宽度和周期,也可以重置比较方式控制寄存器(ACTRA/B),

54、以改变PWM的输出方式。更新的值是在下一个PWM周期内实现。,将通用定时器1或3设置为连续增/减计数模式,即可产生对称PWM波形。 在对称PWM波形发生的一个周期内通常有两次比较匹配。一次在周期匹配前的增计数期间,另一次是在周期匹配后的减计数期间。更新比较寄存器的值,就可以提前或推迟PWM脉冲的第二个边沿的到来。用这种修改PWM波形特性的方法可以弥补由交流电机控制中的死区所导致的电流误差。使用对称PWM波形可减小在使用正弦波调整时,交流电机和直流无刷电机的相电流的谐波失真。 产生对称PWM波形的设置与产生非对称PWM波形的设置方法,除计数模式外其他均相同。 产生PWM信号的方法与通用定时器中产

55、生TxCMP/TxPWM信号的方法相同。,对称PWM波形的产生,3、空间矢量PWM波形产生,空间矢量PWM是一种针对三相交流电路的新型调制技术,空间矢量PWM利用三相功率转换器的六个能量晶体管的特殊转换机制,改善输出峰值电压,使三相交流电机绕组中的电流谐波失真最小。基于空间矢量原理的最大输出电压是传统正弦调制的1.55倍,它能在高速下提供更高的磁矩和更高的效率。,图中,Udc为电源电压,Va,Vb,Vc为输入到电动机绕组的电压。6个功率晶体管Q1Q6分别由DTPHx和DTPHx_(x=a,b,c)控制。如果约定当上端晶体管导通(DTPHx_=1)时,下端晶体管就截止(DTPHx_=0),就可以

56、由上端晶体管(Q1,Q3,Qs)的状态,即由DTPHx(x=a,b,c)的状态求出输送给电动机的电压Uout。,上图所示的三相桥式电路就是按一定的规律控制三对桥臂晶体管的通、断,将直流电压Ubc变为三相正弦电压Va,Vb,Vc输出。即当相应的上端晶体管导通时,从该相输出的电压Vx(x=a,b,c)等于电源电压Udc;当其截止时,电压为零。三个上端晶体管Q1,Q3,和Q5的导通和断开有八种组合。这八种组合和被驱动电机的线电压和相电压(以直流电压Udc为单位)如下表所示,表中的a,b和c代表DTPHa,DTPHb和DTPHc。,通过d-q变换处理,可将相应于八种组合的相电压映射至d-q平台,得到六

57、个非零矢量和两个零矢量,d-q变换相当于把三维变量(a,b,c)正交投影到垂直于矢量(1,1,1)(即d-q平面)的二维平面。非零矢量构成六边形的轴线。两相邻矢量之间的夹角是60。两个零矢量位于坐标原点。这八个矢量称做基本空间矢量并记做U0,U60,U120,U180,U240,U300,O000和O111。这种变换同样可用于输入电机所需的电压矢量Uout。图给出了矢量投影和所需的电机电压矢量Uout的投影。,(1) d-q变换,d-q平面的d轴和q轴相当于交流电机定子的正交轴中的水平轴和垂直轴。 空间矢量PWM方法的目的就是为了通过这六个功率晶体管的八种开启方式的组合来逼近电机的电压矢量Uo

58、ut。 两相邻基本矢量的二进制表示仅有一位不同。即当开启方式从Ux变到Ux+60。或从Ux+60变到Ux时,仅有一个上端晶体管导通。同样零矢量O000和O111没有电压施加到电机上。 任意时刻的三相电压Va、Vb、Vc可由两个相邻的空间矢量合成为所需电压矢量Uout,当电压矢量Uout沿逆时针或顺时针方向旋转时,空间矢量由一个有效状态转移到另一个有效状态,从而产生连续的三相电压。,(2)基本空间矢量电机电压的近似估计,在任意一个PWM周期内通过求出位于两个相邻基本矢量的两个矢量元素的矢量和来估算空间矢量电机电压Uout: UoutT1UxTp+T2(Ux+60)Tp+T0 (O000或O111)Tp 式中,T0由Tp- T1- T2得出,Tp是PWM的载波周期。等式右边的第三项并不影响矢量和Uout。Uout的产生可查阅有关空间矢量PWM和电机控制理论的书籍。 以上的近似表达式表明对于T1和T2时间段来说,上端晶体管必须相应于矢量Ux和Ux+60的导通和截止形式,这样才能将电压Uout输送到电机上。零基本矢量的引入有助于平衡晶体管的导通和断开周期,以利于平衡它们的功耗。,(3)空间矢量PWM的产生,事件管理器所生成的空间矢量PWM波形是对于每个PWM周期中心对称的,因此被称为对称空间矢量PWM波形。 对

温馨提示

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

评论

0/150

提交评论