Hi Nxp Community,
I am working with burst of CAN BUS traffic influence on Can transmission on. I found a few of extended frames are loss occasionally when seven terminals were loaded on CAN BUS. But when a single or two terminals are loaded on bus they perform successfully (transmit two messages every 10 ms). I captured some CAN messages as below by NI-XNET Bus Monitor tool.
Could I ask some questions about FlexCAN transmision drivers? Is there any function or configuration to retry on pending, timeout or busy or fail? I use FlexCAN_Ip_SendBlocking to transmit message that seems no retry. Looking forward to reply.
BR
Sylvia
Hi,
if using blocking function it return when message is successfully transmitted or timeout happens. Prepared message is sent on first opportunity window on the bus, so if you have other nodes that wins bus arbitration it can simple happen you got timeout more often. In case of timeout a driver aborts prepared MB so message is finally either transmitted or not and you should have indication about that. In case of abort to send it again you need to prepare new transmission. In case of error detected message is resent automatically by module.
BR, Petr
Hi PetrS,
Really appreciate for your reply. " In case of timeout a driver aborts prepared MB so message is finally either transmitted or not and you should have indication about that " that means "FLEXCAN_TX_ABORT" indicates MB message has not been transmitted. I should prepare new transmission to avoid can frame loss when FlexCAN_Ip_SendBlocking return "FLEXCAN_STATUS_TIMEOUT" . Is it right?
BR,
Sylvia
Hi,
yes, correct.
BR, Petr