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.

[参考译文] RTOS/MSP430F5659:USB 和 UART 均运行 USB 重启

Guru**** 2538950 points
Other Parts Discussed in Thread: MSP430F5659

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/605209/rtos-msp430f5659-usb-and-uart-both-running-usb-restarts

器件型号:MSP430F5659

工具/软件:TI-RTOS

您好!

我正在通过 TI RTOS 使用基于 MSP430F5659的 USB CDC 协议。

在这里、我在处理 USB 和 UART 时遇到了一些问题。

我有5个任务、通信任务、数据管理器任务、看门狗任务、实用程序任务、 处理任务。

当命令从 PC Application 发送时- Comm Task 将解析命令并发送到 Data Manager 任务、DM 任务将调用 UART 来处理外部板、

现在,如果我 使用相同的任务来(DM 任务通过 UART 设备发送到 TX/Rx,然后尝试通过 Comm 任务发回对 USB 的响应, 我将获得 USB 重新启动。 (UART 工作正常)

如果我在向 PC 发送回复后使用另一个任务(处理程序任务)通过 UART 将 Rx/Tx (数据管理器任务->通信任务-> PC),它将起作用。 (UART 工作正常)

注->我使用的是通过具有19200波特率的 UART 进行 HART 通信、并在该数据包状态机处理中使用 TimreA2。

我能够实现该结果、但我想知道计时器 A2是否有任何效果/ USB 和 UART 的组合都有问题? 或者我在处理 UART/USB 时发生的任何其他错误?

当 UART 停止时、请任何人帮助找到 USB 为何重新启动的正确答案。

提前感谢

Nitesh

 

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

    您能否分享您使用的 TI-RTOS 版本? 您是否正在使用 TI-RTOS UART 和 USB 驱动程序?

    我还在尝试了解您的设置-请确认我对所有这些的理解是否正确:
    USB CDC 用于 MSP 和 PC 之间的通信。
    UART 用于 MSP 与外部电路板之间的通信。
    您按照 Comm 任务序列从 PC 接收数据、Data Manager 任务决定如何处理接收到的命令、然后调用 UART (内部数据管理器任务)与外部板进行通信。 当您执行此操作时、当您随后调用 Comm 任务时、USB 会重新启动(USB 是否断开连接? 具体来说、会发生什么情况?)
    您对其进行了更改、以便从单独的任务而不是从数据管理器任务中调用 UART、现在它可以正常工作。

    问题/想法:
    数据管理器任务是否阻塞、如果您从其中调用 UART、需要多长时间? 看门狗超时可能会花费太长时间吗? 所涉及任务的优先级是什么、它们是否可以挤占 eachother 或任何其他任务? 您是否为堆栈保留了足够的空间?

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

    感谢您的回复,我使用的是 TI RTOS 版本2_14_03_28。
    您认为是正确的。

    现在、为了您的问题、我的看门狗没有关闭。
    看门狗的优先级最高-8,通信任务有,数据管理器有-4,处理任务-2,实用程序-2
    USB 断开并返回、我的系统在调试模式下崩溃。

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

    首先、我想确保您没有一个熔断的堆栈。 您可以在“工具”->ROV->BIOS->Scan for Errors 中查找吗?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我检查了它不是堆栈问题、我发现不是源代码错误。