历史上的今天
返回首页

历史上的今天

今天是:2025年03月17日(星期一)

正在发生

2020年03月17日 | MSP430F149定时器TA总结

2020-03-17 来源:eefocus

msp430的定时器主要是指基本定时器,看门狗定时器和TATB定时器,两种定时器从功能和用法的角度基本相似,TB功能更为强大,有7个CCR0寄存器,即可输出六路PWM,在做三相逆变的时候,需要六路每路相差60°的spwm波,就是用TB来发生的。


定时器的PWM发生利用的是比较模式,即在CCR0中储存周期,CCR1中储存一个小于CCR0的数字,CCR1/CCR0的比值即为占空比,其原理如下图所示:


在一个16位计数器TAR增加的过程中,当达到CCR1前输出高电平,达到CCR0值前输出低电平,达到CCR0后,重新置位。


与TA相关的寄存器分为四类:


1、TACCRx(CCRx)     //捕获/比较寄存器


2、TACCTLx(CCTLx) //捕获/比较控制寄存器


3、TACTL                  //控制寄存器


4、TAIV                     //中断向量寄存器


/*************TACCRx*************/


该寄存器使用最简单,可读可写,在PWM输出中CCR0常用作周期,CCR1中用作占空比。,具体作用方法见7-2图

/************TACCTLx*************/


15 14                 13 12       11       10         9     8        7 6 5             4           3         2       1         0


CAPTMOD1-0   CCIS1-0   SCS   SCCIx          CAP   OUTMODx   CCIEx   CCIx   OUT   COV   CCIFx


CAPTMOD1-0 :


选择捕获模式


00 禁止捕获模式


01 上升沿捕获


10 下降沿捕获


11 上升沿与下降沿都捕获


CCISI1-0 :


在捕获模式中用来定提供捕获事件的输入端


00 选择CCIxA


01 选择CCIxB


10 选择GND


11 选择VCC


SCS:


选择捕获信号与定时器时钟同步、异步关系


0 异步捕获


1 同步捕获


异步捕获模式允许在请求时立即将CCIFG置位和捕获定时器值,适用于捕获信号的周期远大于定时器时钟周期的情况。但是,如果定时器时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错。


在实际中经常使用同步捕获模式,而且捕获总是有效的。


