主题中讨论的其他器件:HALCOGEN
您好!
我目前正在使用 Hercules TMS570LC43x LaunchPad 开发套件。 我要尝试将 CAN 消息发送到另一个 MCU、更具体地说是 Hercules 安全 MCU 开发套件 TMS570 MCU。 我已经能够从开发套件向 LaunchPad 发送 CAN 消息、但是、我无法以相反方式发送消息。 我只在 LaunchPad 上遇到了这个问题。
我使用以下配置在 HALCoGen 中配置了 LaunchPad:
- TMS570LC4357ZWT 芯片
-启用 CAN1驱动器
-禁用标识符扩展(我需要使用11位标识符)
-已将 CAN1的第一个消息框配置为 TX 并配置了标识符,并已激活消息框
在代码中:
-我在 canREG1上启用了错误通知
-我读取了 canREG1错误和状态寄存器
-尝试传输
经过很短的时间、在通知= 96的情况下触发了 CanErrorNotification、此时、canREG1的错误和状态寄存器的值为99、在读取 MCU 的文档后、这意味着设置了 EPass 和 EWarn 位、 最后一个错误代码是3H、即 Ack Error。 我需要注意的是、还有另一个节点、因为 LaunchPad 通过 CAN 连接到 Hercules 开发 MCU、在同一配置中、我可以将 CAN 消息从开发套件发送到 Launchpad、从而在 LaunchPad 上触发 canMessageNotification。
我不知道为什么尝试发送时出现 Ack 错误、我认为在配置两个节点时存在不匹配、但是在 HALCoGen 中、两个 MCU 上 CAN1的一般部分是相同的。
我已经看到一个节点在 ACK 槽中写入一个隐性位、即如果 CRC 对该消息无效、则不确认消息。 但是、如果我调试开发套件 MCU 和接收器、并检查 CAN1的状态和错误寄存器、我不会看到 CRC 错误。
如果我能提供更多信息、请随时咨询。
谢谢你。