Let's Make Robots!

Alternate 3 pin dual motor drive?

I know enough to be dangerous to components.

I had thought about using 2 4427 MOSFET drivers and tying one input from each driver together to a single uC pin. I could then control fwd/rev with two digital pins and put a pwm signal on the shared pin. The 4427 data sheet says the input current is 10uA per pin and PIC pins are supposed to be able to source 25mA max. Is there a flaw in my thinking?

As far as a schematic, I imagine many of you have seen what David Cook has posted on his RobotRoom site.

As an aside, Mouser doesn't carry much in the way of 4427s, but, they are getting ready to carry a similar product w/ a 4A max current load vs the 1.5A of the 442x line. It is the IXDx604 series of MOSFET drivers.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I have done something similar with my Dual Y-Bridge design, using discrete components to allow motor control with only three microcontroller outputs. I used fairly low current devices as my motors where small, but you could scale up if you needed to.

The Dual Y-Bridge allows you to select five (safe) modes of operation:

  • Both motors off
  • Both motors reverse
  • Motor1 forward, Motor2 off
  • Motor1 off, Motor2 forward
  • Both motors forward

My design would allow you to use PWM control individually for each motor while in forward, although I didn't use PWM in my implementation.

Your idea seems to have merit. If the input pins of the 4427 are fairly high impedence, then there shouldn't be an issue with tying two of them together, I think. Because you will have the same PWM value for both motors, your limitiations would be:

  • You cannot match your two motor speeds to drive straight. Often, motors run at slightly different speeds, and PWM is used in sometimes to correct for this.
  • You cannot have one motor stop and one motor run, or have one motor intentionally turn slower in order to make a gentle turn.

However, every design is a trade-off, and those limitiations may not be a problem for your application.

Good luck. I hope to see your results posted.

After looking at the datasheet and not finding anything labeled input impedance, I am left wondering how to find the answer. Ohms Law would say R = E/I; R = 5 / .00001 = 500K ohms. Am I barking up the right tree?

BTW, thanks for the positive reinforcement and I should be able to shut the motors off, if all pins are low then the motors should stop, coast maybe, but stop they will.

Sorry, you misunderstood what I was trying to say about stopping. I know you can stop both motors. However, you cannot stop just one motor, which is sometimes nice to do.

Again, this is a limitation that may be fine for your needs.

About the impedance, I wouldn't be too worried about it. A quick look at the MAX4427 datasheet shows 1.8mA current on the inputs with logical 1 and 200uA with logic 0. So that should be fine.

Are you trying to do something snazzy, or are you just trying to conserve pins?

If you're doing the latter, you can simply hack a servo to pull out the control board, hook the control wire to your uC and the outputs either directly to your motors, if they're small, or to a motor driver.

I think Ignoblegnome did something like this somehwere, and I'm in the middle of doing it too, it works very well, gives you direction and speed control for the motors independently via one pin per motor (i.e. you CAN stop one motor but keep the other running, or have them operating in different directions, at different speeds, etc. etc. etc.).


I did do a cursory search before making the original post as I didn't want to ask something that someone else had already brought up.  I saw and read through ignoblegnome's post about his 3 pin control. 

emuller, to answer your question, I am toying with the idea of trying to build a rather small 'bot. To that end and because I don't want to try using surface mount chips, I am considering the use of an 8 pin PIC.