DSP控制器原理与应用 张小鸣第六章片内外设1

上传人:夏** 文档编号:568249924 上传时间:2024-07-23 格式:PPT 页数:117 大小:1.56MB
返回 下载 相关 举报
DSP控制器原理与应用 张小鸣第六章片内外设1_第1页
第1页 / 共117页
DSP控制器原理与应用 张小鸣第六章片内外设1_第2页
第2页 / 共117页
DSP控制器原理与应用 张小鸣第六章片内外设1_第3页
第3页 / 共117页
DSP控制器原理与应用 张小鸣第六章片内外设1_第4页
第4页 / 共117页
DSP控制器原理与应用 张小鸣第六章片内外设1_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《DSP控制器原理与应用 张小鸣第六章片内外设1》由会员分享,可在线阅读,更多相关《DSP控制器原理与应用 张小鸣第六章片内外设1(117页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 TMS320LF240x的片内外设的片内外设第六章第六章 TMS320LF240x的片内外设的片内外设数字数字I/O端口端口事件管理模块事件管理模块(EV)模数转换模块模数转换模块(ADC)串行外设接口模块串行外设接口模块(SPI)第四章第四章 TMS320LF240x的片内外设的片内外设6.1 数字数字I/O端口端口6.1.1 6.1.1 概述概述 数字数字I/OI/O端口是芯片与外界联系的一种接口,它实现的是端口是芯片与外界联系的一种接口,它实现的是电平信号的输入和输出。电平信号的输入和输出。DSPDSP芯片的芯片的I/OI/O端口都具有双重的功端口都具有双重的功能能( (即

2、功能复用即功能复用) ),或用于一般的输入输出功能,或用于一些,或用于一般的输入输出功能,或用于一些特殊的功能,究竟是哪一种功能,可通过设置复用控制寄存特殊的功能,究竟是哪一种功能,可通过设置复用控制寄存器来实现。当器来实现。当I/OI/O口已设定为一般的输入输出功能时,其数据口已设定为一般的输入输出功能时,其数据输入输出的方向可利用数据和方向控制寄存器来设置。因此,输入输出的方向可利用数据和方向控制寄存器来设置。因此,对对I/OI/O端口的操作对应着两类寄存器:端口的操作对应着两类寄存器:I/OI/O端口复用控制寄存端口复用控制寄存器和数据和方向控制寄存器,前者决定器和数据和方向控制寄存器,

3、前者决定I/OI/O端口的功能,后者端口的功能,后者决定一般功能引脚的数据方向和当前输入或输出的有效电平。决定一般功能引脚的数据方向和当前输入或输出的有效电平。 TMS320LF2407 TMS320LF2407芯片的芯片的I/OI/O端口分为端口分为A A、B B、C C、D D、E E、F F共共6 6组,对应的组,对应的I/OI/O端口复用控制寄存器和数据和方向控制寄存端口复用控制寄存器和数据和方向控制寄存器共器共9 9个。个。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设寄存器地址寄存器地址寄存器名称寄存器名称功功 能能7090h7090hMCRAMCRAI/OI

4、/O端口复用控制寄存器端口复用控制寄存器A A7092h7092hMCRBMCRBI/OI/O端口复用控制寄存器端口复用控制寄存器B B7094h7094hMCRCMCRCI/OI/O端口复用控制寄存器端口复用控制寄存器C C7098h7098hPADATDIRPADATDIRA A组数据和方向控制寄存器组数据和方向控制寄存器709Ah709AhPBDATDIRPBDATDIRB B组数据和方向控制寄存器组数据和方向控制寄存器709Ch709ChPCDATDIRPCDATDIRC C组数据和方向控制寄存器组数据和方向控制寄存器709Eh709EhPDDATDIRPDDATDIRD D组数据和方

5、向控制寄存器组数据和方向控制寄存器7095h7095hPEDATDIRPEDATDIRE E组数据和方向控制寄存器组数据和方向控制寄存器7096h7096hPFDATDIRPFDATDIRF F组数据和方向控制寄存器组数据和方向控制寄存器退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 6.1.2 I/O6.1.2 I/O端口的复用控制寄存器端口的复用控制寄存器1 1、MCRAMCRA功能配置功能配置 位位1515:写:写1 1为为TCLKINA TCLKINA ;写;写0 0为为IOPB7IOPB7。 位位1414:写:写1 1为为TDIRA ;写;写0 0为为IOPB6I

6、OPB6。 位位1313:写:写1 1为为T2PWM/T2CMP ;写;写0 0为为IOPB5IOPB5。 位位1212:写:写1 1为为T1PWM/T1CMP ;写;写0 0为为IOPB4IOPB4。 位位1111:写:写1 1为为PWM6 ;写;写0 0为为IOPB3IOPB3。 位位1010:写:写1 1为为PWM5 ;写;写0 0为为IOPB2IOPB2。 位位9 9:写:写1 1为为PWM4 ;写;写0 0为为IOPB1IOPB1。 位位8 8:写:写1 1为为PWM3 ;写;写0 0为为IOPB0IOPB0。 位位7 7:写:写1 1为为PWM2 ;写;写0 0为为IOPA7IOP

7、A7。 位位6 6:写:写1 1为为PWM1 ;写;写0 0为为IOPA6IOPA6。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设位位5 5:写:写1 1为为CAP3 ;写;写0 0为为IOPA5IOPA5。 位位4 4:写:写1 1为为CAP2/QEP2 ;写;写0 0为为IOPA4IOPA4。 位位3 3:写:写1 1为为CAP1/QEP1 ;写;写0 0为为IOPA3IOPA3。 位位2 2:写:写1 1为为XINT1 ;写;写0 0为为IOPA2IOPA2。 位位1 1:写:写1 1为为SCIRXD ;写;写0 0为为IOPA1IOPA1。 位位0 0:写:写1

8、 1为为SCITXD ;写;写0 0为为IOPA0IOPA0。 2 2、MCRBMCRB功能配置功能配置 位位15-915-9:必须配置为:必须配置为1 1,使该部分引脚为,使该部分引脚为JTAGJTAG接口功能接口功能 。 位位8 8:写:写1 1为为XINT2/ADCSOC ;写;写0 0为为IOPD0IOPD0。 位位7 7:写:写1 1为为CANRX ;写;写0 0为为IOPC7IOPC7。 位位6 6:写:写1 1为为CANTX ;写;写0 0为为IOPC6IOPC6。 位位5 5:写:写1 1为为SPISTE ;写;写0 0为为IOPC5IOPC5。 位位4 4:写:写1 1为为S

9、PICLK ;写;写0 0为为IOPC4IOPC4。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设位位3 3:写:写1 1为为SPISOMI ;写;写0 0为为IOPC3IOPC3。 位位2 2:写:写1 1为为SPISIMO ;写;写0 0为为IOPC2IOPC2。 位位1 1:写:写1 1为为BIO ;写;写0 0为为IOPC1IOPC1。 位位0 0:写:写1 1为为W/R ;写;写0 0为为IOPC0IOPC0。 3 3、MCRCMCRC功能配置功能配置 位位1515:为保留位。:为保留位。 位位1414:写:写1 1为为IOPF6 ;写;写0 0为为IOPF6

10、。 位位1313:写:写1 1为为TCLKINB ;写;写0 0为为IOPF5 。 位位1212:写:写1 1为为TDIRB ;写;写0 0为为IOPF4 。 位位1111:写:写1 1为为T4PWM/T4CMP ;写;写0 0为为IOPF3 。 位位1010:写:写1 1为为T3PWM/T3CMP ;写;写0 0为为IOPF2 。 位位9 9:写:写1 1为为CAP6 ;写;写0 0为为IOPF1 。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设位位8 8:写:写1 1为为CAP5/QEP4 ;写;写0 0为为IOPF0 。 位位7 7:写:写1 1为为CAP4/QEP

11、3 ;写;写0 0为为IOPE7 。 位位6 6:写:写1 1为为PWM12 ;写;写0 0为为IOPE6 。 位位5 5:写:写1 1为为PWM11;写;写0 0为为IOPE5 。 位位4 4:写:写1 1为为PWM10 ; ; 写写0 0为为IOPE4 。 位位3 3:写:写1 1为为PWM9 ;写;写0 0为为IOPE3 。 位位2 2:写:写1 1为为PWM8 ;写;写0 0为为IOPE2 。 位位1 1:写:写1 1为为PWM7 ;写;写0 0为为IOPE1。 位位0 0:写:写1 1为为CLKOUT ;写;写0 0为为IOPE0 。 退出退出第四章第四章 TMS320LF240x的

12、片内外设的片内外设6.1.3 I/O6.1.3 I/O端口的数据和方向控制寄存器端口的数据和方向控制寄存器 数据和方向控制寄存器数据和方向控制寄存器PxDATDIR(xPxDATDIR(x为为A AF)F)共有共有6 6个,只有个,只有当当I/OI/O端口被设置成一般的端口被设置成一般的I/OI/O功能时,数据和方向控制寄存功能时,数据和方向控制寄存器才起作用。器才起作用。 6 6个数据和方向控制寄存器的格式基本相同,其高个数据和方向控制寄存器的格式基本相同,其高8 8位表位表示对应的低示对应的低8 8位的数据输入输出方向,低位的数据输入输出方向,低8 8位表示相应的位表示相应的I/OI/O口

13、的有效逻辑电平。口的有效逻辑电平。 (1)A(1)A组端口组端口PADATDIRPADATDIR 15141312111098A7DIRA6DIRA5DIRA4DIRA3DIRA2DIRA1DIRA0DIR76543210IOPA7IOPA6IOPA5IOPA4IOPA3IOPA2IOPA1IOPA0退出退出第四章第四章 TMS320LF240x的片内外设的片内外设15141312111098A7DIRA6DIRA5DIRA4DIRA3DIRA2DIRA1DIRA0DIR76543210IOPA7IOPA6IOPA5IOPA4IOPA3IOPA2IOPA1IOPA0 表中,位表中,位AxDIR

14、(xAxDIR(x为为7 70)0)决定对应位决定对应位IOPAx(xIOPAx(x为为7 70)0)引脚的引脚的输入或输出方向。当输入或输出方向。当AxDIRAxDIR1 1时,时,IOPAxIOPAx位对应的引脚为输出方位对应的引脚为输出方式;当式;当AxDIRAxDIR0 0时,时,IOPAxIOPAx位对应的引脚为输入方式。位位对应的引脚为输入方式。位IOPAxIOPAx的的电平表示输入或输出的状态,电平表示输入或输出的状态,0 0表示低电平,表示低电平,1 1表示高电平。例如,表示高电平。例如,当当AxDIRAxDIR=1=1时,若时,若IOPAxIOPAx=0=0,表示相应引脚输出

15、低电平;若,表示相应引脚输出低电平;若IOPAxIOPAx1 1,表示相应引脚输出高电平,表示相应引脚输出高电平 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2)B(2)B组端口的组端口的PBDATDIR PBDATDIR 15141312111098B7DIRB6DIRB5DIRB4DIRB3DIRB2DIRB1DIRB0DIR76543210IOPB7IOPB6IOPB5IOPB4IOPB3IOPB2IOPB1IOPB0(3)C(3)C组端口的组端口的PCDATDIRPCDATDIR 15141312111098C7DIRC6DIRC5DIRC4DIRC3DIRC2

16、DIRC1DIRC0DIR76543210IOPC7IOPC6IOPC5IOPC4IOPC3IOPC2IOPC1IOPC0退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(4)D(4)D组端口的组端口的PDDATDIRPDDATDIR 15141312111098保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位D0DIR76543210保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位保保留留位位IOPD0(5)E(5)E组端口的组端口的PEDATDIR PEDATDIR 15141312111098E7DIRE6DI

17、RE5DIRE4DIRE3DIRE2DIRE1DIRE0DIR76543210IOPE7IOPE6IOPE5IOPE4IOPE3IOPE2IOPE1IOPE0退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(6)F(6)F组端口的组端口的PFDATDIR PFDATDIR 15141312111098保保留留位位F6DIRF5DIRF4DIRF3DIRF2DIRF1DIRF0DIR76543210保保留留位位IOPF6IOPF5IOPF4IOPF3IOPF2IOPF1IOPF0退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.1.4 I/O6.1.4 I/

18、O端口应用端口应用 图示一个图示一个TMS320LF2407TMS320LF2407与发光二极管的接口电路。该电路所与发光二极管的接口电路。该电路所实现的功能是循环点亮发光二极管,每个发光二极管亮实现的功能是循环点亮发光二极管,每个发光二极管亮0.50.5秒。秒。 74HC27374HC273是是8 8位数据位数据/ /地址锁存器,地址锁存器,D0D0D7D7为数据输入端;为数据输入端;Q0-Q7Q0-Q7为数据输出端;为数据输出端;CLRCLR为主清除端,低电平触发,将锁存数据为主清除端,低电平触发,将锁存数据清零;清零;CLKCLK是触发端,上升沿触发,即当是触发端,上升沿触发,即当CLK

19、CLK从低到高电平时,从低到高电平时,D0-D7D0-D7的数据通过芯片输出到的数据通过芯片输出到Q0-Q7Q0-Q7,为,为0 0时将数据锁存。时将数据锁存。 第四章第四章 TMS320LF240x的片内外设的片内外设(1)(1)主程序主程序 IOSFT_REG . IOSFT_REG .usectusect “.data0,1”; “.data0,1”;显示数据寄存器显示数据寄存器 .include “F2407REGS.H” ;.include “F2407REGS.H” ;引用头文件引用头文件 .def _c_int0.def _c_int0 .text .text_c_int0: ;

20、_c_int0: ;主程序入口主程序入口 CALL SYSINIT ;CALL SYSINIT ;调系统初始化程序调系统初始化程序 LDP #225 ;LDP #225 ;指向指向7080h-70FFh7080h-70FFh LACL MCRA ;MCRA LACL MCRA ;MCRA装载装载ACCACC AND #000FFh ;IOPB AND #000FFh ;IOPB配置为一般配置为一般I/OI/O功能功能 SACL MCRA ;ACCSACL MCRA ;ACC送送MCRAMCRA LACL MCRC ;MCRC LACL MCRC ;MCRC装载装载ACCACC AND #0FB

21、FFh ;IOPF2AND #0FBFFh ;IOPF2口配置为一般口配置为一般I/OI/O功能功能 SACL MCRC ;ACCSACL MCRC ;ACC送送MCRCMCRC LACL PBDATDIR ;PBDATDIR LACL PBDATDIR ;PBDATDIR装载装载ACCACC OR #0FF00h ;IOPB OR #0FF00h ;IOPB口设置为输出方式口设置为输出方式退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 SACL PBDATDIR ;ACCSACL PBDATDIR ;ACC送送PBDATDIRPBDATDIR LDP #5 ; LDP #

22、5 ;指向指向0280h-02FFh0280h-02FFh SPLK #01h,IOSFT_REG; SPLK #01h,IOSFT_REG;给显示的数据赋初值给显示的数据赋初值LOOP:LOOP: LDP #225 LDP #225 LACL PFDATDIR ;PFDATDIR LACL PFDATDIR ;PFDATDIR装载装载ACCACC OR #0404h ;IOPF2 OR #0404h ;IOPF2设置为输出方式设置为输出方式, ,输出高电平输出高电平 SACL PFDATDIR ;ACC SACL PFDATDIR ;ACC送送PFDATDIRPFDATDIR LDP #5

23、LDP #5 LACL IOSFT_REG ; LACL IOSFT_REG ;显示数据装载显示数据装载ACCACC LDP #225 LDP #225 SACL PBDATDIR ; SACL PBDATDIR ;送显示数据到送显示数据到IOPBIOPB口口 LACL PFDATDIRLACL PFDATDIR AND #0FFFBh ;IOPF2=0 AND #0FFFBh ;IOPF2=0 SCAL PFDATDIR ; SCAL PFDATDIR ;关关74HC27374HC273片选信号片选信号退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 CALL DELAY

24、;CALL DELAY ;调延时子程序调延时子程序 LDP #5LDP #5 LACL IOSFT_REG ; LACL IOSFT_REG ;送显示数据到送显示数据到ACCACC SFL ; SFL ;左移左移1 1位位 SACL IOSFT_REGSACL IOSFT_REG BIT IOSFT_REG,BIT7 ; BIT IOSFT_REG,BIT7 ;判断是否循环完一次判断是否循环完一次 BCND LOOP1,TC ;TC=1BCND LOOP1,TC ;TC=1转转LOOP1LOOP1,即循环完一次,即循环完一次 B WAIT ;B WAIT ;否则,转否则,转WAITWAITLO

