cancel
Showing results for 
Search instead for 
Did you mean: 

Different results stm32f446re nucleo and separate MCU

MScho.4
Associate

I designed a PCB that has a stm32f446RE MCU on it. All of it seems to function well, I can send and receive over three UART channels, and can receive messages over CAN Bus. However, when I try to send messages over CANbus to a separate store-bought motorcontroller, it is not working. When the motorcontroller receives a message over can bus, it will send an ack. When I use a Kvaser usb-to-can tool, this works fine. When I hook up my own pcb to the motorcontroller, either two of these things happen (dependent on how I tweak my can bus settings):

  • I get a wakeup message from the motorcontroller, but then only errorframes, until I disconnect the motorcontroller. Then my board sends messages completely fine.
  • The board sends messages, but I receive no ack from the motorcontroller.

When I tried to make this work with another similar pcb with a nucleof446RE attached to it, with the exact same code that I wrote, it works just fine. Because of this, I doubt it has anything to do with the external oscillator that the board has (since my code does not enable the oscillator)

My pcb and the other have the same hardware, same CAN transceiver, same termination, etc. the only difference is that it uses the MCU in chip package instead of a nucleo.

I generated my code using stm32cubemx and compile it using keil.

Does anybody know what the problem might be?

1 REPLY 1
AvaTar
Lead

I would concentrate on the CAN bus.

Are the levels and signal forms the same, or anything unusual ?

Do you have CAN ground connected ?

Does it work with reduced baud rate ?