cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F407 CAN works at 125 kbps but fails at 250/500 kbps

Ymtr
Associate

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

Setup:

  • 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

Observations:

  • 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

Additional checks:

  • Filters configured to accept all messages

  • CAN1 clock enabled

  • GPIO configured as AF9, very high speed

  • Tested with single node + PCAN

Question:

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.

1 REPLY 1
mƎALLEm
ST Employee

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:

mALLEm_0-1776522622203.png

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.

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.