25、OP1: LOOP1: LDP #5 LDP #5 SPLK #01h,IOSFT_REG ; SPLK #01h,IOSFT_REG ;如循环完一次则显示数据赋初值如循环完一次则显示数据赋初值WAIT: WAIT: NOP NOP B LOOP ; B LOOP ;如没循环完则转如没循环完则转LOOPLOOP退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2)(2)系统初始化程序系统初始化程序SYSINIT:SYSINIT: SETC INTM ; SETC INTM ;中断禁止中断禁止 CLRC SXM ;CLRC SXM ;抑制符号扩展抑制符号扩展 CLRC OVM

26、;ACCCLRC OVM ;ACC正常溢出正常溢出 CLRC CNF ;B0CLRC CNF ;B0配置为数据存储空间配置为数据存储空间 LDP #224 ;DP=224LDP #224 ;DP=224 SPLK #81FEh,SCSR1 ;CLKIN=6M,CLKOUT=24M SPLK #81FEh,SCSR1 ;CLKIN=6M,CLKOUT=24M SPLK #0E8h,WDCR ; SPLK #0E8h,WDCR ;不使能不使能WDTWDT LDP #0 ;DP=0 LDP #0 ;DP=0 SPLK #0000h,IMR ; SPLK #0000h,IMR ;禁止中断禁止中断 SP

27、LK #0FFFFh,IFR ;SPLK #0FFFFh,IFR ;清全部中断标志清全部中断标志 RETRET退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)软件延时子程序软件延时子程序 ; ;延时延时0.50.5秒秒DELAY:DELAY: MAR *,AR4 ;ARP=4 MAR *,AR4 ;ARP=4 LAR AR4,#0FFFEh ;AR4 LAR AR4,#0FFFEh ;AR4装数据装数据 LAR AR0,#00h ;AR0LAR AR0,#00h ;AR0装数据装数据DELAY1: DELAY1: SBRK #1 ;AR4 SBRK #1 ;AR4

28、减减1 1 RPT #181 RPT #181 NOP NOP CMPR 0 ;AR4 CMPR 0 ;AR4是否等于是否等于AR0AR0的数据的数据 BCND DELAY1,NTC ;BCND DELAY1,NTC ;若若AR4AR4没减到没减到0 0则转则转DELAY1DELAY1 RET RET .END .END退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.2 事件管理模块事件管理模块(EV) 6.2.1 6.2.1 概述概述 TMS320LF240xTMS320LF240x芯片内含有两个事件管理器模块芯片内含有两个事件管理器模块EVAEVA和和EVBEVB,用

29、,用于运动控制和电机控制。每个事件管理器模块又包含通用定时器于运动控制和电机控制。每个事件管理器模块又包含通用定时器(GP)(GP)、比较单元、捕获单元以及正交编码、比较单元、捕获单元以及正交编码(QEP)(QEP)脉冲电路。脉冲电路。EVAEVA和和EVBEVB的定时器、比较单元以及捕获单元的结构功能相同,只是单的定时器、比较单元以及捕获单元的结构功能相同,只是单元的名称有所区别。元的名称有所区别。 事件管理模块事件管理模块EVAEVA模块模块信信 号号EVBEVB模块模块信信 号号GP定时器定时器Timer1Timer2T1PWM/T1CMPT2PWM/T2CMPTimer3Timer4T

30、3PWM/T3CMPT4PWM/T4CMP比较单元比较单元Compare1Compare2Compare3PWM1/2PWM3/4PWM5/6Compare4Compare5Compare6PWM7/8PWM9/10PWM11/12退出退出第四章第四章 TMS320LF240x的片内外设的片内外设事件管理模块事件管理模块EVAEVA模块模块信信 号号EVBEVB模块模块信信 号号捕获单元捕获单元Capture1Capture2Capture3CAP1CAP2CAP3Capture4Capture5Capture6CAP4CAP5CAP6正交编码脉冲正交编码脉冲电路电路QEPQEPQEP1QEP

31、2QEP1QEP2QEP3QEP4QEP3QEP4外部输入外部输入计数方向计数方向外部时钟外部时钟TDIRATCLKINA计数方向计数方向外部时钟外部时钟TDIRBTCLKINB退出退出EVA和和EVB的结构图见教材的结构图见教材P261262 引脚说明引脚说明第四章第四章 TMS320LF240x的片内外设的片内外设1 1、EVAEVA模块中的寄存器模块中的寄存器( (起始地址是起始地址是7400h )7400h )地地 址址寄寄 存存 器器名名 称称7400hGPTCONA定时器控制寄存器定时器控制寄存器7401hT1CNT定时器定时器1 1的计数寄存器的计数寄存器定时器定时器1 1740

32、2hT1CMPR定时器定时器1 1的比较寄存器的比较寄存器7403hT1PR定时器定时器1 1的周期寄存器的周期寄存器7404hT1CON定时器定时器1 1的控制寄存器的控制寄存器7405hT2CNT定时器定时器2 2的计数寄存器的计数寄存器定时器定时器2 27406hT2CMPR定时器定时器2 2的比较寄存器的比较寄存器7407hT2PR定时器定时器2 2的周期寄存器的周期寄存器7408hT2CON定时器定时器2 2的控制寄存器的控制寄存器EVAEVA定时寄存器地址定时寄存器地址 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVAEVA比较控制寄存器地址比较控制寄存器地

33、址 地地 址址寄寄 存存 器器名名 称称7411hCOMCONA比较控制寄存器比较控制寄存器7413hACTRA比较方式控制寄存器比较方式控制寄存器7415hDBTCONA死区时间控制寄存器死区时间控制寄存器7417hCMPR1比较寄存器比较寄存器1 17418hCMPR2比较寄存器比较寄存器2 27419hCMPR3比较寄存器比较寄存器3 3退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVAEVA捕获控制寄存器地址捕获控制寄存器地址 地地 址址寄寄 存存 器器名名 称称7420h7420hCAPCONACAPCONA捕获控制寄存器捕获控制寄存器7422h7422hCAP

34、FIFOACAPFIFOA捕获捕获FIFOFIFO状态寄存器状态寄存器A A7423h7423hCAP1FIFOCAP1FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈1 17424h7424hCAP2FIFOCAP2FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈2 27425h7425hCAP3FIFOCAP3FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈3 37427h7427hCAP1FBOTCAP1FBOTFIFOFIFO栈的栈底寄存器,允许读最近捕栈的栈底寄存器,允许读最近捕获的值获的值7428h7428hCAP2FBOTCAP2FBOT7429h7429

35、hCAP3FBOTCAP3FBOT退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVAEVA中断寄存器地址中断寄存器地址 地地 址址寄寄 存存 器器名名 称称742Ch742ChEVAIMRAEVAIMRA中断屏蔽寄存器中断屏蔽寄存器A A742Dh742DhEVAIMRBEVAIMRB中断屏蔽寄存器中断屏蔽寄存器B B742Eh742EhEVAIMRCEVAIMRC中断屏蔽寄存器中断屏蔽寄存器C C742Fh742FhEVAIFRAEVAIFRA中断标志寄存器中断标志寄存器A A7430h7430hEVAIFRBEVAIFRB中断标志寄存器中断标志寄存器B B7431h7

36、431hEVAIFRCEVAIFRC中断标志寄存器中断标志寄存器C C退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVBEVB定时寄存器地址定时寄存器地址 地地 址址寄寄 存存 器器名名 称称7500h7500hGPTCONBGPTCONB定时器控制寄存器定时器控制寄存器7501h7501hT3CNTT3CNT定时器定时器3 3的计数寄存器的计数寄存器定时器定时器3 37502h7502hT3CMPRT3CMPR定时器定时器3 3的比较寄存器的比较寄存器7503h7503hT3PRT3PR定时器定时器3 3的周期寄存器的周期寄存器7504h7504hT3CONT3CON定

37、时器定时器3 3的控制寄存器的控制寄存器7505h7505hT4CNTT4CNT定时器定时器4 4的计数寄存器的计数寄存器定时器定时器4 47506h7506hT4CMPRT4CMPR定时器定时器4 4的比较寄存器的比较寄存器7507h7507hT4PRT4PR定时器定时器4 4的周期寄存器的周期寄存器7508h7508hT4CONT4CON定时器定时器4 4的控制寄存器的控制寄存器退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVBEVB比较控制寄存器地址比较控制寄存器地址 地地 址址寄寄 存存 器器名名 称称7511h7511hCOMCONBCOMCONB比较控制寄存器

38、比较控制寄存器7513h7513hACTRBACTRB比较方式控制寄存器比较方式控制寄存器7515h7515hDBTCONBDBTCONB死区时间控制寄存器死区时间控制寄存器7517h7517hCMPR4CMPR4比较寄存器比较寄存器4 47518h7518hCMPR5CMPR5比较寄存器比较寄存器5 57519h7519hCMPR6CMPR6比较寄存器比较寄存器6 6退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVBEVB捕获控制寄存器地址捕获控制寄存器地址 地地 址址寄寄 存存 器器名名 称称7520h7520hCAPCONBCAPCONB捕获控制寄存器捕获控制寄存器

39、7522h7522hCAPFIFOBCAPFIFOB捕获捕获FIFOFIFO状态寄存器状态寄存器B B7523h7523hCAP4FIFOCAP4FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈4 47524h7524hCAP5FIFOCAP5FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈5 57525h7525hCAP6FIFOCAP6FIFO两级深度的捕获两级深度的捕获FIFOFIFO栈栈6 67527h7527hCAP4FBOTCAP4FBOTFIFOFIFO栈的栈底寄存器,允许读最近捕栈的栈底寄存器,允许读最近捕获的值获的值7528h7528hCAP5FBOTCAP5

40、FBOT7529h7529hCAP6FBOTCAP6FBOT退出退出第四章第四章 TMS320LF240x的片内外设的片内外设EVBEVB中断寄存器地址中断寄存器地址 地地 址址寄寄 存存 器器名名 称称752Ch752ChEVBIMRAEVBIMRA中断屏蔽寄存器中断屏蔽寄存器A A752Dh752DhEVBIMRBEVBIMRB中断屏蔽寄存器中断屏蔽寄存器B B752Eh752EhEVBIMRCEVBIMRC中断屏蔽寄存器中断屏蔽寄存器C C752Fh752FhEVBIFRAEVBIFRA中断标志寄存器中断标志寄存器A A7530h7530hEVBIFRBEVBIFRB中断标志寄存器中断标

41、志寄存器B B7531h7531hEVBIFRCEVBIFRC中断标志寄存器中断标志寄存器C C退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.2.2 6.2.2 事件管理器的中断管理事件管理器的中断管理 1 1中断组中断组 捕获单元3中断0035h3CAP3INT捕获单元2中断0034h2CAP2INT4捕捕获单元元1中断中断0033h1CAP1INTC通用定通用定时器器2上溢中断上溢中断002Eh4T2OFINT通用定通用定时器器2下溢中断下溢中断002Dh3T2UFINT通用定通用定时器器2比比较中断中断002Ch2T2CINT3通用定通用定时器器2周期中断周期中断

42、002Bh1T2PINTB通用定通用定时器器1上溢中断上溢中断002Ah8T1OFINT通用定通用定时器器1下溢中断下溢中断0029h7T1UFINT通用定通用定时器器1比比较中断中断0028h6T1CINT通用定通用定时器器1周期中断周期中断0027h5T1PINT比比较单元元3比比较中断中断0023h4CMP3INT比比较单元元2比比较中断中断0022h3CMP2INT2比比较单元元1比比较中断中断0021h2CMP1INTA1功率功率驱动保保护中断中断A0020h1INT中断源中断源中断向量中断向量优先先级中断名称中断名称中断中断组PDPINTAEVA退出退出第四章第四章 TMS320L

43、F240x的片内外设的片内外设EVB 捕捕获单元元6中断中断0038h3CAP6INT捕捕获单元元5中断中断0037h2CAP5INT4捕捕获单元元4中断中断0036h1CAP4INTC通用定通用定时器器4上溢中断上溢中断003Ch4T4OFINT通用定通用定时器器4下溢中断下溢中断003Bh3T4UFINT通用定通用定时器器4比比较中断中断003Ah2T4CINT3通用定通用定时器器4周期中断周期中断0039h1T4PINTB通用定通用定时器器3上溢中断上溢中断0032h8T3OFINT通用定通用定时器器3下溢中断下溢中断0031h7T3UFINT通用定通用定时器器3比比较中断中断0030h

44、6T3CINT通用定通用定时器器3周期中断周期中断002Fh5T3PINT比比较单元元6比比较中断中断0026h4CMP6INT比比较单元元5比比较中断中断0025h3CMP5INT2比比较单元元4比比较中断中断0024h2CMP4INTA1功率功率驱动保保护中断中断B0019h1INT中断源中断源中断向量中断向量优先先级中断名称中断名称中断中断组退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2 2中断产生中断产生 当事件管理器模块产生一个中断时,则其对应的中断标志寄当事件管理器模块产生一个中断时,则其对应的中断标志寄存器的相应标志位就被置存器的相应标志位就被置1 1。如果

45、此时相应的中断未被屏蔽,则。如果此时相应的中断未被屏蔽,则外设中断扩展控制器外设中断扩展控制器(PIE)(PIE)就产生了一个外设中断请求。就产生了一个外设中断请求。3 3中断向量中断向量 当中断请求被当中断请求被CPUCPU接受时,和最高优先级相对应的那个中接受时,和最高优先级相对应的那个中断向量被装载到断向量被装载到PIVRPIVR中,在中断服务程序中,在中断服务程序(ISR)(ISR)中可读取该中中可读取该中断向量。在这里需注意的是,一旦发生中断,在中断服务程序断向量。在这里需注意的是,一旦发生中断,在中断服务程序中应通过向中断标志寄存器的相应位置中应通过向中断标志寄存器的相应位置1 1

46、的方法来清除中断标的方法来清除中断标志,否则,该中断以后将不再产生中断请求。志,否则,该中断以后将不再产生中断请求。4 4中断过程中断过程 当事件管理器中断请求被接受后,必须将外设中断向量当事件管理器中断请求被接受后,必须将外设中断向量寄存器寄存器(PIVR)(PIVR)中的内容左移中的内容左移1 1位后装载到位后装载到ACCACC中,然后再将外中,然后再将外设中断向量段的起始地址加至设中断向量段的起始地址加至ACCACC,用,用BACCBACC指令跳转到相应的指令跳转到相应的中断入口地址,从而执行相应的中断服务子程序。中断入口地址,从而执行相应的中断服务子程序。 退出退出第四章第四章 TMS

47、320LF240x的片内外设的片内外设5 5EVAEVA的中断寄存器的中断寄存器(1) EVA(1) EVA中断标志寄存器中断标志寄存器 1) EVA1) EVA中断标志寄存器中断标志寄存器A(EVAIFRA)A(EVAIFRA) 15141312111098-T1OFINTFLAGT1UFINTFLAGT1CINTFLAG76543210T1PINTFLAG-CMP3INTFLAGCMP2INTFLAGCMP1INTFLAGPDPINTAFLAG 当各有效位读出值为当各有效位读出值为1 1时,表示对应的中断发出申请;读出时,表示对应的中断发出申请;读出值为值为0 0时,表示对应的中断没有申请

48、。对各有效位写入时,表示对应的中断没有申请。对各有效位写入0 0无效,无效,写写1 1清除该位的中断标志。清除该位的中断标志。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2) EVA2) EVA中断标志寄存器中断标志寄存器B(EVAIFRB)B(EVAIFRB) 位位15-415-43 32 21 10 0名名 称称保留位保留位T2OFINTT2OFINTFLAGFLAGT2UFINTT2UFINTFLAGFLAGT2CINTT2CINTFLAGFLAGT2PINTT2PINTFLAGFLAG3)EVA3)EVA中断标志寄存器中断标志寄存器C(EVAIFRC) C(EVA

49、IFRC) 位位15-415-42 21 10 0名名 称称保留位保留位CAP3INTCAP3INTFLAGFLAGCAP2INTCAP2INTFLAGFLAGCAP1INTCAP1INTFLAGFLAG退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2) EVA(2) EVA中断屏蔽寄存器中断屏蔽寄存器 1) EVA1) EVA中断屏蔽寄存器中断屏蔽寄存器A(EVAIMRA)A(EVAIMRA) 位位15141312111098名名 称称-T1OFINTENABLET1UFINTENABLET1CINTENABLE位位76543210名名 称称T1PINTENABLE-C

50、MP3INTENABLECMP2INTENABLECMP1INTENABLEPDPINTAENABLE 向某一有效位写向某一有效位写0 0,表示屏蔽,表示屏蔽( (禁止禁止) )该位对应的中断发生;该位对应的中断发生;写写1 1表示使能表示使能( (允许允许) )该位对应的中断。该位对应的中断。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2) EVA2) EVA中断屏蔽寄存器中断屏蔽寄存器B(EVAIMRB)B(EVAIMRB) 位位15-415-43 32 21 10 0名名 称称- -T2OFINTT2OFINTENABLEENABLET2UFINTT2UFINTEN

