> I've talked about this before, and this is probably the weirdest > part of the new furnace controller, so I'm open for input.
Second try. Still no optos, but used the 2.5V idea to bias the first stage MOSFETS, so that a "floating" output makes Vgs zero for both MOSFETS, and an active signal drives them at +2.5V or -2.5V, thus turning one on and the other off. This also means this is now a non-inverting driver, so I added a second stage on the input tap to maintain polarity symmetry. I used an op-amp as a 2.5V source. I thought of using a 2.5V regulator, but I thought that an op-amp could sink or source relative to either +5v or ground, and accuracy wasn't a problem as the gate reference and the common source were driven by the same voltage anyway. Op-amps are also small and cheap, needing only a pair of resistors to set the input voltage. For eight I/O drivers, I think worst case is about 2 mA drive needed, to get 2.5V across the 10k resistors to turn the second stage on, for eight drivers all in the same logic state.