第六章 TMS320C24x片内外设.ppt_第1页
第六章 TMS320C24x片内外设.ppt_第2页
第六章 TMS320C24x片内外设.ppt_第3页
第六章 TMS320C24x片内外设.ppt_第4页
第六章 TMS320C24x片内外设.ppt_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章 TMS320C24x片内外设,6.1 模拟/数字转换(ADC) 6.2 串行通信接口(SCI) 6.3 串行外设接口(SPI) 6.4 事件管理模块(EV),6.1 模拟/数字转换(ADC),6.1.1 双10位A/D转换原理 在C24X系列器件中,配置了一个双十位模拟数字转换器模块(ADC)。使用这个片内转换器,用户不必要在片外扩展同类器件,就可以方便地把电压、电流等模拟信号输入到片内供CPU内核进行处理。 C24X的ADC模块是一个带有内部采样/保持电路的10位串行电容转换器。片内具有两个独立的模拟数字转换单元,以F240为例,每个单元有8个模拟输入通道,合计16个通道。 图6-1

2、是ADC模块的内部功能框图。,图6-1 ADC模块的内部功能框图,6.1 模拟/数字转换(ADC),1. ADC引脚说明 该模块有21个相关引脚: VREFHI:小于或等于5VDC的基准电压输入脚的正端。 VREFLO:小于或等于5VDC的基准电压输入脚的负端。 VCCA:模拟5VDC电源正。 VSSA:模拟5VDC电源地。 需要注意的是,模拟电源引线应尽可能短,并采取必要的减噪技术,以获得比较精确的转换。 External(I/O) start pin:外部启动ADC转换引脚。 ADCIN0-ADCIN15:模拟信号输入引脚。,6.1 模拟/数字转换(ADC),2. ADC操作模式 ADC模

3、块具有以下功能: 1)可以同时对两个不同单元内的两个输入通道进行转换。 2)每个单元可以单独或连续采样、保持和转换。 3)每个单元使用一个二级FIFO结果寄存器来储存转换结果值,如果第三次转换时,前两次结果还没有被读取,则第一次转换的结果会丢失。 4)转换操作可由软件指令、外部引脚信号跳变、通用定时器的定时/比较输出和捕获引脚上的跳变等事件来启动。 5)ADC的控制寄存器是可投影的(带缓存)。即任何时候可以更新控制寄存器而不影响当前操作,新值将被送入缓存寄存器,工作寄存器将在当前操作完成后,才载入缓存寄存器的新值。 6)每次转换结束后,将设置中断标志。如果该中断未被屏蔽且被使能,将产生中断请求

4、。,6.1 模拟/数字转换(ADC),3. 模拟信号采样/转换 每个ADC的采样/转换需要6个ADC时钟周期,为了保证转换精度,需要6个模拟数字转换预定标周期,最短时间为6us。预定标值要满足以下公式: SYSCLK时钟周期x预定标值x66us 预定标值由ADC控制寄存器ADCTRL2的其中三位决定,如下表:,6.1 模拟/数字转换(ADC),4. 数字量输出 下面公式近似给出了转换结果:,6.1 模拟/数字转换(ADC),6.1.2 双10位A/D转换器编程 1. ADC寄存器 ADC模块共有4个16位控制寄存器用于ADC模块的控制: ADCTRL1:模拟数字转换控制寄存器1。映射到7032

5、h。 ADCTRL2:模拟数字转换控制寄存器2。映射到7034h。 ADCFIFO1:模拟数字转换单元1的两级FIFO结果寄存器。映射到7036h。 ADCFIFO2:模拟数字转换单元2的两级FIFO结果寄存器。映射到7038h。,6.1 模拟/数字转换(ADC),(1)ADCTRL1的作用与配置 ADCTRL1主要用于控制模拟数字转换的启动、转换的使能/禁止、中断使能与禁止以及转换的结束。下图给出了其位布置:,6.1 模拟/数字转换(ADC),(2)ADCRTL2的作用与配置 该寄存器的作用是设置模拟数字转换模块输入时钟的预定标因子、转换模式、仿真操作,并显示了模拟数字转换模块的FIFO结果

6、寄存器的状态。下图是其位布置图:,6.1 模拟/数字转换(ADC),(3)ADCFIFO1、ADCFIFO2的作用与配置 模拟数字转换模块的转换结果寄存器事实上是一个2级先入先出堆栈,用来包含10位转换结果。它们是只读寄存器,复位时这些寄存器被清零。下图是其位排列:,位号15-6 :D9-D0保存10位转换结果。 位号 5-0:0保留,读操作时返回0。,6.1 模拟/数字转换(ADC),关于这几个寄存器, 需要说明的是: 1)操作前一定要用ADC1CHSEL、ADC2CHSEL选择要转换的通道。 2)如果需要由软件立即启动转换,则设置ADCIMSTART为1;如果需要事件管理器同步启动,则设置

7、ADCEVSOC为1;如果需要外部引脚信号(即外部引脚ADCSOC/IOPCO)同步启动,则设置ADCEXTSOC为1。 3)读取结果前要测试转换是否完成(检测ADCEOC)及结果寄存器的状态(检测ADCFIFOx),以免出错。同时注意结果放在结果寄存器的高十位。 4)当ADCCONRUN设置为1,即连续运行时,无须启动信号ADCSOC。此时,系统连续快速对输入信号进行转换。,6.1 模拟/数字转换(ADC),2. ADC初始化编程 ADC初始化编程只需对两个ADC控制寄存器编程即可,如: ADCTRL1 .set 07032h ADCTRL2 .set 07034h .text LDP #2

