2-pin H-bridge with no quiescent current

I am making a Li-Ion battery powered which controls a tiny 3V pager motor. Thanks to septillion, I have almost everything figured out.

I need to both control the motor’s speed(PWM) and direction(H-bridge). L293D although a bit overkill was my choice. But since the motor was going to be stationary 90% of the time, the quiescent current is waaay too high(16-28mA according to datasheet) even when enable pins are low.

So like hundred others, I decided to make my own H-bridge from PN2222 and PN2907 in LTSpice and joined the PNP and NPN inputs on each side, so they will never cause a short:

I can now use only 2 pins(in1 and in2) to control the motor direction and also PWM either of them to control speed. The downside is that when both are 0 or both are 1, they enter braking mode, which means the the motor unnecessarily brake during PWM’s off cycle. Also, 2 transistors will always have base-emitter forward biased and so a constant ~40mA quiescent current.

Another option I came up with is:

Since both in1 and in2 in previous circuit will be complementary(else it is in braking mode), I used a NPN transistor(Q6) as a NOT gate to invert in1 and fed that into in2. So, if 0 on in moves it CW, 1 will move it CCW. To control speed and put motor into coasting(or off) state, there is another NPN transistor(Q5) that controls the path to ground, controlled by en pin. Sending PWM on it will control speed without braking. Setting en and in to 0 shuts it all off with quiescent of a few nA.

So I can control a motor’s speed and direction with 2 pins, perfect PWM motor efficiency and almost no quiescent current! I only lose the braking option(which I don’t need) and require 2 NPNs and 3 resistors extra.
This seems too good to be true, except the resistor R7 which creates load/voltage drop for Q6 has a magic Goldilocks value of 100ohms, which causes around 30mA to be wasted through it. If I put 1K to reduce current, I somehow get transistors Q2 and Q4 in ON state which causes a short circuit. Can anyone help me understand why this is happening?

Your pictures aren't showing up for me.

I would expect to use MOSFETs for low-current. The shoot-through protection is more complex than simply inverting the signal - the transistor tends to turn off much slower than the next one turns on.

Have you had any luck finding dedicated chips for that exact function? I should think that every major manufacturer would produce their own version and they would be very competitive on quiescent current. Of course it will be surface-mount only.

But with small BJT's you can limit the size of current spikes by using a large enough base resistor - at the expense of proper saturation when on (which is probably not an issue for small pager motors). This allows shoot-through to be tolerated (MOSFETs would have a much worse time with shoot-through).

If you want a simple low current H-bridge you can use two low-side MOSFET gate drivers in a bridge configuration (plus free-wheel diodes).

They have no problem with fast PWM, and my favorite, the MIC4422 has 90uA quiescent current with input LOW.

Oops, apologies for the broken link :-[ . I've uploaded them to imgur and fixed the links. Also attached them to the original post, just in case.

@MorganS, there are a lot of good options out there but I have difficulty finding most in India. I'll try looking in the electronics market today for a complete solution. Hopefully someone will have a Pololu driver ripoff atleast.

@MarkT, MIC4422 looks good but availability is a big problem for me. That's why I tried making my own H-bridge.

Those 1k base resistors are rather large - you want to actually saturate the transistors, so they don’t
overheat. 150 ohms would be a better choice, then you have 30mA base current which should support
upto about 0.5A in the load.

For proper saturation base current should be about 5% to 10% of the load current in most BJTs. The
DC current gain is not relevant to saturation BTW, saturation acts differently.

Right you are. But 150 ohms will give (3.3 - 0.65) / 150 = 17.6mA on the base. Which is still fine as pager motor needs 85mA.

I’ve reduced the base resistors to 100ohms which will pass 26mA through base, quite near to the 30mA requirement you stated for saturation.

But the short still occurs. If anything, higher values should have prevented that. Any ideas why?

30mA base current for 0.5A output. For 85mA load, 5mA base current is fine.

The short is always going to occur, you have shoot-through. so long as the current is sensibly limited you can live with it, but normally you arrange for dead-time. Note that BJTs can take 5us or so to switch off from saturation, so you would normally arrange for dead-time.

With big high power H-bridges shoot-through is a cause of instance device failure, and is rigorously avoided.

I'm making my own hi power (10A) H bridge - I'm controlling the 4 FET's from 4 digital outputs - that way I can stop shoot through by sequencing the transistors and switch them all off before reversing the direction or stopping the motor . Don't forget the flyback diodes across each transistor

Thanks everyone for the help. Seems like using 2 pins is a bit risky during transition as you all pointed out. I have no possibility of using 4 pins. So I went with Pololu DRV8838 instead. It also has only 2 pin requirement(Phase and Enable) so does exactly what I was trying to do. I'd still prefer making my own H-Bridge just to learn a ton of stuff but for the 2 pin model, it looks a bit of a risk.