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.

[参考译文] MSP430FR2433:可以/如何为主/预热 UART 模块做好在退出低功耗模式时传输的准备?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1411580/msp430fr2433-possible-how-to-prime-warm-up-uart-module-to-get-it-ready-for-transmission-upon-exit-from-low-power-mode

器件型号:MSP430FR2433

工具与软件:

您好!

我们围绕 MSP430FR2433构建了一个传感器。 此例程包含以下步骤:1)系统在 GPIO 中断时唤醒;2)系统执行特定的测量相关操作、该过程大约需要几十到几百微秒;3)步骤2)完成后通过 UART 传输系统输出测量结果。

问题是第3)步的输出偶尔出现 gibberish/corrupted、在第2)步后添加100us 的任意延迟似乎能够在发生 gibberish 时降低频率、但在现场部署进行长期操作时不能完全消除 gibberish 输出。 或者、如果我们在步骤1)中通过 AT 命令通过 UART (而不是 GPIO 中断)唤醒系统、那么我们在多年的运行过程中从未观察到足够的输出。

从相关线程的讨论可以看出、这个问题似乎源自这样一个事实、即 SMCLK 作为 UART 的时钟源需要时间来稳定。 我希望我们可以使用 REFO/ACLK 作为时钟源来避免此类问题。 不幸的是、ACLK 不能用作 MSP430FR2433上的时钟源、这令我感到意外。

所以我的问题是、是否有可能以某种方式从第1步/GPIO ISR 中设置 UART 模块? 因此在执行第2)步后我们不必添加额外的延迟、否则这将开始降低电池寿命。

谢谢!

ZL

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

    如果问题与 SMCLK 的稳定性有关、则必须等待它稳定下来。 它将取决于 SMCLK 的来源。

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

    尊敬的舒尔茨先生:

    感谢您的答复。  

    问题在于、FLL 本身需要额外的时间在其时钟源(REFO)上稳定。 在 UART TX 之前添加以下行未起作用:

    while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1)); // Poll until FLL is locked

    理想情况下、我们应切换到另一个实际上支持 ACLK 作为 UART 时钟源的 MCU、但我会想办法可以利用 FR2433挽救当前设计。

    此致!

    ZL

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

    我不知道你为什么把它留在前面...

    FLL 的一个细节是从低功耗模式唤醒后、它不在 ISR 中启用。 ISR 可在需要时执行此操作。 有很多事情要做。

    如果所有其他操作都失败、请尝试向 UART 发送空字符以开始。 可能在您开始测量之前。 最好选择0xFF、因为它会在下一个起始位之前进行长时间运行。

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

    我离开时希望我们只能切换到 ACLK/REFO 作为时钟源、我很惊讶地发现 FR2433不支持该时钟源、而 FR2422作为其他 FR2xxx MCU 的随机选择。

    我将采用该解决方案。 再次感谢。

    如果所有其他操作均失败、请尝试向 UART 发送空字符以开始。 可能在您开始测量之前。 最好使用0xFF、因为这会在下一个起始位之前进行长时间运行。[/QUOT]