Searching \ for '[EE] Design Challenge - A better H Bridge' in subject line. ()
Help us get a faster server
FAQ page: massmind.org/techref/index.htm?key=design+challenge
Search entire site for: 'Design Challenge - A better H Bridge'.

Exact match. Not showing close matches.
'[EE] Design Challenge - A better H Bridge'
2005\06\29@091215 by

part 1 5146 bytes content-type:text/plain; (decoded 7bit)

Sumimasen

Here's a challenge to design a better H Bridge in a very specific
application.
It would however be applicable in many hobbyist applications where a
small motor is required to be run from a nominally 6 volt battery.

I've already redesigned it but YOUR design may teach me something and
my design may teach you something. My (or a_ design will get used in
due course but there's no hurry so your ideas may contribute.

The main aim of posting this is as a thinking/learning/discussing
exercise as all may learn something. If I adopt any ideas from your
submissions I'll buy you a cup of green tea if I'm ever in your city -
or, just possibly, dinner, if your idea makes a lot of difference. (I
don't travel internationally a vast amount though).

The attached diagram is exceeding grotty but should suffice.

The bridge is used to drive a small geared DC motor in an appliance.
The motor runs from batteries for from about 1 second to 20 seconds at
a time (may be over 30 seconds if the batteries are very flat). There
is very little extra load on the motor apart from the gearing. Actual
application is irrelevant. At present motor draws about 250 mA in
operation (including 22R parallel resistor - see below) with 5v supply
(presently varies with battery voltage). At 4v battery loaded it is
VERY sluggish. At 6v or more battery it is frenetic. Speed is not
highly relevant but consistency of speed would be good. Ability to
hold current at a sensible minimum for all battery voltages would be
good. An actual "across-motor" voltage of 3 volts is adequate for the
purpose. A 22R resistor is connected across the motor. This is
allegedly to slug the motor so it stops more rapidly. While it may not
be necessary, and there are more power efficient ways of doing, this
assume the resistor stays there - don't attempt to make a resistor
switching circuit. (I have but it's of arguable value). Battery life
is not a major factor as the drain from other sources swamps the power
used by the occasionally operating motor but power savings don't hurt.

As batteries (esp carbon zinc) get flat their internal impedance rises
markedly. For a battery of 4 x C cells the open circuit voltage may be
5.5 volt but at 250 mA odd drain the voltage may fall to 4 volts or
so. At the  lower limit the battery will produce under 3.5 on load but
motor operation at 4 volts loaded is OK.

A switching converter ("Battery Booster" / BB) provides a constant 5
volt supply to operate the associated control electronics and
processor. The logic signals to drive the bridge are 0v off / 5v run

Requirement:

- Operates a small geared DC motor from 4 C cells -
could be any of Carbon-Zinc, Le Clanche or Alkaline.

MUST be 4 cells. MUST be of type specified

- Try to get relatively constant motor speed.

- Try to limit current at higher battery voltages.

- Motor off current MUST be about zero.
A few tens of uA if you must, but shouldn't be needed.
Present circuit draws about 0 uA when motor not running.

- Minimise component count

- Minimise cost aggressively but spend money if required.
Propose alternatives where there is a performance /price tradeoff.

- Use existing transistor types that work in present bridge.

Main bridge transistors are 2SD0592A NPN , 2SB0621A PNP
TO92, 800 mA, Beta = 70 at motor current levels (probably more but be
safe), 1A max, 750 mW dissipation.
A very nice transistor pair little seen in NZ.
Jinx would like these.
More specs on request if needed.

Drive NPN's are "glue" types.

======================================

PRESENT CIRCUIT:

Inputs low, both upper bridge NPNs on due to 470r base to V+ pullups.
No bridge current overall.

Left hand input high (5v)
LH driver on pulls LH bridge pair bases low. LH upper NPN turns off.
LH lower PNP turns on as base is grounded.
Motor runs.

Runs other way for RH drive high, LH drive off.

Both drives high still OK as both uppers off BUT this never happens.
______________

Current Design's problems.

This design would  be fine if the supply was always constant and
As battery voltage drops it dies big time.
Both drivers (hi and low) are emitter followers.
The upper driver needs about 1v across the 470R base resistor to get
enough base current to support the motor current. Both drivers need to
have emitter a Vbe away from the rails.

So: Lower driver has emitter at +Vbe above ground = 0.7-0.8v range.
Upper driver has emitter Vrb+Vbe below upper rail = about 1.7 - 1.8v.
Total drop across drivers = ~~ 2.5v. At 6v that's fine.
At 4v that leaves ~~= 1.5v for motor less any transistor saturation
voltages, which is pathetic.

At 6V or more the motor races rather.

SOLUTION

I won't tell you what I've tried yet to allow max freedom of thought.
Expense of solution varies with desired constancy of drive.
Much better low battery operation is possible.

Remember that input drive is 5v but main supply is 4v-6v or beyond in
either direction.

RM

part 2 2932 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> -----Original Message-----
> From: piclist-bouncesMIT.EDU [piclist-bouncesMIT.EDU]On Behalf
> Of Russell McMahon

> Here's a challenge to design a better H Bridge in a very specific
> application.
> It would however be applicable in many hobbyist applications where a

>
> The attached diagram is exceeding grotty but should suffice.
>

Definitions of  grotty on the Web:

(adj) grotty (very unpleasant or offensive ) "a grotty little play"
http://www.cogsci.princeton.edu/cgi-bin/webwn2.1

part 1 1203 bytes content-type:text/plain; (decoded quoted-printable)

This is a simple design I've used before.  The resistor count is quite high as I tend to play safe and always have pullups/pulldowns on transistor bases to ensure they are totally switched off, however I have seen this implemented with only two resistors in total; limiting current to the outer NPN drivers base.

It's not a particularly clever circuit, but it does use the main transistor in a common emitter configuration to ensure the lowest Vce drop.

Regards

Mike

=======================================================================
This e-mail is intended for the person it is addressed to only. The
information contained in it may be confidential and/or protected by
law. If you are not the intended recipient of this message, you must
not make any use of this information, or copy or show it to any
received this e-mail, and return the original to us. Any use,
forwarding, printing or copying of this message is strictly prohibited.
No part of this message can be considered a request for goods or
services.
=======================================================================

part 2 5000 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> Here's a challenge to design a better H Bridge in a very specific
> application.

suggestions that you have apparently already dismissed:
- use FETs
- use a ready-made H-brdige driver (the ones that are meant for
battery-operated cassette palyers would be a good match)
- use (reed) relay(s)

Staying close to your original circuit: derive the base current from
your 5V, maybe from the max of your 5V and the raw battery voltage (two
diodes).

Could you use a H bridge with NPN's for the lower side, resistors for
the high side? Maybe replace the resistors with a resistor/polyfuse in
series?

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: http://www.voti.nl/hvu

2005\06\29@171559 by
> I've already redesigned it but YOUR design may teach me something and
> my design may teach you something. My (or a_ design will get used in
> due course but there's no hurry so your ideas may contribute....

Hey Russell, cool circuit. In the interests of learning something, I was
wondering what limits the base current in the PNP low side driver in your
circuit? Normally I would expect to see a resistor there but maybe something
else makes this unnecessary?

--
Brent Brown, Electronic Design Solutions
16 English Street, Hamilton 2001, New Zealand
Ph: +64 7 849 0069
Fax: +64 7 849 0071
Cell/txt: 027 433 4069
eMail:  brent.brownclear.net.nz

part 1 1760 bytes content-type:text/plain; (decoded 7bit)

> This is a simple design I've used before.

An excellent start at improving the original circy=uit.

> The resistor count is quite high as I tend to play safe and always
> have pullups/pulldowns on transistor bases to ensure they are
> totally switched off,
/>

Usually wise. Here R2 & R3 can be eliminated if drive is active high
or low (as a PIC pin is) as R4 and R5 deal with leakage currents. I'd
say that 4 resistors was the sensible minimum except in special cases
(R4, R5, R9, R10)

This is similar to my redesigned circuit but I have added additional
complexity to better meet some of the desied attributes. eg your
circuit, which is fine as a basic driver, varies drive substantially
with applied V+ (here Vcc). Even at a fixed Vcc it is always full on
when driving meaning motor woyld have to be matched to supply. In many
cases this is fine.

> however I have seen this implemented with only two resistors in
> total; limiting current to the outer NPN drivers base.
/>

That would mean an undefinedly high current through where R9 & R10 now
are. Not nice but would work for certain range of supply voltages.

> It's not a particularly clever circuit, but it does use the main
> transistor in a common emitter configuration to ensure the lowest
> Vce drop.
/>

It is cleverer than it could be. By having Q5 driving bases of Q2 and
Q4 at once it improves the current gain of drive to upper and lower
stages but does so with a single drive transistor. The 'cost" is that
input drive needs to be 2 x Vbe plus drop across R5. OK at all but the
lowest of drive voltages. Fine where you have 5v drive as I have.

A good first candidate.

RM

part 2 5000 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> suggestions that you have apparently already dismissed:

Going in the right direction.

Ah - yes, there were additional mentally held but unspecified
conditions which I wasn't aware I hadn't discussed. *If reasonably
possible* I'd like to use the components and technology in use in the
original. This change faces a very very severe does of "not invented
here" plus culture shock. It has to be "sold" to an Asian manufacturer
who is not necessarily unhappy with what they hace now, even though it
is technically not up to the requirement. If the circuit looks largely
like a "rearrangement" it helps. In fact, in its best performance form
my redesign introduced two of a new and different part, which is
acceptable, but it would be nice if reasonably possible to not change
rechnology too much.

Availability is also an issue. Parts I spec need to be available
readily in Taiwan. There is avast range of parts available there but I
have found that finding out what is stocked as a common item is far
far harder than I'd hope. Even parts which are notionally available
may not be on the preferred list. So, non standard parts are fine if
essential, but best avoided if possible.

> - use FETs

Potentially an excellent idea. Top drivers would need to be PFET to
prevent need for above-rail hi side drive voltages. Driver drops
probably don't want to be more than say 0.2v each so at say 250 mA
Rdson would need to be less than R= V/I = 0.2/0.25 = 0.8 ohm.  Small
PFETS tend to be rather higher than this. "Gruntier" ones meet this
spec with great ease but price rises out of the "glue" area. I'm sure
that a suitable part at a good price could be found. Eases drive
issues.

> - use a ready-made H-brdige driver (the ones that are meant for
> battery-operated cassette palyers would be a good match)

Possibly. Price would need to be checked - should be OK. Current
limiting would be desirable.

> - use (reed) relay(s)

Excellent performance wise.
Price liable to be an issue.
Reliability may or may not be.

> Staying close to your original circuit: derive the base current from
> your 5V, maybe from the max of your 5V and the raw battery voltage
> (two
> diodes).

There's hints there re what I'm doing so far.

> Could you use a H bridge with NPN's for the lower side, resistors
> for
> the high side?

Good thought but not really I think due to widish supply voltage
range. Also still need to look at current control.

> Maybe replace the resistors with a resistor/polyfuse in series?

Has potential.
Price?
Also operate times MAY be 20s odd or as short as under 1 second.
Still a possibility.
Now, if you could buy an OTS cheap available 2 terminal constant
current limiter rated art around 250 mA ...

RM

part 1 2735 bytes content-type:text/plain; (decoded 7bit)

> Hey Russell, cool circuit. In the interests of learning something, I
> was
> wondering what limits the base current in the PNP low side driver in
> your
> circuit? Normally I would expect to see a resistor there but maybe
> something
> else makes this unnecessary?

Reality :-).

I didn't design the original circuit.
It's a clever and retrospectively obvious idea that provides maximum
possible drive to the bottom drivers when used as emitter followers
(which they are). It relies on the base voltage/collector current
curve being a steeply rising exponential curve rather than a step
function.

When  eg left hand lower driver base is grounded it is connected to
its collector. Transistor is turned on and emitter pulls towards
ground. As emitter voltage approaches a Vbe drop across ground the
transistor starts to lose drive to maintain motor current through it.
(ie if it turned on so hard that Vce = 0.5v then the resultant 0.5
volt of Vbe would be too small to maintain current flow, so it will
never turn on that hard). It settles at a point where the provided Vbe
is just enough to supply base current to support the motor current at
this Vce drop. If motor current increases the Vce drop will increase,
thereby increasing Vbe (== Vce almost) and providing more drive and
the transistor will turn on harder and decrease Vce and thereby Vbe
until the transistor is again on a point on it operating curve.

If the transistor had infinite beta it would turn fully on so Vce =
Vbe = 0.

The top driver works ALMOST the same way EXCEPT that it has to have a
resistor base to V+ so the base can be pulled down to turn it off. You
COULD provide a high side PNP drive across C-B of the top driver that
shorts its base high when it is turned on. This would improve its

The low side driver has a 1 Vbe drop across the transistor when
operating.

The high side driver is worse. It has the drop across the top left
resistor (here 470R) plus 1 x Vbe. For a 250 mA motor current and beta
of about 80 the upper driver needs 3 mA of base current. For this to
be provided by the 47 r resistor the drop across it must be about 470
x 0.003 =  1.41V !!!! The emitter must be below this by 1 x Vbe of
about 0.7v (maybe 0.8 at this current) so transistor drop is say 2.1V.
That's terrible in a 4 cell operated circuit. The actual beta is over
80 but even at say 160 that's 0.7+0.7+ =~1.5v across the transistor.
Add the lower driver drop of 0.7v and that's 2.2v+ combined drop. At
higher battery voltages this isn't a problem.

It's interesting how much there can be to think of in such a simple
circuit :-)

RM

part 2 2932 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

part 1 3291 bytes content-type:text/plain; charset=windows-1252; format=flowed (decoded 7bit)

Have you looked at th L6202/3 devices from ST.

Russell McMahon wrote:

{Quote hidden}

part 2 433 bytes content-type:text/x-vcard; charset=utf-8; name=nino.benci.vcf
(decoded 7bit)

begin:vcard
fn:Antonio L. Benci
n:Benci;Antonio L.
org:Monash University;School of Physics & Materials Engineering
email;internet:nino.bencispme.monash.edu.au
title:Professional Officer
tel;work:+613 9905 3649
tel;fax:+613 9905 3637
tel;cell:+613414924833
x-mozilla-html:FALSE
url:http://www.spme.monash.edu.au
version:2.1
end:vcard

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> > Normally I would expect to see a resistor
> > there but maybe something else makes this unnecessary?
> <snip>
>
> It's interesting how much there can be to think of in such a simple
> circuit :-)
>

Absolutely. Thanks for the explanation...I've learned something now, which is
a good enough reason to stop work for the day! Apologies to those who have
to keep on working :-)

