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.

[参考译文] TMS570LC4357、CAN 接口、ESM 错误

Guru**** 2457700 points
Other Parts Discussed in Thread: TMS570LC4357, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1125934/tms570lc4357-can-interface-esm-errors

主题中讨论的其他器件:TMS570LC4357HALCOGEN

大家好、
我使用 TMS570LC4357控制器的两个 A CAN 接口(CAN1 / CAN2)、我使用的是两个 TMS570LC4357控制器。 这意味着我有一个双控制器系统。
因此,在每个控制器上,CAN1配置为发送通道,CAN2配置为接收通道。
因此、我在两个 TMS570LC4357控制器之间获得了一个全双工 CAN 接口。
这运行正常、两个控制器正在发送和接收 CAN 数据。

我在 HalCoGen 中使用以下 CAN1/2设置
CAN1常规配置
禁用自动重发送   -->关闭
Enable Identifier Extension                 (启用标识符扩展)--> Off (关闭)
启用 RAM ECC                                ->打开
CAN1报文1配置      -->用作 TX、ID = 1、"使能 RTR"关闭、"设置 EOB"关闭

CAN2常规配置
禁用自动重发送   -->关闭
启用标识符扩展             -->关闭
启用 RAM ECC                       ->打开
CAN2报文1配置        -->用作 RX、ID = 1、"启用 RTR"关闭、"设置 EOB"关闭

(小部分

现在、我要为 CAN1 / CAN2接口激活 ESM 扩展、因此我必须激活 ESM 组1通道21 / 23 (ECC 不可纠正的错误)
和73 / 74 (ECC 单位错误)。
到目前为止都很清楚。 我在"spna131.pdf"文档中发现、我必须在"void canInit(void)"中包含一些配置内容。

因此、我包含了以下代码行:
空 canInit (空)

/*用户代码开始(4)*/
   /*
    *见 spna131.pdf
    *
   canREG1->CTL =(uint32)((uint32) 0x0000000AU << 10U);
   canREG2->CTL =(uint32)((uint32) 0x0000000AU << 10U);

   systemREG1->MINITGCR   = 0xA;

   systemREG1->MSINENA    = 0x00000420u;

   执行{

   }while (((systemREG1->MSTCGSTAT & 0x100u)=0U);

   CANREG1->ECCDIAG = 0x5U;
   CANREG2->ECCDIAG = 0x5U;
/*用户代码结束*/


但现在我始终得到 ESM 错误组1通道23。 我想 canInit 中的附加代码不正确。 您可以帮我。

非常感谢您的参与
Lars



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

    您好  Lars、

    [引用 userid="262296" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forum/1125934/tms570lc4357-ca-interface-esme-errors"] systemREG1->MSINENA    = 0x00000420u;

    CAN1 RAM 和 CAN3 RAM 均为硬件初始化。 但 CAN2 RAM 未初始化。 CAN2 RAM 数据的 ECC 值可能无效。  

    请也初始化 CAN2 RAM:

    systemREG1->MSINENA    = 0x00000460u;

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

    我是一名愚蠢的开发人员。 我查看参考手册中的相应表格大约100次、但我没有看到。

    谢谢!