您好!
我的同事发现、CAN 通信在测试设置中随机停止、并使用 TMS320F28067处理器。 我们通过 JTAG 连接到非通信 CPU (无需加载新的固件映像、也无需复位 CPU 以保持错误状态)。
我们在 Tx 方向上使用邮箱0。 我们看到邮箱0保存一条消息、并且寄存器 CANTRS 内相应的发送请求位正在被置位、但永远不会被外设清零。 看起来 CAN 控制器停止发送位于邮箱0内的消息。 我们还通过示波器测量 CPU 的 CAN_TX 引脚始终处于高电平、因此不会传输任何消息。
以下是相关寄存器的屏幕截图:
我们检查的寄存器为:
CANME = 63 ->邮箱0…5被启用。
CANMD = 62 ->邮箱0被选为 Tx 邮箱。
CANTRS 位0 -> TRS0=1、这意味着邮箱0的发送请求已经被置位。 我们期望该位在消息被移出后变为0、但这种情况永远不会发生。
CANES = 16 ->无断电或总线关闭状态。 因此、没有会阻止 CAN 电报传输的错误指示。
CANTEC = 0 ->无传输错误。
CANTIOC = 9 -> CANTX 引脚用于传输。
CANTSC 正在递增、这意味着 CAN 控制器被计时。
您能否帮助我们检查为什么 CPU 突然停止在 CAN 总线上传输我们的消息? 我们还可以查看其他寄存器吗?
此致、
Andreas