8、24 SPLK #1000100100000000B,ADCTRL1 SPLK #0000000000000101B,ADCTRL2,6.2 串行通信接口(SCI),SCI接口模块:实现与其它外设之间的异步串行数据通信。波特率可编程。 SCI的发送器与接收器都是双缓冲的。各自有工作使能和中断控制。可工作于全双工模式。 该模块是一个8位片内外设,通过DSP的16位外部数据总线的低8位与外部设备通信,读高8位的值不确定,写高8位无效。,6.2 串行通信接口(SCI),6.2.1 SCI模块结构概述 SCI结构主要包括:(1)发送器-TX。SCITXBUF-发送数据缓冲寄存器,存发送数据。TXSHF

9、发送移位寄存器,每次1位送到SCITXD引脚。(2)接收器-RX。RXSHF接收移位寄存器,每次1位将SCIRXD引脚上的数据移入。SCIRXBUF-接收数据缓冲寄存器,存RXSHF接收到数据。(3)一个可编程的波特率发生器。(4)控制和状态寄存器(映射在数据存储器区)。内部结构如图6.4所示。 (1)两个I/O引脚:SCIRXD与SCITXD (2)一个16位的波特率选择寄存器可编程,可得到65536种的不同速率。 (3)1-8位的可编程数据位。 (4)长度为1位或2位的可编程停止位。,图6.4 SCI内部结构框图,6.2 串行通信接口(SCI),(5)内部产生的串行时钟。 (6)四个错误的

10、检测标志: 奇偶性错误、超限错误、帧错误、间断检测 (7)两种唤醒多处理器模式: 空闲线唤醒、位寻址唤醒 (8)半双工或全双工。 (9)双缓冲接收和发送功能。 (10)发送和接收操作均可通过中断或查询进行。 (11)非归零格式(NRZ)。,6.2 串行通信接口(SCI),SCI波特率计算 内部产生的串行时钟由系统时钟频率CLKOUT和两个波特率选择寄存器决定。SCI使用16位的波特率选择寄存器来选择65536种不同的串行时钟频率中的一种。 SCI波特率选择寄存器为SCIHBAUD(高字节)和SCILBAUD(低字节),连一起形成16位的波特率值BRR。,6.2 串行通信接口(SCI),SCI波

11、特率可以使用如下的公式计算。 上式适用于1BRR65535的情况,如果BRR0,则波特率的计算公式如下:,6.2 串行通信接口(SCI),在实际异步串行通信中,常取一些典型的波特率值,表6.2给出了欲取这些典型值时,SCI的BRR的值、SCI波特率实际值(BAUD)及误差。,表6.2系统时钟频率与SCI的BRR及SCI波特率关系,6.2 串行通信接口(SCI),可编程的数据格式 串行通信接口可的数据无论是接收还是发送都采用NRZ(非归零)格式,NRZ包括以下组成部分: 1个起始位 1-8个数据位. 1个或无奇偶校验位 1-2个停止位 1个从数据中识别地址的附加位(仅用于地址模式) 基本单位为一

12、个字符,其长度为1-8位。 数据的每个字符格式化为1个起始位,1-2个停止位和可选的奇偶校验位和地址位,如图6.5所示。,6.2 串行通信接口(SCI),图6.5 SCI数据帧格式,6.2 串行通信接口(SCI),多处理器异步通信模式 SCI提供了与许多外设的UART通信模式。异步模式需要两条线与标准设备接口,如使用RS-232C格式的终端和打印机等。 SCI有两种多处理器协议: (1)空闲线路多处理器模式。 (2)地址位多处理器模式。 这些协议允许在多个处理器之间进行有效的数据传 输。,6.2 串行通信接口(SCI),6.2.2 SCI多处理器通信 1. 概述 多处理器通信中一条串行线上只能

13、有一个信息源,即只能有一个讲者。 地址字节 信息源发送的数据块的第一个字节为一地址字节,它被所有的接收器读取,但只有地址正确的接收器才能被紧随地址字节后面的数据字节中断,地址不正确的接收器不被中断,直到下一个地址字节。 SLEEP位 串行线路上的所有处理器将它们的串行通信接口的SLEEP位(SClCTL1.2)设置为1,仅在检测到地址字节时才被中断。当一个处理器读取到的一个数据块地址与本器件地址相一致时,用户程序必须清除SLEEP位来确保串行通信接口在收到每个数据字节时产生一个中断。尽管当SLEEP位为1时,接收器仍能工作,但它不会使RXRDY、RXINT或任何接收错误状态位设置为1,除非检测

14、到地址字节,且接收到的帧的地址位是1。 SLEEP位必须由用户软件改变。,6.2 串行通信接口(SCI),识别地址字节 处理器根据多处理器的模式来识别一个地址字节,例如: 空闲线模式在地址字节前留有一段静空间。该模式没有一个附加的地址数据位,在处理包含多于10个字节的数据块的情况下,其效率比地址位模式更高。 地址位模式为每个字节增加一个附加位(地址位)来从数据中识别地址。该模式在处理多个小数据块时更有效。与空闲线模式不一样,因为它在数据块之间不需要等待。但在大数据块传输中效率不如空闲线模式。 控制SCI Tx和Rx特性 多处理器的模式可通过ADDRIDLE MODE位(SCICCR.3)来设置

15、。 两种模式都使用TXWAKE位(SCICTL1.3)、RXWAKE位(SCIRXST.1)和SLEEP标志位(SCICTL1.3)来控制串行通信接口发送器和接收器的工作状态。,6.2 串行通信接口(SCI),接收过程:在两种多处理器模式中,接收过程如下: (1)在接收一个地址块时,串行通信接口唤醒并请求一个中断(中断必须被使能)。它读取地址块的第一帧数据,其中包括目的地址。 (2)通过中断和检查程序引入的地址进入一个软件服务程序,并且该地址字节与保存在内存中的本器件地址再次进行校对。 (3)如果检查表明此块是DSP控制器的地址,则CPU清除SLEEP位并读块的其余部分,如果不是,则退出软件子

