公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

TC297 CANR 支持 CANFD 吗? 我目前正在测试CAN CAN达到5Mbit/s的 节点。但是,在以 5Mbit/s 的速度测试 CANR 节点的速度时,会出现错误。

0 点赞
5 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

您在测试中使用了哪个引脚?

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

这是我的例子:

ifxMultican_can_initModuleConfig(g_multican.canconfig,MODULE_CAN);&&

g_multican.canconfig.nodePointer [0] .priority = ISR_PRIORITY_CAN_RX;

ifxMultican_can_initModule(g_multican.can、g_multican.canconfig);&&

//canr
ifxMultican_can_initModuleConfig (g_multicanr.canconfig,MODULE_CANR);&&

g_multicanr.canconfig.nodePointer [0] .priority = ISR_PRIORITY_CANR_RX;

ifxMultican_can_initModule(g_multicanr.can、g_multicanr.canconfig);&&


ifxMultican_can_node_initConfig(g_multican.cannodeConfig,g_multican.can);&&

//g_multican.cannodeConfig.loopbackMode = TRUE;
g_multican.cannodeConfig.flexibleDataRate = 真的;

g_multican.cannodeConfig.fdconfig.nominalbaudrate = 500000;
g_multican.cannodeConfig.fdconfig.nominalSamplePoint = 8000;
g_multican.cannodeConfig.fdconfig.nominalSynchJumpWidth = 2000;
g_multican.cannodeConfig.fdconfig.fadbaudrate = 2000000;
g_multican.cannodeConfig.fdconfig.fdsamplePoint = 7000;
g_multican.cannodeConfig.fdconfig.fadsynchJumpWidth = 2000;
g_multican.cannodeConfig.fdconfig.loopdelayOffset = 0;

ifxMultican_can_node_initConfig(g_multicanr.cannodeConfig,g_multicanr.can);&&

//g_multicanr.cannodeconfig.loopbackMode = TRUE;
g_multicanr.cannodeConfig.flexibleDataRate = 真的;

g_multicanr.cannodeConfig.fdconfig.nominalbaudrate = 500000;
g_multicanr.cannodeConfig.fdconfig.nominalSamplePoint = 8000;
g_multicanr.cannodeConfig.fdconfig.nominalSynchJumpWidth = 2000;
g_multicanr.cannodeConfig.fdconfig.fadbaudrate = 2000000;
g_multicanr.cannodeConfig.fdconfig.fdsamplePoint = 7000;
g_multicanr.cannodeConfig.fdconfig.fadsynchJumpWidth = 2000;
g_multicanr.cannodeConfig.fdconfig.loopdelayOffse = 0;

/* ==========================================================================================
* CAN节点0配置和初始化:
* ==========================================================================================
* - 将节点分配给CAN节点0
* - 使用修改后的配置初始化CAN节点0
* ==========================================================================================
*/
g_multican.canNodeConfig.nodeId = IfxMultican_NodeId_0;

g_multican.cannodeconfig.rxpin = ifxMultican_rxd0b_p20_7_in;g_multican.cannodeConfig.rxpinmode = ifxport_inputmode_pullup;g_multican.cannodeconfig.txpin = ifxMultican_txd0_p20_8_out;g_multican.cannodeconfig.txpin = & ifxMultican_txd0_p20_8_OUT;g_multican.cannod.txpinMode = ifxport_outputMode_pushPull;

&

ifxMultican_can_node_init(g_multican.cannode0、g_multican.cannodeConfig);&&

/* ==========================================================================================
* CAN节点1的配置和初始化:
* ==========================================================================================
* - 将节点分配给CAN节点1
* - 使用修改后的配置初始化CAN节点1
* ==========================================================================================
*/
g_multicanr.canNodeConfig.nodeId = IfxMultican_NodeId_0;

g_multicanr.cannodeconfig.rxpin = ifxcanr_rxd0b_p14_1_in;g_multicanr.cannodeconfig.rxpinmode = ifxport_inputmode_pullup;g_multicanr.cannodeconfig.txpin = ifxcanr_txd0_p14_0_out;g_multicanr.cannodeconfig.txpin = & ifxcanr_txd0_p14_0_out;g_multicanr.cannodeconf.txpinMode = ifxport_outputMode_pushPull;

&

ifxMultican_can_node_init(g_multicanr.cannode0、g_multicanr.cannodeConfig);&&

/* ================================================================================================================
* 源标准消息对象的配置和初始化:
* ================================================================================================================
* - 将默认 CAN 消息对象配置加载到配置结构中
*
* - 将消息对象定义为传输消息对象(所有源消息对象的通用设置)
* - 仅使用匹配的 IDE 定义框架的接受(所有源消息对象的通用设置)
*
* - 定义消息对象 ID(每个消息对象 ID 值应该是唯一的)
* - 定义仲裁阶段使用的消息 ID CAN
* - 定义要使用的标准或扩展框架
* - 定义保存数据字节 8 到 35 的消息对象(顶部消息)
* - 定义保存数据字节 36 到 63 的消息对象(底部消息)
*
* - 定义传输数据的长度(与MOFCRn.DLC,MOFCRn.FDF,MOFGPR相关。BOT和MOFGPR。顶部位域)
* - 定义比特率切换的用法(与MOFCRn.BRS位域相关)
*
* - 使用修改后的配置初始化源标准 CAN 消息对象
* ----------------------------------------------------------------------------------------------------------------
* 这些CAN消息对象分配给节点 0 CAN
* ================================================================================================================
*/
IfxMultican_Can_MsgObj_initConfig(&g_multican.canMsgObjConfig, &g_multican.canNode0);

