We have been working on a PCB project that has an atMega1281 AVR, MCP2515 CAN controller and MCP2551 Transceiver. We have the boards engineered and and the code is complete on the AVR. During testing, we had great success on some vehicles but others, the device causes the CAN to go crazy and cause fault codes. On one case, the device would not let the vehicle start. The board and controller work great with a 3rd party bench simulator. My question is why on some vehicles, the CAN just goes crazy? I tend to believe its software related because it works great in some vehicles and the simulator. Has anyone experienced this and can you tell me what to look for that could be the root cause of the issue?

  • 2
    \$\begingroup\$ Be more specific. What is the device doing? Only sniffing data? Sending something? What is it sending? \$\endgroup\$ – filo Jul 8 '17 at 13:53
  • \$\begingroup\$ +1 to previous comment. Give more details about your device. It connects through OBD port right? Does it use only pin 6, pin 14, and power/gnd or something else? \$\endgroup\$ – GAttuso Jul 8 '17 at 22:10
  • 1
    \$\begingroup\$ which specific CAN bus protocol is being used? Is the CAN bus properly terminated on the offending vehicles? \$\endgroup\$ – user3629249 Jul 8 '17 at 22:24

The solution was a simple oversight on my part. I had the CAN controller hard coded to a specific baud rate. After I discovered this and understanding that vehicles with CAN interfaces can run at different baud rates depending on the vehicle Mfg, I created a new routine to auto detect the baud rate of the CAN. This resolved the issue.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.