This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430G2955:定时器问题不对来自特定引脚振荡器的外部时钟进行计数

Guru**** 657930 points
Other Parts Discussed in Thread: MSP430G2955
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/607927/msp430g2955-timer-problem-does-not-count-external-clocks-from-certain-pin-oscillator

器件型号:MSP430G2955

大家好、

在解释问题之前、我很难弄清 TA0CLK、TA0.0、TA0.1和 TA0.2及其功能之间的差异。根据我所知、MSP430G2955 timer0.A3、Timer1.A3和 timer0.B3中只有3个计时器、因此我不会发现它们之间有任何关系

我的理解为什么只有 P1.0在计数外部时钟(PIN 振荡器)、是因为它具有 TA0CLK 还是我不知道的东西? 请暂停使用、因为文档中没有任何关于 it.below 的内容、您可以在数据表中找到它提供的图片

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,tarik,

    数据表的表2中捕获了计时器功能。

    TA0CLK:TA0的可选输入时钟源、可通过 TACTL 寄存器的 TASSELx 位进行选择。
    TA0.0-TA0.2:CCI0A-CCI2A 输入处于捕捉模式、CCR0-CCR2输出处于比较模式。

    上述所有引脚均参考 TA0_A3、表12对此进行了进一步说明。 电容式感应模式与 TA0具有不同的功能(如表17中显示的 P1SEL/P1SEL2寄存器位设置所示)。 对于电容式触控软件库、TA0由板载时钟源在内部驱动、不需要 TA0CLK 输入、该输入释放 P1.0以实现引脚 OSC 功能。

    由于 CAPSENSELIBRARY 是一款传统产品、我建议您在新产品设计中采用 CapTIvate 技术、MSP-CAPT-FR2633页面将是一个很好的起点。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    
    

    您好、Ryan、

    感谢您的回答、

    -我仍然无法解压,什么是 TA0.0 TA0.1和 TA0.2,我的意思是什么? 我从您的评论中了解到它们是引脚、但我在图12-1中找不到它们。 slau144j.pdf 的 Timer_A 方框图、我了解到3是指计时器具有的03个捕获/比较通道。

    -根据您所说的内容(TA0CLK:TA0的可选输入时钟源、可通过 TACTL 寄存器的 TASSELx 位进行选择。) 如何使用 TACTL 寄存器的 TASSELx 位将引脚 P1.1连接到 timer0_A3? 我已经为引脚 P1.0完成了这个操作、并且可以完美地工作、正如您可以在下面的代码中看到的那样、但是不知道 P1.1、因为在表12中。 Timer0_A3信号连接我发现它们之间存在差异。

    -感谢您提供库的链接,我现在就在这里,但我想了解引脚的 signla 路由,这样我就可以很好地理解库,而不是盲目使用它,也不了解寄存器是如何设置它们的角色的。

    TA0CTL =tassel_0|ID_3|MC_2|TACLR;
    TA0CCTL0 =CM_3|CCIS_2|CAP; 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、我是在第二个段落中、如何将 oin P1.1作为 timer0_A3的外部时钟?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、tarik、

    在图12-1中、您会看到 TA0.0-TA0.2作为 CCR0-CCR2、仅显示 CCR2来限制冗余。 捕获(输出)和比较(输入)模式之间的切换由 TACCTLx 寄存器的 CAP 位选择。

    只要您将 TACCR0设置为正确的周期、显示的代码就是 P1.1/TA0.0代码。 现在所需的就是正确的 P1SEL 位分配。 如果需要、P1.0/TACLK 用于 TACLK 输入。

    您应该参考 TI 提供的定时器示例、以更好地了解如何正确控制这些模块。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     您好、Ryan、

    感谢为计时器提供的建议、这很有帮助。 因此、请确保我不理解它。 它不仅是引脚 P1.0、还可被分配为 timer0_A3 (TAR)的时钟输入。 因此、它们在电容式触控库中所做的是首先将计时器输入时钟设置为外部、如下所示:

    TA0CTL =tassel_0|ID_3|MC_2|TACLR;

    然后按照如下方式设置 P1SEL 和 P2SEL:

    P1DIR &=~ BIT1;           //P1.1

    P1SEL &=~ BIT1;

    P1SEL2 |= BIT1;               //激活引脚振荡

    这应通过引脚振荡馈送 timer0_A3

    这里我有一张我所理解的图片

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请说明您正在引用的电容式触控示例项目。 从 SLAA363的第3节可以看到、当 G2xxx5器件应仅使用引脚振荡器外设时、这种外部连接设置通常需要将比较器输出连接到 TACLK。 为了更好地理解 CAPSENSELIBRARY、我还推荐 SLAA490/491。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      是的、正如您在图片中看到的、我在不使用比较器的情况下对 P1.0执行了该操作、我在不使用比较器的情况下对 P1.0执行的方法非常好、因为我使用了此链接中给出的 ethod:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴听到这个消息、听起来好像您在做什么。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我理解这种情况的概念、但我不知道为什么引脚 P1.1需要为计时器提供时钟? 为什么只有引脚 P1.0起作用(timer0_A3仅对来自引脚 P1.0的时钟进行计数)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    需要 P1.1以 PinOsc 波形驱动传感器。 由于需要 TACLK 输入、因此只有 P1.0工作。 请进一步详细阅读 CAPSENSELIBRARY 文档、以更好地了解此技术。

    此致、
    Ryan