16、程序,SLEEP位设置为1,直到下一个地址块开始才接收中断。,6.2 串行通信接口(SCI),2. 空闲线多处理器模式 ADDRIDLE MODE0,数据块被块间的时间间隔分开,该时间间隔比块中数据帧之间的时间间隔要长。一帧后的空闲时间(十个或更多的高电平位)表明了一个新块的开始,单个位的时间可以由波特率值算出。,6.2 串行通信接口(SCI),3. 地址位多处理器模式 ADDR/IDLE MODE位1,每帧中有一附加的地址位紧跟在最后一个数据位后。在数据块的第一帧中,地址位设为1,而在其它所有的帧中置成0。空闲周期的时间是不相连的。,6.2 串行通信接口(SCI),6.2.3 SCI接收和发

17、送时序及中断 SCI通信模式 接收器在接收到一个有效的起始位后开始工作。一个有效的起始位由4个连续的内部SCICLK周期的零位来识别。如果任何一个位都不为0,则处理器重新启动并开始寻找另一个起始位。 对于起始位后的位,处理器通过在其中间进行三次采样来判定其位值。采样点位于第4、5、6个SCICLK周期。如果三次采样有两次为某值,则判定为该值。,6.2 串行通信接口(SCI),SCI接收时序,6.2 串行通信接口(SCI),SCI发送时序,6.2 串行通信接口(SCI),SCI中断 SCI的接收器和发送器可以由中断控制,SCICTL2寄存器中有一个标志位(TXRDY)表示有效的中断条件,SCIR

18、XST寄存器有两个中断标志位(RXRDY和BRKDT)和接收错误标志位(RX ERROR),其中RX ERROR是FE、OE和PE条件的逻辑或。发送器和接收器有各自的中断使能位。 当中断被屏蔽时,不会产生中断,但条件标志位仍有效,该位反映了发送和接收的状态,可用于查询方式。 串行通信接口(SCl)的发送器和接收器有自己独立的外设中断向量。 外设中断请求可使用高优先级或低优先级,中断优先级由SCIPRI寄存器中相应的位来控制。当接收和发送中断都设置为相同的优先级时,接收中断往往具有更高的优先级,这样可以减少接收超时错误。,6.2 串行通信接口(SCI),如果RXBK INT ENA位(SCICT

19、L2.1)置1,则当发生以下事件之一就产生一次接收中断: (1)SCI接收到一个完整的帧并将RXSHF寄存器中的内容传送到SCIRXBUF寄存器,该操作会置位RXRDY(SCIRXST.6),并初始化中断。 (2)间断检测条件发生(在一个丢失的停止位之后,SCIRXD引脚保持10个周期的低电平)。该操作会设置BRKDT标志位,并初始化中断。 如果TX INT ENA位(SCICTL2.0)置位,当SCITXBUF寄存器中的数据传送到TXSHF寄存器时,将产生一个发送中断请求,用以表示CPU可以写数据到SCITXBUF寄存器中,该操作会置位TXRDY标志SCICTL2.7,并初始化一个中断。,6

20、.2 串行通信接口(SCI),6.2.4 SCI编程 1. SCI寄存器 SCI共有11个可访问寄存器,占用数据存储空间7050H-705FH单元。 (1)SCI通信控制寄存器(SCICCR)-7050H,6.2 串行通信接口(SCI),(2)SCI控制寄存器1(SCICTL1)-7051H,(3)SCI波特率选择寄存器(SCIHBAUD, SCILBAUD)-7052H和7053H,6.2 串行通信接口(SCI),(4)SCI控制寄存器2(SCICTL2)-7054H,(5)SCI接收状态寄存器(SCIRXST)-7055H,6.2 串行通信接口(SCI),(6)SCI接收数据缓冲寄存器(S

21、CIRXEMU,SCIRXBUF)-7056H和7057H,(7)SCI发送数据缓冲寄存器(SCITXBUF)-7059H,6.2 串行通信接口(SCI),(8)SCI端口控制寄存器2(SCIPC2)-705EH,(9)SCI优先级控制寄存器(SCIPRI)-705FH,6.2 串行通信接口(SCI),2. 编程举例(略),6.3 串行外设接口(SPI),SPI:高速同步串行输入/输出端口,传送速率可编程 应用:外部移位寄存器、D/A、A/D、串行EEPROM、LED显示驱动器等外部设备进行扩展。 6.3.1 SPI模块结构概述 SPI模块的硬件结构如图6.18所示。 1. SPI引脚 4个外

22、部引脚,以下引脚都可用作数字I/O引脚。 SPISIMOSPI从输入、主输出 SPISOMISPI主输入、从输出 SPICLK SPI时钟 SPISTESPI选通引脚,图6.18 SPI模块框图,6.3 串行外设接口(SPI),有五个控制位用于初始化串行外设接口的中断: SPI中断使能位:SPI INT ENA (SPICTL.0); SPI中断标志位:SPI INT FLAG(SPISTS.6); SPI超限中断使能位:OVERRUN INT ENA(SPICTL.4); SPI接收器超限中断标志位:RECEIVER OVERRUN FLAG(SPISTS.7) SPI中断优先级选择位:SP

