我们有任何使用 TI CAN 引导加载程序示例作为 CAN 引导加载程序基础的应用。 当我们向器件发送第一条消息、并在 CAN 总线上接收到识别器件的返回确认消息时、器件会开始快速重复发送相同的消息、并且永不停止、这是一个问题。 我们确实会反复观察到2个填充错误、而不是同一条消息。
我们在启用和禁用硬件重发送的情况下进行了测试:
CANREG1->CTL = 0x000000000000U | 0x00000020U | 0x00021443U; // IE0和 IE1都是1*/
CANREG1->CTL = 0x000000000000U | 0x000000000000U | 0x00021443U; // IE0和 IE1都是1*/
但这并没有改变行为。 我们已经检查了总线上的阻抗、它大约为56-58欧姆。
奇怪的是、当我们在同一个基于 Hercules 的器件上运行应用代码时、这种情况永远不会发生。 所有卡都使用相同的时钟、1MHz 的 CAN 总线速度、我发现唯一不同的设置是引导加载程序上的中断设置:
CANREG1->INTMUXx[0U]=0x00000011U
在应用中:
CANREG1->INTMUXx[0U]= 0x00000000U
是否有任何可能导致此问题的软件设置、我不知道或可能错过了这些设置?