Sunday, March 25, 2007

Power Electronics: H Bridges

And an Acrobat crash eats my post...

I'm working on deciding on a power stage to build first. My current target is DC brush motors due to the ease of use and availability.

The original target for my needs was the OpenServo project. Advantages? Small, proven, prebuilt drive train, already has basic position feedback and a motor. Disadvantages? I'd be tossing a control board, people do melt the casings from time to time or destroy the geartrain due to constant high stresses (Hitec 645MG), and I might be able to better put $40 to $60 of hardware per servo to better use. The Openservo uses either small discrete MOSFETs or integrated high-low FETS (IRF7309 (PDF)). These are small enough that the IO pins of a MCU can provide enough charge to get them to toggle at fast enough rates (25mA for a PIC, 40mA for the Atmel MEGA 168). If each FET is controlled by its own IO pin, you have maximum control of the system.

As FETs get bigger, the capacitive charge needed to switch them also grows. What happens if you don't have enough current to switch fast enough? One option is to use a small transistor as a current booster. Another option is to use a dedicated FET driver. Either of these will work perfectly fine and can allow you to handle much larger FETs. But they take space. The dedicated driver is used industrially, while the transistor is used for smaller FETs or as isolators.

What other options are there out there? Quite a few, but often times, they're no where near as good. Although single package drive parts are available, they often use more space or are harder to place than pairs or single FET chips. I've looked at several chips:

Freescale MC33887: 5 Amp full bridge

Freescale MC33486: 10A high side FETs with drivers for low side FETs.

Freescale MC34921: Mother of all printer chips. An analog encoder input (?), two 5A DC motor drives, and a 2A DC motor/Stepper motor driver. Plus a 3.3V linear and a 5V linear OR switcher regulator set. One chip.

ST VNH3SP30-E: Big single chip solution. Takes pulse and direction and can do 10A free air or 25A continuous with cooling.

Some of these chips have current monitoring built in. Some of these chips have various protections built in. What's missing? Control. If I'm lucky enough to have an active input for each direction, I usually get Motor direction A, motor direction B, brake to ground, brake to high. Great, yes, but what happens if I want to freewheel? What happens if I want to do some odd test that needs to have only one input grounded? I'm probably asking too much.

A lot of these packages are big, but they also handle higher currents and I don't need to design a motor board from scratch. I'm working on a motor test board that will have... one of these chips on it and various feedback methods so I can test different servo control methods, if I can find the right motors.