Electronic – the most economical way to drive an array of single coil latching relays

circuit analysislow-powerrelay

Please read the question to the end. The answer to this question may be non-trivial.

Replacing a number of 2-coil latching relays with single coil latching relays to save space on the board. The trouble: single coil relays are a lot more trouble to drive with the current reversal requirement.

Currently low-side switches such as darlington arrays or mosfets are doing the work and they cost pennies. Here are the common solutions I've thought of which do not work in our case:

  1. An array of h-bridges: Too expensive and not enough room on the pbc board.

  2. The method shown in the picture below (from Maxim) for every relay driven by two low-side switches: The relay coil voltage is close to Vcc (3V) which yeilds low R values and a total current draw above what the PS can provide.
    Low Side coil switching

  3. Capacitor Charge and discharge drive: This method requires large capacitors that are physically too large to fit in the enclosure (defeats the purpose of using single coil relays).

  4. An array of analog switches (one per coil as an on/off switch and two to flip Vcc and Gnd and reverse pol): This might work, however analog switches with low on-resistance are expensive compared to low-side mosfet or bjt switches.

What other solutions are recommended in this case?

Best Answer

One approach would be to control N relays using N+1 half-H-bridges. One of them connects to one wire which is common to all the relays, and the others connect to one relay each. A variation on this would be to arrange the relays into a matrix, with a half-H driver for each row or column (the N+1-half-bridge solution is simply a 1xN matrix). One caveat with this approach is that other relays--especially those in the same row or column as the driven relays may receive a substantial fraction of the drive voltage. In an NxN matrix, the voltage fraction will be (N-1)/(2N-1), which would be 1/3 for a 2x2 matrix, 2/5 for a 3x3 matrix, and would approach 50% as a matrix got bigger. For a non-square matrix, things would be worse.

If you can be sure that relays will not fire unless they receive more than half the rated drive voltage, a square matrix approach might work. Even the relays which don't fire would gobble significant current (as the matrix gets bigger, the voltage across the relays in the same row and column as the driven row would approach half the drive voltage, so figure current similarly); if one used an 8x8 matrix, the total current gobbled by the inadvertently-driven relays would be about 7x the current going to the deliberately-driven one. Not great, but being able to drive 64 relays with 16 half-bridge drivers might be worth it.