16FX CAN: How to detect a lost arbitration?

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

cross mob
KoYa_1937921
Level 1
Level 1
Distributor - Marubun (Japan)
10 sign-ins 5 sign-ins First like received

Hello,
Could you answer ASAP to the questions below?

Target Device: 16FX CY96F637RBPMC-GS-UJE1
Q1. Is there any way to know that a lost arbitration of CAN Tx has been happen, both when CTRLRn.DAR == 0?
Q2. How about lost arbitration detection when CTRLRn.DAR == 1?

After some nodes start Tx at same time, a node, which outputs recessive state (1) simultaneously when another node outputs dominant state (0) for arbitration field, loses the arbitration.
I know that Bit 1 Error in STATRn.LEC excludes an error for arbitration field.
I also conceive of a way with STATRn.RXOK bit which indicates successful message reception, because it is difficult to zero-clear the RXOK between the beginning of a Tx and when the RXOK is set by receiving a message from another node which wins an arbitration on the Tx.

Regards,

Koji

 

0 Likes
1 Solution

We confirmed the query of this thread and prepared the answers as below.

Q1. Is there any way to know that a lost arbitration of CAN Tx has been happen, both when CTRLRn.DAR == 0?

A1. There is no way to know arbitration lost.

 

Q2. How about lost arbitration detection when CTRLRn.DAR == 1?

A2. If the arbitration lost is detected,  retransmission doesn't happen. Transmission is stopped.

When CTRLRn.DAR == 1, the re-transmission isn't executed if a lost arbitration. The transmission stops.

View solution in original post

0 Likes
5 Replies