Dual High Current Motor Driver - 3.3 volts?

Hi everyone,

In addition to the mini-sumo I am building, I am also going to be rebuilding Seeker 3, my 3kg autonomous sumo.


I want to use a heftier h-bridge with this, since I am going to be overpowering the motors to 18 volts. I will be using an ARM9 board (the Hammer) as the CPU, which has two PWM channels that run at 3.3 volts.


I looked at the specs for the chip (9 amp version), and it looks like the voltage swing for PWM input goes to 3.25 volts. Can I feed 3.3 into the board as Vcc, or do I need to feed in 5 volts? I will have 5 volts available, so that won’t be a problem. If Vcc is at 5 volts, can I do PWM using a 3.3 volt signal?

As well, the direction pins will also be 3.3 volt level…



If you take a look at the carrier board’s schematic on the bottom of the project page, you can see that the board’s Vcc input is used only to pull up the motor drivers’ enable lines. The VNH2 and VNH3 data sheets list the minimum high voltage for the enable, input, and PWM pins at 3.25 V, so while it will theoretically work off of 3.3 V signals, you’d be right at the limit of what it can reliably handle (and the uncertainty of your voltage regulator is probably greater than this 50 mV buffer).

By the way, while the VNH3 doesn’t have a over-voltage shutoff like the VNH2, it has shoot-through issues that make it impractical with more than a few hundred Hz (depending on how much current you’re actually drawing). The VNH2 is the better chip, but we can’t guarantee that its overvoltage shutoff won’t kick in once you exceed 16 V.

So, what it comes down to is that we recommend neither chip at 18 V and we recommend 5 V for the logic levels.

- Ben

Hi Ben,

Thanks for the answer.

Do you have any motor drivers than can handle 3 amps at 18 volts, being driven by 3.3 volts?

- Jon

If you have 5V free to run the motor controller, there are a couple of simple circuits you can build to use your 3.3V signal as the PWM source. They all involve pulling up the data line, which as Ben noted, is already done for you on the Dual High-Current Motor driver.

Check out the SparkFun Sensor Interfacing Tutorial. Of course, these are for lowering a signal voltage, you’ll need to pull the data line up to 5V on the other side of whatever protection component you use.

I’m not sure at what frequency this approach breaks down, but I’ve used one of these methods for a 400 KHz I2C connection, and it worked great!


Our MC33887 carriers can handle 3 A at 18 V if you use a heat sink, but the control signal highs must be at least 3.5 V. I don’t think we have anything that meets all three of your criteria well.

- Ben

You could always use transistors to pump up the output voltage of your MCU, but that’s no fun. Instead, you could possibly (I’m not going to say probably without a second opinion) get away with this simple kludge:

Looking at Page 9 of the MC33887 data sheet, high input needs to be at least 3.5V, and it’s low input must be less than 1.4V. Ideally, this divider circuit would output a low of 1.16V and a high of 3.7V, putting you at least 0.2V on the happy side. The circuit will provide plenty of current to trigger the motor controller, and your ARM chip should be fine provided it can source 1-2 mA while acting as an output.

Even in a worst case scenario using 5% accurate resistors, you would still be at least 0.15V in the green, but there are other sources of error as well (Ben mentioned voltage regulator uncertainty) so you’ll probably want to splurge the extra few cents for 1% resistors.