我们这节课的主要内容有:
·定时器A介绍
·Timer_A3控制寄存器
1.定时器A介绍
1.1 16位Timer_A3系统介绍
首先需要说明的是Timer_A3,在MSP430F14x以及MSP430F13x芯片中,大多包含了16位定时器A,由于Timer_A通常具有3个捕获/比较器,因此通常称为Timer_A3。Timer_A是一个在MSP430系列单片机中广泛具有的16位通用定时器/计数器,具有以下特点:
※16位定时器、4种工作模式
※多种可选择的计数器时钟源
※多个可配置输入端的捕获/比较寄存器
※8种输出模式的可配置输出单元
除此之外,Timer_A理所应当的具有了中断能力,中断可以由计数器溢出产生,或者由捕获/比较寄存器产生。
1.2 16位计数器部分
Timer_A3的功能结构可以分为3个部分:16位计数器部分、捕获/比较寄存器部分和输出单元。
我们现在看到的是计数器部分,这里是计数器部分的4个时钟源,供用户选择。其中ACLK和SMCLK时来自于单片机内部。时钟源选择之后,要经过一个分频器,该分频器可以配置。输出之后加入时钟可以驱动16位的计数器。然后这里是计数模式选择控制器,一共有四种模式可以选择。这里是可以设置中断标志。
1.3捕获/比较控制与寄存器结构
我们现在看到的是捕获/比较控制与寄存器结构图。这里是选择捕获的输入源的,可以有4种源的选择,最常用的是前面两个:CCIxA和CCIxB。这里是捕获模式,它可以选择上升沿捕获、下降沿捕获或者上升或下降沿都捕获。这里是捕获/比较寄存器,是将捕获时的计数值存下来,这样有助于用户进行测量。然后这里是比较器,是将计数器和捕获/比较寄存器的值进行比较。比较之后得到一个PWM波形。
1.4输出单元结构
我们现在看到的是一个输出单元,这个输出单元可以向外面输出各种不同的波形,也就是产生的PWM波形,这个波形在工业控制中是非常有用的。这个MSP430定时器A的功能,还是非常强大。
看了这些框图,我们知道,它非常适合于工业控制。
1.5 Timer_A3控制寄存器
Timer_A3的所有操作都通过控制相关的控制寄存器来实现的。Timer_A3部分的控制寄存器由TACTL、CCTLx、CCRx、TAR和TAIV寄存器组成,其中TACTL 主要包含了16位计数器中的控制位和状态位;CCTLx主要控制捕获/比较寄存器和比较器;CCRx与捕获/比较寄存器相关;TAR是16位计数器的技术执行单元,保存了计数器的内容;TAIV保存了中断请求的中断信息。
1.6 TACTL控制寄存器
我们现在看到的是TACTL控制寄存器。
TASSEL1|TASSEL0:选择输入到分频器的时钟源。3:INCLK,外部输入时钟(MSP430F149的P2.1);2:SMCLK,子系统时钟;1:ACLK,辅助系统时钟;0:TACLK,外部引脚输入信号(MSP430F149的P1.0)
ID1|ID0:选择分频器的工作模式。3:1/8分频;2:1/4分频;1:1/2分频;0:不分频
MC1|MC0:选择定时器工作模式。3:增减计数模式:计数器增计数到CCR0后再减计数到0;2:连续计数模式:计数器增加到0xFFFFH再清零重新计数;1:增计数模式:计数器增计数到CCR0后再清零重新计数;0:停止模式:暂停计数
CLR:计数器清零。
TAIE:定时器溢出中断允许位,当不使用中断向量TIMERA1_VECTOR时,不需要使用该位。
TAIFG:定时器溢出标志位。增计数模式下,当计数器由CCR0被清零后该位置位;连续计数模式下,当计数器由0xFFFFH被清零后该位置位;增减计数模式下,当计数器减数到0时该位置位。
1.7CCTLx捕获/比较控制寄存器
每一个CCTLx控制寄存器共有16位,其中第9位没有使用,其他位在POR后全部复位,但不受PUC影响。
CAPMOD1|CAPMOD0:捕获模式选择。3:上升沿捕获和下降沿捕获;2:下降沿捕获;1:上升沿捕获;0:禁用捕获模式。
CCIS1|CCIS0:捕获事件的信号输入源。3:选择Vcc为捕获事件的信号输入源;2:选择GND为捕获事件的信号输入源;1:选择CCIxA为捕获事件的信号输入源;0:选择CCIxB为捕获事件的信号输入源。
SCS:捕获信号与计数器时钟是否同步。1:同步捕获;0:异步捕获。
SCCI:当比较器输出比较相等信号(EUQx)时,EUQx控制锁存器将CCIS1|CCIS0选定的捕获事件信号源的信号锁存在锁存器中,并由SCCI输出。
CAP:捕获/比较模式选择。1:捕获模式;0:比较模式。
1.8CCTLx捕获/比较控制寄存器
PUTMOD2|OUTMOD1|OUTMOD0:选择输出单元的输出模式。7:PWM复位/置位模式;6:PWM翻转/置位模式;5:复位模式;4:翻转模式;3:PWM置位/复位模式;2:PWM翻转/复位模式;1:置位模式;0:输出模式。
CCIE:中断允许位。1:允许中断;0:禁止中断。
CCI:用户可以从此位读出在捕获模式中选择捕获事件的输入信号源。
OUT输出信号控制位,用来控制在输出0模式下,OUTx的输出信号。1:输出高电平;0:输出低电平。
COV:捕获寄存器溢出标志位。当捕获寄存器中的值在用户读出前,再次发生捕获事件,则该位置位,置位后用户需要软件对该标志位复位。
CCIFG:中断标志位,在不同的模式下该中断标志位置位标志不同的意义:
捕获模式下,表示CCRx中保存了捕获到的TAR值;比较模式下,表示TAR中的值等于CCRx中的值。
其中CCIFG0在进入中断服务程序时能自动复位,CCIFG1和CCIFG2在读取TAIV时被自动复位,当寄存器不能自动复位时,用户可以软件清除中断标志位。
1.9其余寄存器
CCRx捕获/比较寄存器:该寄存器在不同的模式下具有不同的意义,具体的例子在后面会有详细的例程。
捕获模式下,在外部输入信号满足捕获条件时,则系统将TAR中的数据保存到CCRx寄存器中。比较模式下,用户根据预先设定的时钟源、分频系数和定时器工作模式,向CCRx中写入定时长度。
TAR计数器内容:TAR中保存了16位计数器当前的数值。
TAIV中断向量寄存器:TAIV中保存了中断请求的中断源,保存Timer_A3的中断向量仅占有了寄存器的第3~1位。