23、I PRIORITY(SPIPRI.6)。,6.3 串行外设接口(SPI),3. SPI数据传送及数据格式 SPI通信时,要发送的数据从SPIDAT寄存器的MSB依次移出,接收的数据则从SPIDAT的LSB依次移入。 SPI数据字符位数(1-16位)由SPICCR.3-0指定。 当写入SPIDAT或SPITXBUF时,数据必须是左对齐的。 数据从SPIRXBUF读回时是右对齐的。,6.3 串行外设接口(SPI),4. 主从模式 下图是SPI用于两个控制器(一个主控制器和一个从控制器)通信的典型连接方式。,6.3 串行外设接口(SPI),SPI可工作于主模式或从模式。 SPICTL.2位-MAS

24、TER/SLAVE用来选择操作模式和SPICLK的源。 (1)主模式 将Master的数据传送给Slave,数据传送完毕,申请中断。 (2)从模式 将Slave的数据传送给Master,数据传送完毕,申请中断。,6.3 串行外设接口(SPI),由图知,SPI有两种工作模式:主模式和从模式,操作模式由SPICTL.2(MASTER/SLAVE位)决定。 数据的发送方式有三种: (1)主控制器发送数据,从控制器发送伪数据; (2)主控制器发送数据,从控制器发送数据; (3)主控制器发送伪数据,从控制器发送数据。 主控制器控制SPICLK信号,通过发出SPICLK信号启动数据发送,从控制器则通过检测

25、SPICLK信号接收数据。 一个主控制器可以连接多个从控制器,但是一次只允许一个从控制器给主控制器发送数据,6.3 串行外设接口(SPI),5. 波特率和时钟 SPI模块支持125种不同的波特率和4种不同的时钟模式。SPI最大波特率为CLKOUT频率的四分之一。 (1)波特率 SPI波特率取决于CLKOUT和SPIBRR的值。 对于SPIBRR=3-127 SPI波特率=CLKOUT/(SPIBRR+1) 对于SPIBRR=0-2 SPI波特率=CLKOUT/4 SPI最大波特率=CLKOUT/4=10MHz,6.3 串行外设接口(SPI),(2)SPI时钟 SPI有四种时钟模式,由CLOCK

26、 POLARITY和CLOCK PHASE位控制。 CLOCK POLARITY位:选择时钟的有效沿是上升沿还是下降沿; CLOCK PHASE位:选择是否有半个时钟周期的延时。 下降沿,无延时:SPI在时钟下降沿发送数据,在时钟的上升沿接收数据; 下降沿,有延时:SPI在时钟下降沿前半个周期发送数据,在时钟的下降沿接收数据; 上升沿,无延时:SPI在时钟上升沿发送数据,在下降沿接收数据; 上升沿,有延时:SPI在时钟上升沿前半个周期发送数据,在上升沿接收数据。 4种时钟模式如图所示。,6.3 串行外设接口(SPI),SPI的复位和初始化 系统复位使SPI引脚功能被选定为通用输入,要对SPI的

27、配置,需做以下工作: 设置SPI SW RESET位(SPICCR.7)的值为0,强制SPI复位; 初始化SPI的配置、格式、波特率和引脚功能为期望值; 设置SPI SW RESET位为1,从复位状态释放SPI; 向SPIDAT或SPITXBUF写数据; 数据发送完成后(SPISTS.6=1),读取SPIRXBUF以确定接收的数据。,6.3 串行外设接口(SPI),6.3.2 SPI编程 1. SPI寄存器 SPI模块共有10个寄存器用于控制该模块的操作,他们占用数据存储器空间的7040H704EH: (1)SPI配置控制寄存器SPICCR地址7040h,6.3 串行外设接口(SPI),(2)

28、SPI操作控制寄存器SPICTL 7041h (3)SPI状态寄存器SPISTS地址7042h,6.3 串行外设接口(SPI),(4)SPI波特率寄存器SPIBRR地址7044h (5)SPI接收数据缓冲器:仿真缓冲寄存器SPIEMU7046h和输入缓冲器SPIBUF 7047h,6.3 串行外设接口(SPI),(6)SPI串行数据寄存器SPIDAT7049h (7)SPI端口控制寄存器1(SPIPC1)地址704Dh,6.3 串行外设接口(SPI),(8)SPI端口控制寄存器2(SPIPC2)地址704Eh (9)SPI优先级控制寄存器SPI PRI地址704FH,6.3 串行外设接口(SP

29、I),2. 编程序举例(略),6.4 事件管理模块(EV),事件管理器(EV)模块为控制系统(运动控制和电机控制)的开发提供了强大功能。 事件管理器模块EV主要包含: 3个通用定时器 、3个全比较单元、3个简单比较单元、PWM电路 、4个捕获单元 、2个正交编码QEP电路 、事件管理器模块中断控制电路 等。,6.4 事件管理模块(EV),6.4.1 事件管理模块EV概述 1. EV引脚介绍 事件管理器模块EV的结构如图6.30所示,与事件管理器相关的引脚如表6.6。 要注意的是,所有输入引脚信号至少要保持两个CPU时钟的上升沿,才能被EV模块识别,所以输入信号必须至少保持两个时钟周期。,6.4

30、 事件管理模块(EV),2. EV寄存器 EV模块一共有64个映射局部数据存储单元,用于其控制、状态存储器,地址为7400h-743Fh。,6.4 事件管理模块(EV),3. EV中断 事件管理器(EV)模块共有三组中断信号,分别对应于CPU的三个中断输入:INT2、INT3、INT4。这三组中断各有自己独立的中断标志寄存器:EVIFRA、EVIFRB、EVIFRC,中断向量寄存器:EVIVRA、EVIVRB、EVIVRC,和中断屏蔽寄存器:EVIMRA、EVIMRB、EVIMRC。 标志置位与否,与中断是否屏蔽无关。屏蔽寄存器在对应位为1时,中断被开放,为0被屏蔽。只有当屏蔽寄存器的对应位为