--
Brent Brown, Electronic Design Solutions
16 English Street, Hamilton 2001, New Zealand
Ph: +64 7 849 0069
Fax: +64 7 849 0071
Cell/txt: 027 433 4069
eMail:  brent.brownclear.net.nz

> Have you looked at the L6202/3 devices from ST.

Unfortunately the spec

- Minimise cost aggressively but spend money if required.

tends to be violated by most if not all bridge ICs that I'm aware of.

Parts cost of the existing design is close to zero. Insertion cost is
modest. Board area costs little as long as the board is not fully
populated.

Using Digikey as a relative guide, Zetex make the eg ZHB6718

http://www.zetex.com/3.0/pdf/ZHB6718.pdf

which costs maybe \$US1 in volume. But all it is is 4 transistors in
bridge configuration with no level translators
For my purpose it replaces 4 transistors and adds almost \$US1 to the
cost.

Real" bridges with level translation appear to cost \$US2 or more in
volumes. Less in Taiwan I'm sure - but still too dear.

My current best solution is similar to the simplest result submitted
so far but with a few extra resistors and diodes to add current
limiting by turning two of the drivers into pseudo constant current
sources/sinks. A dearer version uses dual LM385's to get much better
constant current during drive.
current sources uses up some of the available headroom but the battery
is still much better used at low voltages. Another possibility is to
get the voltage reference with a stiffish divider off the 5v drive
signal but as there are 2 (variable) Vbe drops between the reference
and the desired fixed voltage point it's not as constant a current as
one may wish.

RM

> Unfortunately the spec
>
>         - Minimise cost aggressively but spend money if required.
>
> tends to be violated by most if not all bridge ICs that I'm aware of.

Cheap chips do exist, like \$ 0.82 :
http://www.voti.nl/shop/p/IC-BA6418N-SIP.html. But this one has a much
too high high-side voltage drop. Unfortunatly the datasheet link has
died, I will try to find antother one.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: http://www.voti.nl/hvu

Russell McMahon wrote:

{Quote hidden}

Could you use a small NMOS on the bottom [2N7000?] and a 2 transistor
current source on the top sides? 6 transistors + 6 resistors? I'm no pro
- just a thought.

--
Martin K
http://wwia.org/
> Russell McMahon wrote:
>
>>> - use FETs
>>
>>
>> Potentially an excellent idea. Top drivers would need to be PFET to
>> prevent need for above-rail hi side drive voltages. Driver drops
>> probably don't want to be more than say 0.2v each so at say 250 mA
>> Rdson would need to be less than R= V/I = 0.2/0.25 = 0.8 ohm.
>> Small PFETS tend to be rather higher than this. "Gruntier" ones
>> meet this spec with great ease but price rises out of the "glue"
>> area. I'm sure that a suitable part at a good price could be found.
>> Eases drive issues.
>>
>
> Could you use a small NMOS on the bottom [2N7000?] and a 2
> transistor current source on the top sides? 6 transistors + 6
> resistors? I'm no pro - just a thought.

All good thoughts.

FETs need to have an advantage to be useful.
I tend to lean towards the use of FETs rather than bipolars in general
purpose switching applications unless there are compelling reasons to
do otherwise. In this case I'm not sue that FETs add greatly to the
design aims.