51、ABLEENABLET2CINTT2CINTENABLEENABLET2PINTT2PINTENABLEENABLE复位值复位值0 00 00 00 00 03) EVA3) EVA中断屏蔽寄存器中断屏蔽寄存器C(EVAIMRC) C(EVAIMRC) 位位15-415-42 21 10 0名名 称称保留位保留位CAP3INTCAP3INTENABLEENABLECAP2INTCAP2INTENABLEENABLECAP1INTCAP1INTENABLEENABLE复位值复位值0 00 00 00 0退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6 6EVBEVB的中断寄存

52、器的中断寄存器 (1) EVB(1) EVB中断标志寄存器中断标志寄存器 1)EVB1)EVB中断标志寄存器中断标志寄存器A(EVBIFRAA(EVBIFRA) 1515141413131212111110109 98 8保留位保留位保留位保留位保留位保留位保留位保留位保留位保留位T3OFINTT3OFINTFLAGFLAGT3UFINTT3UFINTFLAGFLAGT3CINTT3CINTFLAGFLAG7 76 65 54 43 32 21 10 0T3PINTT3PINTFLAGFLAG保留位保留位保留位保留位保留位保留位CMP6INTCMP6INTFLAGFLAGCMP5INTCMP5

53、INTFLAGFLAGCMP4INTCMP4INTFLAGFLAGPDPINTBPDPINTBFLAGFLAG 当各有效位读出值为当各有效位读出值为1 1时,表示对应的中断发出申请;读出时,表示对应的中断发出申请;读出值为值为0 0时,表示对应的中断没有申请。对各有效位写入时,表示对应的中断没有申请。对各有效位写入0 0无效,无效,写写1 1清除该位的中断标志。清除该位的中断标志。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2) EVB2) EVB中断标志寄存器中断标志寄存器B(EVBIFRB)B(EVBIFRB) 位位15-415-43 32 21 10 0名名 称称-

54、 -T4OFINTT4OFINTFLAGFLAGT4UFINTT4UFINTFLAGFLAGT4CINTT4CINTFLAGFLAGT4PINTT4PINTFLAGFLAG复位值复位值0 00 00 00 00 03) EVB3) EVB中断标志寄存器中断标志寄存器C(EVBIFRC) C(EVBIFRC) 位位15-415-42 21 10 0名名 称称保留位保留位CAP6INTCAP6INTFLAGFLAGCAP5INTCAP5INTFLAGFLAGCAP4INTCAP4INTFLAGFLAG复位值复位值0 00 00 00 0退出退出第四章第四章 TMS320LF240x的片内外设的片内

55、外设(2) EVB(2) EVB中断屏蔽寄存器中断屏蔽寄存器 1)EVB1)EVB中断屏蔽寄存器中断屏蔽寄存器A(EVBIMRA)A(EVBIMRA) 1515141413131212111110109 98 8保留位保留位保留位保留位保留位保留位保留位保留位保留位保留位T3OFINTT3OFINTENABLEENABLET3UFINTT3UFINTENABLEENABLET3CINTT3CINTENABLEENABLE7 76 65 54 43 32 21 10 0T3PINTT3PINTENABLEENABLE保留位保留位保留位保留位保留位保留位CMP6INTCMP6INTENABLEEN

56、ABLECMP5INTCMP5INTENABLEENABLECMP4INTCMP4INTENABLEENABLEPDPINTBPDPINTBENABLEENABLE 向某一有效位写向某一有效位写0 0,表示屏蔽,表示屏蔽( (禁止禁止) )该位对应的中断发生;该位对应的中断发生;写写1 1表示使能表示使能( (允许允许) )该位对应的中断。该位对应的中断。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2) EVB2) EVB中断屏蔽寄存器中断屏蔽寄存器B(EVBIMRB) B(EVBIMRB) 位位15-415-43 32 21 10 0名名 称称保留位保留位T4OFINT

57、T4OFINTENABLEENABLET4UFINTT4UFINTENABLEENABLET4CINTT4CINTENABLEENABLET4PINTT4PINTENABLEENABLE复位值复位值0 00 00 00 00 03) EVB3) EVB中断屏蔽寄存器中断屏蔽寄存器C(EVBIMRC)C(EVBIMRC) 位位15-415-42 21 10 0名名 称称保留位保留位CAP6INTCAP6INTENABLEENABLECAP5INTCAP5INTENABLEENABLECAP4INTCAP4INTENABLEENABLE复位值复位值0 00 00 00 0退出退出第四章第四章 TM

58、S320LF240x的片内外设的片内外设6.2.3 6.2.3 通用定时器通用定时器 1 1通用定时器的概述通用定时器的概述 定时器是计算机的一个非常重要的内置部件。定时器是计算机的一个非常重要的内置部件。 TMS320LF2407TMS320LF2407芯片内含有芯片内含有4 4个通用定时器,每个通用定时个通用定时器,每个通用定时器都采用器都采用1616位计数器,因此,它们的计数范围是位计数器,因此,它们的计数范围是0 06553565535个脉个脉冲。冲。 计数脉冲可由内部时钟经分频产生,也可以由外部引脚来计数脉冲可由内部时钟经分频产生,也可以由外部引脚来提供。计数方向可以是增计数,也可以

59、是减计数。提供。计数方向可以是增计数,也可以是减计数。 在定时器的内部设有周期寄存器和比较寄存器。定时器除在定时器的内部设有周期寄存器和比较寄存器。定时器除了产生上溢、下溢事件外,当计数值与周期寄存器或比较寄存了产生上溢、下溢事件外,当计数值与周期寄存器或比较寄存器的值相等时,还会产生周期匹配和比较匹配两种事件。如果器的值相等时,还会产生周期匹配和比较匹配两种事件。如果开启了比较输出功能,这些事件还将引起输出引脚的电平变化。开启了比较输出功能,这些事件还将引起输出引脚的电平变化。所以,所以,DSPDSP控制器的通用定时器为控制系统的各种应用提供了控制器的通用定时器为控制系统的各种应用提供了设计

60、上的便利。设计上的便利。 第四章第四章 TMS320LF240x的片内外设的片内外设通用定时器的功能结构框图如图所示。通用定时器的功能结构框图如图所示。 可读写的可读写的1616位加位加/ /减减计数寄存计数寄存器器TxCNTTxCNT。可读写的可读写的1616位带有位带有缓冲和影缓冲和影子寄存器子寄存器的比较寄的比较寄存器存器TxCMPRTxCMPR 可读写的可读写的1616位带有位带有缓冲和影缓冲和影子寄存器子寄存器的周期寄的周期寄存器存器TxPRTxPR 可读写的可读写的1616位定时位定时控制寄存控制寄存器器TxCONTxCON 可选择的可选择的内部或外内部或外部输入时部输入时钟钟 用

61、于内部用于内部或外部时或外部时钟输入的钟输入的可编程的可编程的预定标器预定标器 控制和中控制和中断逻辑用断逻辑用于于4 4个可屏个可屏蔽的中断蔽的中断 可选择方可选择方向的输入向的输入引脚引脚TDIRxTDIRx 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2 2通用定时器功能模块通用定时器功能模块 各个通用定时器之间可以彼此独立工作或相互同步工作。各个通用定时器之间可以彼此独立工作或相互同步工作。 与每个定时器有关的比较寄存器可用作比较功能或与每个定时器有关的比较寄存器可用作比较功能或PWMPWM波波形发生。形发生。 对于每个定时器在增对于每个定时器在增/ /减计数方式

62、中,有减计数方式中,有3 3种连续的工作方种连续的工作方式。式。 每个定时器的内部或外部的输入时钟都可以进行可编程的每个定时器的内部或外部的输入时钟都可以进行可编程的预定标。预定标。 定时器定时器1 1对所有的比较和对所有的比较和PWMPWM电路提供时基,定时器电路提供时基,定时器2 2或或1 1对捕对捕获单元和正交脉冲计数操作提供时基。获单元和正交脉冲计数操作提供时基。 周期寄存器和比较寄存器双缓冲允许根据需要编程改变周期寄存器和比较寄存器双缓冲允许根据需要编程改变(PWM)(PWM)周期和脉冲宽度。周期和脉冲宽度。 控制寄存器控制寄存器GPTCONA/BGPTCONA/B规定了通用定时器针

63、对不同的定时器规定了通用定时器针对不同的定时器事件所采取的操作,并指明了所有事件所采取的操作,并指明了所有4 4个通用定时器的计数方向。个通用定时器的计数方向。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(1)(1)通用通用定时定时器的器的输入输入 内部内部CPUCPU时钟时钟 外部时钟外部时钟TCLKINA/B,TCLKINA/B,最大频率是最大频率是CPUCPU时钟频率时钟频率1/41/4 方向输入方向输入TDIRA/B TDIRA/B 复位信号复位信号RESET RESET 正交编码脉冲电路可产生定时器的时钟和计数方向正交编码脉冲电路可产生定时器的时钟和计数方向(2

64、)通用通用定时定时器的器的输出输出 通用定时器比较输出通用定时器比较输出TxCMP(xTxCMP(x=1,2,3,4)=1,2,3,4) 到到ADCADC模块的模数转换启动信号模块的模数转换启动信号 比较逻辑和比较单元的下上溢、匹配和周期匹配信号比较逻辑和比较单元的下上溢、匹配和周期匹配信号 计数方向指示位计数方向指示位 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)通用定时器的控制寄存器通用定时器的控制寄存器 1)1)单个通用定时器控制寄存器单个通用定时器控制寄存器TxCON(xTxCON(x=1,2,3,4)=1,2,3,4)。 TxCONTxCON决定着定

65、时器的操作模式决定着定时器的操作模式 1515141413131212111110109 98 8FreeFreeSoftSoft保留位保留位TMODE1TMODE1TMODE0TMODE0TPS2TPS2TPS1TPS1TPS0TPS07 76 65 54 43 32 21 10 0T2SWT1/T2SWT1/T4SWT3+T4SWT3+TENABLETENABLETCLKS1TCLKS1TCLKS0TCLKS0TCLD1TCLD1TCLD0TCLD0TECMPRTECMPRSELT1PR/SELT1PR/SELT3PR+SELT3PR+位位12-1112-11: :用于选择计数模式。为用于

66、选择计数模式。为0000时,停止时,停止/ /保持模式;为保持模式;为0101时,时,连续增连续增/ /减计数模式;为减计数模式;为1010时,连续增计数模式;为时,连续增计数模式;为1111时,定向时,定向增增/ /减模式。减模式。 位位10-8:10-8:确定输入时钟预定标系数。为确定输入时钟预定标系数。为000000时,输入时钟为时,输入时钟为fCPUCPU/1/1;为;为001001,为,为f fCPUCPU/2/2;为;为010010,为,为f fCPUCPU/4/4;为;为011011,为,为f fCPUCPU/8/8;为;为100100,为,为f fCPUCPU/16/16;为;

67、为101101,为,为f fCPUCPU/32/32;为;为110110,为,为f fCPUCPU/64/64;为;为111111,为,为f fCPUCPU/128/128。 位位7:7:为定时器为定时器2 2、4 4的使能选择位的使能选择位( (仅在定时器仅在定时器2 2、4 4中有效中有效) )。为。为0 0时,定时器时,定时器2 2、4 4使用自身的使能位;为使用自身的使能位;为1 1时,使用时,使用T1CONT1CON、T3CONT3CON中的使能位来使能或禁止定时器中的使能位来使能或禁止定时器2 2、4 4的相应操作,从而忽略了的相应操作,从而忽略了自身的定时器使能位自身的定时器使能

68、位 位位6:6:为定时器使能位。为为定时器使能位。为0 0时,禁止定时器操作,即定时器被置时,禁止定时器操作,即定时器被置于保持状态且预定标器被复位;为于保持状态且预定标器被复位;为1 1时,使能定时器的操作时,使能定时器的操作 。位位5 54 4用于时钟的选择。为用于时钟的选择。为0000时,选择内部时,选择内部CPUCPU时钟;为时钟;为0101时,时,选择外部时钟;为选择外部时钟;为1010时保留;为时保留;为1111时选择正交编码脉冲时选择正交编码脉冲( (仅适用仅适用于定时器于定时器2 2和和4 4,在,在SELT1PR=0SELT1PR=0时有效时有效) )。 位位3 32 2:决

69、定比较寄存器的重装载条件。为:决定比较寄存器的重装载条件。为0000时,当计数值是时,当计数值是0 0时重装载;为时重装载;为0101时,当计数值是时,当计数值是0 0或等于周期寄存器值时重装载;或等于周期寄存器值时重装载;为为1010时,立即重装载;为时,立即重装载;为1111时保留。时保留。 位位1 1:为定时器的比较使能位。为:为定时器的比较使能位。为0 0时禁止定时器的比较操作;时禁止定时器的比较操作;为为1 1时使能定时器的比较操作。时使能定时器的比较操作。位位0 0:为周期寄存器的选择位:为周期寄存器的选择位( (仅在定时器仅在定时器2 2和和4 4中有效中有效) )。为。为0 0

70、时,时,使用自身周期寄存器;为使用自身周期寄存器;为1 1时,使用时,使用T1PRT1PR或或T3PRT3PR作为周期寄存器。作为周期寄存器。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2)2)全局通用定时器控制寄存器全局通用定时器控制寄存器GPTCONA/BGPTCONA/B。GPTCONA/BGPTCONA/B规定了通用定时器针对不同定时器事件所采取的规定了通用定时器针对不同定时器事件所采取的操作,并指明了它们的计数方向。操作,并指明了它们的计数方向。 GPTCONA GPTCONA 151413121110987T2STATT1STATT2TOADCT1TOADC

71、6543210TCOMPOET2PINT1PIN位位1414:是通用定时器:是通用定时器2 2的只读状态位,用于仿真观察。当为的只读状态位,用于仿真观察。当为0 0时作时作减计数;为减计数;为1 1时作加计数。时作加计数。 位位1313:是通用定时器:是通用定时器1 1的只读状态位,用于仿真观察。当为的只读状态位,用于仿真观察。当为0 0时作时作减计数;为减计数;为1 1时作加计数。时作加计数。 位位10-910-9: :用于定时器用于定时器2 2启动启动ADCADC事件。为事件。为0000时,无事件启动时,无事件启动ADCADC;为;为0101时,设置由下溢中断启动时,设置由下溢中断启动AD

72、CADC;为;为1010时,设置由周期中断启动时,设置由周期中断启动ADCADC;为;为1111时,设置由比较中断启动时,设置由比较中断启动ADCADC。 位位8-7:8-7:用于定时器用于定时器1 1启动启动ADCADC事件。为事件。为0000时,无事件启动时,无事件启动ADCADC;为;为0101时,设置由下溢中断启动时,设置由下溢中断启动ADCADC;为;为1010时,设置由周期中断启动时,设置由周期中断启动ADCADC;为;为1111时,设置由比较中断启动时,设置由比较中断启动ADCADC。位位6:6:是比较输出使能位。为是比较输出使能位。为0 0时,禁止所有通用定时器的比较输时,禁止

73、所有通用定时器的比较输出出( (高阻状态高阻状态) );为;为1 1时,使能时,使能( (允许允许) )所有通用定时器的比较输出。所有通用定时器的比较输出。 位位3-2:3-2:是通用定时器是通用定时器2 2的比较输出极性选择位。为的比较输出极性选择位。为0000时,输出强时,输出强制低电平;为制低电平;为0101时,输出低电平有效;为时,输出低电平有效;为1010时,输出高电平有效;时,输出高电平有效;为为1111时,输出强制高电平。时,输出强制高电平。 位位1-0:1-0:是通用定时器是通用定时器1 1的比较输出极性选择位。为的比较输出极性选择位。为0000时,输出强时,输出强制低电平;为

74、制低电平;为0101时,输出低电平有效;为时,输出低电平有效;为1010时,输出高电平有效;时,输出高电平有效;为为1111时,输出强制高电平。时,输出强制高电平。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设GPTCONB 151413121110987T4STATT3STATT4TOADCT3TOADC6543210TCOMPOET4PINT3PIN 全局通用定时器全局通用定时器GTPCONBGTPCONB各位的含义可参照各位的含义可参照GTPCONAGTPCONA,所不同,所不同的是把定时的是把定时1 1、2 2改为定时器改为定时器3 3、4 4, 退出退出第四章第

75、四章 TMS320LF240x的片内外设的片内外设3 3通用定时器的计数操作通用定时器的计数操作 (1)(1)停止停止/ /保持模式保持模式 在该种模式下,通用定时器停止操作并保持当前状态,计在该种模式下,通用定时器停止操作并保持当前状态,计数寄存器、比较输出和分频系数都保持不变。数寄存器、比较输出和分频系数都保持不变。 (2)(2)连续增计数模式连续增计数模式 定时器按照预定标时钟进行计数,并与周期寄存器定时器按照预定标时钟进行计数,并与周期寄存器( (TxPRTxPR) )进行比较,直到计数值与周期寄存器中数值匹配为止,在匹配进行比较,直到计数值与周期寄存器中数值匹配为止,在匹配之后的下一