31、1,且标志位被置位为1(表示已经有中断请求),CPU才响应中断。 标志位的复位有两种方式: 1)中断被响应,用户软件读取该组的中断向量寄存器。 2)软件改写中断标志寄存器。,6.4 事件管理模块(EV),下表为中断控制逻辑使用的寄存器,6.4 事件管理模块(EV),6.4.2 通用定时器 1. 概述 事件管理器(EV)模块中有3个通用定时器(GPT)。在实际应用中,这些定时器能产生用如下用途的信号: 1)系统中需要的计数信号。 2)离散控制系统的采样周期。 3)QEP电路的时基。 4)捕获单元的时基。 5)比较单元的时基等。 通用定时器的结构框图如图6.40所示。,6.4 事件管理模块(EV)

32、,(1)通用定时器输入输出 GPT的输入信号: 它可接受如下输入信号,这些信号主要是GPT运行所需要的时钟: 直接来自CPU内部的时钟CPUCLK。 外部时钟输入TMKCLK,最大频率为CPUCLK的1/4。 定时器的方向输入信号TMKDIR。 复位信号RESET。 GPT2、GPT3可以组成一个32位定时器,这时,GPT2的溢出作为GPT3的输入信号。GPT和QEP电路一起使用时,QEP产生GPT需要的时钟和方向信号。,6.4 事件管理模块(EV),GPT的输出信号 根据不同的控制寄存器设置,GPT可以产生如下输出信号。 通用定时器比较/PWM输出信号,由引脚TxPWM/TxCMP输出。 至

33、模拟/数字转换模块ADC的模数转换启动信号。 至本身比较逻辑或全/单比较单元的下溢、上溢、比较匹配和周期匹配信号。 计数方向指示位。,6.4 事件管理模块(EV),(2)寄存器 GPT的控制寄存器有四个,TxCON(x=1、2、3)和GPTCON,前者用于三个定时器的独立控制,后者用于GPT模块的整体控制。 (一)TxCON TxCON决定了各定时器的自身操作方式,映射到局部数据存储器的7404h、7408h、740Ch。其位布置如下图。,6.4 事件管理模块(EV),(二)GPTCON GPTCON决定了所有各定时器的相关操作方式,该寄存器被映射到局部数据存储器的7400h。其位布置如下图。

34、,6.4 事件管理模块(EV),2. 通用定时器计数模式 每个通用定时器有6个可选择的计数模式: 1)停止/保持模式。 2)单增计数模式。 3)连续增计数模式。 4)定向增/减计数模式。 5)单增/减计数模式。 6)连续增/减计数模式。 (一)停止/保持模式 该状态下,GPT停止计数操作且保持当前状态。此时,定时器/计数器、比较输出、预定标计数器都保持不变。,6.4 事件管理模块(EV),(二)单增计数模式 单增计数模式下,GPT内部计数器对定标后的时钟输入进行计数,直到计数器寄存器(TxCNT)的值与周期寄存器(TxPR)的值匹配。随后,将完成如下操作: 1)下一个时钟的上升沿,GPT将计数

35、器复位为0。 2)复位定时器计数操作使能位(TxCON/Bit6),禁止计数器的后续操作。 3)计数器复位时钟的下降沿,置位周期中断标志。 4)计数器复位后的下一个时钟的下降沿,置位下溢中断标志。 用户可以通过设置TxCON的定时器使能位来重新启动GPT的计数操作。,6.4 事件管理模块(EV),单增计数模式图,6.4 事件管理模块(EV),周期中断信号、下溢中断信号等均可以被设置用来启动ADC转换。 如果TxCNT的初始值(0000-FFFFh)小于周期寄存器的值,则向上计数到匹配为止;如果初始值大于周期寄存器的值,则向上计数到FFFFh,然后回零,再向上计数到和周期寄存器的值匹配。 向上计

36、数到FFFF时,通用定时器的上溢标志将在两个CPU时钟周期后被设置。 在该模式下,GPTCON的计数方向指示位为1。外部或内部CPU时钟都可以被用做定时器输入时钟。TMRDIR引脚上的输入信号将被通用定时器忽略。,6.4 事件管理模块(EV),(三)连续增计数模式 这个模式下,GPT对定标后的输入脉冲进行计数,TxCNT和周期寄存器TxPR的值匹配后,自动清零。然后,隔一个定标时钟周期,再重新开始计数,如此连续循环。 达到匹配值时,将进行如下操作: 1)下一个时钟的上升沿,GPT将计数器复位为0。 2)计数器复位时钟的下降沿,置位周期中断标志。 3)计数器复位后下一个时钟的下降沿,置位下溢中断

37、标志。 4)计数器复位后下一个时钟的上升沿,重新从0开始计数。 计数器时序图见下图。,6.4 事件管理模块(EV),连续增计数模式图,6.4 事件管理模块(EV),除了第一个周期外,以后的每个周期等于TxPR+1个定标时钟周期。 如果TxCNT的初始值(0000-FFFFh)小于周期寄存器的值,则向上计数到匹配再从零开始计数;如果初始值大于周期寄存器的值,则向上计数到FFFFh,然后回零,再向上计数。实际上,除了连续循环计数外,周期、下溢、上溢中断等标志的设置和相关动作,都由各自的匹配事件产生,和单增计数模式是一样的。 在该模式下,GPTCON的计数方向指示位为1。外部或内部CPU时钟都可以被

