CAN LDD problem

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

CAN LDD problem

跳至解决方案
1,493 次查看
jordimerc
Contributor II

Hi all,

 

I'm using tha CAN LDD component into a twrk60n512 bsp, the problem I'm facing is that when I transmit a frame and there's no other node in the bus,

some ACK field of the frame it is not set by the receiver to dominant value,

in that case the transmitter interpretes it as an error so it begins to retry the frame tranmission

I want to disable this transmitter error check and I don't see such property inte the component

Any help/idea will be great!!!

 

Br's

 

Jordi

标签 (1)
标记 (1)
0 项奖励
1 解答
1,079 次查看
jiri_rezler
NXP Employee
NXP Employee

Hi Jordi,

 

Function of the CAN_LDD is correct, when a transmitting Frame isn’t received by some node (= it isn’t acknowledged), CAN device try send the frame again with OnError() event calling.

Aborting a transmission frame is possible do by CAN_PDD_SetMessageBufferCode() macro (it is macro defined in CAN_PDD.h library, must be included).

 

Example:

  CAN_PDD_SetMessageBufferCode(CAN1_BASE_PTR, 1U, CAN_PDD_MB_TX_ABORT);  // aborts a transmitting frame for CAN1 device, Message buffer 1

 

Best Regards,

J.R.

在原帖中查看解决方案

0 项奖励
1 回复
1,080 次查看
jiri_rezler
NXP Employee
NXP Employee

Hi Jordi,

 

Function of the CAN_LDD is correct, when a transmitting Frame isn’t received by some node (= it isn’t acknowledged), CAN device try send the frame again with OnError() event calling.

Aborting a transmission frame is possible do by CAN_PDD_SetMessageBufferCode() macro (it is macro defined in CAN_PDD.h library, must be included).

 

Example:

  CAN_PDD_SetMessageBufferCode(CAN1_BASE_PTR, 1U, CAN_PDD_MB_TX_ABORT);  // aborts a transmitting frame for CAN1 device, Message buffer 1

 

Best Regards,

J.R.

0 项奖励