At work we often work with DC motors for various automotive parts. Usually when we need to move a motor before our control electronics are ready we just hook up a harness with some buttons to get the job done. I thought I could do better and create a board that would allow effortless driving of motors in either direction that could be easily reused for multiple different products. Just having buttons for the user to press would not be enough of an improvement, so I also needed to add a way to interface an externa signal generator or uC.
Since I wanted this to be a simple project for a few hours of work at most, I decided that any design I come up with has to a pure hardware solution. No onboard uC and no programming required! I decided for a solution that would include:
- two buttons (one for each rotation direction)
- external inputs for signal generator / external uC
- switch to turn the part on/off
- signaling LEDs for on/off, error states
- banana jack interface for all inputs/outputs
- up to 40V power supply
- motor currents up to 15A
After doing some research on mouser.com (I really like how their filtering system works) I stumbled on a nice looking part from TI. DRV8702 which comes in I2C and pure HW controlled variants. It has overcurrent protection, integrated charge pump, multiple control modes and resistor-programmable gate drive current.

Designing schematic around this IC was pretty easy, although I had to abandon my plan to use a two-layer PCB and switch to four-layer stackup once I started routing the signals. For MOSFETs I went with SUD80460E (TO-252-2 package) - later I regretted this choice a little as these come with a relatively high 45mOhm on resistance. I'd advise against using these if you are planning to drive more demanding loads (~7+A), instead, if sticking with the same package, you can consider something like RD3L04 - which offers a much better 14mOhm.
Seeing as I don't care for EMC performance and mostly intend to use the buttons to drive motors (meaning 100% gate duty cycle) I didn't consider the gate drive current as that important when making the design. DRV8702 offers multiple options for this as shown below, I suggest you pick what seems reasonable given the MOSFET in use.

VDS overvoltage protection I see as more critical in general, although in this case I also went with disabling it completely while testing the device. In the future I will need to perform some tests and cross check with calculations. Given the high ON resistance of the NMOS I used, I'd have to consider the highest threshold setting:
VDS > 15A * 0.045Ohm
VDS > 0.675V

I decided to also use a dedicated 5V power regulator for switch pullups and sleep pin trigger that turns the circuit on and off. I used MCP1792- since it comes with a very respectable idle current draw of 2uA and very wide input voltage range. Since I wanted to keep the design flexible I also included a BJT pullup circuit that would allow one of the button to pull down both control inputs. This could be useful when utilizing PH and EN control MODE of DRV8702. In the end I ended up using the PWM input, so I didn't need to utilize this feature. Final complication was an RVP NMOS, to prevent damaging the circuit in case of user error when hooking up the board (this will come up later, since I made a mistake here when copying the design from DRV's datasheet). Final schematic ended up as shown below:

Laying out the board required four-layer stackup as mentioned before. The whole board ended up being rather chunky, mostly due to the size of the banana jack terminals I used. Here I made a mistake when placing the banana jacks on the left. The IN2 banana socket ended up way too close to the mounting hole - which I only realized deep into the routing process. I decided to keep it as is, since I didn't feel like re-routing everything on the left to move the footprint...
Read more »