A great gain with FETs usually in "trivial" applications is the low
gate drive energy, allowing a processor gate to easily switch currents
of many amps. In this case the main switch handles say 300 mA and with
a beta of 50 (actually quite a lot more) needs 6 mA base current. This
6 mA is provided by a transistor driver (both in the original cct and
in the modified one which has been suggested which is similar to what
I am doing (so far). If the driver has a beta of 100 (very easily
exceeded) it needs 60 uA base drive to support 6 mA Ic - no problem at
all for any processor.

As we are at that stage drawing 300 mA odd motor current. and battery
energy is not utterly important (as noted in original spec) the extra
6 mA is not crucial.

The transistor saturation voltage SHOULD be somewhere around 0.2
volts. At 300 mA that's equivalent to an on resistance of V/i =
0.2/0.300 =~ 0.6 ohm. This is the maximum Rdson that a FET would have
to have to substitute for the transistor without a greater on voltage
drop. The 2N7000 has an Rdson in the 1.2 to 5 ohm range (!!!)
depending on various conditions and device variations. There are of
course many FETs that would meet the Rdson spec but they will tend to
be either more expensive or in a TO220 package. A P Channel FET is
generally worse per \$ all else being equal.

A small FET will tend to be dearer than a glue bipolar of the same
current ratings, especially in Asia where small bipolars are used in
vast quantities in domestic equipment. Without a compelling reason for
use the bipolar will probably end up the best choice, alas.

You mention using 2 transistors in a bipolar high side current source.
That's a better idea than trying to do it with FETs. Making a cheap
and simple current source with a FET is harder than with a bipolar.
With a bipolar the base emitter Vbe drop is *relatively* fixed and
defined, so that a fixed voltage on the base produces a reasonably
fixed emitter voltage.  With a FET Vgs varies greatly between FETS and
a fixed gate voltage will not easily guarantee the source voltage. For
current source use you have to monitor actual source voltage. This
could be done in a simple circuit with eg a  long tailed pair but it
adds complexity and you may need one for each side. Adding a single
current limiter in series with the H bridge solves this but takes away

A FET can be made into a reasonableish current source simply by
adjusting Vgs BUT parameter spread is such that you'd probably have to
trim each one AND would have to control the Vgs driving voltage to
ensure constancy.

I tried reasonably hard to get a moderately constant current source
across variations of battery voltage and temperature while using a
minimum of components. What I have ended up with is a low side
H-bridge transistor and current source combined and have used the
relatively constant voltage from the processor as the reference
voltage for the current source. Using LM385 precision references
per H bridge half. Upper drivers are simple switches.

Most transistor / diode / zener based references or current sources
are horribly temperature sensitive and hardish to temperature
compensate cheaply / easily. Using the processor pin voltage has the
advantage of making use of the Vdd voltage regulators relatively
stable performance at zero extra cost.

I haven't yet fully characterised the circuit I've come up with but it
(so far) uses just a few extra resistors than the original.
Temperature dependence is likely to be its greatest challenge.

More anon.

Keep those cards and letters coming. The more ideas the better.

Russell McMahon

Hi Russell,

I couldn't tell if you were asking for an H-bridge design because you need
a better H-bridge, or just wanted a better design. Because for <400
milliamps I tend to use the BA6208 (Rohm) which I last paid \$0.38 each.

Of course then the thrill of design is lost.

Cheers,

Bob

> I couldn't tell if you were asking for an H-bridge design because
> you need
> a better H-bridge, or just wanted a better design.

I see the two as tightly linked.
Ain is better performance on the specified battery supply.

>From original "spec"

At 4v battery loaded it is VERY sluggish.
At 6v or more battery it is frenetic. Speed is not
highly relevant but consistency of speed would be good.
Ability to hold current at a sensible minimum for all
battery voltages would be good. An actual "across-motor"
voltage of 3 volts is adequate for the purpose.

A "better" design / H Bridge will allow the motor to run at constant
voltage and speed across a wide range of battery conditions AND cost
little more than at present or, ideally less.

> Because for <400
> milliamps I tend to use the BA6208 (Rohm) which I last paid \$0.38
> each.

Good price. More than the current design.
Potentially bearable if it did the job OK.

I'm sure that there are ICs that do the required job OK. Whether they
are available at the price required is another matter.
The BA6208 is a nice device but alas doesn't meet my spec. It does
have some good features.
Vsat is 1.6v which is too high. Output current is too low at 200 mA
max operating (althougfh abs max is 400 mA)
Standby current is 0.4 mA but spec says it MUST be about zero so it
would need an extra series switch to turn it off.
Minimum power supply operating is 4.5v :-(.

> Of course then the thrill of design is lost.

There's always that. But if someone can point out a device that meets
all the specs at an excellent price compared to the existing solution
it would be very welcome.

RM

Russel,

Why not parallel a boat load of opposing 74AC04's or some other
equivalent beefy driver? Standby current is small and there's an
The only limitation that I see is that some kind of protection against
flyback spikes and short-circuits *might* be needed. A single hex drive
costs ~0.25USD in small quantities and ~0.10USD in 1000 piece quantities.

Scott
part 1 261 bytes content-type:text/plain; charset="iso-8859-1" (unknown type 8bit not decoded)

no freewheel diodes, I assume you are not doing high speed PWM, so this
design also has no diodes. Use jellybean parts.

Cheers,

Bob

part 2 1568 bytes content-type:image/gif; name="hb.gif" (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> Why not parallel a boat load of opposing 74AC04's or some other
> equivalent beefy driver? Standby current is small and there's an
> it. The only limitation that I see is that some kind of protection
> against flyback spikes and short-circuits *might* be needed. A
> single hex drive costs ~0.25USD in small quantities and ~0.10USD in
> 1000 piece quantities.

Another potentially useful idea that alas isn't quite up to my
requirement. But A very useful thought for other similar applications.

There may be another family that would do better. Unfortunately, very
high current drive families tend to limit themselves to not much more
than the old TTL 5v supply voltage. Wide supply voltage range CMOS
families tends to be wimpy. The 74AC04 has a 5.5v max operating and 6v
abs max Vcc rating. The whole IC max operating current is 100 mA so
I'd need 3 at least. Vih min = 3.85v at Vcc=5v  so if it did allow
6.5v supply then it would be about 5v so it would JUST work with the
available processor 5V Vcc. Icc quiescent is 40 uA max over commercial
temperature range which is really beyond what is acceptable.  0 uA
would be nicer. (Present whole device total quiescent current
consumption with processor asleep but powered, EEROM powered AND
battery booster running to produce constant 5v supply , including
linear post regulator (!) is under 100 uA. Alkaline C cell lifetime at
100 uA is about 10 years. ie other factors dominate.

But, keep the ideas coming. One may yet prove to be the perfect
solution and those that aren't provide ideas for similar future
projects. I'll post my current circuit when I've characterised it
properly.

Russell McMahon

Brief spec again. Full details in original post.

Wanted: H bridge driver to drive a small geared motor.
Present design drops substantial voltage when running.
Presently motor goes rather fast when battery new and very very slowly
(if at all) when battery almost flat.

Ideal is a motor speed that is approx constant with battery over
widest possible range.
Motor voltage of about 3v at about 250 mA is "OK". More or less OK if
needs be.

Zero cost (almost :-) ).
Very low power drain when not driven.
Two control leads. Raise selected one to +5v to drive in selected
direction.
(5V is independent of battery voltage).

Operates from 4 x C cells of any sort liable to be used by public.
Should work across full range of possible battery voltages.
At least 4v-6.5v but lower is definitely useful as loaded battery
drops substantially below o/c voltage

Load is motor with parallel 22r resistor.
Load looks like *around* 10R running at comfortable speed.

Cost minimisation a major target.
Use of existing active components is desirable but not essential.
Space minimisation desirable but not essential.
Efficiency not tantamount as long as not bizarre.

BTW, if you operate the h-bridge at more than about a volt lower than the
logic voltage, you'll need to add a resistor in series with each of the
two inputs.

-Bob

> no freewheel diodes, I assume you are not doing high speed PWM, so this
> design also has no diodes. Use jellybean parts.

> no freewheel diodes, I assume you are not doing high speed PWM, so
> this

No PWM. On/Off with about 1 second to 20 second cycle. IF the
transistors and other electronics will survive the spikes we can't
afford the diodes :-).

An excellent cheap solution. A masterpiece of component minimisation.
On the way to where I have got to so far, but needs a few mods to meet
my full spec.

Using input drivers as emitter followers brilliantly removes 2
resistors but is probably aimed at situation when Vmotor = Vdrive.
Comes unstuck when Motor supply is substantially higher than drive
voltage, as in this case with Vbat = say 6.5v (or even 6v) and Vcc =
5v. Then we try to drop about 1.5v across driver pair Vbe junction.
Adding a resistor in upper driver base OR moving emitter resistor into
input transistor collector and adding an input drive resistor does the
trick. Fails to attempt to control (and ideally regulate at a constant
value) motor current in any way - would in fact work OK as is, but I
was trying to do this as well if possible. Add 4 more resistors (in

ie move lower driver base resistor into collector of input transistor.
Drive input transistor with an input resistor AND a resistor to
ground. Add an emitter resistor to the lower drivers. The input
divider sets base VOLTAGE of the input transistor which sets its
emitter voltage a Vbe lower which is the lower driver resistor base
voltage. This sets the lower driver emitter voltage a Vbe lower (about
0.5 v in my case) which appears across the emitter resistor (2R2 to
3R3) so we have a constant current source (of sorts). As the input
voltage is set by the processor drive pin and the processor has a 5v
regulator this voltage is wellish defined. Make the input divider
stiff enough to hold the driver base as constant as possible but not
so stiff that the processor complains or that drive current drops TOO
much voltage across the processor internal FET. Processor used has a 3
mA drive limit and I use a 1K/1K5 divider into driver base which gives
*about* 2mA available base drive. This is ample to saturate the input
driver transistor. The bridge base resistor is amply low to saturate
the bridge transistors at lowest battery voltage and maximum motor
current. Temperature is an issue with 2 x Vbe between reference and
point where it's needed. Using LM385s (at 1.2V) on the lower bridge
bases and no input drive divider removes one Vbe and adds very nice
voltage stability at the cost of about \$US0.15 for the references. Yet
to see which is best over all specs but it's far cheaper without them.

More anon.

Important point - with 2 resistors added and a shift of 2 resistors
your circuit would work  far far far better than the original and be
well worth having been implemented. It is hard to see why the original
designer didn't do something like what you have done rather than what
he did. (I say he, a woman would never have made such a mistake :-) ).

RM

At 04:43 PM 6/30/2005, Russell McMahon wrote:
>>no freewheel diodes, I assume you are not doing high speed PWM, so this
>
>Using input drivers as emitter followers brilliantly removes 2 resistors
>but is probably aimed at situation when Vmotor = Vdrive. Comes unstuck
>when Motor supply is substantially higher than drive voltage, as in this
>case with Vbat = say 6.5v (or even 6v) and Vcc = 5v.

I think you're wrong, Russell.  The input transistors are operate as
constant current sinks so long as they don't saturate.

Look at it this way: the input voltage from the PIC is at 5V and is assumed
to be constant.  The voltage across the emitter resistor is that input
voltage less the two Vbe drops from the driver and lower transistors.  That
voltage doesn't change whether the motor voltage is 6V or 12V.  Therefore,
the current through the transistor is constant.

All bets are off when the driver does saturate due to low motor supply
voltage.  Much current would be drawn from the PIC pin.  Magnitude of that
current is dependant on the PIC and the value of the emitter
resistor.  Because the PIC pin has significant impedance compared to the
emitter resistor, its output voltage would sag - that means the motor would
probably still operate.

Just a silly thought, though.  Have you considered taking Bob's circuit and
adding a current limit stage to it?  I'm thinking of tieing both NPN output
transistor emitters together and through a suitable current sense resistor
to ground.  Add 2 more NPN transistors: emitter's grounded, each base to
the top end of the current sense resistor via a 1K resistor, each collector
pulls the base of the NPN output transistors towards ground.

Or - monitor motor current as I've mentioned but move the driver transistor
emitter resistors up to the collectors.  You would then need to add base
resistors to the driver transistors.  Now you need only 1 current sense
transistor, with the collector tied to 2- small signal diodes that in turn
tie directly to the bases of the driver transistors.

That should allow the motor to operate at constant current as Vbat varies
from above 7V all the way down to about 3.5V (based upon your spec of 3V
across the motor).

Added cost: current sense resistor, 1 current sense transistor, 3 resistors
(2 for bases of driver transistors, 1 for base of current sense transistor,
2 small signal diodes).  I would not eliminate the series resistor at the
base of the current sense transistors - the transitor will be damaged
incrementally each time the motor starts.

Worth a try.

dwayne

--
Dwayne Reid   <dwaynerplanet.eon.net>
Trinity Electronics Systems Ltd    Edmonton, AB, CANADA
(780) 489-3199 voice          (780) 487-6397 fax

Celebrating 21 years of Engineering Innovation (1984 - 2005)
.-.   .-.   .-.   .-.   .-.   .-.   .-.   .-.   .-.   .-
`-'   `-'   `-'   `-'   `-'   `-'   `-'   `-'   `-'
Do NOT send unsolicited commercial email to this email address.
This message neither grants consent to receive unsolicited
commercial email nor is intended to solicit commercial email.

'[EE] Design Challenge - A better H Bridge'
2005\07\01@005809 by
part 1 1958 bytes content-type:text/plain; (decoded 7bit)

>>Using input drivers as emitter followers brilliantly removes 2
>>resistors but is probably aimed at situation when Vmotor = Vdrive.
>>Comes unstuck when Motor supply is substantially higher than drive
>>voltage, as in this case with Vbat = say 6.5v (or even 6v) and Vcc =
>>5v.

> I think you're wrong, Russell.  The input transistors are operate as
> constant current sinks so long as they don't saturate.

It depends how you run your H Bridge.
My concept of H Bridge driving is that you run everything saturated by
default unless the deign specifically prevents that happening. (My
design (circuit soon, fully described in prior posts) so far in fact
doesn't always run the bottom switch pair in saturation but this is a
fully defined state).

With Bob's beautifully economical circuit (attached), IF you can
control your drive levels to limit current (and there's no easy way to
do that here) then you can run the input driver so it doesn't
saturate.

BUT if you take the driver base to 5v PIC (actually Epson 4 bit)
driven then the input emitter rises to 5v-Vbe1.

This pulls the top driver base down to V+-Vbe2. The input driver tries
to saturate and its collector is essentially at 5-Vbe1. As it's hard
connected to the base of the upper driver which is also essentially
saturated then 5-Vbe1 ~~= V+-Vbe2. If Vbes are equal (only approx as
the upper driver carries far more base current than the input
transistor) then we must satisfy  5=V+  OR artificially force the Vbes
to fit. When V+=6.5v and driver v = 5v then we have about
6.5-5-0.7-.0.8 = OKish. ie the Vbe's may be a bit stretched from where
they'd like to be and excess base drive is provided. Much more than
that and you have "problems" (Robocop style). eg a 3 volt input and a
6v motor drive would not be nice. Add one resistor and Mr Ohm looks
after things for you.

RM

part 2 1513 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

On Jun 30, 2005, at 3:18 PM, Russell McMahon wrote:

>> Why not parallel a boat load of opposing 74AC04's or some other
>> equivalent beefy driver?

> Another potentially useful idea that alas isn't quite up to my
> requirement.
>
> There may be another family that would do better.

There are some micro RC circuits that are using op-amps as H-bridge
drivers.  I was surprised, but apparently some rail-rail opamps have
surprisingly high current capabilities.  The MAX4020 has 4 opamps
and drives +/-120mA;
http://www.oyajin.jp/~toko/pic/0038/index.html  (japanese, but the
schematics
are readable and the pictures are amazing.)
http://www.geocities.com/billy8601/infraredray/diy-ir.html

Audio amps are another possibility.  the BEAM robotics people have
used LM386 amps as motor drivers in a number of applications.

(I suspect that at 4V supply, your sorta-darlington configuration
suffers a lot from the inherent high Vcesat of a darlingtons.  You
could be looking at as much as 1.2V on each side of the load, right?
(I'm not sure both sides are exactly darlingtons...)  If that's the
case, you could get some major benefit by replacing the input
transistors
with fets?)

BillW

> There are some micro RC circuits that are using op-amps as H-bridge
> drivers.  I was surprised, but apparently some rail-rail opamps have
> surprisingly high current capabilities.  The MAX4020 has 4 opamps
> and drives +/-120mA;

Nice IC. But alas almost any opamp is going to have a quiescent
current that necessitates adding a series control element as well.
And anything from Maxim is expensive. They make some nice products but
yoy tend to pay a premium for any of their parts that aren't second
sourced. The LM324 / LM358 are cheap enough but have nowhere near the
required drive. And Iq is OK for many purposes  but not for this.

> Audio amps are another possibility.  the BEAM robotics people have
> used LM386 amps as motor drivers in a number of applications.

I like the LM386. Probably over \$US.20 each. Quiescent will need an
extra switch.
Don't recall the ioperating supply range offhand or max power or
saturation voltage. Any one could trip it up, but audio amps as a
whole are a good idea.

> (I suspect that at 4V supply, your sorta-darlington configuration
> suffers a lot from the inherent high Vcesat of a darlingtons.  You
> could be looking at as much as 1.2V on each side of the load, right?

Yes, in original circuit.. Bottom stage drops 1 x Vbe plus transistor
saturation.
Top driver the same PLUS base bias drop across drive rsistor - about 1
volt extra. Combined it's 2.5V+ :-(

> (I'm not sure both sides are exactly darlingtons...)  If that's the
> case, you could get some major benefit by replacing the input
> transistors
> with fets?)

Yes. Or by rearranging the circuit so bridge switches are common
emitter rather than common collector. Bipolar have some other

Russell McMahonl

Bob Blick wrote:
> posted had no freewheel diodes, I assume you are not doing high
> speed PWM, so this design also has no diodes. Use jellybean parts.

I like the basic topology.  Note however that the two inputs can't be raised
all the way to the same supply driving the H bridge.  If they were, the top
transistor wouldn't come on very far, if at all for practical purposes.

The input transistor base is a the + rail.  Its emitter is one B-E drop
lower.  However it's collector also needs to be one B-E drop lower for the
top transistor to turn on.  There is at least one saturated C-E drop missing
in the top transistor drive circuit.  Chances are the top transistor will
need a little higher B-E drop due to its larger current.

The solution is easy and only costs two extra resistors.  Put the existing
resistor in series with the input transistor collector, not emitter.  Then
add a base resistor for the input transistor.

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com
part 1 2399 bytes content-type:text/plain; charset="iso-8859-1" (unknown type 8bit not decoded)

Olin repiles:
{Quote hidden}

Let me explain a better way, please bear with me. The circuit I posted had
a resistor in the emitter of the input transistor. This gives you a fairly
constant current drive to the output transistors, and that's pretty good.
The drawback is that if the logic input is as high as the motor supply,
the input transistor loses the use of it's collector. This isn't a problem
when the logic supply is the same as motor supply, because if you're
driving it with a PIC, the logic voltage only takes a very small amount of
loading to drop a quarter of a volt or more. But when the motor supply can
get lower, the solution is to add a resistor in series with the base of
the input transistor. That way if the motor power supply goes lower than
logic voltage, as input current increases, the input resistor drops more
voltage, keeping the input transistor's base voltage below the motor
supply voltage. Just make sure the input resistor value is greater than
the emitter resistor value. I would suggest 100 ohms for the emitter and
2200 for the input.

This makes the circuit almost perfect(you still get the nice constant
current drive) and you've only added one(well, two) resistor.

Attached is the schematic.

Cheerful regards,

Bob

part 2 1695 bytes content-type:image/gif; name="hb4r.gif" (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

part 1 3488 bytes content-type:text/plain; (decoded 7bit)

Bob Blick wrote:
{Quote hidden}

Yes, but.  The drive current is limited, but that limit is heavily dependent
on the transistors' gain.  These are not parameters you can rely on in
production, especially since you are relying on a maximum gain.  It's
usually a very good idea to design bipolar transistor circuits so that they
work with some minimum gain up to inifinite gain.  Minimum gain is
characterised from most transistors, but maximum gain usually not.  Or if a
maximum gain is specified, then it's 5-10 times the minimum gain.

The same gain problem applies to adding a base resistor to your existing
configuration to guarantee the top transistor gets turned on.  You are
counting on a minimum base current of the input transistor to cause a drop
in the base resistor.

I like to go thru all bipolar designs and imagine what would happen if each
transistor had an infinite gain, a B-E drop of 500-700mV, and a saturated
C-E drop of around 200mV.  A one off can be tweaked with the specific
transistors in hand, but I'd be very uncomfortable putting a circuit into
volume production that didn't pass the infinite gain test.

I didn't respond to Russell's challenge because I thought he was limiting
the spec so much as to make thinking outside the box impossible.  To get the
right design, you have to ask questions about what the ultimate purpose is,
what the motor has to do, etc.  For example, is there maybe some other
higher level way to sense what the motor is doing?  Also, how often is the
motor direction reversed?  Where is the PWM coming from?  It sounds like the
motor is always full on or off each direction, but I thought there was
mention of PWM.

Anyway, I've drawn up a quick sketch of an idea mostly in response to Bob's
design.  It may or may not be within Russell's specs, I don't really care.
I'm just trying to throw out a topology that might be interesting to think
about.  I also haven't analized this for boundary cases.  If I was doing
this for real, I'd think long and hard about making sure there is no latchup
or shoot thru in boundary cases as the motor got switched.  Again, this is
not a thought-thru design, just an idea of a basic topology.

part 2 7426 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

part 1 902 bytes content-type:text/plain; charset="iso-8859-1" (unknown type 8bit not decoded)

Olin writes:

> The same gain problem applies to adding a base resistor to your existing
> configuration to guarantee the top transistor gets turned on.  You are
> counting on a minimum base current of the input transistor to cause a drop
> in the base resistor.

And it's very predictable! When Vlogic <= Vmotor, there is almost no drop
in the input resistor. When Vlogic > Vmotor, voltage drop across the input
resistor is close to Vlogic - Vmotor. But that extra base current is not
amplified by the input transistor, because it is operating in saturation
when Vlogic > Vmotor. The extra current is just fed through to the
emitter. So in other words, the gain of the transistor goes from what it
normally would be, to 22(or whatever the ratio of the two resistors is, I
specified 100 and 2200 ohms previously).

Cheers,

Bob

part 2 1695 bytes content-type:image/gif; name="hb4r.gif" (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

part 1 1248 bytes content-type:TEXT/PLAIN; CHARSET=US-ASCII; FORMAT=flowed
I think that I know of a simpler variant. It works for small motors (not
200mA) but I modeled the attached circuit for motor Ri=22 ohms and
L=100mH and it seems to be ok. Be sure to check the waveforms before you
switch this driver quickly forward/reverse as it is self-braking on
'stop' (A and B off) (so you don't need the 20 ohm parallel resistor ?).
It has some interesting properties imho. I used a pulsed source with
Ton=20msec and a single pulse 0/5V, 10usec rise and fall for A, and B
grounded for simulation. It is worth your while to simulate it before
use.

Quiescent current is zero. Attempts to switch a non-inductive load with
this circuit may lead to smoke venting although the caps help to prevent
that. The caps are needed to prevent oscillation with a L load. Using
decoupling across the motor may cause trouble, so don't imho. The
circuit has a little positive feedback and may oscillate without the 1n
caps and with a L load. Ib for the NPNs will likely be high but
manageable by a pic. You could substitute 2N7000 (Rdson=1R) for the NPNs
for almost identical performance but save 2 diodes (built in) and zero
base current. However then the 1n caps will need some push/pull drive to
make it work right.

Peter

part 2 12263 bytes content-type:APPLICATION/postscript; name=h_bridge_driver.ps (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

PS: The circuit I posted has a little shoot-through on turn-on. It
should not be a problem with the parts shown. The caps should be small
(their role is to prevent oscillation). If the power comes on slowly
then there will be no shoot through.

Peter

I haven't looked at Bob Blick's schematic yet but what is wrong with the
'classic' H bridge using 4xNPN 2xPNP and 4 resistors ? It sounds like
you want low cost before anything else. This circuit will not regulate
motor speed but if you could output slow PWM (say 100Hz) from your
control and relate it to voltage then it would do that too. At that slow
rate the energy pumped by the L kickback is low enough that you can
ignore it for heating purposes (even more so if you slow down the switch
with two small caps). When you said cheap, did you mean parts count ?
This solution uses 10 or 12 parts (with the caps) but they are very
inexpensive. BC547/557 covers your current range.

Motorola make some nice motor driver chips some of which work down to
2V, using mosfet switches and a built in charge pump for gate power. I
don't think that the price can compete.

Peter
I'm getting tired of saying "input resistor", "input transistor", etc.
Component designators were invented for a good reason.  I'm looking at your
diagram, and am going to assign names to the left half.  R1 is the resistor
between the input and the base of the "input transistor", which is Q1.  R2
is between the emitter of Q1 and the base of Q2.  Q3 is the high side switch
on the left side.

Bob Blick wrote:
> And it's very predictable! When Vlogic <= Vmotor, there is almost no
> drop in the input resistor.

When the gain of Q1 is large.  Let's assume that for now.

> When Vlogic > Vmotor, voltage drop across
> the input resistor is close to Vlogic - Vmotor.

As I tried to point out before, this circuit stops working (at least as a
usable H bridge) when Vlogic gets near Vmotor and above.  The reason is that
current can no longer flow out of the base of Q3, which means the top side
drivers stay off when Vlogic >= Vmotor.  Let's therefore only analize the
circuit when Vlogic is at least a little less than Vmotor.  Vlogic must be
no higher than Vmotor minus the B-E drop of Q3 minus the saturated C-E drop
of Q1.

Let's say the gain of Q1 is infinite.  This means the current thru the base
of Q2 and Q3 are the same.  This current is Vlogic minus B-E drop of Q1
minus B-E drop of Q2 divided by R2.  Let's say that B-E drops are 700mV:

Iq2b = Iq3b = (Vlogic - 1.4) / R2

Since both Vlogic and R2 can be considered predictable, the Q2/Q3 base
currents are predictable.  However, this is where it ends.  The maximum
motor current then becomes this base current times the lesser of the gain or
Q2 or Q3.  This is my point.  The load current limit is directly
proportional to a transistor gain.  Since the maximum transistor gain is
usually not specified, there is no upper bound on the load current.  In
other words, there is no current limiting.  Even if the maximum gain is
specified, there will be a large variation between min and max transistor
gain.  Ratios of 5-10 are easily possible.  This is not what I would call
"predictable" in the current context.

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com
On 1 Jul 2005 at 16:18, Olin Lathrop wrote:
The load current limit is directly
> proportional to a transistor gain.  Since the maximum transistor gain is
> usually not specified, there is no upper bound on the load current.  In
> other words, there is no current limiting.  Even if the maximum gain is
> specified, there will be a large variation between min and max transistor
> gain.  Ratios of 5-10 are easily possible.  This is not what I would call
> "predictable" in the current context.

Why are you focusing on current limit? My circuit is not intended to limit
current. The feature I was touting is fairly constant driver(not output)
current through power supply voltage change when Vmotor >= Vlogic.
With the two input resistors, Vmotor < Vlogic is also permitted, and
driver current decreases as Vmotor decreases below Vlogic.

I think the issue here is that you misread my initial description and
thought I was talking about current limit, which I was not.

Cheerful regards,

Bob

I realized that I neglected to explain how my H bridge circuit worked, as I
was reminded by an off-list message.  Instead of attaching another copy of
the schematic, I have put it at http://www.embedinc.com/temp/hbridge.gif.

The inputs are the bases of Q3 and Q4.  At most one of these may be high at
a time.  Raising one input applies power to the load in one direction, and
raising the other input applies power in the other direction.

Assume both inputs have been low for a while.  In that case no current is
flowing anywhere and the load is completely off.  The quiescient current is
zero.  Let's analyze what happens when the left input is raised.

This circuit requires a fixed input high level.  That input level minus the
B-E drop of Q3 ends up accross R5.  This causes Q3 to act as a current sink,
with the current level adjusted by the input high voltage and R5.  The
bigger the drop on R5, the better the current regulation, but also the more
heat dissipated.  Since current limiting was specified but doesn't need to
be that accurate, lets say the input high voltage is 1V.  If the B-E drop of
Q3 is 700mV, then the current limit is 300mV / R5.  R5 = 1ohm therefore
results in about 300mA current limit.  If the Q3 saturated C-E droop is
200mV, then 500mV headroom is used up by the lower legs of the H bridge when
on.

Assuming the load is drawing less than the current limit, the collector of
Q3 will be driven down to about 500mV.  This cause current to be drawn thru
the base of Q2 via R4.  R2 is a relatively large resistor that is only there
to make sure the base of Q2 doesn't float when Q2 is supposed to be off.
Let's say it's 10Kohms.  That's big enough to be ignored for the rest of the
analysis.

The Q2 base current will be Vsupp minus the Q2 B-E drop (assume 700mV) minus
the collector voltage of Q3 (previously determined to be 500mV).  R4 should
be sized so that it draws enough Q2 base current at the lowest specified
supply voltage so that Q2 remains saturated at the current limit.  let's say
the lowest supply is 3V, then the 3V - 700mV - 500mV = 1.8V will be accross
R4.  If the current limit is 300mA and Q2 has a minimum gain of 50, then the
R4 current must be 300mA / 50 = 6mA.  This comes out to R4 = 1.8V / 6mA =
300ohms.  You want to make sure Q2 stays saturated at the current limit, so
270ohms sounds like a nice value for R4.

Therefore, raising the base of Q3 to 1V causes opposite corners of the H
bridge (Q3, Q2) to turn on, applying power to the load.  Q2 is always
saturated, so let's assume its C-E drop is 200mV.  This means the supply
will be limited to 300mA.  Raising the base of Q4 to 1V instead works the
same way by symmetry, except that the voltage is applied to the load in the
opposite polarity.

If the load is a motor, it has two properties that must be taken into
account: inductance and back EMF.  These matter when the load is turned off.

If the left input has been high for a while and then switched off (to
ground), load current will continue to flow right to left in the schematic
due to load inductance.  The bases of both Q3 and Q4 are being held low, so
both these remain off.  The only remaining path for the load current will be
thru D4 and D1.  These are here specifically to provide the inductance
kickback current, else the voltages could go very high and destroy parts.
An interesting side effect of the cross connection of the transistors is
that the on/off state of the top side drivers are flipped.  The right side
of the load will go low, turning on Q1.  The left side will go high,
actively turning off Q2 more quickly than it would have by itself.  This
means one limitation of this circuit is that the same input must not be
turned on again before the inductive kickback current has ceased, else both
legs on the same side of the H will turn on.  However this time is
predictable since the maximum load current and minimum reverse voltage
during kickback are known.

Back EMF causes the motor to behave like a voltage source proportional to
its speed.  This voltage has the same polarity as the voltage applied to the
motor to get it to that speed.  Assuming the motor is not driven externally,
the back EMF can vary from 0 (motor stalled) to the applied voltage (100%
efficient motor under no load).  In the latter case when the left input has
been high for a while then turned off, the voltage accross the load will
remain the same.  Since both Q3 and Q4 are held off by the two external
inputs, the motor voltage is accross the lower ends of R3 and R4.  This will
cause Q2 to remain on somewhat, which has no real effect on the circuit
since there is essentially no current for Q2 to conduct.  Since no current
is flowing, this circuit does not perform active breaking of the motor.  The
motor will coast to a stop based only on the inertia and friction in the
mechanical system.

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com
Bob Blick wrote:
> Why are you focusing on current limit?

Because I thought you were claiming controlled load current, which I thought
was something Russell originally asked for.

> The feature I was touting is fairly constant driver(not
> output) current through power supply voltage change when Vmotor >=
> Vlogic.

OK, I agree that the control input current is pretty much independent of the
Vmotor when Vmotor is somewhat higher than Vlogic.  I'm not sure why this
matters though, which is probably why I didn't understand you were making an
issue of it.

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com
> The solution is easy and only costs two extra resistors.  Put the
> existing
> resistor in series with the input transistor collector, not emitter.
> Then
> add a base resistor for the input transistor.

Olin and Russell see eye to eye for a change :-).

And I like Bob's circuit as an example of minimal complexity when you
can adjust conditions to make it work.

RM

part 1 3681 bytes content-type:text/plain; (decoded 7bit)

Some good comments on bridges so far.
Here''s what I came up with.
I'm sure people will want to offer constructive comments ;-)

I've drawn half the bridge. The other half is identical except motor
top and bottom connections are swapped. (THis is standard for an H
bridge - just not a usual way of drawing it).

I've shown Vbattery as 3v - 7v which is otside original spec. At 3v
anything is on the verge of dying. 3V is not as unrelaistic as it may
sound in practice as, while a cell has an endpoint of 1v or maybe 0.9
or certainly 0.8 the internal resistance also rises. if the battery id
the motor is run the terminal voltage will fall well below its lightly

_____

Parts count is lowish BUT there are some options.

Version 1 is as shown with a link at point A.
For 5v drive R1 = 1k5 and R2 = 1K.
This establishes *about* 2 volts at point X and about 1.25 volts at
point Y and ABOUT 0.5 volts at Q3 emitter (call that point Z).
Make R5 = 2r2 (not 3r3 as shown).
That means Q3 current is about 0.5/3.3R  =~~~~ 230 mA max.
ie Q3 is a constant currenht source using the 5v drive voltage as its
reference.
Temperature drift of the two Vbes and changes in Vbe with load on Q3
especially will affect the current's constancy.

Drive input low. All off.

Drive input = 5v, Q1 on.
Q2 and Q3 on as R4 links 2 bases. Set R4 for stiff base current for
selected collector current. Something like 220r to 470r.

Note when supply = say 3V5 there will be about 0.5v drop in R5 and 2 x
Vbe drop in Q2 & Q3 = say 1v5 so available voltage across R4 =
3.5-0.5-1.5 = 1.5v. Fror Beta Q2/Q3 = 80 say and 240 mA
colelctor/motor current we need 3 m+ base current. 1.5/3mA = 500r so
somethinhg somewhat smaller is wise - say 220r? This gives oodles of
drive at higher supply voltages. May wanty to ioncrease R4 and suffer
som epossible drive loss at low Vbattery. Actual beta should be double
this for original transistors so higher R4 OK.

R3 is simply a pullof for leakage current when off.

OPTIONS:

0.    As above

1. Diode as reference.
Remove R2.
At B place 2 diodes (1N4148 in seriesm cathode down). Increase R1 if
desired to say 10k.This hold B at 2 diode drops when driven and
notionally should give sameish result as before. In practice it seems
worse and rather temperature sensitive.

2.    Zener as reference.

As above but uuse 1v2 or similar zener at B.
No better than diodes.
Not marvellously constant current.

3.    Place Lm385-1v2 at B.
This holds X at a very good 1v2ish when driven.
Result is good but maybe not as good as version using resistor
divider.
LM385 about \$US0.10 in volume anmd we need 2 here (2 halves)
Could possibly use 1 only and a diode to couple them to bases. Would

Goodness of resultys seems so far to be 0, 3, (1,2 draw)
Still haven't fully tested.

A single R5 can probably be shared by both halves fwiw.

RESULTS.

Constantish on current due to Q3 constant current action.
Zeroish off current.
Much less drop across cct than original.
Cost over original is a few extra resistors in case 0.

Notes:

This satisfies Olins ideas re on transistors - which i generally
concur with AND is not subject to reasonable variations in device
parameters.

Q1 & Q2 are saturated when on.
Q3 CAN be saturated when Vbattery is too low but usually will be held
out of saturatuion to provide current source operation.

I can discuss this more anaon as required.
Seems to work well but still needs fully testing - main concern is
temperature variations.
Supply variations work wellish.

RM

part 2 5948 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

> I didn't respond to Russell's challenge because I thought he was
> limiting
> the spec so much as to make thinking outside the box impossible.  To
> get the
> right design, you have to ask questions about what the ultimate
> purpose is,
> what the motor has to do, etc.  For example, is there maybe some
> other
> higher level way to sense what the motor is doing?  Also, how often
> is the
> motor direction reversed?  Where is the PWM coming from?  It sounds
> like the
> motor is always full on or off each direction, but I thought there
> was
> mention of PWM.

Just to clarify.

No PWM.
Motor is fully on or off.
It drives in either direction as required.
On for from ABOUT 1 second to 20 seconds.
Overlap between directions is processor controllable and usually long
(30 seconds) so not a problem.

Any parts MIGHT be used but this is a desperately NIMBY situation.
I have already majorly changed a Taiwanese design and getting stuck
into their H bridge will not make me friends.
Using identical components is a great plus. Whatever I use has to be
testable in NZ and buildable easily in Taiwan. Parts that I am CERTAIN
can be got in taiwan are not too bad (eg LM385). Specifying pats that
SHOULD be easily available in Taiwan can lead to bad surprises. Using
identical parts makes it certain.

Cost is a main priority but not the overwhelming one.

At present the motor speed is very very poor when battery is only half
flat and rather fast when battery is new..
Using JUST an improved simple H bridge with no current limiting would
make motor VERY fast and MAY lead to damage as this is an unknown
condition.

Try in to get motor specs would be a lost cause.

If I was doing this from scratch I'd do it differently. But, as this
is a real world existing design with a resistant implementer I want to
try to keep it as apparently the same as possible - even though my cct
so far is a radical redesign - even though it takes only a few extra
resistors.

One point - with high supply voltages the lower driver dissipation
needs to be checked during design as it can have several volts across
it by design. On battery this is liable to be OK. If an AC adaptor is
used (not mentioned in design challenge) the V+ at motor loads needs
to be checked.

RM

Hi Russell,

I'm curious what this is for.  I mean, what is the final product?

Lindy

-----Original Message-----
From: piclist-bouncesmit.edu [piclist-bouncesmit.edu] On Behalf Of Russell McMahon
Sent: Saturday, July 02, 2005 11:21
To: Microcontroller discussion list - Public.
Subject: Re: [EE] Design Challenge - A better H Bridge

Just to clarify.

No PWM.
Motor is fully on or off.
It drives in either direction as required.
On for from ABOUT 1 second to 20 seconds.
Overlap between directions is processor controllable and usually long
(30 seconds) so not a problem.

Any parts MIGHT be used but this is a desperately NIMBY situation.
I have already majorly changed a Taiwanese design and getting stuck
into their H bridge will not make me friends.
Using identical components is a great plus. Whatever I use has to be
testable in NZ and buildable easily in Taiwan. Parts that I am CERTAIN
can be got in taiwan are not too bad (eg LM385). Specifying pats that
SHOULD be easily available in Taiwan can lead to bad surprises. Using
identical parts makes it certain.

Cost is a main priority but not the overwhelming one.

> I'm curious what this is for.  I mean, what is the final product?

I wont spell it out chapter and verse, but it's used in exercise
equipment. The motor is geared down and moves something to and from
mechanically under processor control. It has a feedback pot to
determine position. Essentially a "servo". This sort of equipment is
used in a wide range of products in the exercise equipment market.
When it is main powered there are no problems. When it is battery
powered the current H Bridge leaves something to be desired.

RM

Re my H Bridge cct that I posted earlier today.

Critiques, or even scathing criticism, if objective, are most welcome.
I THINK that it does the required job well.
But I'd much rather that someone here pointed out any flaws, or any
potential improvements, before I tried to introduce it to the less
than willing implementers.

RM

part 1 1308 bytes content-type:text/plain; (decoded 7bit)

> Re my H Bridge cct that I posted earlier today.
>
> Critiques, or even scathing criticism, if objective, are most
> welcome.

Let me start by criticising my own design :-)
Things are usually not as straight forward as they seem.

The upper and lower driver transistors Q2 & Q3 share the same base
current which flows via Q1.
The current source adjusts Q3 base current until Q3 will just support
the requisite current. The voltage drop across Q3 alters to make this
happen depending on battery voltage. BUT Q2 has the same base current.
IF the two transistors were matched this would be a form of current
mirror and the voltage drop across Q2 would be about the same as
across Q3. As they are similar transistors it will be similar.

This is not necessarily bad as, arguably, the circuit "doesn't care"
where excess voltage is dropped to make the feedback work properly. In
practice I'm not sure what the second order effects are. A closer look
is needed to make sure it doesn't cause problems.

Taking the bottom of R4 to Q3 collector and taking Q1 emitter to
battery may seem to be a way of preventing the above and causing Q2 to
saturate when driven - in practice it causes oscillations. More
thinking required ...

RM

part 2 4018 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

At 10:57 PM 6/30/2005, Russell McMahon wrote:
>>I think you're wrong, Russell.  The input transistors are operate as
>>constant current sinks so long as they don't saturate.
>
>It depends how you run your H Bridge.
>My concept of H Bridge driving is that you run everything saturated by
>default unless the deign specifically prevents that happening. (My design
>(circuit soon, fully described in prior posts) so far in fact doesn't
>always run the bottom switch pair in saturation but this is a fully
>defined state).

Ahh - I think this is the sticking point.  Bob's circuit does *not* want
the input transistor saturated.  Yes - both output devices should be
saturated.  But by operating the input transistor as a constant current
sink, the current you have chosen to be fed into the bases of both output
transistors doesn't change (much) even as Vbatt changes.

>This pulls the top driver base down to V+-Vbe2. The input driver tries to
>saturate and its collector is essentially at 5-Vbe1. As it's hard
>connected to the base of the upper driver which is also essentially
>saturated then 5-Vbe1 ~~= V+-Vbe2.

Yep - when Vpic = Vbat, the input transistor is heading towards
saturation.  I say "heading towards" because I expect the processor pin
voltage to start sagging (PIC FET RDSon).  When Vbatt actually goes below
Vpic, you start to have problems.  Problems because you begin to draw
significant current from the processor pin.

>When V+=6.5v and driver v = 5v then we have about 6.5-5-0.7-.0.8 = OKish.

Here's where you miss the beauty of Bob's circuit.  With Vbatt > than Vpic,
the input transistor is NOT saturated.  Its in constant current mode.  That
current is (aprox) (Vpic - 2Vbe) / emitter resistor..

Try it and see!  Model the RDSon of the PIC as a 100R resistor.  Put a
voltmeter across the driver transistor emitter resistor and vary Vbatt
while keeping Vpic constant.  So long as Vbat > Vpic, the voltage will stay
reasonably constant.

Also note that this talk of constant current applies to only the driver
transistor.  Its emitter resistor is chosen to ensure that the output
transistors are saturated.

Of course, subsequent messages from you have shown that saturated output
transistors isn't what you are looking for.  But I wanted to clear up the
misconception about the circuit that Bob showed.

dwayne

--
Dwayne Reid   <dwaynerplanet.eon.net>
Trinity Electronics Systems Ltd    Edmonton, AB, CANADA
(780) 489-3199 voice          (780) 487-6397 fax

Celebrating 21 years of Engineering Innovation (1984 - 2005)
.-.   .-.   .-.   .-.   .-.   .-.   .-.   .-.   .-.   .-
`-'   `-'   `-'   `-'   `-'   `-'   `-'   `-'   `-'
Do NOT send unsolicited commercial email to this email address.
This message neither grants consent to receive unsolicited
commercial email nor is intended to solicit commercial email.

part 1 351 bytes content-type:text/plain; (decoded 7bit)

Here's how it ended up finally.
Critique still welcome.

I've cut it in half to reduce size. Other side is mirror image
including zener.

Top and bottom driver share base current so share approx on voltage
when not saturated so split power dissipations. Which is good in a
TO92 package.

RM

part 2 8424 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

On 5 Jul 2005 at 2:34, Russell McMahon wrote:

> Here's how it ended up finally.
> Critique still welcome.

OK, here I go.

1. Too many parts.
2. Why did you make it current limiting? It also limits your lowest supply
voltage.
3. That capacitor input, along with no current limiting to the base of the
output transistor spells trouble.
4. If you want consistent results over a large power supply range, why
not make it constant voltage output(since you don't seem to mind

Cheers,

Bob

part 1 1167 bytes content-type:text/plain; (decoded 7bit)

Bob Blick wrote:
> 2. Why did you make it current limiting? It also limits your lowest
> supply voltage.

I agree with Bob here.  I know you put current limiting in the spec, but I
would look for other ways to achieve the same thing, probably at a higher
level.  The schematic I posted was current limited as per spec, but I would
rather just get rid of the emitter resistors and put base resistors in

I have revised my schematic (attached) to loose the current limiting.  This
is about a simple as it gets, with only 4 transistors.  Only one of the
inputs at R5 and R6 may be driven high at a time.  This H bridge is desinged
to supply a minimum of 300mA to the load with a minimum supply of 3V.  The
transistors are assumed to have a minimum gain of 50, which is quite
reasonable for this voltage and current range.  Power dissipation in the
pass elements is minimal since they are always run in saturation when on.
This also means minimal headroom is used by the H bridge and most of the
voltage goes to the load.  The control inputs are meant to be driven
directly from PIC pins with the PIC supply being 3-5V.

part 2 6872 bytes content-type:image/gif; (decode)

part 3 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

Provided feedback appreciated.

>> 2. Why did you make it current limiting? It also limits your lowest
>> supply voltage.

It does. I wanted some sort of control (see below) and I desparately
wanted to use available parts if possible and something that "looked
similar" to the original design if possible. As I have said, there is
a VERY strong NIMBY factor present here. Also a very strong
parts-availability factor. These aspects cannot, alas, be discounted.
If I was doing this with only engineering constraints I would probably
do it quite dofferently. I don't mind adding glue parts within reason
if theya re cheap, relatively compact and certain to be available.

> I agree with Bob here.  I know you put current limiting in the spec,
> but I
> would look for other ways to achieve the same thing, probably at a
> higher
> level.

what others will do. It should ideally plug in in place of the
existing circuit. This is commercial reality in this instance. There
are language, geographical, cultural, pride and (now) time
constraints.

> The schematic I posted was current limited as per spec, but I would
> rather just get rid of the emitter resistors and put base resistors
> in

Current limiting with base resistors is, as you noted, affectred by
transistor beta and can vary over a wide range. A 2:1 variation would
not be unusual.

> I have revised my schematic (attached) to loose the current
> limiting.  This
> is about a simple as it gets, with only 4 transistors.

The circuit looks good in an ideal world, but wont work as it is in
this application. I'd really like it to be suitable!
I looked at only 4 transistors but there are drive issues. (Life
usually fails to be simple ;-) ).
The 360r input would take about 10+ mA drive which is not available.
You need significant drive inles syou can GUARANTEE the Beta of the
driven transistors to be high at required load.

Your circuit would be potentially OK with FETs as the bottom drivers.

Driving the top transistors off the collectors of the bottom drivers
(which I also found attractive as it simplified the high side drive
requirement) produced oscillation in this application when I tried it.
Not insoluble I'm sure, but one more issue to address.

{Quote hidden}

I agree that the circuit is excellent for a certain range of tasks. In
this case an extra issue is that the motor sped varies very very
widely across the voltage range if no limiting is provided, which is a
reason for the current limiting. At lowest battery the motor is
extremely sluggish and may stall. At full battery or, worse, if an AC
adaptor is used, the motor revs alarminly high. I have no specs for
the motor, do not know what is safe, don't know the effect on the
plastic gears etc. And getting that data is very very close to
impossible. Being able to restrict motor speed in some way is at least
prudent and possibly essential. Voltage control may be better.

Diagram may follow.

Top drivers bipolar driven off opposite low driver collectors as per
Olin etc.
Bottom drivers are FETs.
Two extra transistors connect across FETs gate/source to shunt drive.
These are driven by zeners off own side FET drain =~ motor voltage.
Bottom driver is effectively a shunt voltage regulator with the motor
as the series pass element.
Top drivers are on/off

Less than 100% on my requirement wrt needing new parts (FETs) but
otherwise very standard.

RM

Russell McMahon wrote:
> Current limiting with base resistors is, as you noted, affectred by
> transistor beta and can vary over a wide range. A 2:1 variation would
> not be unusual.

Actually 5:1 or 10:1 would not be unusual.  I was not claiming that my
revised design was current limited at all, only that it would supply a
minimum of 300mA to the load at 3V supply with transistor gains of at least
50.

> The 360r input would take about 10+ mA drive which is not available.

It was designed to take 6mA at 3V.  If 10mA is not available, what is?  I
was trying to do this with 4 instead of 6 transistors.

> You need significant drive inles syou can GUARANTEE the Beta of the
> driven transistors to be high at required load.

Right.  I was assuming 50 guaranteed minimum.  I don't have specs on the
exact transistors you are using, so 50 sounded like a reasonable number.

> Your circuit would be potentially OK with FETs as the bottom drivers.

Yes, that eliminates the base drive issue, but adds cost an different parts.
I think that if the external circuit can't handle 6-10mA of drive, then
another pair of the same NPN transistor is probably a better answer.  Two
jellybean NPN transistors are probably cheaper than 1 FET with suitable
specs.

> Driving the top transistors off the collectors of the bottom drivers
> (which I also found attractive as it simplified the high side drive
> requirement) produced oscillation in this application when I tried it.

Hmm.  I hadn't actually built the circuit, but I am surprised about that.
Any idea what happened?

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com
Olin Lathrop wrote:

>> Driving the top transistors off the collectors of the bottom drivers
>> (which I also found attractive as it simplified the high side drive
>> requirement) produced oscillation in this application when I tried it.
>
> Hmm.  I hadn't actually built the circuit, but I am surprised about
> that. Any idea what happened?

I'm not sure, but don't you have something like a feedback path in
connecting the high side driver /in/puts (R3, R4) to the low side driver
/out/puts (C of Q4, Q3)? Maybe the motor in the middle of it creates enough
of a phase shift for that to oscillate.

Gerhard
>>> Driving the top transistors off the collectors of the bottom
>>> drivers
>>> (which I also found attractive as it simplified the high side
>>> drive
>>> requirement) produced oscillation in this application when I tried
>>> it.

>> Hmm.  I hadn't actually built the circuit, but I am surprised about
>> that. Any idea what happened?

> I'm not sure, but don't you have something like a feedback path in
> connecting the high side driver /in/puts (R3, R4) to the low side
> driver
> /out/puts (C of Q4, Q3)? Maybe the motor in the middle of it creates
> enough
> of a phase shift for that to oscillate.

I didn't try to analyse it any depth. I was sad but not surprised that
it oscillated. The motor characteristics are almost certainly a
factor. What HAD been a "do it next time around" exercise suddenly
turned into a requirement to be met in literally a few days, along
with getting the rest of the design sorted out. I'm sure the
oscillation could be fixed, but I wouldn't have had time to test it
exhaustively in worst case situations. What I can't afford is to have
something designed in NZ, made in China, system integrated in Taiwan
and oscillating in a customer's home in Berlin or Phoenix :-). (I have
actually had reports of problems from a customer in Phoenix at one
stage). My client may sell his products to people who badge engineer
them and sell them potentially worldwide.

RM

Gerhard Fiedler wrote:
> I'm not sure, but don't you have something like a feedback path in
> connecting the high side driver /in/puts (R3, R4) to the low side driver
> /out/puts (C of Q4, Q3)? Maybe the motor in the middle of it creates
> enough of a phase shift for that to oscillate.

There must be something like that happening I guess.  The two bottom
transistors are externally driven, so one should be off and the other on
regardless of what the rest of the circuit is doing.  Let's say Q3 is on and
Q4 off.  If Q3 is on, then its collector is low and Q2 is also on.  This
should raise the collector of Q2 high, which should keep Q1 off.  Maybe
nasty motor spikes are causing trouble here somehow.  I'll have to try this
circuit to see.

*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com

On Tue, 5 Jul 2005, Russell McMahon wrote:

>oscillates

The circuits I posted addresses the oscillation problem

Peter
Olin Lathrop wrote:

> Gerhard Fiedler wrote:
>> I'm not sure, but don't you have something like a feedback path in
>> connecting the high side driver /in/puts (R3, R4) to the low side driver
>> /out/puts (C of Q4, Q3)? Maybe the motor in the middle of it creates
>> enough of a phase shift for that to oscillate.
>
> There must be something like that happening I guess.  [...]

I couldn't figure anything out really by looking at the circuit. It seems
pretty straightforward.

One thing though I noticed, which is probably unrelated to oscillating:
there is a possibility that both high-side drivers and one low-side driver
are on, with a slightly capacitive load. The second high-side driver can be
switched on through the load and the opposite low-side driver. But that's
not probable to happen with inductive loads.

Gerhard

More... (looser matching)
- Last day of these posts
- In 2005 , 2006 only
- Today
- New search...