SSCIx 比较相等信号EQUx将选择中的捕获、比较输入信号CCIx(CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。


CAP:


选择捕获模式还是比较模式。


0 比较模式


1 捕获模式


注意:同时捕获和捕获模式选择


如果通过捕获比较寄存器CCTLx中的CAP使工作模式从比较模式变为捕获模式,那么不应同时进行捕获;否则,在捕获比较寄存器中的值是不可预料的,推荐的指令顺序为:[1]修改控制寄存器,由比较模式换到捕获模式。


[2]捕获


OUTMODx :


选择输出模式


000 输出


001 置位


010 PWM翻转/复位


011 PWM置位/复位


100 翻转/置位


101 复位


110 PWM翻转/置位


111 PWM复位/置位


关于2和3的关系:


置位就是对寄存器的某一位写"1"

复位就是使寄存器恢复到初始状态值。

翻转就是该位的电平由"1"变为"0"或者由"0"变为"1"

在实际应用中,一般使用3和6或者2和7输出一对可以互补的pwm,其他几种感觉实际应用不是很强,此外翻转与置位感觉在此差别不大


同时关于输出模式,有下图


CCIx :


捕获比较模的输入信号


捕获模式:由CCIS0和CCIS1选择的输入信号通过该位读出。


比较模式:CCIx复位。


OUT :


输出信号


0 输出低电平


1 输出高电平


如果OUTMODx选择输出模式0(输出),则该位对应于输入状态。


COV :


捕获溢出标志


0 输出低电平


1 输出高电平


[1]当CAP=0时,选择比较模式。捕获信号发生复位,没有使COV置位的捕获事件。


[2]当CAP=1时,选择捕获模式,如果捕获寄存器的值被读出再次发生捕获事件,则COV置位。程序可检测COV来断定原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。


CCIFGx:


捕获比较中断标志


捕获模式:寄存器CCRx捕获了定时器TAR值时置位。


比较模式:定时器TAR值等于寄存器CCRx值时置位。


1、在比较模式输出pwm的情况下,一般对TACCTL设置的方法是CCTL0 = OUTMOD_2;而若另外一个IO口设置为CCTL0 = OUTMOD_6;则两路为互补的,这在做逆变两个导通情况需要正好相反的情况下是非常方便的,用这种方法,也只要控制每两路之间相差120°,每一个再输出一个差180°的就可以输出六路,从而实现三相逆变。


2、在捕获模式下,一般设置的方法是


CCTL0 = CM_1 + SCS + CCIS_0 + CAP + CCIE;                          // Rising edge + CCI0A (P1.1) + Capture Mode + Interrupt


/************TACTL*************/


15--10  9           8           7        6     5        4        3       2       1        0


未用     SSEL1  SSEL0   ID1   ID0  MC1  MC0  未用  CLR  TAIE  TAIFG


SSEL1、SSEL0:


选择定时器输入分频器的时钟源


Timer_A时钟源


SSEL1   SSEL0   输入时钟源   说明


0            0           TACLK          用特定的外部引脚信号


0            1           ACLK            辅助时钟


1            0           SMCLK          子系统时钟


1            1           INCLK            见器件说明


ID1,ID0:


输入分频选择


00 不分频


01 2分频


10 4分频


11 8分频


MC1,MC0 :


计数模式控制位


00 停止模式


01 增计数模式


10 连续计数模式


11 增/减计数模式


CLR:


定时器清除位


POR或CLR置位时定时器和输入分频器复位。CLR由硬件自动复位,其读出始终为0。定时器在下一个有效输入沿开始工作。如果不是被清除模式控制暂停,则定时器以增计数模式开始工作。


TAIE :


定时器中断允许位


0 禁止定时器溢出中断


1 允许定时器溢出中断


TAIFG:


定时器溢出标志位


增计数模式: 当定时器由CCR0计数到到0时,TAIFG置位。


连续计数模式:当定时器由0FFFFH计数到0时,TAIFG置位。


增/减计数模式:当定时器由CCR0减计数到0时,TAIFG置位。


TACTL设置起来比较简单,而且变化不多,不论是捕获还是比较模式相差都不很大,基本上都是只要选择一个时钟源(TASSEL)和一个计数模式(MC),时钟源一般会选择TASSEL_2(SMCLK,在没开XT2的情况下,默认800khz,在开XT2的情况下可达8MHZ),TASSEL_1(ACLK,一般不需分频,则为32768HZ)。计数方式一般都会选择增计数模式MC_1;少数情况下MC_3据说可用来生成对称波,没有试过,但是MC_3会把普通pwm的频率减半.......(使我naive的以为语句要占运行时间,所以即使使用8M晶振也只能达到4M频率而已)


TA总结如是,TB只是比他多了几个CCR和CCLT而已,可以用来输出6路pwm,总的评价一下定时器,主要用比较模式来生成PWM波(含SPWM波),捕获模式用来测频,测频精度非常高,感觉基本能满足鄙人要求....,以后在构架系统的时候,应该会利用TB来输出PWM,用TA测频及测相,在需要测频较多的情况下使用TB测频测相。P2.4-P2.7用来键盘,P5.2-P5.6用来液晶显示,基本人机交互和系统需求应该都可以满足

推荐阅读

史海拾趣

问答坊 | AI 解惑

PIC 单片机的C 语言编程

以前给大家的都是用汇编语言编写的单片机程序.今天我们来说以下用C语言来编写程序以前也给大家说到过这个问题,不过我感觉今天给的这本书很详细…

查看全部问答>

TDS100B/2000B数字示波器使用说明书

看到有人找示波器说明书,这里把我 用 的 泰克示波器的说明书发上来,希望有所帮助。 …

查看全部问答>

高清虽好门槛高 揭开高清不能说的秘密

近几年来,高清已经成为众多安防厂家追求的趋势,金融、交通等领域需求的增加也为安防高清日渐上升的地位奠定了基础。那么,究竟是什么原因促进了安防高清的快速发展?是不是所有的安防厂商都可以发展高清产品?百万高清在发展的过程中又遇到了哪些困 ...…

查看全部问答>

IAR堆栈溢出的问题

                                 以前看到有人提过,感到好奇 …

查看全部问答>

【MSP430共享】玻璃破碎检测解决方案

这是利尔达公司为Ti代理所做的一个设计,用来检测非法入侵及周界安全。当玻璃门、窗被打破时,产生的高频信号被麦克风检测到,通过单片机对信号进行分析,再进行报警。 [ 本帖最后由 鑫海宝贝 于 2011-10-12 09:34 编辑 ]…

查看全部问答>

基于msp430g2553定时器详解1

/*#include \"msp430g2553.h\"unsigned char num;void main(){  // Stop watchdog timer to prevent time out reset        WDTCTL = WDTPW + WDTHOLD;        BCSCTL ...…

查看全部问答>

理解线性电源指标

文档是吉时利的一份应用笔记,其中很介绍了线性电源设备的指标, 特别是纹波和噪声指标,还有使用远端感测提高电压准确度部分有种拨云见日的感觉。 我把纹波和噪声指标部分摘录出来: 直流电源输出的交流杂散成分被称为纹波和噪声,或称作周期 ...…

查看全部问答>

新手请多多关照

今天才看到该网站,感觉不错!…

查看全部问答>

IC静态电流

TI的芯片 写着静态电流时1UA 但我按照典型电路来接  然后测了输入的电流有50多uA  是我测试方式不对还是芯片写的夸大了…

查看全部问答>

汽车驾驶行为监测及安全防盗系统

本帖最后由 youki12345 于 2017-5-5 16:42 编辑 由于时间和技术的问题,手机上位机软件没有另外开发,直接在sensor tile提供的官方手机端上加入评分函数和界面显示即可,后续如果有时间再自己开发评分APP 手机端APK github传送门…

查看全部问答>