2
\$\begingroup\$

I have a working 500kbps CAN bus between an Arduino Uno and a RaspberryPi. Both are connected to MCP2515/TJA1050 boards from Amazon and communicating over SPI. The RaspberryPi dumps the CAN data via candump without any issues, and both devices are able to action the data in the CAN frames. No issues here...

But, I am trying to integrate another CAN device. The new device is a black box, so not sure what controller/transceiver is used, but this shouldn't matter (right?) as both devices implement CAN 2.0b (confirmed). The CAN waveforms of this device also look correct. When I probe the bus via an oscilloscope, CANH and CANL look correct, idling at 2.5V and changing to ~3.5V(CANH) and ~1.0V(CANL) in dominant state.

New device CAN waveforms not connected to original bus

When I connect the new device to my original bus, the whole bus stops communicating and the waveform looks mega weird on the scope. Nothing like a CAN frame.

Any idea what's going on in the below waveform when I connect the new device to my original bus?

Issue waveform with the new device

\$\endgroup\$
4
  • \$\begingroup\$ Are you sure the black box is running at 500kbps? Those look like error frames to me. \$\endgroup\$
    – Jon
    Commented Sep 14, 2020 at 17:20
  • \$\begingroup\$ Thanks for responding - when I connect the black box to ICS VehicleSpy set to 500kbps, it does pick up data from the 0x310 frame, so from that I assume that it is configured to 500kbps - the vendor also confirmed that it is set to 500kbps \$\endgroup\$
    – Manj Chana
    Commented Sep 15, 2020 at 8:10
  • \$\begingroup\$ Error frames that are ack'ed by a node with slightly different voltage levels, perhaps. You could record the traffic sent out at bootup and check baudrates of all nodes. \$\endgroup\$
    – Lundin
    Commented Sep 15, 2020 at 11:48
  • \$\begingroup\$ @Jon, turns out they are error frames. I plugged in with ICS VehicleSpy into the bus and it decoded the waveforms as error frames. I don't know where to find the decode for error frames. I know there is an Rx error counter and Tx error counter - any idea what the other 2 bytes are? \$\endgroup\$
    – Manj Chana
    Commented Sep 16, 2020 at 19:59

0