76、个输入时钟的上升沿复位计数器的数值为之后的下一个输入时钟的上升沿复位计数器的数值为0 0,并重,并重新开始下一个计数周期的计数操作。在发生匹配的两个新开始下一个计数周期的计数操作。在发生匹配的两个CPUCPU周周期之后,周期中断标志位被清除。期之后,周期中断标志位被清除。 显然,如果定时计数器的初始数值为显然,如果定时计数器的初始数值为0 0,定时器的周期为,定时器的周期为TxPR+1TxPR+1个定标的时钟输入周期。个定标的时钟输入周期。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设通用定时器连续增计数模式的工作过程:通用定时器连续增计数模式的工作过程: 在该计数模式下

77、,若外设中断没有被屏蔽,则一旦发生匹在该计数模式下,若外设中断没有被屏蔽,则一旦发生匹配就对相应的周期中断标志进行置位,并产生外设中断请求。配就对相应的周期中断标志进行置位,并产生外设中断请求。如果该中断已经设置为用来启动如果该中断已经设置为用来启动ADCADC,则在中断标志被置位的同,则在中断标志被置位的同时,将启动一次时,将启动一次ADCADC。 定时器的初始值可在定时器的初始值可在0000h0000hFFFFhFFFFh范围内选。当初始值大范围内选。当初始值大于周期寄存器数值时,定时器将计数到于周期寄存器数值时,定时器将计数到FFFFhFFFFh,上溢中断标志位,上溢中断标志位置位,计数

78、值复位为置位,计数值复位为0 0后再进入正常的操作;当初始值等于周期后再进入正常的操作;当初始值等于周期寄存器数值时,定时器将置位周期中断标志,计数器复位为寄存器数值时,定时器将置位周期中断标志,计数器复位为0 0,并产生下溢中断标志进入正常操作。并产生下溢中断标志进入正常操作。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设【例例6-16-1】 本例给出了通用定时器本例给出了通用定时器1 1在连续增计数模式下在连续增计数模式下的初始化程序。的初始化程序。LDP #DP_EVA ;LDP #DP_EVA ;指向指向7400h-747Fh7400h-747Fh单元单元SPLK

79、#41h,GPTCONA ;TCOMPOE=1SPLK #41h,GPTCONA ;TCOMPOE=1允许定时器比较输出允许定时器比较输出SPLK #5h,T1PR ;SPLK #5h,T1PR ;设置周期寄存器设置周期寄存器SPLK #3h,T1CMPR ;SPLK #3h,T1CMPR ;设置比较寄存器设置比较寄存器SPLK #0h,T1CNT ;SPLK #0h,T1CNT ;设置计数寄存器设置计数寄存器SPLK #0174Eh,T1CON ;TMODE=10SPLK #0174Eh,T1CON ;TMODE=10连续增计数,连续增计数, ;TPS=111 ;TPS=111预分频为预分频

80、为128128 ;TENABLE=1 ;TENABLE=1定时器计数使能定时器计数使能 ;TCLKS=00 ;TCLKS=00内部时钟内部时钟 ;TECMPR=1 ;TECMPR=1定时器定时器1 1比较使能比较使能退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)定向增定向增/ /减计数模式减计数模式 定时器根据预定标时钟信号和定时器根据预定标时钟信号和TDIRA/BTDIRA/B引脚的输入进行连引脚的输入进行连续加或减计数操作。当引脚续加或减计数操作。当引脚TDIRA/BTDIRA/B为高电平时,定时器将加为高电平时,定时器将加计数一直到等于周期寄存器的数值,然

81、后定时计数器复位为计数一直到等于周期寄存器的数值,然后定时计数器复位为0 0,并继续进行加计数操作;当引脚,并继续进行加计数操作;当引脚TDIRA/BTDIRA/B为低电平时,定时为低电平时,定时器将进行减计数操作,一直到器将进行减计数操作,一直到0 0,然后定时器重新装载周期寄,然后定时器重新装载周期寄存器的数值,并继续进行减计数操作。存器的数值,并继续进行减计数操作。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 初始值可以为初始值可以为0000h-FFFFh0000h-FFFFh之间的任何值。当计数初始值大之间的任何值。当计数初始值大于周期寄存器的值时,如果引脚于周期

82、寄存器的值时,如果引脚TDIRA/BTDIRA/B为高电平,定时器复位为高电平,定时器复位到到0 0,并继续加计数到周期寄存器的值;如果引脚,并继续加计数到周期寄存器的值;如果引脚TDIRA/BTDIRA/B为低为低电平,则计数器减计数到周期寄存器的值后,再减计数到电平,则计数器减计数到周期寄存器的值后,再减计数到0 0,然,然后重新装入周期寄存器的值,并开始新的减计数操作。后重新装入周期寄存器的值,并开始新的减计数操作。 从引脚从引脚TDIRA/BTDIRA/B的变化到计数方向变化之间的延迟是当前计的变化到计数方向变化之间的延迟是当前计数结束后的两个数结束后的两个CPUCPU时钟周期,即当前

83、预定标的计数周期结束后时钟周期,即当前预定标的计数周期结束后的两个的两个CPUCPU周期。周期。 在该种计数模式下,无论是通过在该种计数模式下,无论是通过TCLKINA/BTCLKINA/B输入的外部时钟输入的外部时钟信号,还是来自内部的信号,还是来自内部的CPUCPU时钟,都可作为该模式下的计数输入。时钟,都可作为该模式下的计数输入。 周期、下溢、上溢中断的标志位及中断和相关的事件都由周期、下溢、上溢中断的标志位及中断和相关的事件都由各自的匹配产生,其产生方式与连续增计数模式相同。各自的匹配产生,其产生方式与连续增计数模式相同。 通用定时器定向增通用定时器定向增/ /减计数模式可用于正交编码

84、脉冲电路,减计数模式可用于正交编码脉冲电路,在这种情况下,正交编码脉冲电路为定时器在这种情况下,正交编码脉冲电路为定时器2 2和和4 4提供计数时钟提供计数时钟和计数方向。和计数方向。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(4)(4)连续增连续增/ /减计数模式减计数模式 计数过程与定向增计数过程与定向增/ /减模式工作过程类似,只是在该模式减模式工作过程类似,只是在该模式下,引脚下,引脚TDIRA/BTDIRA/B不影响计数方向。计数方向只是在计数值达不影响计数方向。计数方向只是在计数值达到周期寄存器的值,才从加计数转变为减计数,或者在计数到周期寄存器的值,才从

85、加计数转变为减计数,或者在计数值为值为0 0时,才从减计数变为加计数。时,才从减计数变为加计数。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 该计数模式的计数初始值不同,第一个周期的计数方向和该计数模式的计数初始值不同,第一个周期的计数方向和周期也不同。当计数初始值在周期也不同。当计数初始值在0 0和周期寄存器的值之间时,计和周期寄存器的值之间时,计数器将加计数到周期寄存器的值,然后进入正常计数操作;当数器将加计数到周期寄存器的值,然后进入正常计数操作;当计数初始值等于周期寄存器的值时,计数器将减计数到计数初始值等于周期寄存器的值时,计数器将减计数到0 0,然,然后开始

86、正常的计数操作;当计数初始值大于周期寄存器的值时,后开始正常的计数操作;当计数初始值大于周期寄存器的值时,定时器将加计数到定时器将加计数到FFFFhFFFFh,然后复位为,然后复位为0 0,开始正常的连续增,开始正常的连续增/ /减计数操作。减计数操作。 该种模式的计数周期为该种模式的计数周期为2(TxPR)2(TxPR)个输入时钟周期。个输入时钟周期。 无论是从引脚无论是从引脚TCLKINA/BTCLKINA/B输入的外部时钟信号,还是来自输入的外部时钟信号,还是来自内部的内部的CPUCPU时钟都可以作为该模式下的定时计数输入。时钟都可以作为该模式下的定时计数输入。 周期、下溢、上溢中断的标

87、志位、以及中断和相关的事周期、下溢、上溢中断的标志位、以及中断和相关的事件都由各自的匹配产生,其产生方式与连续增计数模式下相件都由各自的匹配产生,其产生方式与连续增计数模式下相同。同。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设4 4通用定时器的比较操作通用定时器的比较操作 每个通用定时器都有一个相关的比较寄存器每个通用定时器都有一个相关的比较寄存器TxCMPRTxCMPR和一和一个个PWMPWM输出引脚输出引脚TxPWMTxPWM。当计数值与比较寄存器的值相等时,。当计数值与比较寄存器的值相等时,就会发生比较匹配。如果比较操作被使能就会发生比较匹配。如果比较操作被使能

88、(TxCON.1(TxCON.1位被置位被置1)1),当产生比较匹配时将发生下列事件:,当产生比较匹配时将发生下列事件: 1)1)在匹配发生一个在匹配发生一个CPUCPU时钟周期后,比较中断寄存器标志位时钟周期后,比较中断寄存器标志位被置位。如果比较中断标志位已通过设置被置位。如果比较中断标志位已通过设置GPTCONA/BGPTCONA/B寄存器寄存器中的相应位去启动中的相应位去启动ADCADC,则当比较中断标志位被置位的同时,则当比较中断标志位被置位的同时也将产生也将产生ADCADC的启动信号;的启动信号; 2)2)在匹配发生一个在匹配发生一个CPUCPU时钟周期后,根据时钟周期后,根据GP

89、TCONA/BGPTCONA/B寄存器寄存器相应位的配置情况,相关的相应位的配置情况,相关的PWMPWM输出发生跳变;输出发生跳变; 3)3)如果比较中断未被屏蔽,则将产生一个外设中断请求。如果比较中断未被屏蔽,则将产生一个外设中断请求。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(1)PWM(1)PWM输出跳变输出跳变 对于对于PWMPWM输出的跳变由非对称和对称波形发生器及相关的输出的跳变由非对称和对称波形发生器及相关的输出逻辑控制,并且取决于以下条件:输出逻辑控制,并且取决于以下条件:1)GPTCONA/B1)GPTCONA/B寄存器中相应位的定义;寄存器中相应位

90、的定义; 2)2)定时器所处的计数模式;定时器所处的计数模式; 3)3)在连续增在连续增/ /减计数模式下的计数方向。减计数模式下的计数方向。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2)(2)非对称波形发生非对称波形发生 如果计数操作开始前输出为如果计数操作开始前输出为0 0,则保持不变直到比较匹,则保持不变直到比较匹配的发生,匹配时产生触发,输出发生跳变。如果在下一周配的发生,匹配时产生触发,输出发生跳变。如果在下一周期的新比较值不是期的新比较值不是0 0,则发生周期匹配的那个周期结束后输,则发生周期匹配的那个周期结束后输出复位为出复位为0 0。 如果在一个周期

91、开始时比较值为如果在一个周期开始时比较值为0 0,则在整个周期输出,则在整个周期输出将是将是1 1;如果下一个周期的新比较值也是;如果下一个周期的新比较值也是0 0,则输出将不复位,则输出将不复位为为0 0,这意味着可以产生,这意味着可以产生0 0100%100%的脉冲宽度调节。的脉冲宽度调节。 如果比较值大于周期寄存器的值,则整个周期输出为如果比较值大于周期寄存器的值,则整个周期输出为0 0。如果比较值等于周期寄存器的值,则输出为如果比较值等于周期寄存器的值,则输出为1 1将保持一个定将保持一个定标后的时钟输入周期。标后的时钟输入周期。 比较寄存器值的改变只影响比较寄存器值的改变只影响PWM

92、PWM脉冲的单边,这是非对脉冲的单边,这是非对称称PWMPWM波形的一个特点。波形的一个特点。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)对称波形发生对称波形发生 当通用定时器处于连续增当通用定时器处于连续增/ /减计数模式时产生对称波形减计数模式时产生对称波形。 若计数开始前输出为若计数开始前输出为0 0,则输出保持不变直到第一次比较,则输出保持不变直到第一次比较匹配,输出发生跳变,然后输出保持不变直到第二次比较匹配,匹配,输出发生跳变,然后输出保持不变直到第二次比较匹配,输出再次发生跳变直到周期结束。输出再次发生跳变直到周期结束。 如果没有第二次匹配且下

93、如果没有第二次匹配且下一个周期的新比较值不为一个周期的新比较值不为0 0,则在周期结束后复位为,则在周期结束后复位为0 0。 若比较值在周期开始时为若比较值在周期开始时为0 0,则输出为,则输出为1 1直到第二次比较匹直到第二次比较匹配发生。如果比较值在周期的后半部为配发生。如果比较值在周期的后半部为0 0,则输出将保持为,则输出将保持为1 1直直到周期结束。在这种情况下,如果新比较值仍为到周期结束。在这种情况下,如果新比较值仍为0 0,输出将不,输出将不会复位为会复位为0 0。 如果前半周期中的比较值大于或等于周期寄存器的值,则如果前半周期中的比较值大于或等于周期寄存器的值,则第一次跳变将不

94、会发生,但是当后半周期发生匹配时,输出仍第一次跳变将不会发生,但是当后半周期发生匹配时,输出仍会跳变。这种输出错误的跳变经常是由于应用程序计算不正确会跳变。这种输出错误的跳变经常是由于应用程序计算不正确引起的,它将在周期结束时被纠正。引起的,它将在周期结束时被纠正。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(4)(4)输出逻辑输出逻辑 输出逻辑可通过配置输出逻辑可通过配置GPTCONA/BGPTCONA/B寄存器中的相应位来规定寄存器中的相应位来规定高有效、低有效、强制低或强制高。当高有效、低有效、强制低或强制高。当PWMPWM的输出定义为高有的输出定义为高有效时,它

95、的极性与相关的波形发生器的极性相同;当效时,它的极性与相关的波形发生器的极性相同;当PWMPWM的输的输出定义为低有效时,它的极性与相关波形发生器的极性相反;出定义为低有效时,它的极性与相关波形发生器的极性相反;当通过当通过GPTCONA/BGPTCONA/B寄存器中的控制位将寄存器中的控制位将PWMPWM的输出定义为强制低的输出定义为强制低或高时,或高时,PWMPWM的输出立即变为的输出立即变为0 0或或1 1。 当出现下列任何一种情况时,所有的通用定时器当出现下列任何一种情况时,所有的通用定时器PWMPWM输出输出都置为高阻态:都置为高阻态: 1)1)软件将软件将GPTCONA/B6GPT

96、CONA/B6置为置为0 0; 2)PDPINTx2)PDPINTx引脚上的电平被拉低并且未被屏蔽;引脚上的电平被拉低并且未被屏蔽; 3)3)任何一个复位事件发生;任何一个复位事件发生; 4)4)软件将软件将TxCON1TxCON1置为置为0 0。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设5 5通用定时器的通用定时器的PWMPWM输出输出 每个通用定时器都可以独立地提供一个每个通用定时器都可以独立地提供一个PWMPWM输出通道,因输出通道,因此,通用定时器最多可提供此,通用定时器最多可提供4 4个个PWMPWM输出。输出。 可按如下方法来设置通用定时器的可按如下方法来

97、设置通用定时器的PWMPWM输出:输出:1)1)根据预定的根据预定的PWMPWM载波频率来设置周期寄存器载波频率来设置周期寄存器TxPRTxPR的值;的值; 2)2)设置设置TxCONTxCON确定计数模式和时钟源输入,并启动确定计数模式和时钟源输入,并启动PWMPWM输出;输出;3) )将所计算出的将所计算出的PWMPWM占空比数值装载到占空比数值装载到TxCMPRTxCMPR中。中。 当选用连续增计数模式来产生非对称当选用连续增计数模式来产生非对称PWM PWM 波形时,将预波形时,将预定的定的PWMPWM周期除以定时器输入时钟的周期并减周期除以定时器输入时钟的周期并减1 1就得到了周期就

98、得到了周期寄存器的周期值;当选用连续增寄存器的周期值;当选用连续增/ /减计数模式产生对称减计数模式产生对称PWMPWM波波形时,将预定的形时,将预定的PWMPWM周期除以两倍的输入时钟周期就得到了周周期除以两倍的输入时钟周期就得到了周期寄存器的周期值。期寄存器的周期值。 当要产生的当要产生的PWMPWM波形占空比不同时,只需在线计算出相对波形占空比不同时,只需在线计算出相对于占空比的宽度值,并加载到比较寄存器中即可。于占空比的宽度值,并加载到比较寄存器中即可。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6 6通用定时器的复位通用定时器的复位 发生发生复位事件时,复位事

