大家好、
我使用 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
