# H-Bridge out of 2 (1 PNP, 1 NPN) Darlington Arrays

I need to control, with a µC, 4 single-coil latching relays and I am exploring various options. My first bet would be a H-Bridge. Since H-bridge ICs are quite expensive and are mostly designed to drive motors but discrete components would use a lot of space, I thought I would use a TD62783 for the high side and a ULN2803A for the low side. I attach a screenshot of part of my schematics

• K1 = Single-Coil, Latching relay
• Q1 = ULN2803A
• Q2 = TD62783

Would this combination work? If not, what needs to be changed and why?

UPDATE: The relay is a 12V operated and will switch 230V AC current. Part number: G6CU-117P-US

PS: Thanks for the answers, interesting solutions. My original question was however, if my solution would work and if not, why not. I am quite curious to have an answer for that.

• What are the relay coils' voltage and current requirements, and/or do you have a manufacturer and part number? – EM Fields Jun 12 '14 at 22:40
• Updated with more detail. – Bitgamma Jun 13 '14 at 10:24
• The ULN2803 and the TD62783 are both NPN drivers, but of the differences between them is that the 62783 is designed to be a high-side driver, and uses a PNP to pull the emitter follower output pass transistor as close to the positive rail as it can. – EM Fields Jun 13 '14 at 15:36
• – Tut Jun 16 '14 at 17:29

Referring to the data sheets for the ULN2803, the TD62783, and the relay, then adding a little detail to the bridge circuitry in order to respond to your:

"PS: Thanks for the answers, interesting solutions. My original question was however, if my solution would work and if not, why not. I am quite curious to have an answer for that.", we have:

It works under simulation and I can't see any reason why it wouldn't in the real world.

If you'd like to try it, here's the LTspice circuit list.

• Thanks a lot for the simulated circuit. I still have to learn to how to simulate more than extremely basic circuits using LTspice, this is very helpful. – Bitgamma Jun 13 '14 at 15:52

Although it frightens the c***p out of me, this is being successfully used in commercial products to drive small telcom-style single-coil 5V latching relays. Ref. J. Larkin.

You set the state with one input, then pulse the other one low for some milliseconds to flip the latching relay.

simulate this circuit – Schematic created using CircuitLab

It's push-pull drive with good power supply bypassing of several uF total at least, so no flyback diode is required.

As it stands, you'll burn some extra current with your current setup as it switches because the high and low will be on temporarily together. Otherwise it should work.

Do you really need 50V chips? I also wonder why you're thinking of needing both high and low side chips. Why aren't you going with something like an inverter buffer? In that way, one buffer chip output pin would drive one side of relay.

EDIT:
From your updates to the question it is now more clear that your solution will work. I'd still recommend an inverter buffer to drive it as it simplifies the amount of wires and chips and isn't expensive. This inverter can handle 15 V on it. You may want to add some zeners for protection against the voltage spike on the coil when switching.

• I built an H-bridge because the relay is a latching, single coil one. This means that I will have either top-left + bottom-right active to close the contact or top-right + bottom-left to open it. But 99,99% percent of the time, no current will flow at all, since I do not need to switch it often. – Bitgamma Jun 12 '14 at 20:04
• Do you have an example circuit using buffers? All buffers I see have open-drain outputs, so I would assume they can only switch the low-side. Is that correct? – Bitgamma Jun 12 '14 at 20:46
• Thanks for the answer and the suggestion, I will look at this inverter more in details as well. Though the power supply powering the relay is non regulated, which means I need ample tolerance (swings could go up to 16/17V if I understand it correctly, which according to the data sheet are ok for the relay). – Bitgamma Jun 13 '14 at 15:55

Maybe an idea (disregard the component values, and sorry for the cramped drawing, it is the first time I use this drawing package):

simulate this circuit – Schematic created using CircuitLab

The idea is that the capacitors are both charged to Vcc. Now you can drive one of the transistors, and a short current pulse will flow to the coil in the desired direction. The value of the capacitor(s) determines the length of the current pulse, the value of the resistor(s) the minimum switch interval. You will need some diodes too, but they are included when the transistors are part of an ULN chip.

• Thank you for the suggestion, I had a similar circuit in mind before, but the problem is that when driving one of the transistors, I would have a low-value resistor (it cannot be high value or it would drop too much voltage, even if I use a 5v relay) basically connected between Vdd and GND. This would require relatively beefy resistors. Or am I missing something? – Bitgamma Jun 12 '14 at 20:39
• You are missing the capacitor. Your relay requires only a short pulse, which is supplied by the capacitor. The resistor serves only to replenish the capacitor for the next pulse. – Wouter van Ooijen Jun 12 '14 at 21:41
• Yikes! Have you missed the part where all the energy in the cap across the switching transistor is dumped through the transistor? We're talking major current spike. – WhatRoughBeast Jun 12 '14 at 23:42
• Yeah, your are right. Maybe a resistor or two will be required to keep that current spike manageable. – Wouter van Ooijen Jun 13 '14 at 6:49

Since most logic chips have totem-pole outputs, you could easily implement a full H-bridge driver like this:

    ___         | \
SET>-------O|  >----+-----+
| /     |     |
|  [ZENER]
|     |A
[COIL]   |
|     |A
|  [ZENER]
_____       | \     |     |
RESET>-----O|  >----+-----+
| /

_   _
R   S   COIL
---|---|-------
0   0     NC
0   1    SET
1   0   RESET
1   1     NC


Inverters can be paralleled in order to supply a current pulse heavy enough to latch the relay, and the Zener diodes (or a bipolar TVS) need to be included to suppress the relay coil's turn-off transient.