cancel
Showing results for 
Search instead for 
Did you mean: 

STM32G0B1V FDCAN AutoRetransmission

Thomas1
Associate II

Hallo everybody,

I have a question about the FDCAN peripheral of the STM32G0B1VC.

I’m using the STM32Cube_FW_G0_V1.6.0 library and I have initialized the bus with AutoRetransmission:

CanHandle.Init.AutoRetransmission     = ENABLE;

 

During the transmission of a frame, when the ACK is not received the peripheral automatically resends the frame after a minimum delay (about 50 usec).

g0_ScreenDump.png

Is there any way to increase the delay between the frames?

When I repeat the test with a different platform, STM32F072VB and STM32Cube_FW_F0_V1.9.0 library, I have a different behaviour: the frame is retransmitted after 1.7 msec.

f0_ScreenDump.png

Is there any way to increase the delay between the autoretransmitted frames with the STM32G0B1VC?

Many thanks

Thomas

 

1 ACCEPTED SOLUTION

Accepted Solutions
SofLit
ST Employee

Hello,

The auto-retransmission is managed by the peripheral itself and I don't think there is a way to change that timing. In my opinion the timing between two auto-retransmitted frame that includes the ACK delimiter (1 bit), EOF (7 bits) and IFS (3 bits) which is the minimum before the next frame to start.

Knowing that F0 has bxCAN cell and G0 has FDCAN cell which don't have the same architecture and implementation.

Why are you looking for increasing this timing?

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

View solution in original post

4 REPLIES 4
SofLit
ST Employee

Hello,

The auto-retransmission is managed by the peripheral itself and I don't think there is a way to change that timing. In my opinion the timing between two auto-retransmitted frame that includes the ACK delimiter (1 bit), EOF (7 bits) and IFS (3 bits) which is the minimum before the next frame to start.

Knowing that F0 has bxCAN cell and G0 has FDCAN cell which don't have the same architecture and implementation.

Why are you looking for increasing this timing?

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

Thank you SofLit.

The reason to have this delay is that the system must operate communicating with an already available device. It looks like this device in case of communication error will keep failing to send the ACK unless a certain time before the retransmitted frame is added.

I can surely add a workaround to implement this delay, but I would prefer to let the peripheral to handle this automatically.

Thomas


Hello,


I can surely add a workaround to implement this delay, but I would prefer to let the peripheral to handle this automatically.


Unfortunately this is not possible.

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

Ok, thank you SofLit.