99、件时,GPTCONA/BGPTCONA/B寄存器中除计数方向指示位寄存器中除计数方向指示位外的所有与通用定时器有关的位都被清外的所有与通用定时器有关的位都被清0 0,故所有定时器的操,故所有定时器的操作都被禁止;所有的定时器中断标志位都被复位为作都被禁止;所有的定时器中断标志位都被复位为0 0;所有定;所有定时器中断屏蔽位都被复位为时器中断屏蔽位都被复位为0 0,即所有与定时器有关的中断都,即所有与定时器有关的中断都被禁止;所有的定时器比较输出都被置成高阻状态。被禁止;所有的定时器比较输出都被置成高阻状态。 7 7通用定时器的中断实现通用定时器的中断实现 下面是通用定时器下面是通用定时器1 1

100、产生产生1ms1ms的定时中断服务程序。假设外部输的定时中断服务程序。假设外部输入时钟为入时钟为6MHz6MHz,经,经DSPDSP内部锁相环内部锁相环4 4倍频后得倍频后得24MHz24MHz,通用定时器,通用定时器1 1预分频因子为预分频因子为6464。INT2INT2的中断向量为的中断向量为0004h0004h,T1PINTT1PINT的外设中断向的外设中断向量为量为0027h0027h。 .include “F2407REGS.H” ;.include “F2407REGS.H” ;引用头文件引用头文件.def _c_int0 ;.def _c_int0 ;定义程序的入口地址定义程序的

101、入口地址退出退出第四章第四章 TMS320LF240x的片内外设的片内外设;(1);(1)建立中断向量表建立中断向量表 .sect “.vectors” ;.sect “.vectors” ;定义主向量段定义主向量段RSVECT B _c_int0 ;RSVECT B _c_int0 ;复位向量,地址复位向量,地址0000h0000hINT1 B PHANTOM ;INT1 B PHANTOM ;中断优先级中断优先级1 1,地址,地址0002h0002hINT2 B GISR2 ;INT2 B GISR2 ;中断优先级中断优先级2 2,地址,地址0004h0004hINT3 B PHANTOM

102、 ;INT3 B PHANTOM ;中断优先级中断优先级3 3,地址,地址0006h0006h; ;中断子向量入口中断子向量入口 .sect “.sect “.pvecspvecs” ;” ;定义子向量段定义子向量段PVECTORSPVECTORS B PHANTOM ; B PHANTOM ; 中断子向量地址偏移量中断子向量地址偏移量0000h0000h B PHANTOM ; B PHANTOM ;高优先级模式的外部引脚中断,高优先级模式的外部引脚中断, ; ;地址地址0001h0001h B T1PINT_ISR ; B T1PINT_ISR ;定时器定时器1 1周期中断,周期中断, ;

103、 ;子向量地址偏移量子向量地址偏移量0027h0027h 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(2);(2)主程序主程序 .text ;.text ;程序段开始程序段开始 _c_int0: _c_int0: SETC INTM ; SETC INTM ;禁止中断禁止中断 CLRC SXM ;CLRC SXM ;抑制符号扩展抑制符号扩展 CLRC OVM ;ACCCLRC OVM ;ACC结果正常溢出结果正常溢出 CLRC CNF ;B0CLRC CNF ;B0区被配置为数据空间区被配置为数据空间 LDP #0E0h ;LDP #0E0h ;指向指向7000h7

104、07Fh7000h707Fh SPLK #81FEh,SCSR1 ; SPLK #81FEh,SCSR1 ;时钟时钟4 4倍频,倍频, ;CLKIN=6MHz,CLKOUT=24MHz ;CLKIN=6MHz,CLKOUT=24MHz SPLK #0E8h,WDCR ; SPLK #0E8h,WDCR ;不使能看门狗不使能看门狗 LDP #0 LDP #0 SPLK #02h,IMR ; SPLK #02h,IMR ;使能中断优先级使能中断优先级INT2INT2 SPLK #0FFFFh,IFR ;SPLK #0FFFFh,IFR ;清中断标志清中断标志 LDP #0E8h ;LDP #0E8

105、h ;指向指向7400h747Fh7400h747Fh SPLK #80h,EVAIMRA ; SPLK #80h,EVAIMRA ;使能使能T1PINTT1PINT中断中断 SPLK #0FFFFh,EVAIFRA ;SPLK #0FFFFh,EVAIFRA ;清清EVAEVA中断标志中断标志 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 SPLK #0,GPTCONA ; SPLK #0,GPTCONA ;设置通用控制寄存器设置通用控制寄存器 SPLK #177h,T1PR ;SPLK #177h,T1PR ;装载定时器装载定时器1 1周期寄存器周期寄存器 SPLK

106、#0,T1CNT ;SPLK #0,T1CNT ;装载计数寄存器装载计数寄存器 SPLK #0164Ch,T1CON ;TMODE=10SPLK #0164Ch,T1CON ;TMODE=10连续增计数模式连续增计数模式 ;TPS=110 ;TPS=110预分频预分频64;TENABLE=164;TENABLE=1定定 ; ;时器计数使能时器计数使能,TCLKS=00,TCLKS=00内部时钟内部时钟 ;TECMPR=1;TECMPR=1定时器定时器1 1比较使能比较使能,SELT1PR=0 ,SELT1PR=0 CLRC INTM ; CLRC INTM ;开总中断开总中断WAIT: WAI

107、T: NOP NOP B WAIT ; B WAIT ;等待中断等待中断退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(3);(3)中断程序中断程序GISR2:GISR2: ; ;保护现场保护现场 LDP #0E0h ;LDP #0E0h ;指向指向7000h-7080h7000h-7080h LACC PIVR,1 ; LACC PIVR,1 ;读外设中断向量寄存器读外设中断向量寄存器, ,并左移并左移1 1位位 ADD #PVECTORS ;ADD #PVECTORS ;加上外设中断入口地址加上外设中断入口地址 BACC ;BACC ;跳到相应的中断服务子程序跳到相

108、应的中断服务子程序T1PINT_ISR: ;T1PINT_ISR: ;通用定时器通用定时器1 1中断入口中断入口 LDP #DP_EVA ;LDP #DP_EVA ;指向指向7400h-7480h7400h-7480h SPLK #0,T1CNT ; SPLK #0,T1CNT ;恢复计数寄存器初始值恢复计数寄存器初始值GISR2_RET: ;GISR2_RET: ;中断返回中断返回 ; ;恢复现场恢复现场 CLRC INTM ;CLRC INTM ;开总中断开总中断 RET ;RET ;返回主程序返回主程序退出退出第四章第四章 TMS320LF240x的片内外设的片内外设;(4);(4)假中

109、断程序假中断程序 PHANTOM:PHANTOM: LDP #DP_PF1 LDP #DP_PF1 SPLK #055h,WDKEY ; SPLK #055h,WDKEY ;复位看门狗复位看门狗 SPLK #0AAh,WDKEY SPLK #0AAh,WDKEY RET RET .END .END退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.2.4 6.2.4 比较单元比较单元 每个事件管理器模块中都有每个事件管理器模块中都有3 3个全比较单元,个全比较单元,EVAEVA模块为比模块为比较单元较单元1 1、2 2和和3 3,EVBEVB模块为比较单元模块为比较单元4 4

110、、5 5和和6 6。EVAEVA模块的比较模块的比较单元操作的时基由定时器单元操作的时基由定时器1 1提供,提供,EVBEVB模块的比较单元操作的时模块的比较单元操作的时基由定时器基由定时器3 3提供。每个比较单元都有两个相关的提供。每个比较单元都有两个相关的PWMPWM输出。输出。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(1)(1)比较的输入和输出比较的输入和输出 比较单元的输入包括来自控制寄存器的控制信号、通用比较单元的输入包括来自控制寄存器的控制信号、通用定时器定时器1 1和和3(T1CNT3(T1CNT和和T3CNT)T3CNT)及它们的下溢和周期匹配信号、

111、及它们的下溢和周期匹配信号、复位信号。复位信号。 比较单元的输出是一个比较匹配信号。如果比较操作使比较单元的输出是一个比较匹配信号。如果比较操作使能,该匹配信号将置中断标志位,并使和比较单元相关的两能,该匹配信号将置中断标志位,并使和比较单元相关的两个输出引脚发生跳变。个输出引脚发生跳变。(2)(2)比较操作模式比较操作模式 对对EVA(EVA(或或EVB)EVB)而言,通用定时器而言,通用定时器1(1(或或3)3)的计数值不断与的计数值不断与比较寄存器的值进行比较,当发生匹配时,比较单元的两个比较寄存器的值进行比较,当发生匹配时,比较单元的两个引脚的输出电平按照方式控制寄存器引脚的输出电平按

112、照方式控制寄存器ACTRA(ACTRA(或或ACTRB)ACTRB)控制的控制的位进行跳变。位进行跳变。 匹配时匹配时, ,若比较被使能若比较被使能, ,则比较匹配中断标志位被置位则比较匹配中断标志位被置位, ,这时这时若中断没有被屏蔽若中断没有被屏蔽, ,则会产生外设中断请求。输出跳变的时序、则会产生外设中断请求。输出跳变的时序、中断请求的产生与通用定时器的比较操作相同。输出逻辑、死中断请求的产生与通用定时器的比较操作相同。输出逻辑、死区单元及空间矢量区单元及空间矢量PWMPWM逻辑可改变比较单元的输出。逻辑可改变比较单元的输出。退出退出第四章第四章 TMS320LF240x的片内外设的片内

113、外设(3)(3)比较单元操作的寄存器配置比较单元操作的寄存器配置 EVAEVAEVBEVB设置设置T1PRT1PR设置设置T3PRT3PR设置设置ACTRAACTRA设置设置ACTRBACTRB初始化初始化CMPRxCMPRx初始化初始化CMPRxCMPRx设置设置COMCONACOMCONA设置设置COMCONBCOMCONB设置设置T1CONT1CON设置设置T3CONT3CON比较单元操作的寄存器配置步骤如下表所示。比较单元操作的寄存器配置步骤如下表所示。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(4)(4)比较单元寄存器比较单元寄存器 比较操作由比较控制寄存器

114、控制,若其第比较操作由比较控制寄存器控制,若其第1515位使能了比较位使能了比较操作,则当比较匹配事件发生时,操作,则当比较匹配事件发生时, 6 6个比较输出引脚就按比较个比较输出引脚就按比较方式控制寄存器设定的方式跳变。方式控制寄存器设定的方式跳变。1)1)比较控制寄存器比较控制寄存器A(COMCONA) :A(COMCONA) :地址是地址是7411h7411h 位位1515: :是比较使能位。为是比较使能位。为0 0禁止比较操作;为禁止比较操作;为1 1使能比较操作。使能比较操作。 位位14-13:14-13:确定比较寄存器确定比较寄存器CMPRxCMPRx的重载条件。为的重载条件。为0

115、000时为时为T1CNT=0(T1CNT=0(即下溢即下溢) );为;为0101时为时为T1CNT=0T1CNT=0或或T1CNT=T1PR(T1CNT=T1PR(即下溢或即下溢或周期匹配周期匹配) );为;为1010时为立即重载;为时为立即重载;为1111时为保留位。时为保留位。位位1212:为空间矢量:为空间矢量PWMPWM模式使能位。为模式使能位。为0 0时禁止空间矢量时禁止空间矢量PWMPWM模模式;为式;为1 1时使能空间矢量时使能空间矢量PWMPWM模式。模式。 位位11111010:确定方式控制寄存器:确定方式控制寄存器ACTRAACTRA的重载条件。为的重载条件。为0000时条

116、时条件为件为T1CNT=0(T1CNT=0(即下溢即下溢) );为;为0101时条件为时条件为T1CNT=0T1CNT=0或或T1CNT=T1PRT1CNT=T1PR( (即下溢或周期匹配即下溢或周期匹配) );为;为1010时条件为立即重载;为时条件为立即重载;为1111时为保时为保留位。留位。 位位9 9:是比较输出使能位。为:是比较输出使能位。为0 0时禁止时禁止PWMPWM引脚输出,输出为高引脚输出,输出为高阻态;为阻态;为1 1时时PWMPWM输出引脚处于使能状态。输出引脚处于使能状态。 位位8 8:反映了当前引脚:反映了当前引脚PDPINTAPDPINTA的状态。的状态。 -STA

117、TUSFCOMPOEACTRLD0ACTRLD1SVENABLECLD0CLD1CENABLE7089101112131415PDPINTA退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2)2)比较控制寄存器比较控制寄存器B(COMCONB) :B(COMCONB) :地址是地址是7511h7511h -STATUSFCOMPOEACTRLD0ACTRLD1SVENABLECLD0CLD1CENABLE7089101112131415PDPINTB 各位的定义参照比较控制寄存器各位的定义参照比较控制寄存器A A,所不同的是该比较控,所不同的是该比较控制寄存器的重载条件使用的

118、是定时器制寄存器的重载条件使用的是定时器3 3。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设3)3)比较方式控制寄存器比较方式控制寄存器A(ACTRA):A(ACTRA):地址地址7413h7413h 15141312111098SVRDIRD2D1D0CMP6ACT1CMP6ACT0CMP5ACT1CMP5ACT076543210CMP4ACT1CMP4ACT0CMP3ACT1CMP3ACT0CMP2ACT1CMP2ACT0CMP1ACT1CMP1ACT0位位1515: :确定空间矢量确定空间矢量PWMPWM的旋转方向。为的旋转方向。为0 0时正向;为时正向;为1 1时

119、反向时反向位位14-1214-12: :为基本的空间矢量,仅用于空间矢量为基本的空间矢量,仅用于空间矢量PWMPWM输出的产生输出的产生位位11-1011-10: :用于选择引脚用于选择引脚PWM6/IOPB3PWM6/IOPB3的比较输出方式。为的比较输出方式。为0000输出输出强制低;为强制低;为0101输出低电平有效;为输出低电平有效;为1010输出高电平有效;为输出高电平有效;为1111输输出强制高。出强制高。位位9-89-8: :用于选择引脚用于选择引脚PWM5/IOPB2PWM5/IOPB2的比较输出方式。为的比较输出方式。为0000输出强输出强制低;为制低;为0101输出低电平有

120、效;为输出低电平有效;为1010输出高电平有效;为输出高电平有效;为1111输出输出强制高。强制高。 位位7-6:7-6:用于选择引脚用于选择引脚PWM4/IOPB1PWM4/IOPB1的比较输出方式。为的比较输出方式。为0000输出强输出强制低;为制低;为0101输出低电平有效;为输出低电平有效;为1010输出高电平有效;为输出高电平有效;为1111输出输出强制高。强制高。位位5-4:5-4:用于选择引脚用于选择引脚PWM3/IOPB0PWM3/IOPB0的比较输出方式。为的比较输出方式。为0000输出强输出强制低;为制低;为0101输出低电平有效;为输出低电平有效;为1010输出高电平有效

121、;为输出高电平有效;为1111输出输出强制高。强制高。 位位3-2:3-2:用于选择引脚用于选择引脚PWM2/IOPA7PWM2/IOPA7的比较输出方式。为的比较输出方式。为0000输出强输出强制低;为制低;为0101输出低电平有效;为输出低电平有效;为1010输出高电平有效;为输出高电平有效;为1111输出输出强制高。强制高。位位1-01-0: :用于选择引脚用于选择引脚PWM1/IOPA6PWM1/IOPA6的比较输出方式。为的比较输出方式。为0000输出强输出强制低;为制低;为0101输出低电平有效;为输出低电平有效;为1010输出高电平有效;为输出高电平有效;为1111输出输出强制高

122、。强制高。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设4) 4) 比较方式控制寄存器比较方式控制寄存器B(ACTRB):B(ACTRB):地址地址7513h 7513h 1515141413131212111110109 98 8SVRDIRSVRDIRD2D2D1D1D0D0CMP12ACCMP12ACT1T1CMP12ACCMP12ACT0T0CMP11ACCMP11ACT1T1CMP11ACCMP11ACT0T07 76 65 54 43 32 21 10 0CMP10ACCMP10ACT1T1CMP10ACCMP10ACT0T0CMP9ACCMP9ACT1T1C

123、MP9ACCMP9ACT0T0CMP8ACTCMP8ACT1 1CMP8ACTCMP8ACT0 0CMP7ACTCMP7ACT1 1CMP7ACTCMP7ACT0 0表中各位的定义参照比较方式控制寄存器表中各位的定义参照比较方式控制寄存器A A。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.2.5 6.2.5 脉宽调制电路脉宽调制电路PWMPWM 每个事件管理器都具有每个事件管理器都具有3 3对对0-16s0-16s的可编程死区控制的可编程死区控制PWMPWM波形输出的功能。在电动机控制中,采用基于波形输出的功能。在电动机控制中,采用基于DSPDSP硬件的硬件的PWM