38、用做定时器输入时钟。TMRDIR引脚上的输入信号将被通用定时器忽略。,6.4 事件管理模块(EV),(四)定向增/减计数模式 这种方式一般用于计数器1和3。此时,TMRDIR引脚上的电平用于决定计数方向。高电平为增计数,低电平为减计数。 初始值可以是0000-FFFFh的任何值。具体计数方法分如下几种情况: 1当TxCNT初始值小于TxPR时: 1)当TMRDIR为低电平时,向下计数到0。只要TMRDIR维持低电平,TxCNT将维持0不变。 2)当TMRDIR为高电平时,向上计数到和TxPR匹配。只要TMRDIR维持高电平,TxCNT将维持匹配值不变。,6.4 事件管理模块(EV),2当TxC

39、NT初始值等于TxPR时: 1)当TMRDIR为低电平时,向下计数到0。只要TMRDIR维持低电平,TxCNT将维持0不变。 2)当TMRDIR为高电平时,只要TMRDIR维持高电平,TxCNT将维持匹配值不变。 3当TxCNT初始值大于TxPR时: 1)当TMRDIR为低电平时,向下计数到匹配值,然后继续计数到0。只要TMRDIR维持低电平,TxCNT将维持0不变。 2)当TMRDIR为高电平时,向上计数到FFFFh。只要TMRDIR维持高电平,TxCNT将维持FFFFh不变。 该模式的周期、下溢、上溢中断等标志的设置和相关动作,都由各自的匹配事件产生,和单增计数模式是一样的。 定时器时钟可

40、以使用内部或外部时钟,TMRDIR的电平则决定了计数器的方向。,6.4 事件管理模块(EV),定向增/减计数模式(预定标因子=1,TxPR=3)图,6.4 事件管理模块(EV),(五)单增/减计数模式 在该计数模式下,通用定时器/计数器对定标后的时钟脉冲进行计数,首先增计数到匹配值,然后改变计数方向,减计数到0为止。此时,完成一个计数周期,并做如下操作: 1)复位定时器使能位(TxCON/Bit6)来禁止继续操作。 2)复位预定标因子。 3)停止计数并保持当前状态。 如果TxCNR的初值小于TxPR的值,则先增计数到匹配值,再减计数到零。如初始值等于匹配值,则直接减计数到0。如初始值大于匹配值

41、,则先计数到FFFFh,然后回零,再增计数到匹配值,再反向减计数到零。,6.4 事件管理模块(EV),单增/减计数模式(TxPR=3)图,6.4 事件管理模块(EV),该模式的周期、下溢、上溢中断等标志的设置和相关动作,都由各自的匹配事件产生,和单增计数模式是一样的。但要注意,此模式下的周期匹配事件是在计数周期中间过程中发生的,和前几种方式有区别。 用户可以通过写1到使能位(TxCON/Bit6)来重新启动计数过程。 当计数方向为增时,GPTCON的方向指示位为1,方向为减时,指示位为0。外部TMRDIR被忽略。外部时钟或内部CPU时钟都可以用做定时器的时钟输入。,6.4 事件管理模块(EV)

42、,(六)连续增/减计数模式 这种模式下,每当计数器复位为零时,将重复单增/减计数模式下的操作;无须任何硬件或用户程序的干预,就能进行连续周期性计数。 如果TxCNR的初值小于TxPR的值,则先增计数到匹配值,再减计数到零,然后循环计数。如初始值等于匹配值,则直接减计数到0,再继续循环。如初始值大于匹配值,则先计数到FFFFh,然后回零,再循环计数。 该模式的周期、下溢、上溢中断等标志的设置和相关动作,都由各自的匹配事件产生,和单增计数模式是一样的。 当计数方向为增时,GPTCON的方向指示位为1,方向为减时,指示位为0。外部TMRDIR被忽略。外部时钟或内部CPU时钟都可以用做定时器的时钟输入

43、。,6.4 事件管理模块(EV),连续增/减计数模式图,6.4 事件管理模块(EV),3. 通用定时器的比较操作 各通用定时器都有一个比较寄存器TxCMPR和一个比较/PWM引脚TxPWM/TxCMP,定时器的值总是和对应TxCMPR的值相比较,当两者相等时,就发生比较匹配事件。 通过将TxCON/Bit1设置为1,可以使能定时器的比较操作。出现比较匹配事件时,将进行如下操作: 1)2个CPU时钟周期后,定时器比较中断标志被设置。 2)如果通用定时器不处于定向增减操作模式,1个CPU时钟周期后,根据GPTCON中位的配置情况,对应比较/PWM输出引脚发生信号跳变。 3)如果已经使能定时器比较中

44、断标志位来启动ADC转换,则当该标志被置位时,同时产生AD转换所需要的启动信号。 4)如定时器比较中断未被屏蔽,且没有优先级更高的中断被挂起,则比较中断标志产生的中断请求将被送到DSP内核。 如果比较操作被禁止,对应比较/PWM输出处于高阻态,上述动作也不会发生。,6.4 事件管理模块(EV),非对称波形的输出 GPT处于单增或连续增计数模式时,在比较/PWM输出引脚上产生非对称波形。如果引脚高电平有效,引脚信号的变化顺序是: 1计数开始前,输出为0。 2信号保持不变,直到比较匹配事件发生。 3发生比较匹配事件时,引脚产生电平跳变。 4信号保持不变,直到该计数周期结束。 5如果下一个计数周期的

