Power and Comms Distribution Board (v1)
Status: Current Project (Jun 2020)
Soft Starter
Capacitance
Due to the amount of capacitance on the power line from all the motor drivers, a soft start system is required.
The capacitors on each driver consists of 1x470uF electrolytic (50V), 6x10uF MLCC (50V, X5R) and 5x4.7uF MLCC (50V, X5R). At DC and a voltage bias of 42V, the total capacitance will be 553.5uF±10%. The datasheet for the MLCCs doesn't include a percentage loss of capacitance vs DC bias chart so I went with the full capacitance as a worst case.
When a battery is plugged in, it will start to charge 6.64mF±10% up to 42V (around 5.86J±10%) for the worst case.
Soft Start Resistors
A balance must be achieved between start up time and power dissipation. Too high of a resistance will take too long to charge up but allows use of a physically smaller resistor. Too small of a resistance requires large and expensive resistors as well as mosfets to switch the initial current.
By playing around in Falstad simulator [1], I eventually chose a total resistance of 150 ohms. The peak current would be 280mA, small enough for one or two cheap SOT-23 mosfets to handle. With 5RC = 0.996s. For the resistors, a total peak power dissipation would be 11.76W.
To look for resistors, I went onto RS components and found some large 4W wire wound axial resistors.
Later on, I would opt instead to use nine 2010 resistors with a power dissipation of 0.75W each due to the resistors from RS being hard to source. Due to the very small period in which the resistors would be subject to power dissipation higher than their rated, I felt it was safe. Some resistors carry ratings for overload periods (usually for 5 seconds and less) when the resistor can carry 5 to 10 times its rated power [2].
Battery Protection and Hot Swapping
The most important part of the power distribution board would be the ability to turn on and off power to the motors electronically. Typically this would be achieved using a N channel mosfet to yank out the ground however this would interfere with the voltage levels used for the CAN bus communication. The SN65HVD230 CAN transceivers can only withstand common-mode transients of ±25 V meaning if an emergency stop was issued, it would destroy all the CAN transceivers on the line.
If the mosfets were on the low side, a similar isolated voltage supply would be required for each battery's mosfets to prevent one battery from charging the other.
To drive the gates of the mosfets, I originally opted to use 1W isolated DC-DC power supplies and optocouplers however they were hard to source.
In the end, I settled on putting the mosfets on the high side and using a static charge pump [3]. The IC that would monitor battery voltages, currents and control if the batteries were in soft start mode or full power mode would be a STM32F103CBT due to it being very common (but not for long thanks to the 2021 STM32 shortage).
CAN Communication
Originally following the approach set out by Ben Katz [4], I wanted to use two STM32F405RGTs (same as used on the actuator drivers) for the purpose of transforming SPI commands from the Jetson Nano to CAN messages for each leg. Due to their processing power I felt I was not using them fully and looked for alternatives. Starting in the STM32 families, I could not find a smaller/less powerful STM32 part to replace it and gave up.
Later on, thanks to my procrastination on writing the firmware, I had the sudden thought to just look for SPI to CAN bus ICs since CAN is ubiquitous on cars so they automotive industry must have come up with something. Microchip in fact had with their MCP2512 IC. The MCP2512 even had Arduino libraries to support it and I immediately switched, having to layout a new board in the process.
PCB and Schematics
Made using EasyEDA. 2 layer 1.6mm board. 2oz copper.
To save space, I decided to mount the XT90 connectors vertically requiring wiring to be soldered in place.
Current schematic. Includes buck converter for power Jetson Nano and misc electronics. Also two SMD temperature sensors.
Top layer.
Bottom layer.
Old layout using STM32F405s, wire wound resistors and optocouplers with isolated DC-DC converters.