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.

[参考译文] MSP430G2553:Timer_A 偶尔与 ACLK 一起工作

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/569426/msp430g2553-timer_a-works-sporadically-with-aclk

器件型号:MSP430G2553
主题中讨论的其他器件: MSP-EXP430G2

您好!

我一直在尝试使用 MSP-EXPG2开发板在 MSP430G2553上使用 ACLK 32kHz 内部晶振通过 TIMER_A 使 LED 闪烁。  我正在使用 USB 连接和计算机为 MCU 供电。  我看到了各种各样的问题、包括:在独立模式下实现完美的性能(包括准确的时序)、在调试模式下快速闪烁两倍、在独立模式下不运行、闪存的频率随手靠近电路板而变化(手靠近电路板 LED 闪烁更快)、 在调试模式下(当电路板脱离接地垫时)工作正常时、不会在独立模式下运行。  

我最初没有"绑定"未使用的引脚、尽管这是问题所在。  我连接了所有未使用的引脚。

这似乎是接地问题。  如果位于接地垫上且接地至内部接地、则该电路板在独立模式下工作。  尽管当在无焊试验电路板上设置外部 LED 时、它将不起作用。  在这种情况下、由于我使用的跳线电缆为公型、并且插入到接头底部、因此电路板已脱离垫层。  

我唯一没有这些问题的时候是使用 SMCLK 时钟的时候。  它在调试和独立工作时、在接地垫上或离地垫上具有相同的计时、双手靠近或远离电路板。

下面的代码是我在使用 SMCLK 时使用的代码。  当尝试使用 ACLK 时、我进行这两个更改...CCrO=1023和 tassel_1。  我最初使用的是带有中断的 Timer_A、但将其更改为使用硬件驱动 LED 输出、并且有类似的问题。

为什么我看到 ACLK 而不是 SMCLK 出现这些问题的任何想法。  另请注意、我在两个不同的 MSP-ESP420G2开发板上遇到了此问题。  感谢您提供的任何建议。
另请注意、我想使用 ACLK 晶体、因为与 SMCLK 和 VLO 的 RC 类型时钟相比、它在 MSU 的工作温度范围内更加精确。

#include

int main (空)

  WDTCTL = WDTPW + WDTHOLD;

  //设置 Timer A 和通道0以切换模式。  

  CCR0 = 65535

  TACCTL0 = OUTMOD_4;

  TACTL = tassel_2|ID_3|MC_1_TACLR;

  //将 P1.5设置为 TA0.0的输出

  P1SEL |= BIT5;

  P1DIR |= BIT5;

  //将所有未使用的引脚设置为输出并使用上拉电阻器设置为高电平。

  P1OUT |= BIT0|BIT1 |BIT2 |BIT3 |BIT4 |BIT6 | BIC7;

  P1REN |= BIT0|BIT1 |BIT2 |BIT3 |BIT4 |BIT6 |BIC7;

 

  P2REN |=BIT0 | BIT1 |BIT2 |BIT3 |BIT4 | BIT5;

  P2OUT |= BIT0 |BIT1 |BIT2 |BIT3 |BIT4 |BIT4;

 

while (1){}

