I want to build a line-following robot and I want to use Locked Anti-Phase Drive (where PWM toggles the motor back and forth between drive and brake, no 'coast'). For learning purposes, I'm building my own H-bridge. I know there are many H-bridge ICs there, but I want the learning experience.
My motors will have about 1A stall current (though I never plan to stall them) but if I want to slam them into reverse from forward, I believe that will result in up to 2A of current through the bridge. My robot will run on 4xAAA NiMH, so about 5.8V when fully charged. From what I understand, it's a hassle to drive FETs at this low voltage... and since my current requirements are low and efficiency is not a priority, I'd like to use BJTs as documented on this website:
( I am also looking at these websites for reference: http://modularcircuits.tantosonline.com/blog/articles/h-bridge-secrets/h-bridges-the-basics/ http://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/bjt-circuit.html http://www.talkingelectronics.com/projects/H-Bridge/H-Bridge-1.html )
My first question has to do with shoot-through. Not shoot-through from inappropriate inputs, but, briefly when toggling one side of the bridge from lower NPN to the upper PNP as is done in Locked Anti-Phase. Looking at the ZTX1049A/ZTX968 datasheets, looks like the PNP turns on in 120ns an the NPN turns off in 380ns so for at least 260ns we have something approximating a dead short, yes? What strategies are available (or preferred) to combat this? I.e., one Atmega output pin per transistor and time them conservatively vs. using a single Atmega output pin per side with additional components?
My second question has to do with base vs collector/emitter voltages. Since base voltage (5.0V or 3.3V) from the Atmega output pin will be lower than the NPN collector/emitter voltage, I fear I may not saturate the transistor (not turning fully ON) which is Bad. (See: http://letsmakerobots.com/node/9450 "you will need the voltage at the base to be at least 0.6V higher than the emmiter voltage. This is often a problem if you are driving motors at a higher voltage than the MPU" but it is unclear if this is referring to FET only or all transistors). Given the information on the datasheet, how do I make sure I fully saturate the transistor given the lower base voltage / higher collector/emitter voltage? And does a similar (opposite?) problem manifest on the PNP transistor?
EDIT: So, according to this: http://forum.arduino.cc//index.php?topic=109152.30 the voltage problem is indeed a problem and the solution is to add more transistors. So it will be a lot less hassle to stick a diode on the battery pack and run everything at the same 5V...