Skip to main content
Associate
April 21, 2026
Question

CAN FD network normal mode does not work

  • April 21, 2026
  • 3 replies
  • 129 views

Hello everyone,

 

i want to build a CAN FD network with three NUCLEO-C092RC boards. So far i can transmit frames, as i can see on an oscilloscope. But the moment i connect TWO boards, the interrupt is not triggered. My code should activate user LED2 if it receives a frame with one specific id:

Board 1 (0x101) triggers LED when receiving message 0x344 or 0x234

Board 2 (0x234) triggers LED when receiving message 0x344 or 0x101

Board 3 (0x344) triggers LED when receiving message 0x101 or 0x234

 

i use a nom. baudrate of around 500 kbit/s and data baudrate of 1 Mbit/s with a clock of 40 MHz (HSE).

The Boards are connected with two short (10cm) twisted jumper cables and the jumpers for the 120 Ohm resistor are also plugged in on both baords.

when i test it in external loopback mode, it works (with ident. change)

Could this just be a problem with my wires (reflexion , parasi. C ,etc.)?

 

thanks a lot for the help

3 replies

mƎALLEm
Technical Moderator
April 21, 2026

Hello @BNE and welcome to the ST community

Your situation and config is not quite clear to me.

So, you are using NUCLEO-C092RC boards and the loopback config is working well but it's not working in Normal mode right? 

 "So far i can transmit frames, as i can see on an oscilloscope"

(-> on which pin?

So, please clarify.

FDCAN NVIC enabled in your project?

Otherwise, attaching main.c is insufficient, we need to see the pin config, the clock config etc. So you should attach the complete project.

Please refer to the knowledge base article: STM32 FDCAN running at 8 Mb/s on NUCLEO boards

"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."
BNEAuthor
Associate
April 27, 2026

Hello,

 

i connected the oscilloscope with two wires plugged into the green connector by the transceiver. so i measured the differential CAN-Signal. The transceiver uses PD1 and PD0 as TX and RX from the µC for FDCAN.

i think i messed something up with boths bit times, because i use BRS. Thank you for your help and for the link.

I calculated the settings for the nominal rate and the data rate with Bit Timing Calculator for CAN FD from kvaser.com.

The interrupt should be enabled. It is in the stm32c0xx_hal_msp.c file if i am not wrong

i will attach my three projects as a .zip file

 

Thanks for the support so far :)

mƎALLEm
Technical Moderator
April 27, 2026

Hello,

So do you confirm it sill not working even after your last check?

If not working, and by saying "the interrupt is not triggered", do you mean the RX interrupt is not triggered?

"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."
Karl Yamashita
Principal
April 27, 2026

So far i can transmit frames, as i can see on an oscilloscope. But the moment i connect TWO boards, the interrupt is not triggered.

This is a little confusing. So when you were transmitting before connecting TWO boards, did you only have one board transmitting without it connected to another working Nucleo? You can't successfully transmit with just one Nucleo and after so many tries, would enter a BUS off state. It won't transmit any data. It won't go out of BUS off state until it starts receiving valid data. In this case, you should be getting CAN Error interrupts callback.

 

Also, what interrupt are you referring to? Rx or Tx interrupt?

 

You sure you didn't cross the CAN_P with CAN_N? Did you connect the grounds on the CN14 to each Nucleo boards? 

 

If a reply has proven helpful, click on Accept as Solution so that it'll show at top of the post.CAN Jammer an open source CAN bus hacking toolCANableV3 Open Source