//无限循环

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这听起来像是一个吱吱作响的晶体连接。 晶体是否与 XCAP 设置正确匹配(如果您不更改它、则为6pF)?

    不稳定的行为表示 LFXT1故障转移到 VLO、然后在 LFXT1重新启动时返回到晶体。 手握式近 IT 实验也是一个线索。

    尽管您在两个不同的电路板上看到过这种情况、但仍值得将焊铁接触到晶振连接以回流焊料(对我来说很有用!)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bruce、您好!
    感谢您的回答。 我对此非常不熟悉、因此我没有意识到晶体实际上位于 MCU 芯片之外。 我看到 XIN 和 XOUT 引脚旁边有一个3mm 的小方形焊料段。 我更新了 BCSCTL3 = XCAP_1;以便像您建议的那样将电容器与6pF 匹配。 这无法解决问题。 但是、您正是我手中的电路板效应。 现在、我是如何设置它的、它在独立模式下根本不起作用、但如果我将手指非常接近3毫米方形、LED 将闪烁。

    我尝试了您的焊接烙铁建议。 我熔化了焊料并单独重试。 不过、如果我将手指靠近正方形(约25mm)、LED 仍然会更快地闪烁。 因此、我决定再次重新熔焊料、现在就像以前一样。 如果我的手指不靠近晶体、LED 将不会闪烁。

    多么令人沮丧。 我想我会尝试重新焊接晶振、直到我正确。

    再次感谢您的回答。 当我使其正常工作时、我会告诉您。

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

    感谢您的回答。 我尝试了你们的两项建议。 第一个、设置 BCSCTL3 = XCAP_1;没有解决这个问题。
    我多次尝试重新焊接晶振(XIN 和 XOUT 引脚旁边的3mm 方形)。 第一次重新焊接后、LED 独立闪烁、但当我将我的已靠近电路板时、LED 闪烁频率增加。 因此尝试了另外几个再焊接。 现在回到以前、除非我将手指从晶体上移开约12 mm、否则 LED 不会闪烁。

    还有其他建议吗? 发生这种情况非常奇怪。

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您填充晶振时、您也必须对 R28和 R29进行降序。 此外、在完成焊接工作后-正确清洁 PCB、确保电路板上没有残留的助焊剂。 XTAL 引脚周围的任何泄漏都会导致振荡器运行不稳定。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ilmars、
    我对这个32kHz 晶体感到困惑。 阅读 MSP430G223数据表、第1页上显示"基本时钟模块配置包括:内部高达16MHz、内部低功耗低频率振荡器、32kHz 晶体、外部数字时钟源"。 然后在数据表的 p 14上、"辅助时钟(ACLK)、由一个32768Hz 手表晶振或内部 LF 振荡器提供。"

    从这个角度来看、它给人的印象是32kHz 晶振在 MCU 内部、但在第二个角度看、它不会指示任何方式、如果它是内部的还是外部的。

    在第273页的"基本时钟模块"一章中阅读 MSP430x2xx 用户指南、您会发现以下内容:

    p273" LFXT1CLK:可与低频手表一起使用的低频/高频振荡器
    32768Hz 的晶振或外部时钟源、或采用标准晶振、谐振器或外部时钟
    频率范围内的信号源。"

    p276"基本时钟模块+通过允许用户选择来解决上述冲突要求
    三个可用的时钟信号:ACLK、MCLK、和 SMCLK。 为实现最佳低功耗性能、ACLK
    可由一个低功耗32768Hz 手表晶振(如果可用)供源、从而为提供一个稳定的时基
    系统和低功耗待机运行、或在晶体精确时从内部低频振荡器运行
    不需要保留时间。"

    因此、这表明32kHz 晶体确实是一个外部时钟源、只有 VLO (12kHz)是内部时钟源。 但我必须承认,这种语言仍然有些模糊。

    我现在已经在套件中找到了小晶振封装。

    我找到了您所讨论的关于去焊 R28和 R29的参考。 它位于 MSPEXP-430G2用户指南的第12页。

    '振荡器信号连接到 J2、以使用连接的应用板上的信号。 如果是
    振荡器信号的信号失真、导致基本时钟模块、电阻器上出现故障指示
    R29和 R28可用于断开引脚接头 J2与振荡线路的连接。'

    好的、我将尝试将这个晶振安装在 MSP-EXP430G2椭圆形的所提供的焊盘上、并让您知道它是如何工作的。 我将查看它是否在连接 R29和 R28的情况下工作、如果我仍然遇到如寄存器 LFXT1OF (MSP430x2xx 用户指南 p 285)中所示的故障、那么我也将对它们进行降序。 但从上面看来、如果在使用应用板的同时将外部时钟连接到 J2引脚、您只需要执行此操作。

    这是一个人关于安装32kHz 晶体的博客的链接。

    www.msp430launchpad.com/.../using-aclk-and-32khz-crystal.html

    为完整起见、我的晶体封装显示为12.5pF (xCAP_3)(MSP430x2xx 用户指南 p 285)、而 Bruce 的封装显示为6pF (另请参见 MSP430x2xx pg 275)。 我在这里为在这个问题上有类似困惑的其他人提供了所有参考。

    感谢你的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试将晶振焊接到位、但没有成功。 正在放弃。 将使用 SMCLK 进行开发。 感谢您的两个回答。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Kevin Peffers"]我尝试将晶体焊接到位,但没有成功

    您是否使用异丙醇清洁 PCB? 这一点非常重要、因为晶体振荡器是非常敏感的电路。 此外、这可能会导致您的晶体已损坏。 也许您应该尝试另一种方法(在周围寻找报废电子时钟)也要排除任何编程错误,尝试使用源代码示例 msp430g2xx3_ta_04.c 中的 LED 闪烁代码   

    [引用 user="Kevin Peffers">放弃。 将使用 SMCLK 进行开发。 感谢您的两个回答。[/引述]

    即使在使用 DCO 工厂校准时、DCO 也不准确。  许多 launchpad 用户焊接晶体时不会出现任何问题、您也应该能够解决。