CANBus Node Device Not Powering On When Connected to CANBus Network

Thread Starter

ryan1

Joined Jun 16, 2020
23
Hello all!

I know the forums here generally recommend giving every detail possible so others can give their best help, but I would like to see if I can avoid that because my project is pretty complicated.

The short version is that I have three brushless motor drivers and one stepper motor driver. All of them are daisy-chained together on the same CANBus network. Their power and grounds are daisy chained together as well because all the drivers run off of 21 volts. The attached picture below is how the circuit is built (except there is a "Drive 3" and a "Drive 4"). The first motor driver has its reference ground attached to my main CANBus transceiver ground. This reference ground is different from the power and ground wires used to power Drive 1--Drive 1 has one ground for power and one ground for CANBus. The final node on the CANBus is my stepper driver that I made.

1600985973695.png

However, my stepper driver only turns on (an LED on the driver turns on) when I unplug the driver from the CANBus network but keep it plugged in to power and ground. When I just plug the stepper driver into the CANBus network, nothing turns on. The brushless motor drivers all turn on and work perfectly fine while attached to the CANBus network.

Things I've measured or tried:
1. I've put termination 120 ohm resistors at the ends of the CANBus network and confirmed resistance with multimeter (60 ohms when all nodes are connected to the network).
2. I've measured the voltage and current that the stepper driver draws when it is plugged into the CANBus network and when it is not. The voltage and current stays the same, regardless of whether the stepper driver is plugged into the CANBus network or not.
3. I detached my stepper driver from the CANBus network and disassembled the CANBus network. I then connected the stepper driver's CANH and CANL directly to the CAN transceiver, with no ground wire between the two devices. The stepper driver turns on and works perfectly. I believe that this indicates that there is nothing wrong with my stepper driver PCB, but something is wrong with my CANBus network or maybe my power/ground cables.
4. I've checked for shorts between CANH, CANL, power, and ground. No shorts.

All of the drivers are custom-made PCBs and are all proven to work on their own. I'm trying to avoid sharing these PCB details, mainly because things will get complicated very quickly, it could take a lot of other people's times, I'm not the one who designed it, and I'm pretty sure the problem is not on the driver boards themselves. Does anyone have any advice on what might be wrong and where else I could prod with the multimeter? Could the problem somehow be the ground wire between Drive 1 and CAN XCVR (as seen in the attached picture)?

Thank you in advance!

EDIT 1: Please see updates at end of thread! Thanks.
 
Last edited:

Papabravo

Joined Feb 24, 2006
21,159
CAN is quasi-differential WITH RESPECT TO A COMMON GROUND. You can't omit the GND wire and expect correct operation. Some transceivers will draw power from the CAN Bus lines to the detriment of the transceiver.

Your drawing is not helpful because it lacks essential details.
 

Thread Starter

ryan1

Joined Jun 16, 2020
23
Some extra information: The 3 brushless motor drivers and the stepper driver control 4 motors on a robotic arm I built. There is a precharge circuit that uses relays to prevent high voltage spikes (caused by high currents that occur while the board capacitors are charging).

Update: I had a spare brushless motor driver to test with, and I daisy chained it with my stepper motor driver (two nodes in the CANBus network). This was done off of the robotic arm. The stepper motor driver turns on just fine, as does the brushless motor driver. I'm not 100% sure what this means...maybe something that has to do with my precharge circuit. I'll quadruple check for a short, but my multimeter isn't detecting any short between power, ground, CANH, and CANL...
 

Thread Starter

ryan1

Joined Jun 16, 2020
23
Update 2: It looks like it has to do with my precharge circuit. I am fairly new to electronics, so maybe I might have misinterpreted what a precharge circuit actually is. I based my precharge circuit on the following link:

http://liionbms.com/php/precharge.php

However, I only have K1 and K2 relays, not K3. For some reason, when I have both K1 and K2 closed (or just K2 closed), all the drivers turn on fine. However, when I close K1 first, wait for the inrush current to subside, and then close K2, the stepper driver doesn't turn on (but the brushless motor drivers do). I guess this does have to do with my stepper driver PCB, perhaps, particularly the step-down converter chip on have on the board:

Step-down converter link

I have no idea why this is happening. Could anyone enlighten me as to why this might be occurring? Does anyone have any solutions?
 
Top