关于MSP430FR5969 Timer_X_x定时器中TA/BXCCTLx寄存器的CCIS_x位选择CCIxA/CCIxB的一些问题的解决

最近在使用MSP430FR5969做输入方波捕获的工作,由于对效率有很高的要求,所以使用的是采用<msp430.h>库伪寄存器开发的方式,参考的是TI的官方例程,其中都是挨个对寄存器进行配置,一些常规的寄存器配置都能很轻松的理解,这里就不过多解释,随便搜一下都能搜到,其中配置到TA0CCTL2寄存器(使用的是Timer0_A3定时器)时对官方例程中CCIS_1位的配置感到是十分困惑,在网上搜寻了很久都没有很完美的解释让我明白,搜到的最多的解释就是要参考具体的设备表,问题是设备表我应该看哪里呢?没有一个搜索结果能够告诉我的,所以我只能自己探索,自己把数据手册和用户手册翻了很久才最终寻找到答案,寻找答案的过程如下:

先是官方例程的源码,如下:

再进入固件库文件<msp430fr5969.h>中查看这个位的具体定义:

到这里就结束了,实际上这个位配置的是什么就目前来看是毫无头绪,既然这样那就一层一层扒开,首先看官方例程中的注释,解释这个位表示的是使用CCIS_1,而CCIS_1是封装的CCIxB位、采用的是ACLK时钟源,这也不难理解,CCIS_1位就是输入信号源的选择,这点在用户手册里也有很明确的说明:

(当CAP = 1时,选择捕获模式。Capture模式用于记录时间事件。它可以用于速度计算或时间测量。捕获输入CCIxA和CCIxB连接到外部引脚或内部信号,并用CCIS位进行选择。CM位选择输入信号的捕获边缘为上升、下降或两者兼有。捕获发生在输入信号的选定边缘上。如果捕获发生:……)

而本身这个例程就是要实现对ACLK输出的频率的捕获,所以到目前为止还能理解,紧接着下一个问题来了,这个CCIxA暂且不谈目前不知道是什么,为什么CCIxB就是指的是内部的ALCK时钟源呢?那CCI_A指的又是什么呢?

带着这个问题我直接去翻寄存器表,因为想着之前基本在寄存器表中都有详细的说明,下面展示一下用户手册中对于这个位的说明:

(提示:这个是TAxCCTLn寄存器的配置信息表)

在用户手册中对CCIS位的解释为:捕获/比较输入选择。这些位选择TAxCCR0输入信号。有关具体的信号连接,请参阅设备特定的数据表

好好好,经典的参阅数据表,在我搜寻答案的过程中已经看过N次这句话了,真想吐槽一下一些写文章的能不能不要就是把别人手册里的东西翻译一下再复制粘贴过来啊?

不过作为一个慢慢啃完430的小菜鸟,我在写解决问题文章时一定会把读者当傻子一样一步一步解释每一步的操作,所以接下来我会解释一下这个CCIxA和CCIxB究竟是怎么对应上指定的内部或外外部GPIO的。

首先CCIS位对应的是CCIxA、CCIxB、GND、VCC,关于GND和VCC我没有去深究,所以我的回答可能会有误,我就不多说了,重点解释我寻找CCIxA和CCIxB的过程,首先我在数据手册和用户手册直接搜索这个关键字,无果,再搜索CCIS,无果,相关的解释都是一句话“请参阅特定的设备表”,我就想说我不是本来就在看对应的数据手册和用户手册吗?怎么就不是特定的数据表了?真是让我非常抓狂。但是我还是让自己保持冷静,既然搜索找不到,那我就从定时器章节开始慢慢看,一个字一个字的看,我就不信我找不到。

在从定时器章节一个字一个字扒之前,我还看到了数据手册中的这一个表:

我突然想到那句话“请参阅设备表”,我心想这个数据手册是MSP430FR59xx系列的,不会这个特定的设备表指的就是这个表吧?但是很显然我想多了,这个表中并没有任何对于CCIxA和CCIxB的解释,不过也有额外收获,下面有一行小字:

好的,现在我知道了TA0和TA1只能用于内部和外部的捕获/比较输入和PWM输出,而TA2和TA3只能用于内部的捕获/比较输入和内部PWM输出。

下一步,扒定时器的章节,终于在我的一个字一个字的研究下,我找到了结果!

先看图:

好家伙原来就这么简单的一个东西你让我找这么久,具体参考数据手册(《Data Sheet》不是《User's Guide》)中的Detailed Description细节描述->Peripherals外设->TA0,TA1/TA2,TA3,这个表格清晰的展示了CCIxA和CCIxB的解释,具体对应的是哪个内部/外部GPIO,清晰明了。

行文至此,其实发现也就是很简单的一件事,说到底可能还是我对数据手册还有用户手册的不够熟悉,不知道遇到问题应该去哪里寻找答案,导致浪费了很多时间,不过最终也算是把问题解决了,但探索问题的过程值得我深思,写下这篇文章。同时也是希望帮助一些跟我遇到同样问题的人,让他们能够快速解决遇到的困惑(这也是我把标题写了CCIxA和CCIxB关键字的原因,让想知道的人能更快依靠这个关键字检索到这篇文章)

如果疏漏,还请指出,我仍旧是一个在探索的小菜鸟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值