45、比较寄存器值不是0,则发生周期匹配事件后的那个周期结束时,信号复位为0。如下图。 关于比较寄存器的值,还有如下三种特殊情况: 1)如计数周期开始时,比较值为0,则在整个计数周期内,引脚一直为1(高)。,6.4 事件管理模块(EV),2)如果比较值大于周期寄存器的值,则整个计数周期都维持为0。TxCMPRTxPR时,则无此脉冲输出。 3)如果比较值等于周期寄存器的值,则在周期结束前的最后一个计数脉冲内输出一个计数时钟脉冲。 下图为连续增计数模式的GPT比较/PWM输出图。,6.4 事件管理模块(EV),对称波形的输出 GPT处于单增/减或连续增/减计数模式时,在比较/PWM输出引脚上产生对称波形

46、。如果引脚高电平有效,引脚信号的变化顺序是: 1计数开始前,输出为0。 2信号保持不变,直到比较匹配事件发生。 3发生比较匹配事件时,引脚产生电平跳变。 4信号保持不变,直到第二次比较匹配事件发生。 5第二次比较匹配事件发生时,引脚信号产生反向跳变。 6信号保持不变,直到该计数周期结束。,6.4 事件管理模块(EV),第一次匹配指增计数期间(前半周期),第二次匹配指减计数期间(后半周期)。 关于比较寄存器的值,还有如下几种特殊情况(正逻辑): 1)如周期开始时,比较值为0,输出将被置1,直到下次比较匹配事件发生。 2)如果因比较匹配事件导致输出从0到1跳变后,后半个周期内比较值为0,则输出信号

47、将保持1,直到该计数周期结束。 3)如果输出在下一计数周期到来时保持高电平,而新周期比较值为0,则继续保持1不变(1-1);如果下一个计数周期的比较寄存器值不是0,则该计数周期结束时,信号复位为0(1-0)。 4)如果前半周期比较值大于或等于周期寄存器的值,则信号将不跳变。但如下半周期发生周期匹配事件,则输出电平仍然发生跳变。,6.4 事件管理模块(EV),总结一下,实际上这个PWM对称输出的规律就是: 1)标准的PWM对称波形应在增/减计数的对应前后半周各发生一次匹配事件,每次发生匹配事件,信号将跳变。此时无论前后半周,都有0TxPR,则视为没有匹配条件,信号将不跳变。,连续增/减计数模式的

48、GPT比较/PWM输出图,6.4 事件管理模块(EV),定向增/减计数模式下的比较输出 该方式下,比较/PWM输出引脚不会发生任何变化,但比较中断系统依然有效。 通用定时器的复位状态 通用定时器在发生任意复位操作时,其状态变化如下: GPTCON的计数方向指示位被置1。 除了计数方向指示位外,控制寄存器TxCON、GPTCON其余各位均被置0。 通用定时器操作被禁止。 所有定时器中断标志位被复位为0。 所有定时器中断屏蔽位被复位为0,即中断被屏蔽。 所有比较/PWM输出引脚被设置为高阻态。,6.4 事件管理模块(EV),6.4.3 比较单元 EV模块有三个全比较单元、三个简单比较单元。每个全比

49、较单元有2个比较/PWM输出引脚,每个简单比较单元有1个比较/PWM输出引脚。 1. 简单比较单元 简单比较单元时钟由通用定时器1或2提供。 3个单比较单元包括: 1)3个可读写的16位比较寄存器(SCMPRx,x=1、2、3),各带有一个投影寄存器。,6.4 事件管理模块(EV),2)1个可读写的比较控制寄存器COMCON,所有比较寄存器共享。 3)1个16位单比较动作控制寄存器SACTR,带1个投影寄存器。 4)3个对称/非对称波形发生器。 5)3个比较/PWM(3态)输出引脚PWMy/CMPy(y=7、8、9),极性可编程。 6)比较、中断和输出控制逻辑。 下面是简单比较单元逻辑框图:,

50、简单比较单元结构框图,6.4 事件管理模块(EV),3个比较单元的操作与通用定时器类似,存在区别如下: 1)简单比较单元的时钟输入来源于定时器1或2。 2)简单比较单元的工作特性由自身的控制寄存器COMCON、SACTR控制。 简单比较单元时序波形与通用定时器相同,出现匹配事件时,也将设置中断标志,并申请中断。实际上,就是T1CNT、T2CNT的值和SCMPx进行比较操作。,6.4 事件管理模块(EV),2. 全比较单元 (一)结构 3个全比较单元包括: 1)3个可读写的16位比较寄存器(CMPRx,x=1、2、3),各带一个投影寄存器。 2)1个可读写的比较控制寄存器COMCON,所有比较寄

51、存器共享。 3)1个16位全比较动作控制寄存器ACTR,带1个投影寄存器。 4)6个比较/PWM(3态)输出脚PWMy/CMPy(y=1、2、3、4、5、6),极性可编程。 5)控制、中断和输出控制逻辑。 下图是全比较单元逻辑框图:,全比较单元结构框图,6.4 事件管理模块(EV),(二)全比较单元的控制 (1)全比较单元时钟由通用定时器1提供。 (2)通用定时器可处于任何工作模式,定向增减方式时,比较输出不发生变化。 (3)所需要的输入信号有: 1)控制寄存器的控制信号。 2)来自于通用定时器1的计数信号、下溢信号和周期匹配信号。 3)复位信号。 (4)COMCON寄存器也控制全比较单元,它

52、还受自身的控制寄存器ACTR控制。,6.4 事件管理模块(EV),(三)全比较单元的两种工作模式 通过设置COMCON,可以规定全比较单元工作于如下两种模式。 (1)比较模式 当COMCON中全比较操作被使能,且比较模式被选中时,通用定时器的计数器就不断地和全比较单元的比较寄存器进行比较。当发生匹配时,进行如下操作: 1)两个输出脚根据ACTR的设置发生电平跳变。该引脚有四种状态:保持、复位(低)、置位(高)、比较匹配触发。 2)设置全比较单元的中断标志。过程与通用定时器类似。 (2)PWM模式 全比较单元被设置为PWM模式时,类似于通用定时器的比较操作,引脚上将产生PWM输出。区别是: 1)