124、PWM发发生电路可大大减小用户编程的工作量和生电路可大大减小用户编程的工作量和CPUCPU时间的开销。时间的开销。 脉宽调制脉宽调制(PWM)(PWM)的核心就是产生周期不变但脉宽可变的信的核心就是产生周期不变但脉宽可变的信号,即号,即PWMPWM信号是一串宽度变化的脉冲序列,这些脉冲平均分信号是一串宽度变化的脉冲序列,这些脉冲平均分分布在一段定长的周期中,在每个周期中只有一个脉冲。这个分布在一段定长的周期中,在每个周期中只有一个脉冲。这个定长的周期被称为定长的周期被称为PWMPWM载波周期,其倒数被称为载波周期,其倒数被称为PWMPWM载波频率。载波频率。 在在EVEV中,通用定时器的周期匹

125、配可以保证中,通用定时器的周期匹配可以保证PWMPWM波形的周期波形的周期不变,通用定时器的比较匹配可以产生不同的不变,通用定时器的比较匹配可以产生不同的PWMPWM脉宽。因此,脉宽。因此,根据调制频率来设置通用定时器周期寄存器的值,根据已知的根据调制频率来设置通用定时器周期寄存器的值,根据已知的脉宽变化规律在每个周期内修改通用定时器比较寄存器的值,脉宽变化规律在每个周期内修改通用定时器比较寄存器的值,用于得到不同的脉宽。通过设置死区控制寄存器可选择死区时用于得到不同的脉宽。通过设置死区控制寄存器可选择死区时间。间。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设1 1PW

126、MPWM的特性的特性 1)1)具有具有1616位的死区控制寄存器;位的死区控制寄存器; 2)2)有从有从0 0到到16s16s的可编程死区发生器控制的可编程死区发生器控制PWMPWM输出;输出; 3)3)最小的死区宽度为最小的死区宽度为1 1个个CPUCPU时钟周期;时钟周期; 4)4)可根据需要改变可根据需要改变PWMPWM的载波频率;的载波频率; 5)5)在每个在每个PWMPWM周期内可根据需要改变周期内可根据需要改变PWMPWM脉冲的宽度;脉冲的宽度; 6)6)具有外部可屏蔽的功率驱动保护中断;具有外部可屏蔽的功率驱动保护中断; 7)7)脉冲形成发生器电路用于可编程的对称、非对称以及脉冲

127、形成发生器电路用于可编程的对称、非对称以及4 4个个空间矢量空间矢量PWMPWM波形产生;波形产生; 8)8)具有自动重装载的比较和周期寄存器使具有自动重装载的比较和周期寄存器使CPUCPU的负担最小。的负担最小。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2 2与比较单元相关的与比较单元相关的PWMPWM电路电路 对于每个事件管理器,都具有对于每个事件管理器,都具有6 6路带有可编程的死区和输出路带有可编程的死区和输出极性控制的极性控制的PWMPWM输出。输出。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(1)(1)死区单元死区单元 EVAEV

128、A和和EVBEVB具有各自独立的可编程死区单元,每个死区单元具有各自独立的可编程死区单元,每个死区单元由一个可读由一个可读/ /写的写的1616位死区控制寄存器位死区控制寄存器DBTCONA/BDBTCONA/B、一个输入时、一个输入时钟预分频器钟预分频器(x/1(x/1、x/2x/2、x/4x/4、x/8x/8、x/16x/16、x/32)x/32)、内部、内部CPUCPU时钟时钟输入、输入、3 3个个4 4位减计数定时器和控制逻辑组成。位减计数定时器和控制逻辑组成。 1)1)死区控制寄存器死区控制寄存器A(DBTCONA) :A(DBTCONA) :地址地址7415h 7415h 1512

129、111098保留位保留位DBT3DBT2DBT1DBT076543210EDBT3EDBT2EDBT1DBTPS2DBTPS1DBTPS0保留位保留位位位11-811-8: :用于定义死区定时器周期。这些位规定了用于定义死区定时器周期。这些位规定了3 3个个4 4位死区定位死区定时器的周期值时器的周期值 位位7 7: :为死区定时器为死区定时器3 3的使能位的使能位( (对应比较单元对应比较单元3 3的引脚的引脚PWM5PWM5、PWM6)PWM6)。该位为。该位为0 0表示禁止;为表示禁止;为1 1表示使能。表示使能。 位位6 6: :为死区定时器为死区定时器2 2的使能位的使能位( (对应

130、比较单元对应比较单元2 2的引脚的引脚PWM3PWM3、PWM4)PWM4)。该位为。该位为0 0表示禁止;为表示禁止;为1 1表示使能。表示使能。 位位5 5: :为死区定时器为死区定时器1 1的使能位的使能位( (对应比较单元对应比较单元1 1的引脚的引脚PWM1PWM1、PWM2)PWM2)。该位为。该位为0 0表示禁止;为表示禁止;为1 1表示使能。表示使能。 位位4-24-2: :确定死区定时器的预分频因子。为确定死区定时器的预分频因子。为000000时时x/1x/1;为;为001001时时x/2x/2;为;为010010时时x/4x/4;为;为011011时时x/8x/8;为;为1

131、00100时时x/16x/16;为;为101-111101-111时时x/32x/32。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设2) 2) 死区控制寄存器死区控制寄存器B(DBTCONB):B(DBTCONB):地址为地址为7515h7515h 1512111098保留位保留位DBT3DBT2DBT1DBT076543210EDBT3EDBT2EDBT1DBTPS2DBTPS1DBTPS0保留位保留位各位的含义参照死区控制寄存器各位的含义参照死区控制寄存器A(DBTCONA)A(DBTCONA)。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(

132、2)(2)死区的产生死区的产生 对每一对每一PHxPHx,有,有两个对应的输出信号两个对应的输出信号DTPHxDTPHx、DTPHxDTPHx_ _。当。当死区被禁止时,死输死区被禁止时,死输入和输出信号相同;入和输出信号相同;当死区被允许时,这当死区被允许时,这两个信号的转换边沿两个信号的转换边沿就会被死区间隔分开。就会被死区间隔分开。死区间隔的大小由死区间隔的大小由DBTCONA/BDBTCONA/B决定,如决定,如DBTCONA11-8DBTCONA11-8是是m m,则,则当预定标因子当预定标因子DBTCONA4-2DBTCONA4-2对应为对应为x/px/p时,死区数值为时,死区数值

133、为( (mpmp) )个个T TCPUCPU。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设带有死区的带有死区的PWMPWM波形图波形图 如下如下退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)输出逻辑输出逻辑 在比较发生匹配时,输出引脚在比较发生匹配时,输出引脚PWM1PWM1PWM12PWM12上的输出极性和上的输出极性和方式是由输出逻辑电路决定的。与每个比较单元相关的输出方式方式是由输出逻辑电路决定的。与每个比较单元相关的输出方式可分为低有效、高有效、强制低和强制高,可分为低有效、高有效、强制低和强制高,PWMPWM输出极性和方式输出极性

134、和方式可通过可通过ACTRA/BACTRA/B寄存器中相应的位来配置。寄存器中相应的位来配置。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设当发生以下任一情况时,所有的当发生以下任一情况时,所有的PWMPWM输出引脚都置成高阻态:输出引脚都置成高阻态:1)1)软件将软件将COMCONA/B9COMCONA/B9清清0 0;2)2)当当PDPINTA/BPDPINTA/B未被屏蔽时,由硬件将未被屏蔽时,由硬件将PDPINTA/BPDPINTA/B引脚上的引脚上的电平拉低;电平拉低;3)3)发生任何复位事件;发生任何复位事件;退出退出第四章第四章 TMS320LF240x的片

135、内外设的片内外设3 3比较单元和比较单元和PWMPWM电路中的电路中的PWMPWM波形产生波形产生 (1)(1)产生产生PWMPWM的寄存器设置的寄存器设置 1)1)首先设置和装载首先设置和装载ACTRA/BACTRA/B寄存器,以决定寄存器,以决定PWMPWM输出的极性;输出的极性; 2)2)如果死区使能,则设置和装载如果死区使能,则设置和装载DBTCONA/BDBTCONA/B寄存器,以决定死寄存器,以决定死区的大小;区的大小; 3)3)设置和装载设置和装载T1PRT1PR或或T3PRT3PR寄存器,以决定寄存器,以决定PWMPWM波形的周期;波形的周期; 4)4)初始化初始化CMPRxC

136、MPRx寄存器,设置和装载寄存器,设置和装载COMCONA/BCOMCONA/B寄存器;寄存器; 5)5)设置和装载设置和装载TlCONTlCON或或T3CONT3CON寄存器,来启动比较操作;寄存器,来启动比较操作; 6)6)更新更新CMPRxCMPRx寄存器的值,使输出的寄存器的值,使输出的PWMPWM波形的占空比发生变化。波形的占空比发生变化。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2)(2)非对称非对称PWMPWM波形的产生波形的产生 为了产生非对称为了产生非对称PWMPWM波形,通用定时器波形,通用定时器1 1应设置为连续增计数应设置为连续增计数模式,并且

137、周期寄存器用相应的模式,并且周期寄存器用相应的PWMPWM载波周期的数值装载。载波周期的数值装载。COMCONA/BCOMCONA/B配置成使能比较操作模式,并使能配置成使能比较操作模式,并使能PWMPWM输出引脚。如果输出引脚。如果死区功能被使能,将所需的死区时间值装载寄存器死区功能被使能,将所需的死区时间值装载寄存器DBTCONA/BDBTCONA/B的的11-811-8位。通过软件适当地配置寄存器位。通过软件适当地配置寄存器ACRTA/BACRTA/B。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(3)(3)对称对称PWMPWM波形的产生波形的产生 利用比较单元和

138、利用比较单元和PWMPWM电路产生对称电路产生对称PWMPWM波形的方法与非对称波形的方法与非对称PWMPWM波形的产生类似,不同的只是要将定时器波形的产生类似,不同的只是要将定时器1 1或或3 3的连接增计的连接增计数模式改为连续增数模式改为连续增/ /减计数模式。对称减计数模式。对称PWMPWM波形比非对称波形比非对称PWMPWM波波形的优越之处在于它存在有两个相同长度的非激活区形的优越之处在于它存在有两个相同长度的非激活区( (无效区无效区) ),这两个区分别位于,这两个区分别位于PWMPWM波形的起始和结束处。波形的起始和结束处。 退出退出第四章第四章 TMS320LF240x的片内外

139、设的片内外设(4)PWM(4)PWM输出的占空比计算输出的占空比计算 假设假设PWMPWM的引脚输出为高电平有效,比较寄存器的值为的引脚输出为高电平有效,比较寄存器的值为TxCMPRTxCMPR,周期寄存器的值为,周期寄存器的值为TxPRTxPR,正常时有,正常时有00TxCMPRTxCMPR TxPRTxPR,通用定时器的工作模式为连续增通用定时器的工作模式为连续增/ /减方式。波形的发生过程如减方式。波形的发生过程如下:下: 1)1)计数器从计数器从0 0开始增计数,在未达到比较寄存器的值之前,引开始增计数,在未达到比较寄存器的值之前,引脚输出为无效的低电平。脚输出为无效的低电平。2)2)

140、当计数值与比较寄存器的值相等时,产生第一次比较匹配事当计数值与比较寄存器的值相等时,产生第一次比较匹配事件,件,PWMPWM引脚输出有效高电平。引脚输出有效高电平。3)3)计数器继续增计数到周期值,发生周期匹配事件。计数器计数器继续增计数到周期值,发生周期匹配事件。计数器减计数操作,当再次与比较值相等时,发生第二次比较匹配减计数操作,当再次与比较值相等时,发生第二次比较匹配事件,对应的事件,对应的PWMPWM引脚输出低电平。之后,定时计数器继续减引脚输出低电平。之后,定时计数器继续减计数到计数到0 0为止,产生一次下溢事件,完成一个周期。为止,产生一次下溢事件,完成一个周期。4)4)如果下一个

141、周期比较寄存器的值仍然大于如果下一个周期比较寄存器的值仍然大于0 0且小于周期寄存且小于周期寄存器的值,则又重复以上步骤。器的值,则又重复以上步骤。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 由于在一个周期内会发生两次比较匹配事件,如果两次比由于在一个周期内会发生两次比较匹配事件,如果两次比较值相同,则会产生对称的较值相同,则会产生对称的PWMPWM波形。如果在一个周期内两次波形。如果在一个周期内两次比较匹配值不同,则会产生非对称的比较匹配值不同,则会产生非对称的PWMPWM波形。当然,也可以波形。当然,也可以根据需要来改变周期寄存器的值以调整调制信号的频率。根据需要来

