SWRZ154 August 2023 IWR1843AOP
CAN-FD: Message Transmitted With Wrong Arbitration and Control Fields
Under the following conditions a message with wrong ID, format, and DLC is transmitted:
Under the conditions listed above it may happen, that:
The erratum is limited to the case when M_CAN is in state "Receiver" (PSR.ACT = "10") with no pending transmission and a new transmission is requested before the 3rd bit of Intermission is reached and this 3rd bit of intermission is seen dominant.
When a transmission is requested by the CPU, the Tx Message Handler performs an internal arbitration and loads the pending transmit message with the highest priority into its output buffer and then sets the transmission request for the CAN Protocol Controller. The problem occurs only when the transmission request for the CAN Protocol Controller is activated between the sample points of the 2nd and 3rd bit of Intermission and if that 3rd bit of intermission is seen dominant.
This dominant level at the 3rd bit of Intermission may result from an external disturbance or may be transmitted by another node with a significantly faster clock.
In the described case it may happen that the shift register is not loaded with arbitration and control field of the message to be transmitted. The frame is transmitted with wrong ID, format, and DLC but with the data field of the requested message. The message is transmitted in correct CAN (FD) frame format with a valid CRC.
If the message loses arbitration or is disturbed by an error, it is retransmitted with correct arbitration and control fields.
Request a new transmission only if another transmission is already pending or when the M_CAN is not in state "Receiver" (when PSR.ACT ≠ "10").
Another option would be to add a checksum to the data field covering arbitration and control fields of the message to be transmitted.