53、全比较单元使用自身的控制寄存器。 2)输出波形受内部死区单元和空间矢量PWM逻辑电路的改变。,6.4 事件管理模块(EV),(四)全比较单元的使用设置步骤 为了实现全比较单元的操作,用户可以按如下步骤设置: 1)设置T1PR,给出计数周期。 2)设置ACTR,确认输出逻辑等。 3)初始化CMPRx,设置比较值。 4)设置COMCON。 5)设置T1CON,规定T1的工作模式。 X24X有一个问题:COMCON通常要被写操作两次,才能保证PWM输出的正确性。 可以看到,所有比较单元都不能独立工作,需要和通用定时器配合操作。,6.4 事件管理模块(EV),3. 比较单元控制寄存器 比较单元有COM

54、CON、ACTR、SACTR等控制寄存器。 (一)比较控制寄存器COMCON(工作方式、使能、重载条件)-7411H,6.4 事件管理模块(EV),(二)全比较动作控制寄存器ACTR(空间矢量、输出逻辑)-7413H,(三)单比较动作控制寄存器SACTR(输出逻辑)-7414H,6.4 事件管理模块(EV),6.4.4 与全比较单元相关的PWM电路 PWM控制是电动机运动控制应用中,广泛使用的技术。与全比较单元相关的PWM电路可在极大的减少CPU或用户干预的情况下,产生带有可编程死区和输出极性的6个PWM脉冲输出。 PWM电路主要包括如下部分: 非对称/对称波形发生器。 可编程死区单元(DBU

55、)。 输出逻辑。 空间矢量PWM状态机。 与全比较单元相关的波形产生受T1CON、COMCON、ACTR和DBTCON等寄存器的控制。,PWM电路结构框图,6.4 事件管理模块(EV),1. 死区单元 死区单元是针对全比较单元的PWM工作模式而设置的。 如下图,死区单元用于形成PWM死区,这个死区是可编程的。它包含如下部分: 1个用户可读写的16位死区定时器控制寄存器DBTCON。 1个输入时钟预定标器。 采用CPU时钟输入。 内部3个8位减计数器。 控制、比较逻辑。,6.4 事件管理模块(EV),(1)死区定时器控制寄存器DBTCON -7415H,位15-8 DBT7一DBT0:规定了3个

56、8位死区定时器的周期值。 位7 EDBT3:死区定时器3使能位(对应PWM5和PWM6)。 位6 EDBT2:死区定时器2使能位(对应PWM3和PWM4)。 位5 EDBT1:死区定时器1使能位(对应PWM1和PWM2)。 位4-3 DBTPS1-DBTPS0:死区定时器的预定标因子。 位2-0: 保留。,6.4 事件管理模块(EV),(2)死区的产生 一个全比较单元在处于比较模式时,死区功能将被禁止。 死区单元的输入信号是PH1、PH2、PH3,分别来自全比较单元的非对称/对称波形发生器和矢量状态机;其输出是DTPH1/DTPH1_、DTPH2/DTPH2_、DTPH3/DTPH3_,与PH

57、1、PH2、PH3分别对应。 当死区功能未被使能时,每个单元的两个输出信号完全相同;当被使能后,则2个信号的跳变点不再相同,而是具有一段时间间隔,该间隔称为“死区”。 死区的时间长度由控制寄存器DBTCON决定,假定其15-8位是m,预定标因子4-3位是1/p,则:死区长度=pxm个时钟周期。,6.4 事件管理模块(EV),2. 输出逻辑 比较单元的输出引脚PWMx/CMPx的逻辑规律如下: (一)单比较单元 对单比较单元来讲,控制寄存器SACTR规定了它的极性: 强制高:输出一直为高; 强制低:输出一直为低; 高有效:即正逻辑; 低有效:即负逻辑。 (二)全比较单元 对全比较单元来讲,控制寄

58、存器ACTR决定了它的极性。 (1)当处于比较模式时,分为: 置位:即置为高电平; 复位:即置为低电平; 保持:输出保持不变; 触发:正常输出状态。 (2)处于PWM模式时,有: 强制高:输出一直为高; 强制低:输出一直为低; 高有效:即正逻辑; 低有效:即负逻辑。 (三)输出高阻态 当发生如下事件时,输出处于高阻态: COMCON的位8(单比较使能)、9(全比较使能)被清零; 当PDPINT中断产生并未被屏蔽时; 任何复位事件发生。,6.4 事件管理模块(EV),3. 比较单元和PWM电路中PWM波形总结 (1)PWM信号 PWM是一组具有特定载波周期和频率,但宽度可以调节的脉冲序列。为了对每周期内的脉冲宽度进行调节,需要有另一列具有需要值的调制信号。 PWM信号广泛用于电动机的控制,该信号可以用来控制驱动功率器件的开闭时间,从而实现对电动机的驱动特性可调节。,6.4 事件管理模块(EV),(2)EV的PWM输出 DSP的PWM信号产生,是通过定时器和比较器来产生的。一般方法是: 使定时器工作在连续增或连续增减方式; 对定时器给出一个合适的周期值,作为载波周期; 给出一个合适的比较值,作为调节信号,通过调节增、减计数过程中的比较匹配点,控制脉冲宽度。 通常,全比较单元的6个输出,可以产生6组死区可编程的驱动信号,用于控制三相电机的驱动。由于DSP的可编程特性,

温馨提示

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

评论

0/150

提交评论