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.

[参考译文] MSPM0G3107:控制器局域网模块通过总线发送意外数据

Guru**** 2910380 points

Other Parts Discussed in Thread: MSPM0G3107, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1575087/mspm0g3107-controller-area-network-module-sending-unexpected-data-on-bus

器件型号:MSPM0G3107
主题: SysConfig 中讨论的其他器件

工具/软件:

大家好:
我在 MSPM0G3107 的 CAN 模块中遇到异常的数据不匹配问题:基本上、我在 CAN 总线上使用固件编译时的固定数据发送一条特定周期为 215ms 的 CAN 消息、应用软件在运行时不会更改它只是定期在总线上发送、但在某个间隔(也不是固定的)后随机跳变数据。 我正在 UART 上向串行监控器发送相同的数据、但收到的数据与预期完全一致、这是 MCAN RAM 问题吗、但整个数据包的一部分与 ID 的其余部分不匹配、帧中的其他字节似乎没有问题。
我遇到这个问题的唯一原因是另一个器件在总线上传输数据、并且触发了我的 RX 中断、并且确保没有其他人使用相同的 ID 发送数据、因此只从我的器件发送消息。
我使用轮询来使用 TX 缓冲区而不是 FIFO 发送数据、并且该工程没有 RTOS、它是具有调度时间的超级循环。
我的 MCAN 设置如下:
比特率:500 kbps、
时钟源:SYSPLLCLK1
MCAN CLK 频率:40MHz、带分频器 1
SYSOSC(内部振荡器):32MHz
以下是相同信号的日志文件。

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

    e2e.ti.com/.../KeySigDataOnCAN.pdfe2e.ti.com/.../KeySigDataOnUART.pdfe2e.ti.com/.../KeyOffCAN.xlse2e.ti.com/.../KeyOffUART.xls

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

    嗨、Rohit、

    我没有遇到这种情况。

    我建议您检查 CAN 缓冲区设置和 CAN Tx 消息变量、在调试模式下持续观察它以查看任何异常情况。

    B.R.

    Sal

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

    检查 CAN 缓冲器设置时需要关注的任何网状区域?、我无法在调试模式下持续监测变量、因为参考手册中指出此控制器在调试模式下的行为不同。 也可能是 CAN 外设内的 Tx 缓冲器和 Rx 缓冲器重叠的情况吗? 原因仅当总线上有另一个单元传输数据并由我的设备接收时、才会发生此问题。

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

    嗨、Rohit、

    值得尝试检查调试模式或自由运行模式下的任何差异。

    是否也可能导致 CAN 外设内的 Tx 缓冲区和 Rx 缓冲区重叠? [/报价]

    您可以检查消息 RAM 设置以查看是否存在存储器重叠。

    也许您可以在这里分享消息 RAM 映射、我可以仔细检查一下。

    、但整个数据包中只有一部分不匹配、其余 ID 和帧中的其他字节似乎没问题。

    错误的数据包是固定的还是包含错误数据的随机数据包?

    B.R.

    Sal

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

    嗨、Rohit、

    Tx 和 Rx 共享相同的消息 RAM、我确实会在您的共享中看到一些冲突:

    您能否共享整个 syscfg 文件以供我参考、另外还请告知我使用的 SDK 和 SysConfig 版本。

    B.R.

    Sal

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

    e2e.ti.com/.../can_5F00_to_5F00_i2c_5F00_controller_5F00_bridge.rar
    这是我的 syscfg 文件、我使用 TI-ClangCompiler、SYSCFG- 1.22.0、MSP M0 SDK 为 2.4.0.06 版本。
    还可以为消息 RAM 启用 ECC 吗?