142、改变周期寄存器的值以调整调制信号的频率。 由于连续增由于连续增/ /减计数模式的脉冲周期为减计数模式的脉冲周期为T=2TxPRT=2TxPR,而有效,而有效电平时间为电平时间为t1=(t1=(TxPR-TxCMPRup)+(TxPR-TxCMPRdownTxPR-TxCMPRup)+(TxPR-TxCMPRdown) )个计数脉个计数脉冲,其中,冲,其中,TxCMPRupTxCMPRup为第一次比较匹配值,为第一次比较匹配值,TxCMPRdownTxCMPRdown为第二为第二次比较匹配值,故次比较匹配值,故PWMPWM输出波形的占空比为输出波形的占空比为 q=t1/T=(2TxPR-TxCM

143、PRup- q=t1/T=(2TxPR-TxCMPRup- TxCMPRdownTxCMPRdown)/( 2TxPR)/( 2TxPR) 在两次比较匹配值相等时在两次比较匹配值相等时( (即即TxCMPRupTxCMPRup= = TxCMPRdownTxCMPRdown时时) ),PWMPWM输出的占空比为输出的占空比为 q= t1/T=(q= t1/T=(TxPR-TxCMPR)/TxPRTxPR-TxCMPR)/TxPR 当比较寄存器的值为当比较寄存器的值为0 0时,时,PWMPWM输出波形的占空比为输出波形的占空比为 q= t1/T=100%q= t1/T=100%退出退出第四章第四

144、章 TMS320LF240x的片内外设的片内外设 当当比较寄存器的值等于周期寄存器的值时比较寄存器的值等于周期寄存器的值时( (即即TxPRTxPR= =TxCMPRTxCMPR时时) ),PWMPWM输出波形的占空比为输出波形的占空比为 q= t1/T=0%q= t1/T=0%退出退出第四章第四章 TMS320LF240x的片内外设的片内外设5 5PWMPWM波形产生举例波形产生举例 TMS320LF240x TMS320LF240x总共有总共有1212路路PWMPWM输出,这里使用输出,这里使用EVBEVB模块,在模块,在PWM7-PWM12PWM7-PWM12上输出上输出6 6路占空比不

145、同的路占空比不同的PWMPWM波形。波形。 设设PWM7PWM7、PWM9PWM9和和PWM11PWM11引脚的输出为高有效,引脚的输出为高有效,PWM8PWM8、PWM10PWM10和和PWM12PWM12引脚的输出为低有效。采用引脚的输出为低有效。采用EVBEVB模块中的通用定时器模块中的通用定时器3 3产生比较值。产生比较值。 .include “F2407REGS.H” ;.include “F2407REGS.H” ;引用头文件引用头文件.def _c_int0 ;.def _c_int0 ;定义程序的入口地址定义程序的入口地址;(1);(1)建立中断向量表建立中断向量表 .sect

146、 “.vectors” ;.sect “.vectors” ;定义主向量段定义主向量段RSVECT B _c_int0 ;RSVECT B _c_int0 ;复位向量,地址复位向量,地址0000h0000hINT1 B PHANTOM ;INT1 B PHANTOM ;中断优先级中断优先级1 1,地址,地址0002h0002hINT2 B GISR2 ;INT2 B GISR2 ;中断优先级中断优先级2 2,地址,地址0004h0004h退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ; ;中断子向量入口中断子向量入口 .sect “.sect “.pvecspvecs”

147、;” ;定义子向量段定义子向量段PVECTORSPVECTORS B T3GP_ISR ;T3PINT B T3GP_ISR ;T3PINT中断,子向量地址偏移量中断,子向量地址偏移量002Fh002Fh ;(2);(2)主程序主程序 .text ;.text ;程序段开始程序段开始_c_int0: _c_int0: CALL SYSINIT ; CALL SYSINIT ;调系统初始化程序调系统初始化程序 CALL PWM_INIT ;CALL PWM_INIT ;调调EVBEVB模块模块PWMPWM初始化程序初始化程序WAIT: WAIT: NOP NOP B WAIT ; B WAIT

148、;等待中断等待中断退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(3) ;(3)系统初始化程序系统初始化程序SYSINIT:SYSINIT: SETC INTM ; SETC INTM ;禁止中断禁止中断 CLRC SXM ;CLRC SXM ;抑制符号扩展抑制符号扩展 CLRC OVM ;ACCCLRC OVM ;ACC结果正常溢出结果正常溢出 CLRC CNF ;B0CLRC CNF ;B0区被配置为数据空间区被配置为数据空间 LDP #0E0h ;LDP #0E0h ;指向指向7000h-707Fh7000h-707Fh SPLK #81FEh,SCSR1 ; S

149、PLK #81FEh,SCSR1 ;时钟时钟4 4倍频,倍频, ;CLKIN=6MHz,CLKOUT=24MHz ;CLKIN=6MHz,CLKOUT=24MHz SPLK #0E8h,WDCR ; SPLK #0E8h,WDCR ;不使能看门狗不使能看门狗 LDP #0 LDP #0 SPLK #0002h,IMR ; SPLK #0002h,IMR ;使能中断优先级使能中断优先级INT2INT2 SPLK #0FFFFh,IFR ; SPLK #0FFFFh,IFR ;清中断标志清中断标志 RETRET退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(4) EVB ;

150、(4) EVB模块模块PWMPWM初始化程序初始化程序PWM_INIT:PWM_INIT: LDP #0E1h ; LDP #0E1h ;指向指向7080h-707Fh7080h-707Fh LACL MCRC LACL MCRC OR #007Eh ;IOPE1-6 OR #007Eh ;IOPE1-6被配置为特殊功能方式被配置为特殊功能方式PWM7-12PWM7-12 SCAL MCRC SCAL MCRC LDP #234 ; LDP #234 ;指向指向7500h757Fh7500h757Fh SPLK #0FFFFh,EVBIFRA ; SPLK #0FFFFh,EVBIFRA ;清

151、清EVBEVB中断标志中断标志 SPLK #0666h,ACTRB ;PWM12,10,8SPLK #0666h,ACTRB ;PWM12,10,8低有效,低有效, ;PWM11,9,7 ;PWM11,9,7高有效高有效 SPLK #00h,DBTCONB ;SPLK #00h,DBTCONB ;不使能死区控制不使能死区控制 SPLK #10h,CMPR4 ;SPLK #10h,CMPR4 ;比较初值比较初值PWM7,8PWM7,8高电平占高电平占50/60,50/60, ; ;低电平占低电平占10/6010/60 SPLK #20h,CMPR5 ; SPLK #20h,CMPR5 ;比较初值

152、比较初值PWM9,10PWM9,10高电平占高电平占40/60,40/60, ; ;低电平占低电平占20/6020/60 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 SPLK #30h,CMPR6 ; SPLK #30h,CMPR6 ;比较初值比较初值PWM11,12PWM11,12高、低电平占高、低电平占30/6030/60 SPLK #60h,T3PR ; SPLK #60h,T3PR ;设置定时器设置定时器3 3周期寄存器值为周期寄存器值为6060个个T TCPUCPU SPLK #0A600hSPLK #0A600h,COMCONB ;COMCONB ;使能比较

153、操作和输出使能比较操作和输出 SPLK #0,T3CNT ;SPLK #0,T3CNT ;装载计数寄存器装载计数寄存器 SPLK #41h,GPTCONB ;SPLK #41h,GPTCONB ;定时器比较输出使能,输出低有效定时器比较输出使能,输出低有效 SPLK #080h,EVBIMRA ;SPLK #080h,EVBIMRA ;定时器定时器3 3周期中断使能周期中断使能 SPLK #0174Eh,T3CON ;TMODE=10SPLK #0174Eh,T3CON ;TMODE=10连续增计数模式连续增计数模式, , ;TPS=111 ;TPS=111预分频预分频128128 ;TENA

154、BLE=1 ;TENABLE=1定时器计数使能定时器计数使能, , ;TCLKS=00 ;TCLKS=00内部时钟内部时钟 ;TECMPR=1;TECMPR=1定时器定时器3 3比较使能比较使能 CLRC INTM ; CLRC INTM ; 开总中断开总中断 RETRET退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(5);(5)定时器定时器3 3中断程序中断程序 GISR2:GISR2: ; ;保护现场保护现场 LDP #0E0h ;LDP #0E0h ;指向指向7000h-707Fh7000h-707Fh LACC PIVR,1; LACC PIVR,1;读外设中

155、断向量寄存器读外设中断向量寄存器(PIVR),(PIVR),并左移并左移1 1位位 ADD #PVECTORS ;ADD #PVECTORS ;加上外设中断入口地址加上外设中断入口地址 BACC ;BACC ;跳到相应的中断服务子程序跳到相应的中断服务子程序 T3GP_ISR: ;T3GP_ISR: ;通用定时器通用定时器3 3周期中断入口周期中断入口 LDP #234LDP #234 SPLK #0,T3CNT ; SPLK #0,T3CNT ;恢复计数寄存器初始值恢复计数寄存器初始值 GISR2_RET: ;GISR2_RET: ;中断返回中断返回 ; ;恢复现场恢复现场 CLRC INT

156、M ;CLRC INTM ;开总中断,因一旦进中断就自动关闭总中断开总中断,因一旦进中断就自动关闭总中断 RET ;RET ;返回主程序返回主程序退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 ;(6);(6)假中断程序假中断程序 PHANTOM:PHANTOM: LDP #DP_PF1 LDP #DP_PF1 SPLK #055h,WDKEY ; SPLK #055h,WDKEY ;复位看门狗复位看门狗 SPLK #0AAh,WDKEY SPLK #0AAh,WDKEY RET RET .END .END退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6

157、.2.6 6.2.6 捕获单元捕获单元 捕获单元是一种输入设备,它不占用捕获单元是一种输入设备,它不占用CPUCPU的资源,可以与的资源,可以与CPUCPU并行地捕获引脚上的电平变化并记录发生的时刻,替代了普并行地捕获引脚上的电平变化并记录发生的时刻,替代了普通通CPUCPU的判断和记录功能,节省了的判断和记录功能,节省了CPUCPU的资源开销。另外,由于的资源开销。另外,由于捕获单元具有两级捕获单元具有两级FIFOFIFO堆栈缓冲器,对于微秒级电平波动的捕堆栈缓冲器,对于微秒级电平波动的捕获能力是一般获能力是一般CPUCPU所不具备的。所不具备的。 每个事件管理器模块有三个捕获单元,其中每个

158、事件管理器模块有三个捕获单元,其中EVAEVA对应捕获对应捕获单元单元1 1、2 2和和3 3,EVBEVB对应对应3 3、4 4和和6 6。EVAEVA捕获单元可利用通用定时捕获单元可利用通用定时器器1 1或或2 2作为它的时间基准,但作为它的时间基准,但CAP1CAP1和和CAP2CAP2不能选择不同的时间不能选择不同的时间基准。基准。EVBEVB捕获单元可利用通用定时器捕获单元可利用通用定时器3 3或或4 4作为它的时间基准,作为它的时间基准,但但CAP4CAP4和和CAP5CAP5不能选择不同的时间基准。不能选择不同的时间基准。 退出退出第四章第四章 TMS320LF240x的片内外设

159、的片内外设 当检当检测到外部测到外部捕获引脚捕获引脚CAPx(EVACAPx(EVA:x:x=1=1、2 2、3;EVB:x=3;EVB:x=4 4、5 5、6)6)上的电平上的电平发生跳变发生跳变时,所选时,所选的定时器的定时器的计数值的计数值就被捕获就被捕获并存入到并存入到一个一个2 2级级深的深的FIFOFIFO堆栈中。堆栈中。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设1 1捕获单元的特性捕获单元的特性 1)1)一个一个1616位可读写的捕获控制寄存器位可读写的捕获控制寄存器(EVA:CAPCONA;EVB:CAPCONB)(EVA:CAPCONA;EVB:CAP

160、CONB); 2)2)一个一个1616位的捕获位的捕获FIFOFIFO状态寄存器状态寄存器(EVA:CAPFIFOA;EVB:CAPFIFOB)(EVA:CAPFIFOA;EVB:CAPFIFOB); 3)3)可选择通用定时器可选择通用定时器1 1或或2(EVA)2(EVA)和选择通用定时器和选择通用定时器3 3或或4(EVB)4(EVB)作为时间基准;作为时间基准; 4)4)每个捕获单元都有一个每个捕获单元都有一个1616位、位、2 2级深的级深的FIFOFIFO堆栈;堆栈; 5)65)6个施密特捕获输入引脚个施密特捕获输入引脚CAP1-CAP6CAP1-CAP6,每个引脚对应一个捕,每个引

161、脚对应一个捕获单元;获单元; 6)6)可定义的跳变检测方式可定义的跳变检测方式( (上升沿、下降沿,或上升下降沿上升沿、下降沿,或上升下降沿) ); 7)7)每个捕获单元都对应一个可屏蔽的中断标志位。每个捕获单元都对应一个可屏蔽的中断标志位。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设3 3捕获单元寄存器捕获单元寄存器 捕获单元的操作是由捕获单元的操作是由4 4个个1616位的寄存器位的寄存器CAPCONA/BCAPCONA/B和和CAPFIFOA/BCAPFIFOA/B控制的。由于使用了定时器控制的。由于使用了定时器1-41-4为捕获单元提供时基,为捕获单元提供时基,

162、因此也用到了寄存器因此也用到了寄存器TxCONTxCON。此外,寄存器。此外,寄存器CAPCONA/BCAPCONA/B也用来控也用来控制正交编码电路制正交编码电路(QEP)(QEP)的操作。的操作。 (1)(1)捕获控制寄存器捕获控制寄存器A(CAPCONA):A(CAPCONA):地址为地址为7420h7420h 151514-1314-131212111110109 98 8CAPRESCAPRESCAPQEPNCAPQEPNCAP3ENCAP3EN- -CAP3TSELCAP3TSELCAP12TSELCAP12TSELCAP3TOADCCAP3TOADC7-67-65-45-43-2

163、3-21-01-0CAP1EDGECAP1EDGECAP2EDGECAP2EDGECAP3EDGECAP3EDGE- -位位1515: :为捕获复位位。为为捕获复位位。为0 0时将所有捕获单元及正交编码脉冲电路时将所有捕获单元及正交编码脉冲电路的寄存器清的寄存器清0 0;为;为1 1时不进行任何操作。时不进行任何操作。 位位14-1314-13: :是捕获单元是捕获单元1 1和和2 2的控制位。为的控制位。为0000时禁止捕获单元时禁止捕获单元1 1和和2 2操操作,作,FIFOFIFO堆栈保持原内容不变;为堆栈保持原内容不变;为0101时使能捕获单元时使能捕获单元1 1和和2 2操作。操作。

164、位位1212: :是捕获单元是捕获单元3 3控制位。为控制位。为0 0时禁止捕获单元时禁止捕获单元3 3操作,操作,FIFOFIFO内容内容不变;为不变;为1 1时使能捕获单元时使能捕获单元3 3操作。操作。 位位1010: :是捕获单元是捕获单元3 3的通用定时器选择位。为的通用定时器选择位。为0 0时选择定时器时选择定时器2 2;为;为1 1时选择定时器时选择定时器1 1。 位位9:9:是捕获单元是捕获单元1 1和和2 2的通用定时器选择位。为的通用定时器选择位。为0 0时选择定时器时选择定时器2 2;为为1 1时选择定时器时选择定时器1 1。 位位8:8:是捕获单元是捕获单元3 3启动启

165、动ADCADC转换控制位。为转换控制位。为0 0时无意义;为时无意义;为1 1时,在时,在CAP3INTCAP3INT标志置位时启动标志置位时启动ADCADC。 位位7-6:7-6:是捕获单元是捕获单元1 1的边沿检测控制位。为的边沿检测控制位。为0000时无检测;为时无检测;为0101时时检测上升沿;为检测上升沿;为1010时检测下降沿;为时检测下降沿;为1111时检测上升和下降沿。时检测上升和下降沿。 位位5-45-4: :是捕获单元是捕获单元2 2的边沿检测控制位。为的边沿检测控制位。为0000时无检测;为时无检测;为0101时时检测上升沿;为检测上升沿;为1010时检测下降沿;为时检测