g_multican.canmsgobjconfig.frame = ifxMultican_frame_Transmist;g_multican.canmsgobjconfig.cantrol.matchingID = TRU




g_multican.canmsgobjconfig.control.extende = g_messageObjectConf [currentcanMessageObject] .extendedF
g_multican.canmsgobjconfig.control.topmsgobjid = (2 * currentcanMessageObjid) + SRC_EXTENDED_MO_OFFSET;g_multican.canmsgobjid
= g_multican.canmsgobjconfig.control.topmsgobjid + 1;

g_multican.canmsgobjconfig.control.messageLen = g_messageObjectConf [currentcanMessageObject] .messageLen;
g_multican.canmsgobjconfig.control.fastBitrate = g_messageObjectConf [currentcanMessageObject] .fastbit

ifxMultican_can_msgobj_init(g_multican.cansrcmsGOBJ [currentcanMessageObject]、g_multican.canmsgobjConfig);&&
}

/* ================================================================================================================
* 目标标准消息对象的配置和初始化:
* ================================================================================================================
* - 将默认CAN报文对象配置加载到配置结构中
*
*

- 将消息对象定义为接收消息对象(所有目标消息对象的通用设置)
* - 仅使用匹配的 IDE(所有目标消息对象的通用设置)定义帧的接受
* -
在接收CAN报文时启用中断生成(所有目标报文对象的通用设置)
* - 定义要使用的中断节点指针(所有目标消息对象共享同一节点) * * - 定义消息对象 ID(每个消息对象 ID 值应该是唯一的)
* - 定义仲裁阶段使用的CAN报文ID(应与源报文对象ID匹配) * - 定义要使用的标准或扩展框架
* - 定义保存数据字节 8 到 35 的消息对象(顶部消息) * - 定义保存数据字节
36 到 63

的消息对象(底部消息)
*
* - 定义接收数据的长度(与 MOFGPR 相关。BOT和MOFGPR。顶部位域) * * - 使用修改后的配置初始化源标准CAN报文对象BR />* ---------------------------------------------------------------------------------------------------------------- * 这些 CAN 报文对象分配给
CAN
节点 1 * ================================================================================================================
*/
IfxMultican_Can_MsgObj_initConfig(&g_multicanr.canMsgObjConfig,
&g_multicanr.canNode0);

g_multicanr.canmsgobjconfig.frame = ifxMultican_frame_Receive;g_multicanr.canmsgobjconfig.canmsgobjconfig.cantrol.matchingId = TRUE;g_multicanr.canmsgobjconfig.cantrol.matchingID = TRUE;g_multicanr.canmsgobjconfig.r


for (currentcanMessageObject = 0;currentcanMessageObject_OFFSE_CASES;currentcanmsageObject++;currentcanmsageObject++;currentcanr.canmsageO < bject++) {g_multicanr.canmsgobjconfig.msageObjid = (ifxMultican_msgobjid)(currentcanMessageObjid)(currentcanageObjectConf [currentcanMessageObject]。message



g_multicanr.canmsgobjconfig.control.extende = g_messageObjectConf [currentcanMessageObject] .extendedF
g_multicanr.canmsgobjconfig.control.topmsgobjid = (2 * currentcanMessageObjid) + DST_EXTENDED_MO_OFFSET;g_multicanr.canmsgobjic.cantrol.bottomsgobjid
= g_multicanr.canmsgobjconfig.control.topmsgobjid + 1;

g_multicanr.canmsgobjconfig.control.messageLen = g_messageObjectConf [currentcanMessageObject] .messageLen

ifxMultican_can_msgobj_init(g_multicanr.candstmsGOBJ [currentcanMessageObject]、g_multicanr.canmsgobjConfig);&&
}
}

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

P14.0/P14.1 可用于 CAN 节点 1,但不能用于 CANr。

您必须使用可用于 CanR 的引脚。 请注意,TXD 引脚应为 MP 或 MP+ 引脚。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

如果我使用 CanR node0 PIN 码:

cannodeConfig.nodeID = ifxMultican_nodeid_0;cannodeConfig.rxpin = ifxMultican_rxd0g_p34_2_in;cannodeConfig.txpin = ifxMultican_txd0_p34_1_out;
&
&

(CAN 2.0可以正常输出)

DevinHuang_0-1695365364343.png

 

 

(使用 CAN FD将显示错误来自信号)

DevinHuang_1-1695365839088.png

我使用的分析工具支持 CANFD

所以我很好奇 CANr 是否支持 FD 功能 CAN ?

 

 

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

引脚驱动程序默认设置为从 IfxMultican_Can_Node_initConfig 到 IfxPort_PadDriver_cmosAutomotiveSpeed2在 P34.1(LP 引脚)的情况下很弱,不适用于 CAN FD。将配置更改为IfxPort_PadDriver_cmosAutomotiveSpeed1(中):

cannodeConfig.pinDriver = ifxport_paddriver_cmosautomotiveSpeed1;

如果我没记错的话,那么你必须始终使用具有相应设置的 MP 或 MP+ 引脚,以匹配上升和下降时间不违反 CAN-FD 规范。

0 点赞