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.

[参考译文] MSP430FR2355:由 UART Rx 中断从 LPM3唤醒

Guru**** 2535450 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1001240/msp430fr2355-waked-up-from-lpm3-by-uart-rx-interruption

器件型号:MSP430FR2355

尊敬的 TI 支持成员:

我们在 MSP430FR2355中遇到了 UART 通信问题。 我们的器件未正确接收第一个字节数据。

我们的器件设置为睡眠模式(LPM3)且 UART RX 中断使能。  

外部器件向 MSP430发送字节数据、器件基于同一电路板。

我们硼的 MSP430可通过第一个字节唤醒、但数据不正确。

Ex)0x05 -> 0x85

我的评估如下。

波特率:38400bps

MCLK:2MHz (32.768kHz 外部 晶振。 晶体制造商匹配过程正确)

每个 UART 寄存器设置如下。  

UCA1BR0=1;
UCA1BR1 = 0;
UCA1MCTLW = 0x00A0 | UCOS16;

我们现在有三个板、这个问题只发生在一个板上。 问题仅发生在高电压以上。 例如) 3.0V。

其他信息、我们在被制动后使用软件调整、但是这个问题发生在唯一一个从 LPM3唤醒的首次中断时序上。

该 UART 线的波形没有问题。

您能支持我们的问题吗?

此致

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

    Yutaka 您好!

    您的代码中使用哪种时钟进行 UART?
    SMCLK? 或 ACLK?

    我想、如果您使用 SMCLK ane 进入 LPM3、实际上该 MCU 无法进入 LPM3、它将保持 LPM0 (因为 SMCLK 需要保持激活状态)。

    谢谢!

    此致

    Johnson

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

    Johnson 先生、

    感谢你的帮助。
    这确实是你说过的。 我已选择 SMCLK 作为 UART 的时钟。 LPM3不支持 SMCLK。

    然而,这提出了一个问题。

    从上面可以看出、它是指 LPM0中 SMCLK 使用的配置。
    这意味着有些器件可以正确接收、而另一些器件无法接收。

    换言之、为什么会发生这种问题?

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

    Yutaka 您好!

    我认为这是一个帧错误问题、

    您是否使用了数据表提供的数据来配置波特率? 如果不是、则可能存在较高的误码率

    谢谢!

    此致

    Johnson

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

    是的、我通过计算 slau445来设置波特率。

    我已经发布了相关设置、但您是否能够在这些设置中发现任何异常?

    为什么在被设置为 LPM3后只有第一个中断是错误的? 这仅以特定单位表示。

    和之前的读取 Rx、我已经检查了 UCA1STATW 和 UCRXERR。 不会发生错误。 但数据是0x05 -> 0x85。

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

    Yutaka 您好!

    它看起来很奇怪。

    我的想法是使用示波器捕捉问题板的 UART 波形、看看 是否有差异。
    您 可以执行 A-B-A 测试以查看问题是否出在芯片或其他电路(如晶体)。

    谢谢!

    此致

    Johnson

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

    已检查波形、但未发现问题。 晶体匹配测试通过。

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

    您的意思是 MSP430器件会出现此问题吗?

    您是否进行了 A-B-A 测试?

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

    我们的器件包含 MSP430FR2355和其他微控制器。
    相关电路板 MSP430FR2355存在问题。

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

    在您的描述中、只有一个430板有此问题、其他430板正常、对吧?

    如果是、我认为您可以更改此问题板中的新 MSP430 (并将此 MSP430焊接到正常板上)、然后再次测试以检查此问题是否与 MSP430 MCU 有关。

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

    我已经使用了超过一百万 MSP430s、在正常温度环境中进行异常通信(乱码)的情况非常罕见。

    您的分析流程是正确的、但我很难相信您的建议在这种情况下是合适的。

    这是我第一次使用 MSP430FR2355、我不熟悉从 LPM3 (LPM0?)中断启动的操作。
    我认为上述条件对问题有重大影响、而不仅仅是硬件问题。

    下面的1stByte 接收缓冲区的结果存在差异。

    1、使能 SMCLK 后、设置 LPM3后、接收中断被接受、数据被提取。
    当 SMCLK 被使能并且 LPM0被置位时、接收中断必须被接受并且数据必须被检索。

    1:3个单元中的1个单元生成异常数据。
    2:3个装置中的0出现异常数据。

    如果为1、则在从 LPM3开始到 LPM0之后、第二个字节被正常接受。

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

    Yutaka 您好!

    是的、了解您的方法、此问题可能是由软件引起的、但我认为此器件可能存在一些问题。

    我想这个问题器件从 LPM3模式唤醒是否需要太长时间、从而导致第一个数据丢失:

    谢谢!

    此致

    Johnson

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

    但是、您向我指出、当 SMCLK 被启用时、即使 LPM3被置位、实际的低功耗模式也是 LPM0。
    用户指南还说明了以下内容、因此根据您的观点、它必须是 LPM0、恢复时间是即时的、对吧? 我想了。

    表1-3. 请求与实际 LPM

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

    是的、SMCLK 将保持激活状态。 因此、这非常奇怪