Skip to main content
MFrie.7
Associate II
Mar 17, 2025 12:27 PM UTC
Solved

FDCAN: Retransmissions Configuration

Good afternoon
I am working on the STM32H755 and am dealing with the retransmissions from my CAN FD periphery. According to the ISO-11898-1:2024 standard, the number of retransmissions should be configurable:
"
- from 0 (no retransmission),
- to at least 6 (6 retransmission attempts),
- and the highest number in this range can allow unlimited retransmission attempts.
"
Currently I have FunctionalState AutoRetransmission in FDCAN_InitTypeDef set to ENABLE and on the oscilloscope I see an infinite number of retransmissions when I disconnect between two nodes. Now I want to limit the retransmission count to 6 retransmissions.
Can I do this?
Thank you very much for your answer.
Manuel

This topic has been closed for replies.
mƎALLEm
mƎALLEmBest answer
ST Technical Moderator
Mar 18, 2025 8:56 AM UTC

@MFrie.7 wrote:

Understood. And is there no way to count the number of retransmissions and stop them after a certain number (except by polling the TEC register)?


Indeed. There is no interrupt on a specific value of TEC counter.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.

9 replies

Senior III
Mar 17, 2025 1:27 PM UTC

You can monitor the Transmit Error Counter (TEC) in the FDCAN Protocol Status Register (PSR) and count the retransmissions in software. If the transmission is failing, keep a counter and manually stop retransmission after 6 attempts.

MFrie.7
MFrie.7Author
Associate II
Mar 18, 2025 7:05 AM UTC

Hello, thank you for your reply.
The monitoring from the TEC is basically a good approach. The problem is that I want to stop the transmission after a few retransmissions (<= 10). Since there is no interrupt when the TEC is increased, I would have to poll this register constantly, which I consider to be an unreasonable solution.

mƎALLEm
ST Technical Moderator
Mar 18, 2025 8:08 AM UTC

Hello,


@MFrie.7 wrote:

The problem is that I want to stop the transmission after a few retransmissions (<= 10). 


I don't think this is possible according to what you said previously: "Now I want to limit the retransmission count to 6 retransmissions."

It seems the ISO-11898-1:2024 standard (which we can no have access) is something new and does not implies to STM32H7 which follows the standard 11898-1: 2015.

Hope that answers your question.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.