Skip to main content
Explorer
July 22, 2025
Solved

It's not possible to reset the FDCAN instance individually

  • July 22, 2025
  • 2 replies
  • 444 views

Hi,Master
MCU:   STM32H743II
Question:
Both FDCAN channels in the MCU are currently in use. I now intend to reset each FDCAN instance (i.e., reset all its registers) during its respective bus-off event, and then reinitialize the instance. Resetting all registers of an instance is typically done through the corresponding FDCAN RST bit in the RCC. However, since both instances share the same RCC, triggering the reset would affect both instances simultaneously. Therefore, I've made modifications for resetting a single instance as follows:

HAL_FDCAN_DeInit(hfdcan);
hfdcan->Instance->CREL = 0x32141218;
hfdcan->Instance->ENDN = 0x87654321;
hfdcan->Instance->DBTP = 0x00000A33;
...

However, the aforementioned method can only reset some of the registers. Are there any better ways to achieve a reset of a single FDCAN instance? Thank you very much.

    This topic has been closed for replies.
    Best answer by mƎALLEm

    Hello,

    Unfortunately there is no way to reset the FDCAN instances separately.

    2 replies

    mƎALLEmAnswer
    Technical Moderator
    August 21, 2025

    Hello,

    Unfortunately there is no way to reset the FDCAN instances separately.

    Lyu.1Author
    Explorer
    August 22, 2025

    ok, Thank you for your guidance

    Graduate II
    August 22, 2025

    Normally You don't need the reset a FDCAN controller when he is in Bus_off state, it should be sufficent to reset the INIT Flag in the CCCR register. This will make the Controller recover from Bus_off once the cause is removed.

    From the reference manual capter 56.5.13:

    MHoll2_0-1755867872272.png

     

    Lyu.1Author
    Explorer
    August 23, 2025

    Thank you for the good guidance.