Let's Make Robots!

A better motor driver?

Provides a better alternative to the standard motor driver chips

For my first post here I've decided to present a tip rather than a robot build. While working on a my first robot I became frustrated with the selection of motor drivers available.  I wanted to power my robot with either 4.7 V NIMH battery pack or a 3.7V lipo. Also I had to be able to handle the 1.8 amp stall current that the motors on a Mr. Basic can pull. I looked at the L293 driver and found that it can't handle the stall current. The L298 driver could handle the stall current but the voltage drops across the outputs were too high for the batteries I was intending to use. I scoured the net looking for a motor driver that I could handle both my criteria. I found that whatever came close to my specifications was packaged as a surface mount with teeny tiny pins that impossible for me solder. Finally I stumbled onto a driver that was perfect - the BD6212 from Rohm. So I'd like to share some of the specs and pro/cons of this chip to encourage other robot builders out there to use this chip.

 Pros:

1. Low supply voltage - supply range 3v to 5.5v; perfect for nimh or lipo.
2. High current(relatively)- can handle up to 2amps; just right for the Mr. Basic’s mabuchi motors.
3. Built in overcurrent protection; not that you would ever try exceed current ratings, but it's nice to have so you don't have to buy a new motor driver every time you robot hits the wall.
4. Low voltage drop across the outputs: this chip uses mosfets with an RDSon of 1ohm. My measurements while running a Mabuchi motor installed in the Mr. Basic showed a 280mVdrop. A lot better than the multi volt drop across the bipolars in the L298.
5. Compatible logic - driving inputs are similar to the L298 and L293. Programming for the micro-controller would require minimal alterations to existing code.
6. This IC is readily available from Mouser or Digikey
Cons:

1. This IC is only available in a surface mount package - the HRP7 package. Fortunately this package is equivalent to the TO-263-7/7 lead ddpak packages and a surface mount to SIP adapter is available. I don't find this too much of a con because the lead pitch (.05 inch) is big enough to easily solder to the adapter board
2. To pwm this chip for speed control one of the direction pins must be the input for the pwm signal and the signal has to be 20khz to 100khz to function. This can be mitigated by using the Vref pin on the chip, but this input only takes analog voltages to control speed, not pwm. Using an RC integrator on your Micro-controller to Vref would be a simple workaround.
3 Since this IC only one channel, two will have to be purchased for a two motor design like Mr. Basic. In addition two adapter boards will have to be purchased. At mouser the bd6212 is currently $3.25 per and the adapter boards cost $2.99.

Now that I'm finished pimping this chip (No I'm not a Rohm sales rep) let me show you how I implemented this IC. To make this chip work on a breadboard I needed find a TO-263-7/7 lead ddpak pcb adapter. Searching the web I found an ideal solution. The online vendor Proto-Advantage sells an adapter to fit this chip. The part number is SIPN07-1. The website is http://www.proto-advantage.com

Here's some pics:

The bd6212 and Adapter board

 

 

.

Board with bd6212 and right angle header soldered on.

 

 

Board installed on arduino proto shield mounted to mr.basic.

Hopefully this tip will inspire others here to experiment with this chip.

 

Comment viewing options

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

Sorry, why all the hassle if you can buy a brushed ESC for 10 USD supplying 20Amps ?

Nice tip. Are you driving it with an Arduino? Care to post your code?

I see what you mean about PWM with this chip. The required frequency for PWM is not what you might normally get from an Arduino, for example. There are some tutorials here and here that discuss adjusting the frequency for Arduino's analogWrite command. However, they have implications on other timer functions, so this approach is not for the faint of heart. However, if you do tackle this monster, it would allow you to work with PWM on this driver chip and not have to worry about the goofy Vref method of PWM.

BTW, the chip is also available in a 2-channel configuration, but then the carrier you selected wouldn't work. Maybe you can find one that supports BD6217 and get a 2-channel motor driver on one board.

 

Curious if you could stack two of these bd6212 chips to max out at 4 amps. I'm always burning up small h-bridges ICs.