0

I have to fight that problem for a long time now.

There are 2 MCP2515 CAN Interface Chips connected to each other. The one is controlled by Arduino, the other one by STM32 board.

Scheme: (-> := send)

Arduino->MCP2515->MCP2515->STM32

If I set the baudrate on Arduino to 50k and on STM32 to 50k there is no receive interrupt on the second MCP2515. When I double the baudrate on Arduino to 100k there will be an interrupt and the data is correctly transferred.

The strange thing is: CFG1 CFG2 CFG3 Register Settings are identical on both MCP2515 Chips! Sure I can double the Frequency all the time but baud's like 31K25 need 62K5 which is not in the library. Hope someone encountered the same issue or can help out with this.

I also tried this code for Baudrate references:

https://github.com/latonita/arduino-canbus-monitor/blob/master/mcp_can.cpp

by the way: both run on 8MHz Crystal Oscillators

ionman
  • 51
  • 2
  • 10

1 Answers1

0

problem solved partially, the double frequency was because Arduino IDE was using headers in the lib directory not the custom directory outside of the folder!

if I go to 10kBaud or below the interrupt now doesn't respond. Is it maybe too low to be handled?

ionman
  • 51
  • 2
  • 10
  • 10k and 5k working, the Arduino library(tried every one) is somehow broken at 5 and 10k Baud. The Raspberry Pi with CAN Board sended at 5 and 10k and it worked at the microcontroller. The Problem with 1000Kbps was the termination resistors, they have to be there for this. :) – ionman Jul 13 '16 at 18:25