Showing results for 
Search instead for 
Did you mean: 

STM32H730 FDCAN TxDelayCompensation

Associate II

I use FDCAN in STM32H730 for communication over CAN-FD.

At the moment it works with 500kBit/2000kBit without TxDelayCompensation. But we want to communicate with 1000kBit/4000kBit too. Therefore I want to enable TxDelayCompensation.

I'm not sure how I should configurate the TxDelayCompensation, I didn't find hints in the documentation.

In a discussion in found the following recommendation:

/* Configure and enable Tx Delay Compensation : TdcOffset = DataTimeSeg1*DataPrescaler */

HAL_FDCAN_ConfigTxDelayCompensation(&hfdcan1, DataTimeSeg1*DataPrescaler, 0);

If I enable TxDelayCompensation at 500kBit/2000kBit with the configuration above, the communcation doen't work anymore. The transceiver stops at the first bit.

Does anyone have experience with configuring the TxDelayCompensation?


Couple examples of use in CubeH7 board examples

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Associate II

Thank you.

Sorry, it was my mistake.

I only inserted DataPrescaler. If I use DataTimeSeg1*DataPrescaler it works.

In the example the third parameter(TdcFilter) of function HAL_FDCAN_ConfigTxDelayCompensation is 0.

Is 0 always a sufficient vaule? Or it is depending on the settings of data timing?