您好!
我正在使用 CAN 总线和 CAN_A 模块、并且能够在使用测试模式外部环回时发送和接收消息。 现在我想在引脚上发送消息、所以我对 CAN_enableTestMode ( CANA_base、CAN_TEST_EXL)行进行了注释。
我希望在发送消息时有一个中断。 我有一个中断、但该中断的状态值为0x8000、这意味 着错误和状态寄存器值不是0x07。
请帮助我了解此错误。 我可以验证什么?
非常感谢、
Nathan
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.
您好!
我正在使用 CAN 总线和 CAN_A 模块、并且能够在使用测试模式外部环回时发送和接收消息。 现在我想在引脚上发送消息、所以我对 CAN_enableTestMode ( CANA_base、CAN_TEST_EXL)行进行了注释。
我希望在发送消息时有一个中断。 我有一个中断、但该中断的状态值为0x8000、这意味 着错误和状态寄存器值不是0x07。
请帮助我了解此错误。 我可以验证什么?
非常感谢、
Nathan
您好、Nathan、
使用的环回测试(CAN_ex2_loopback_interrupt)被写入以使用环回特性、其中传输的数据进入 CAN_TX IO 并通过 CAN_RX IO 返回到接收缓冲区中的 CAN 内核。 这将使用中断启用一个简单的 CAN 发送-接收握手、而不使用收发器来连接 CAN 总线。 传输的数据仍会传播到 CAN_TX 引脚以供观察(如果需要使用示波器或 CAN 帧分析器(如 PCAN...等)观察帧)。 这个外部回送测试特性在函 数 CAN_enableTestMode (CANA_base、CAN_TEST_EXL)中被调用、并且将这个特性注释掉会很遗憾地禁用我描述的测试的意图。 这就是 CAN_INT 寄存器将返回0x8000值的原因。 您还可以检查 CAN_ES 寄存器以查看触发了哪些错误。
最后、您可以查看一些有关 CAN 的应用手册和培训材料:
应用报告 http://www.ti.com/lit/sprace5包含 许多经过测试的示例。 我们强烈建议您查看提供的调试提示。 大多数 CAN 问题都可以通过查看此检查清单来解决。
应用报告 http://www.ti.com/lit/spracq3 描述了很多易于理解的波形、并且还提供了一个在所选位位置引入误差的工具。
TRM 章节介绍了 MCU 中的 CAN 协议实现。 即、它解释了寄存器/位的功能。 但是、它并未解释协议本身。 有关协议信息、请参阅以下精彩视频:
以下是可用的 CAN 书籍列表:
此致、
Joseph