166、下降沿;为1111时检测上升和下降沿。时检测上升和下降沿。 位位3-23-2: :是捕获单元是捕获单元3 3的边沿检测控制位。为的边沿检测控制位。为0000时无检测;为时无检测;为0101时时检测上升沿;为检测上升沿;为1010时检测下降沿;为时检测下降沿;为1111时检测上升和下降沿。时检测上升和下降沿。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(2)(2)捕获控制寄存器捕获控制寄存器B(CAPCONBB(CAPCONB ):地址为地址为7520h7520h 151514-1314-131212111110109 98CAPRESCAPRESCAPQEPNCAPQE

167、PNCAP6ENCAP6EN- -CAP6TSELCAP6TSELCAP45TSELCAP45TSELCAP6TOADC7-67-65-45-43-23-21-01-0CAP4EDGECAP4EDGECAP5EDGECAP5EDGECAP6EDGECAP6EDGE- -表中各位的含义参照捕获控制寄存器表中各位的含义参照捕获控制寄存器A A。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 (3)(3)捕获捕获FIFOFIFO状态寄存器状态寄存器A(CAPFIFOA):A(CAPFIFOA):地址为地址为7422h7422h 位位15-1415-1413-1213-1211-

168、1011-109-89-87-07-0名名 称称保留位保留位CAP3FICAP3FIFOFOCAP2FICAP2FIFOFOCAP1FICAP1FIFOFO保留位保留位复复位位值值0 00 00 00 00 0位位13-1213-12: :是捕获单元是捕获单元3 3的的FIFOFIFO栈状态位。为栈状态位。为0000时表示为空状态;时表示为空状态;为为0101时表示已有一个值压入栈;为时表示已有一个值压入栈;为1010时表示已有两个值压入栈;时表示已有两个值压入栈;为为1111时表示栈中已有两个值且又压入一个值,则最先压入的值时表示栈中已有两个值且又压入一个值,则最先压入的值出栈出栈( (丢失

169、丢失) )。 位位11-1011-10: :是捕获单元是捕获单元2 2的的FIFOFIFO栈状态位。为栈状态位。为0000时表示为空状态;时表示为空状态;为为0101时表示已有一个值压入栈;为时表示已有一个值压入栈;为1010时表示已有两个值压入栈;时表示已有两个值压入栈;为为1111时表示栈中已有两个值且又压入一个值,则最先压入的值时表示栈中已有两个值且又压入一个值,则最先压入的值出栈出栈( (丢失丢失) )。 位位9-89-8: :是捕获单元是捕获单元1 1的的FIFOFIFO栈状态位。为栈状态位。为0000时表示为空状态;为时表示为空状态;为0101时表示已有一个值压入栈;为时表示已有一

170、个值压入栈;为1010时表示已有两个值压入栈;时表示已有两个值压入栈;为为1111时表示栈中已有两个值且又压入一个值,则最先压入的值时表示栈中已有两个值且又压入一个值,则最先压入的值出栈出栈( (丢失丢失) )。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设(4)(4)捕获捕获FIFOFIFO状态寄存器状态寄存器B(CAPFIFOB):B(CAPFIFOB):地址为地址为7522h7522h 位位15-1415-1413-1213-1211-1011-109-89-87-07-0名名 称称保留位保留位CAP6FICAP6FIFOFOCAP5FICAP5FIFOFOCAP4

171、FICAP4FIFOFO保留位保留位复复位位值值0 00 00 00 00 0表中各位的含义参照捕获表中各位的含义参照捕获FIFOFIFO状态寄存器状态寄存器A A。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设4 4捕获单元的捕获单元的FIFOFIFO堆栈堆栈 每个捕获单元都有一个每个捕获单元都有一个2 2级深的级深的FIFO(FIFO(先进先出先进先出) )堆栈。对堆栈。对于于EVAEVA而言,顶层栈包括而言,顶层栈包括CAP1FIFOCAP1FIFO、CAP2FIFOCAP2FIFO、CAP3FIFOCAP3FIFO,底,底层栈包括层栈包括CAP1FBOTCAP1F

172、BOT、CAP2FBOTCAP2FBOT、CAP3FBOTCAP3FBOT;对于;对于EVBEVB而言,顶而言,顶层栈包括层栈包括CAP4FIFOCAP4FIFO、CAP5FIFOCAP5FIFO、CAP6FIFOCAP6FIFO,底层栈包括,底层栈包括CAP4FBOTCAP4FBOT、CAP5FBOTCAP5FBOT、CAP6FBOTCAP6FBOT。 下面具体介绍捕获单元堆栈的操作过程。下面具体介绍捕获单元堆栈的操作过程。 当相应捕获单元对应的引脚电平发生跳变并被捕获到时,当相应捕获单元对应的引脚电平发生跳变并被捕获到时,如果此时堆栈是空的,则捕获单元所选定的定时器的计数值被如果此时堆栈是

173、空的,则捕获单元所选定的定时器的计数值被写入到写入到FIFOFIFO栈顶寄存器中,同时相应的状态位被设置为栈顶寄存器中,同时相应的状态位被设置为0101。如。如果在下次捕获之前对果在下次捕获之前对FIFOFIFO栈进行了访问,状态位将被复位到栈进行了访问,状态位将被复位到0000。这是第一次捕获过程。这是第一次捕获过程。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 如果在前次捕获计数值被读出之前产生了另一次的捕获,如果在前次捕获计数值被读出之前产生了另一次的捕获,则新捕获到的计数值被送到底层寄存器,同时相应的状态位则新捕获到的计数值被送到底层寄存器,同时相应的状态位被设

174、置成被设置成1010。如果在下次捕获前对。如果在下次捕获前对FIFOFIFO堆栈进行了读访问,堆栈进行了读访问,顶层寄存器中计数值被读取,底层寄存器中的新计数值将被顶层寄存器中计数值被读取,底层寄存器中的新计数值将被压入到顶层寄存器中,压入到顶层寄存器中,FIFOFIFO状态位被置成状态位被置成0101。这是第二次捕。这是第二次捕获过程。获过程。 若在捕获发生时若在捕获发生时FIFOFIFO栈中已有两个捕获到的计数值,栈中已有两个捕获到的计数值,此时又发生一个新的捕获事件,则位于栈顶寄存器中最早此时又发生一个新的捕获事件,则位于栈顶寄存器中最早的计数值将被弹出栈并丢失,而堆栈底层寄存器中的计数

175、的计数值将被弹出栈并丢失,而堆栈底层寄存器中的计数值将压入到顶层寄存器中,新捕获到的计数值被压入到底值将压入到顶层寄存器中,新捕获到的计数值被压入到底层寄存器中,并将层寄存器中,并将FIFOFIFO的状态位置成的状态位置成1111。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 捕获单元的操作并不影响任何通用定时器或与通用定时捕获单元的操作并不影响任何通用定时器或与通用定时器相关的比较器相关的比较/PWM/PWM操作。操作。 为进行正常捕获操作,必须进行如下寄存器的设置:为进行正常捕获操作,必须进行如下寄存器的设置: (1)(1)初始化初始化FIFOFIFO状态寄存器状态

176、寄存器(CAPFIFOA/B)(CAPFIFOA/B),并将相应的状态位,并将相应的状态位清清0 0; (2)(2)设置所选用定时器的操作模式;设置所选用定时器的操作模式; (3)(3)如果需要,设置相关通用定时器的比较寄存器和周期寄存如果需要,设置相关通用定时器的比较寄存器和周期寄存器;器; (4)(4)设置相应的捕获控制寄存器设置相应的捕获控制寄存器CAPCONA/BCAPCONA/B。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设5 5捕获单元的中断捕获单元的中断 如果如果FIFOFIFO堆栈中已经存在至少一个有效的计数值,此时又堆栈中已经存在至少一个有效的计数值,

177、此时又发生了一次捕获事件,则相应的中断标志被置位。如果该中断发生了一次捕获事件,则相应的中断标志被置位。如果该中断没有被屏蔽,则会产生一个外设中断请求信号。如果使用了捕没有被屏蔽,则会产生一个外设中断请求信号。如果使用了捕获中断,则可从中断服务程序中读取捕获到的计数值。如果没获中断,则可从中断服务程序中读取捕获到的计数值。如果没有使用中断,则也可以通过查询中断标志位和有使用中断,则也可以通过查询中断标志位和FIFOFIFO栈的状态位栈的状态位来确定是否发生了捕获事件,若已发生捕获事件,则可从相应来确定是否发生了捕获事件,若已发生捕获事件,则可从相应捕获单元的捕获单元的FIFOFIFO栈中读取捕

178、获到的计数值。栈中读取捕获到的计数值。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6 6捕获单元的应用举例捕获单元的应用举例 下面给出一个用捕获单元下面给出一个用捕获单元4(CAP4)4(CAP4)对脉冲边沿进行捕获、对脉冲边沿进行捕获、用用EVBEVB的定时器的定时器3 3对脉冲进行计数的例子。在这里用中断的方对脉冲进行计数的例子。在这里用中断的方式读取捕获值。式读取捕获值。 在使用捕获单元时要注意以下问题:在不知道捕获对象宽在使用捕获单元时要注意以下问题:在不知道捕获对象宽度时,应尽量使定时器能定最长时间,如不倍频,度时,应尽量使定时器能定最长时间,如不倍频,128

179、128预分频;预分频;如果超过了如果超过了DSPDSP的最大捕获时间,则用定时器溢出的方法再加的最大捕获时间,则用定时器溢出的方法再加软件计数;软件计数;TMS320LF2407TMS320LF2407为为3.3V3.3V供电,因此捕获引脚输入电平供电,因此捕获引脚输入电平应不超过应不超过3.3V3.3V。 .include “F2407REGS.H” ;.include “F2407REGS.H” ;引用头文件引用头文件 .def _c_int0 ; .def _c_int0 ;定义程序的入口地址定义程序的入口地址 CAP4TEMP . CAP4TEMP .usectusect “.data

180、0”,1 ;CAP4 “.data0”,1 ;CAP4临时寄存器临时寄存器, , ; ;用于存放捕获值用于存放捕获值退出退出第四章第四章 TMS320LF240x的片内外设的片内外设;(1);(1)建立中断向量表建立中断向量表 .sect “.vectors” ;.sect “.vectors” ;定义主向量段定义主向量段RSVECT B _c_int0 ;RSVECT B _c_int0 ;复位向量,地址复位向量,地址0000h0000hINT4 B GISR4 ;INT4 B GISR4 ;中断优先级中断优先级4 4; ;中断子向量入口中断子向量入口 .sect “.sect “.pvec

181、spvecs” ;” ;定义子向量段定义子向量段PVECTORSPVECTORS B CAP4_ISR ;CAP4 B CAP4_ISR ;CAP4中断,子向量地址偏移量中断,子向量地址偏移量0036h0036h 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设;(2);(2)主程序主程序 .text ;.text ;程序段开始程序段开始_c_int0: _c_int0: LDP #5 LDP #5 SPLK #00h,CAP4TEMP ; SPLK #00h,CAP4TEMP ;装载临时寄存器装载临时寄存器 CALL SYSINIT ;CALL SYSINIT ;调系统初始

182、化程序调系统初始化程序 CALL CAP_INIT ;CALL CAP_INIT ;调调EVBEVB模块初始化程序模块初始化程序WAIT: WAIT: NOP NOP B WAIT ; B WAIT ;等待中断等待中断;(3);(3)系统初始化程序系统初始化程序SYSINIT:SYSINIT: SETC INTM ; SETC INTM ;禁止中断禁止中断 CLRC SXM ;CLRC SXM ;抑制符号扩展抑制符号扩展 CLRC OVM ;ACCCLRC OVM ;ACC结果正常溢出结果正常溢出 CLRC CNF ;B0CLRC CNF ;B0区被配置为数据空间区被配置为数据空间退出退出第四

183、章第四章 TMS320LF240x的片内外设的片内外设 LDP #0E0h ;LDP #0E0h ;指向指向7000h-707Fh7000h-707Fh SPLK #81FEh,SCSR1 ; SPLK #81FEh,SCSR1 ;时钟时钟4 4倍频,倍频, ;CLKIN=6MHz,CLKOUT=24MHz ;CLKIN=6MHz,CLKOUT=24MHz SPLK #0E8h,WDCR ; SPLK #0E8h,WDCR ;不使能看门狗不使能看门狗 LDP #0 LDP #0 SPLK #0008h,IMR ; SPLK #0008h,IMR ;使能中断优先级使能中断优先级INT4INT4

184、SPLK #0FFFFh,IFR ; SPLK #0FFFFh,IFR ;清中断标志清中断标志 RETRET ;(4) ;(4) 捕获单元初始化程序捕获单元初始化程序CAP_INIT:CAP_INIT: LDP #0E1h ; LDP #0E1h ;指向指向7080h-70FFh7080h-70FFh LACL MCRC LACL MCRC OR #0380h ;IOPE7,IOPF0,IOPF1 OR #0380h ;IOPE7,IOPF0,IOPF1被配置为特殊功能方式被配置为特殊功能方式 SCAL MCRCSCAL MCRC退出退出第四章第四章 TMS320LF240x的片内外设的片内外

185、设 LDP #234 ;LDP #234 ;指向指向7500h-757Fh7500h-757Fh SPLK #049h,GPTCONB ;TCOMPOE=1,T4PIN=10,T3PIN=01 SPLK #049h,GPTCONB ;TCOMPOE=1,T4PIN=10,T3PIN=01 SPLK #0,T3CNT ; SPLK #0,T3CNT ;装载计数寄存器装载计数寄存器 SPLK #01742h,T3CON ;TMODE=10SPLK #01742h,T3CON ;TMODE=10连续增计数模式连续增计数模式, , ;TPS=111 ;TPS=111预分频预分频128128 ;TENA

186、BLE=1 ;TENABLE=1定时器计数使能定时器计数使能, , ;TCLKS=00 ;TCLKS=00内部时钟内部时钟 ;TCLD=00,TECMPR=1;TCLD=00,TECMPR=1定时器定时器3 3比较比较 ; ;使能使能,SELT3PR=0,SELT3PR=0 SPLK #0FFFFh,T3PR ; SPLK #0FFFFh,T3PR ;定时器定时器3 3周期比较寄存器设为最大周期比较寄存器设为最大 SPLK #00h,EVBIMRASPLK #00h,EVBIMRA SPLK #00h,EVBIMRB SPLK #00h,EVBIMRB SPLK #22C0h,CAPCONB

187、;CAP4 SPLK #22C0h,CAPCONB ;CAP4捕获允许,捕获允许, ; ;捕获上升沿和下降沿捕获上升沿和下降沿 SPLK #01h,EVBIMRC ;CAP4SPLK #01h,EVBIMRC ;CAP4中断使能中断使能退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 SPLK #0FFFFh,EVBIFRA ; SPLK #0FFFFh,EVBIFRA ;清清EVBEVB中断标志中断标志 SPLK #0FFFFh,EVBIFRB SPLK #0FFFFh,EVBIFRB SPLK #0FFFFh,EVBIFRC SPLK #0FFFFh,EVBIFRC CL

188、RC INTM ; CLRC INTM ; 开总中断开总中断 RETRET;(5);(5)中断程序中断程序GISR4:GISR4: ; ;保护现场保护现场 LDP #0E0h ;LDP #0E0h ;指向指向7000h-707Fh7000h-707Fh LACC PIVR,1 ; LACC PIVR,1 ;读外设中断向量寄存器读外设中断向量寄存器(PIVR),(PIVR), ; ;并左移并左移1 1位位 ADD #PVECTORS ;ADD #PVECTORS ;加上外设中断入口地址加上外设中断入口地址 BACC ;BACC ;跳到相应的中断服务子程序跳到相应的中断服务子程序CAP4_ISR:

189、 ;CAP4_ISR: ;通用定时器通用定时器3 3中断入口中断入口 LDP #234 LDP #234 LACL CAP4FIFO LACL CAP4FIFO退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 LDP #5LDP #5 SACL CAP4TEMP ; SACL CAP4TEMP ;读出捕获的值读出捕获的值 LDP #234LDP #234 SPLK #0,T3CNT ; SPLK #0,T3CNT ;恢复计数寄存器初始值恢复计数寄存器初始值GISR2_RET: GISR2_RET: ; ;恢复现场恢复现场 CLRC INTM ;CLRC INTM ;开总中断,

190、因为一旦进中断就自开总中断,因为一旦进中断就自 ; ;动关闭总中断动关闭总中断 RET ;RET ;返回主程序返回主程序;(6);(6)假中断程序假中断程序PHANTOM:PHANTOM: LDP #DP_PF1 LDP #DP_PF1 SPLK #055h,WDKEY ; SPLK #055h,WDKEY ;复位看门狗复位看门狗 SPLK #0AAh,WDKEY SPLK #0AAh,WDKEY RET RET .END .END退出退出第四章第四章 TMS320LF240x的片内外设的片内外设6.2.7 6.2.7 正交编码脉冲正交编码脉冲(QEP)(QEP)电路电路 光电码盘是一种应用非

191、常普遍、性能稳定、具有各种精度光电码盘是一种应用非常普遍、性能稳定、具有各种精度级别的传感器,广泛应用于闭环控制系统中。正交编码脉冲电级别的传感器,广泛应用于闭环控制系统中。正交编码脉冲电路路( (简称简称QEP)QEP)可通过码盘的两组脉冲相位可通过码盘的两组脉冲相位( (上升沿的顺序上升沿的顺序) )判断出判断出被控对象的运动方向,通过记录脉冲的个数来确定具体的运动被控对象的运动方向,通过记录脉冲的个数来确定具体的运动位置,将位置信号进行差分就可得到运动的速度。位置,将位置信号进行差分就可得到运动的速度。 每个事件管理器都有一个每个事件管理器都有一个QEPQEP电路,电路,QEPQEP电路

192、的外部输入引电路的外部输入引脚与捕获单元共享,在使能脚与捕获单元共享,在使能QEPQEP功能时,必须禁止捕获功能。功能时,必须禁止捕获功能。对于对于EVAEVA,使用的是通用定时器,使用的是通用定时器2 2,对于,对于EVBEVB,使用的是通用定,使用的是通用定时器时器4 4,且通用定时器必须工作在定向增,且通用定时器必须工作在定向增/ /减计数模式下,并以减计数模式下,并以QEPQEP作时钟输入源。作时钟输入源。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 正交编码脉冲是两个频率可变且正交正交编码脉冲是两

193、个频率可变且正交( (即相位相差即相位相差90900 0) )的的脉冲,如何对脉冲正确解码是使用脉冲,如何对脉冲正确解码是使用QEPQEP电路的关键,图示给出电路的关键,图示给出了一个了一个QEPQEP解码的例子。解码的例子。 退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 每个每个EVEV模块中正交编码脉冲电路的方向检测逻辑决定了两模块中正交编码脉冲电路的方向检测逻辑决定了两个时序中的哪一个是先到序列,接着它就产生方向信号作为通个时序中的哪一个是先到序列,接着它就产生方向信号作为通用定时器用定时器2 2或或4 4的计数方向输入。如果的计数方向输入。如果CAP1/QEP1(

194、EVBCAP1/QEP1(EVB为为CAP4/QEP3)CAP4/QEP3)输入是先到序列,则通用定时器进行增计数;如果输入是先到序列,则通用定时器进行增计数;如果CAP2/QEP2(EVBCAP2/QEP2(EVB为为CAP5/QEP4)CAP5/QEP4)输入是先到序列,则通用定时器进输入是先到序列,则通用定时器进行减计数。行减计数。 计数器对两个编码脉冲序列的边沿都进行计数操作,因此,计数器对两个编码脉冲序列的边沿都进行计数操作,因此,由由QEPQEP电路产生并输入到定时计数器电路产生并输入到定时计数器2 2或或4 4的时钟脉冲频率是每的时钟脉冲频率是每个输入引脚脉冲频率的个输入引脚脉冲

195、频率的4 4倍。倍。 通用定时器的计数器一般是从当前值开始计数操作,因此通用定时器的计数器一般是从当前值开始计数操作,因此在使能在使能QEPQEP电路之前可将一个初始值装入到定时器中。当电路之前可将一个初始值装入到定时器中。当QEPQEP电电路被选择为时钟源时,外部引脚路被选择为时钟源时,外部引脚TDIRA/BTDIRA/B和和TCLKINA/BTCLKINA/B对计数控对计数控制无效。通用定时器的周期、上溢、下溢和比较匹配都会引起制无效。通用定时器的周期、上溢、下溢和比较匹配都会引起中断标志位的变化,如果该中断没有被屏蔽,将产生一个对应中断标志位的变化,如果该中断没有被屏蔽,将产生一个对应的

196、外设中断请求。的外设中断请求。退出退出第四章第四章 TMS320LF240x的片内外设的片内外设 为正确使用为正确使用QEPQEP的电路功能,必须对相应的控制寄存器进的电路功能,必须对相应的控制寄存器进行正确的配置。对行正确的配置。对EVAEVA模块来讲,为了启动模块来讲,为了启动QEPQEP的操作,需要的操作,需要进行以下设置:进行以下设置: 1)1)必要时装载通用定时器必要时装载通用定时器2 2的计数、周期、比较寄存器的初始的计数、周期、比较寄存器的初始值;值; 2)2)配置配置T2CONT2CON寄存器,将通用定时器寄存器,将通用定时器2 2的计数时钟输入设置为的计数时钟输入设置为QEPQEP,计数方向为定向增,计数方向为定向增/ /减计数模式;减计数模式; 3)3)配置配置CAPCONACAPCONA寄存器,使用寄存器,使用QEPQEP电路。电路。 退出退出

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号