Building a PWM motor driver with just a few components

Thread Starter


Joined Jan 19, 2019
Motor driver circuits are one of the most useful designs for industrial, automotive and robotic applications. Full control over a DC motor is an essential function for a variety of applications. For many low power applications, 1A to 1.5A RMS current consumption limit/per motor is enough, therefore I selected a useful chip that can operate with just a few external components.

The DRV8833 chip is a dual H-bridge motor driver. According to the datasheet: “The DRV8833C device is an integrated motor driver solution for brushed DC or bipolar stepper motors. The device integrates two NMOS H-bridges and current regulation circuitry. The DRV8833C can be powered with a supply voltage from 2.7 to 10.8 V and can provide output current up to 700-mA RMS. A simple PWM interface allows easy interfacing to the controller circuit. The current regulation is a 20-μs fixed off-time slow decay. The device includes a low-power sleep mode, which lets the system save power when not driving the motor.”

The figure-1 shows the logic level thresholds of the chip inputs. The VIL and VIH values show that the inputs can be used for both 3.3V and 5V logic without any problem.

Figure-1, Logic level values for the DRV8833 chip

The figure-2 shows the schematic diagram of the circuit. The Vcc defines the motor supply voltage. Be careful about its maximum rating which is 11.8V. As you can consider, there is no need to implement protection diodes or other extra components.

Figure-2, Schematic diagram of the motor driver

The DRV8833 introduced a PWP 16-Pin HTSSOP package. For the schematic symbol, footprint and 3D model, I used the free SamacSys tools, because it is time-consuming to design the symbols and component libraries from scratch and by datasheets information.
I mainly use the Altium Designer as a CAD tool, therefore I used the Altium plugin (figure-3). Just select the PWP package which adds a ground PPAD connection under the chip. This package is thermally enhanced and probably it would increase the noise immunity of the circuit.

Figure-3, Select the PWP package in the plugin search results

The figure-4 shows the top layer and the figure-5 shows the bottom layer of the PCB board. The capacitor C3 has a 1206 package. The connector K1 is an 8-Pin 1mm pitch FPC connector, which you should use a flat ribbon cable to connect it to your main circuit.
The connector P1 is a Molex 2.54mm pitch connector which is used to connect your motors to the PCB. The figure-6 shows a 3D view of the assembled PCB board.

Figure-4, A top layer view of the PCB board

Figure-5, A bottom layer view of the PCB board

Figure-6, A 3D view of the assembled PCB board

The table-2 shows the PWM control of motor speed.

The nFault is an output active-low pin. It means in over-current or over-temperature conditions, the chip will pull it down. It is an OD (open-drain) I/O. Therefore, it is better that you pull it up with a resistor to your logic voltage (3.3V or 5V).

The NSleep is an input pin. The logic-high will activate the device and logic low (default) will bring the chip to the low power and sleep mode condition and resets all logic. This pin has been pulled-down internally.

Table-2, PWM control of motor speed


Schematic Symbol, Footprint and 3D model: ... tID=232778
Altium Plugin: ... structions