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.

[参考译文] LP-MSPM0G3507:MCAN 接收/环回问题

Guru**** 2526700 points
Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1212274/lp-mspm0g3507-mcan-receive-loopback-issue

器件型号:LP-MSPM0G3507
主题中讨论的其他器件:MSPM0G3507SysConfig
我正在尝试让 MCAN 在 MSPM0G3507 LaunchPad 开发套件上正常工作。
我已安装 CCS 12.2并遵循"MSPM0 SDK CCS 快速入门指南"、以添加 MSPM0支持和 SysConfig 等工具。

我从"Project->import CCS project"开始克隆以下工程:

C:\ti\mspm0_sdk_0_57_00_00_eng\examples\nortos\lp_MSPM0G3507\driverlib\mcan_loopback

我的设置是这样的。  我连接了 TCAN 开发套件、但回送测试未使用它。  我能够使发送演示正常工作、但无法使接收演示正常工作。  这就是我转向回送的原因。


我生成了项目(无错误)、然后在调试器模式下运行该项目。  它在一个软件断点上中断、但是它是一个错误、而不是一个完成:
您将注意到、break 在第158行、gError=true (右侧的观察窗口)。
奇数部分是 gTransmitComplete = 0x1200、而不是0x81200、这是"DL_MCAN_MSG_INT"常量的值。  
0x01200 = 0000 0001 0010 0000 0000b
0x81200 = 1000 0001 0010 0000 0000b
MCAN_IR 寄存器中0x81200内设置的三个位为:
位9:(TC)发送完成
位12:(TEFN) Tx 处理程序写入 Tx 事件 FIFO 元素
位19:(DRX)存储到 Rx 缓冲区中的至少一条接收到的消息
因此、发送接收信号的 DRX 位未设置。
我尝试注释掉断点、以查看它是否最终会重新触发、但该中断只能调用一次。
查看 SysConfig 设置、可以设置中断:
注意、尽管中断对话框滚动、但未显示的中断均不会设置。
它看起来不像是接收位被置位而导致程序中断。
如果你想让我尝试其他任何东西,请告诉我。
-威廉
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、William、

    我认为这里可能存在软件兼容性问题。 CCS12.2与 MSPM0G 预发布器件不兼容。 请下载 CCS12.1并按照 MSPM0安装步骤操作、然后查看它是否解决了问题。

    此致、

    Evan

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

    我通过电子邮件回复、但可能尚未在此处发布、因此我会在此处重新发布。  此外、我还使用从 my-secure 文件夹抓取的 CCS-Theia 尝试了环回演示。 它具有相同的未接收结果。  请参见屏幕截图:

    我安装了 CCS 12.1并按照"MSPM0 SDK CCS 快速入门指南"中的步骤添加了对  MSPM0G 器件的支持。 我确保它使用了与12.2安装不同的工作区、以确保项目不交互。 然后、我导入了环回 CCS 项目并对其进行了编译/调试。  调试器在同一个断点断开(第158行)、并且变量具有相同的值。

     
    我注意到快速入门指南中提到了 C 编译器"TI Clang 2.1.0.LTS"且 CCS 12.1使用 "TI Clang 2.1.2.LTS"、因此我安装了较旧版编译器并确保工程使用该工具链。  我重新构建了目标并对其进行了重新测试、但结果是相同的。
    我注意到快速入门指南仅提到12.0 CCS 支持、因此我下载并安装了 CCS 12.0、然后再次遵循快速入门指南来支持  MSPM0G。  该版本的 CCS  默认使用"TI Clang 2.1.0.LTS"、但在编译和调试后结果相同。
    如果此代码适合您、是否有办法创建 二进制/hex 文件、我可以将其上传到开发套件、看看这是否有效。  需要对代码进行修改、使 LED 或其他代码正常运行、因为在未进行调试时未提供反馈。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您花时间试用所有工具版本。 当然、这听起来确实像正在进行其他工作。 研究这项工作需要几天时间。 我将在4月10日星期一更新我的调查结果。

    此致、

    Evan

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

    嗨、Evan、由于 CAN 端口对我们的设计至关重要、因此上述应用给我带来了一些压力。  此外、虽然环回演示不需要任何外部硬件、因此是一个很好的开始、但我确实需要使用传输和接收应用程序才能工作、因为我们会将这些应用程序用作我们自己设计的示例。  正如我之前所说的、传输看起来是有效的、因此回送的接收修复有望对另一个应用寻址。

    -威廉

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

    您好、William、

    我一直在和我们的软件团队一起了解这个问题。 它似乎是在 SDK 版本0.50之后推出的。 如果您没有此版本的访问权限、我将向您发送一条带附件的私人消息。

    下一个版本中应该会进行修复。

    此致、

    Evan

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

    我安装了0.50版本的 SDK、导入了 mcan_loopback 项目、它成功了!  项目 遇到断点并显示10条成功消息。  这是使用 mysecure 文件夹中的 CCS Theia 环境完成的。  然后、我导入并编译/运行 mcan_single_message_tx 和 mcan_message_Rx、并在两个单独的 LP_MSPM0G3507板上运行它们、这种组合也可以正常运行。  最后、我在 CCS 12.1上导入/运行了 mcan_loopback 项目、该项目也可以正常运行。

    感谢您的帮助。

    -威廉