I want to switch the supply power of a low current high frequency load between 3V and 1.8V using a microcontroller. They are powering a CPLD IO-bank that I use as a level translator. Current consumption will be 20mA peak.

I already have the two voltages from regulators to power other things, so I want I really want is to multiplex between the two supplies I guess.

Is there an easy way to switch between the two supplies using one or two GPIO-pins? I need fairly low impedance switching and I can't tolerate any voltage drop.

  • \$\begingroup\$ I'm unclear to what you want - it's either switch the load between two voltage levels or switch the power supply that feeds the load between two power levels. \$\endgroup\$
    – Andy aka
    Commented Oct 17, 2015 at 15:43

1 Answer 1


You could put a pfet between the supply's and the Vio pin on the CPLD. Just make sure you only turn one on at a time. Does the CPLD not have multiple Vio banks? Because as soon as you flip the the higher voltage, everything will see it. Can all the translated devices stand that voltage?

  • \$\begingroup\$ With 1.8 V on the source, you might have a hard time finding a discrete PMOS that can fully switch, especially since OP says "I can't tolerate any voltage drop". \$\endgroup\$
    – The Photon
    Commented Oct 17, 2015 at 16:20
  • \$\begingroup\$ With a peak current of 20mA I assumed you could find something, or buffer the gate with the 3v and a BJT. I don't feel this is a good solution for high speed digital though... If that is really what he means by high speed. \$\endgroup\$
    – MadHatter
    Commented Oct 17, 2015 at 18:20
  • \$\begingroup\$ Would something like a solid state relay possibly work or 2 bus switches for like hot swap bays and cards? \$\endgroup\$
    – MadHatter
    Commented Oct 17, 2015 at 18:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.