2026-04-18 4:47 AM
Hello,
I am working with an STM32F407VGT on the Discovery board using bxCAN.
I can communicate successfully at 125 kbps, but when I switch to 250 kbps or 500 kbps, communication completely fails:
No messages are transmitted or received
PCAN shows Bus Heavy / error frames
MCU: STM32F407VGT
CAN interface: bxCAN
Transceiver: PCA82C251
Tool: PCAN-USB
Termination: 2 x 120Ω (verified ~60Ω between CANH and CANL)
Cabling: short wires, common GND connected
125 kbps works reliably
At 250 kbps and 500 kbps:
No TX/RX activity
PCAN reports Bus Heavy
Same wiring and hardware used for all speeds
Filters configured to accept all messages
CAN1 clock enabled
GPIO configured as AF9, very high speed
Tested with single node + PCAN
What could cause CAN to work at 125 kbps but completely fail at higher bitrates on STM32F407?
Any suggestions or known hardware limitations on the Discovery board?
Thank you.
2026-04-18 7:36 AM - edited 2026-04-19 4:46 AM
Hello,
The transceiver you are using is a 5V device incompatible with STM32 and it doesn't have VIO input to adapt the voltage levels like many other transceivers.
From the transceiver's datasheet:
VIHmin = 0.7*VCC = 0.7*5V = 3.5V which is > VDD MCU.
You will say, ok but it's is working with 125kb/s. Yes it's working but out of specification. So you will face random issues and unstable communication.
So please use another CAN transceiver such as SN65HVD230. It's already used in many STM32 eval boards.
So replace that PCA82C251 tranceiver before going ahead.