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.

[参考译文] MSPM0G1107:MSPM0G1107 Uart2 115200 RX 中断接收无

Guru**** 2558250 points
Other Parts Discussed in Thread: MSPM0G3507, MSPM0G1107, LP-MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566044/mspm0g1107-mspm0g1107-uart2-115200-rx-interrupt-receive-none

器件型号:MSPM0G1107
Thread 中讨论的其他器件: LP-MSPM0G3507、MSPM0G3507

工具/软件:

我们使用 MSPM0G1107 PB16 引脚作为 Uart2 RX、但无法接收正确的数据。 我们始终会收到 0x00。

代码由 CCS 工具创建、我们使用逻辑分析仪确认接收到数据(波特率:115200);
以下是我们的配置。 请帮助确认配置说明中是否有任何配置错误。

    

    

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

    尊敬的 Afly:

    启用环回模式后、无法使用 IO 引脚观察通信。 以下是从 TRM 中摘录的、其中说明了带环回的 UART 操作。

    此致、
    Brian

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

    我们将 SYSCFG_DL_UART_2_init 函数按如下方式更改(移除环回模式)、但我们仍然无法从 UART_2_INST_IRQHandler 接收正确的数据。

    以下是  SYSCFG_DL_UART_2_init 的新代码:

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

    请根据我们的系统时钟配置、为 Uart2 创建一个具有 115200 bardrate 的新源代码。

    要求:Uart2 中断可以接收正确的数据。

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

    尊敬的 Afly:

    我修改了 LP-MSPM0G3507 的外部环回示例以使用 MSPM0G1107 映像。 我相信它符合您的时钟要求;波特率为 115200、我能够在中断处理程序中使用接收到的消息来更新变量。 要进行设置、您需要短接 TX 和 RX 引脚、并且可能需要重新配置用于满足您的器件配置的引脚。

    e2e.ti.com/.../uart_5F00_external_5F00_loopback_5F00_interrupt_5F00_MSPM0G1107_5F00_nortos_5F00_ticlang.zip

    此致、
    Brian

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

    我们使用了您提供的代码、短接 TX 和 RX 引脚并从 RX 打印数据、正确。

    但是、如果我们以 115200 的波特率将 MCU Uart2 RX 端口连接到另一块板的 UART TX 端口、我们仍然无法接收到正确的数据。

    我们使用示波器测量了 MCU Uart2 RX 的波形、并确认来自另一板 UART 端口的数据正确(电压和板速率= 8.6us)。

      

      

       

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

    尊敬的 Afly:

    您能否分享 这两款器件的引脚图? 如果您能够从一个 MCU 发送正确的数据、并确认另一个 MCU 上的外部环回正常工作、则这个问题可能来自硬件设置。 您能否确保两个电路板也共用同一个接地端?

    此致、
    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们确认这两个主板共享同一个接地端。
    我们目前正在研究 OTA 功能。 Uart2 的波特率配置为 115200、以便 MCU 从 LANBoard 接收数据、而 LANBoard 用于 将数据刷写到 MCU 的 App Flash 部分(我们将 MCU 分为 Bootloader 和 App 部分、然后 OTA 是更新 App 部分的数据的过程)。
    我们确认应用程序部分可以正确接收来自 LANBoard 的数据、但引导加载程序部分无法执行。
    我们尝试将“应用程序“部分中的所有配置移至“引导加载程序“部分、但 Uart2 仍然无法正确接收 LANBoard 数据。

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

    尊敬的 Afly:

    我对引导加载程序有几个问题:

    您使用的是 BSL 还是自定义引导加载程序?

    如何进入引导加载程序模式?

    您是否确认已输入引导加载程序?

    这里有在 SDK 中使用 UART 的 BSL 代码示例、以及介绍操作和实现的文档。 我将在下面添加指向这些文档的链接。

    此致、
    Brian

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

    我们没有使用 BSL。  我们通过配置“mspm0g3507.sct"来“来配置引导加载程序和应用分区。

    我们确认可以正常进入引导加载程序分区、因为在进入引导加载程序分区后、Uart0 将打印相应的调试信息。

    顺便说一下、 我们还将 Uart0 配置为 115200 波特率、可以通过 Uart0 中断正确地发送和接收数据。

    下面是 ouw 引导加载程序和应用 分区“mspm0g3507.sct":“:

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

    尊敬的 Afly:

    我们的 AE Brian Lee  提供了一个用于 UART2 通信的示例、另一个 AE 还在具有与您的原理图相同的相同 IO (PB15 和 PB16) 的 LaunchPad 上使用此示例进行了测试、工作正常。
    您是否尝试直接在电路板中使用相同的示例(只需更改 UART2 RX 和 TX 引脚)并测试 UART 通信?
    此外、请检查 NVIC_EnableIRQ (UART_2_INST_INT_IRQN);API 是否在您的持续软件中应用。

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

    尊敬的 Afly:

    看起来您可以在运行引导加载程序时进入调试模式。 您能否检查 uart2 配置寄存器值、以确保非工作代码的配置与工作代码匹配?

    您是否还可以在运行代码时定期检查 RIS 寄存器值? 如果您无法在中断处理程序中捕获通信、RIS 寄存器将指示是否有一个被捕获的对象。

    此致、
    Brian

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

    主板已被暂时验证是否具有其他功能。
    让我先总结一下这里的总体情况:
    1.我们使用的芯片是 MSPM0G1107
    2.引导加载程序和应用程序分区使用 TI BSL 示例代码、并且只由 LD_SROM1 分区进行配置。 在特定条件下、它可以从引导加载程序跳转到应用程序、或从应用程序跳回引导加载程序
    3.目前,引导加载程序和应用程序分区的时钟配置完全相同
    4.应用分区中的 Uart2 115200 配置可以与 LANBoard 通信(发送和接收正常),而引导加载程序分区中的 Uart2 115200 配置无法重新生成 LANBoard 数据
    5.将 Uart2 的 TX 和 RX 短路在引导加载程序分区中,并将 Uart2 的波特率配置为 115200, Uart2 的 RX 可以正常接收 Uart2 的 TX 数据
    6.引导加载程序分区中的 Uart0 115200 配置可以正确地发送和接收数据
    7.引导加载程序和应用程序分区配置 Uart0 的端口为 PA10&PA11、Uart2 的端口配置为 PB15&PB16
    8.引导加载程序分区 Uart2 其他波特率配置尚未验证(如 9600)

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

    此主题已成为电子邮件链的一部分。 我建议我们坚持使用电子邮件作为未来通信的单一媒介。

    此致、
    Brian