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.

[参考译文] MSP430G2452:带有异步时钟的 USI 运行

Guru**** 2513185 points
Other Parts Discussed in Thread: MSP430G2452

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/605011/msp430g2452-usi-operation-with-asynchronous-clock

器件型号:MSP430G2452

大家好、团队、

代表我的客户发布:

我们在 MSP430G2452上使用 USI (作为计时器资源、而不是 SPI/I2C)、并从源异步(ACLK)计时到 CPU 时钟。 如果 USIIFG 信号和时钟分频器的输入是异步的并且恰好是完美的对齐、那么时钟分频器进入锁存的存在任何已知问题吗? 我们正在得到一个死的 USI,不能真正跟踪到其他的东西。 如果您有任何意见、我们将不胜感激。

 

(请参阅《家庭用户指南  》中的图14-1)我们在软件中设置 USIIFG 来停止时钟(ACLK)、一旦进入蓝月亮(可能十亿分之一)、它将需要完全断电才能恢复。

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

    这是 USI 模块的一个有趣的用途、但是应该是有可能的。 当 USIIFG 被置位时、我不知道 USI 被锁定的任何问题。 在尝试再次使用该模块之前、是否确定该标志已重置?

    您能否提供重现问题或至少代表客户设置的简化代码版本?

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

    谢谢 Caleb、我是客户 Keith 正在谈论的神秘客户、因此我希望能够更清楚地了解这种情况。 我确实有一个简化代码版本、我以前曾用它来缩小问题范围-但它仍然跨多个文件、并且发布起来并不十分方便。 但无论如何、我不需要这么做、我可以解释。

    我们都处于这样一种情况:在做出一些设计决策/承诺后、我们只需添加这一个在做出这些决策后很难支持的功能。 在这种情况下、我需要 G2452中的另一个计时器资源、但无法真正升级部件。 运行在 LPM3 (无高速时钟)中、我想从 ACLK 获取一个定时器。 简单来说、您从 ACLK 获取 TimerA、将其设置为在检测信号时中断。

    除了 TimerA 已经被用于某些东西、我不能将它用于我的低频时钟。

    USI 中有一个位计数器、此计数器可从0到31之间的任何数字进行计数。 它之前有一个非常灵活的分频器。 如果您不配置输出引脚、只需加载计数器和分频器的适当值、从 ACLK 获取、并且预置您有一个完整的另一个计时器资源。 太棒了! 它通常起作用。

    在 USI 的方框图中、您可以看到 USIIFG 禁用时钟分频器。 USI 模块不会自动清除这个标志、你必须在软件中进行。 这意味着、我可以在 ACLK 边沿之前的一皮秒重新启用时钟。 这是否会导致问题? 我不知道、但我可以告诉您、一旦进入数亿次中断、它将毫无希望地停止、我在代码或 USI 寄存器中所做的任何事情似乎都不会恢复它。 WDT 无能为力-我不得不重启电源才能恢复。

    因此我的希望是、我缺少一些简单的东西、或者对此有一种权变措施、但正如您所说的、从 ACLK 获取串行端口可能是不同寻常的、因此数据可能会受到限制。

    请告诉我您的想法。 我感谢你的帮助。

    谢谢!

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

    感谢您提供的额外信息。 如果您不愿意在论坛上发布代码、您可以在 E2E 上请求友谊后通过私人邮件将其发送给我。 由于它跨越多个文件、因此最好压缩整个项目并将其发送给我。

    现在、我对可能导致问题的原因没有太多想法。 我需要再深入了解一下代码。 我怀疑 USIIFG 是否正在被复位。 当您遇到调试器是否已连接的问题时? 您能否查看 USI 寄存器并查看中断标志是否已被清除? 此外、您能否多次切换标志、并查看模块是否重新启动?

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

    您是否能够解决此问题或找到您的问题的解决方法?

    此致、
    Caleb Overbay