considerably cheaper, which was another requirement
as I intended to buy them by the dozens. My
hypothesis is that by parallelizing these boards J1:1
together, a higher amperage rating could be obtained.
As you can see in Photo 1, the controller is not
only tiny but the component count is considerably
small. In reality, there is no need for much more
as the motor driver itself is packaged on the tiny
16-pin SOIC package.
The controller has all the capacitors needed for
the charge pump (the H-bridge uses four N-channel
power MOSFET transistors and a higher internal
voltage is generated to enable the high side drivers),
the bulk capacitance for high current transient management — especially when the motor changes direction
— and the internal regulator voltage bypass capacitor.
A sense resistor allows for a current max to be set.
A zero ohm resistor signals the device to limit current
to at least 2.8A. That’s a lot of juice! If you want
to limit the current to less than 2.8A, place a resistor such
that the voltage at the SENSE pin is 500 mV. The equation is:
J1: 3 PHASE
Connected to the NFault pin. Needs to be pulled
up to rail ( 3.3V or 5V, depending on system).
Controls current decay modes (fast vs. slow)
Allows for very little current consumption when
on sleep mode
Enable/Disable and/or speed control if PWM’d
Solder Motor Battery Positive Terminal (8V to 36V)
Solder Motor Battery Ground Terminal
Solder Motor Positive Terminal
Solder Motor Negative Terminal
Four pads (J2 through J5) allow for battery power and
motor leads to be soldered. A six-pin connector (J1) offers
the inputs and outputs necessary for the microcontroller
application to interface (FAULT, MODE, ENABLE, SLEEP,
PHASE, and GROUND).
Table 1 shows the connections to power supply, motor
and microcontroller signals.
Figure 1 Shows the DC motor controller Block Diagram
and the connections needed to be made. Any microcontroller should be able to tackle on the task of sending these
signals and reading the NFAULT output. I decided to leave
the NFAULT disconnected for early tests, but will definitely
use this feature as a trouble shooting tool on later projects.
Do be warned that I have found the NFAULT to get
asserted a few times when the motor starts as the large
inrush current is bound to be seen as a short. It is a matter
of learning how much time the particular motor needs to
start and ignore these NFAULT triggers for that time.
Depending on the motor, you may see some of these
NFAULT pulses when the motor switches direction, in which
case the firmware must take this fact into account, as well.
Artwork used to generate the board can be downloaded from my website at
or from the SERVO website at
I usually post firmware and other details, as well.
Figure 2 shows the schematic for the entire controller
design. Six passive components, a chip, and a bare board
offer a low count.
controllers in parallel and increase current capability?
I found the A3950 to allow for this enhanced power
potential by plugging two controllers in parallel.
There are various ways of attaching the two controllers
in parallel. I tried three different venues and the cleanest is
shown in Photo 2. The item to look for is cable length. I am
not certain what would happen if cables are grossly different
in length, other than possibly inducing some fault on one of
the controllers if the signals do get out of phase. However,
with cables the same size, I was able to control the motor
with two controllers in the same fashion as I had done with
one with an added plus, that is a twofold increase in current!
H-bridges are nothing but controlled resistances. It is
For larger or heavily loaded DC motors, 2.8A of current
may not be enough. However, what if we could add more