0
\$\begingroup\$

I have a battery powered system and I want to preserve the test batteries during setup and calibration. I want the system to use the setup batteries if they are present and use the test batteries if not.

The test batteries are either LiOn (nominally 7.2V) or NiMh (nominally 6.0V) and the setup batteries are NiMh (nominally 6.0V). I'd prefer a simple system, and also one that doesn't necessarily depend on the exact voltages and charge levels (as it's possible the setup batteries could be higher voltage than the test batteries in some cases).

I'm guessing the following PMOS circuit would work, provided that the Vgs(th) is higher than the max difference between Vtest and Vsetup. Getting a PMOS FET with Vgs(th) of about 4V seems about right.

schematic

simulate this circuit – Schematic created using CircuitLab

There are a few other SO topics about undervoltage and undervoltage cutoff that use voltage dividers, opamps and PMOS FETs, and another using an SCR, but I'm hoping for something simpler.

It seems like a JFET circuit might work here too (but I've never used a JFET yet).

Will my circuit work? Is there a better way?

\$\endgroup\$
  • 1
    \$\begingroup\$ So when the MOSFET turns on you get a 6 volt battery shorted to a 7.2 volt battery. Does this sound good to you? \$\endgroup\$ – Andy aka May 14 at 12:50
  • 1
    \$\begingroup\$ @Andyaka: Don't be silly. The MOSFET turns on only when the 6V battery is not present. \$\endgroup\$ – Dave Tweed May 14 at 14:55
  • \$\begingroup\$ You both bring up a good point: part of my question is how to make sure that the MOSFET is always off when the 6V battery is present and not, for example, turning on when the 6V battery is mostly discharged. \$\endgroup\$ – Casey May 14 at 18:12
  • \$\begingroup\$ Put a microswitch in the battery box, arranged to operate when the setup batteries are present. \$\endgroup\$ – Bruce Abbott May 16 at 5:30
  • 1
    \$\begingroup\$ You specified "...use the setup batteries if they are present", so I propose a mechanical switch that detects when the setup batteries are present. When the user installs the setup batteries the switch operates. \$\endgroup\$ – Bruce Abbott May 16 at 19:22
1
\$\begingroup\$

The problem with your diagram is that the Test battery will also drive the MOSFET gate high. You'll end up dropping VGS(th) across the MOSFET. Vsetup and the gate need to be isolated from Vpwr by another diode.

The simplest solution is to use a SPDT relay:

schematic

simulate this circuit – Schematic created using CircuitLab

But if you want to create the same function using transistors, you'll need a few more:

schematic

simulate this circuit

Note that I've shown the MOSFET body diodes explicitly to emphasize the fact that source and drain on M2 have been swapped.1

When Vsetup is present, Q1, Q2 and M2 are all on. Q2 keeps M1+M3 off.

When Vsetup is not present, R1 turns M1+M3 on and R3 keeps M2 off. R5 makes sure that any leakage current from Vpwr does not turn on Q1.


1 The first version of this schematic had M1 reversed, too. That's incorrect, because we need its body diode to block Vtest current unless M1 is explicitly turned on.2 As it is, there will be a constant drain from Vtest through R1 and R2 as long as Vsetup is connected. Increase their value as needed.

2 Actually, it's worse than that. If Vsetup is greater than Vtest, then it will try to charge Vtest through M1's diode. Therefore, we need a third MOSFET M3 to protect against that. Now you can see why specialized ICs have been developed to deal with this kind of application.

\$\endgroup\$
  • \$\begingroup\$ Why does the test battery in my pMOS only concept above drive the gate high? \$\endgroup\$ – Casey May 14 at 18:19
  • 1
    \$\begingroup\$ Put your thumb over Vsetup in your diagram. Do you see the path directly from the drain of the MOSFET to its own gate? \$\endgroup\$ – Dave Tweed May 14 at 18:48
  • 1
    \$\begingroup\$ Yes, but note the issue I raised in my second footnote above. If Vsetup > Vtest, it will try to charge Vtest through the body diode. \$\endgroup\$ – Dave Tweed May 14 at 19:23
  • 1
    \$\begingroup\$ Yes, that would work. It still leaves you with the problem that Vsetup cannot be less than Vtest by an amount that approaches Vgs(th). \$\endgroup\$ – Dave Tweed May 14 at 19:43
  • 1
    \$\begingroup\$ Thanks a ton... for the solution and the education. I'm moving forward with the SPDT relay solution now. \$\endgroup\$ – Casey May 14 at 19:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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