2
\$\begingroup\$

****I have knowledge of programming but VERY little experience with electronics.****

I'm attempting to switch a MOSFET using a 3.3v signal from an Adafruit MCU module (Adafruit Module here). The load the MOSFET would be switching is a 3v water pump (Water Pump Info here). The MOSFET that was chosen is the PMV28UNEA from Mouser.com (MOSFET Datasheet here).

The problem I'm having is when the signal pin from the MCU is set to high, the MOSFET switches on but my multi-meter shows a voltage drop when the motor is connected. Without the motor connected the voltage is around 4v (expected from the battery). However, whenever I connect the motor, the voltage drops to around 2.30v and the motor will not cycle on. The motor did cycle on once when I first tried it but hasn't since. I can't figure out what's causing this drop in voltage. I've included a simple schematic along with the links to the MCU, pump, and MOSFET. If I'm missing any relevant information here that would help please let me know.

schematic

simulate this circuit – Schematic created using CircuitLab

\$\endgroup\$
10
  • 1
    \$\begingroup\$ Check your battery is properly charged \$\endgroup\$
    – Damien
    Oct 2, 2018 at 5:48
  • \$\begingroup\$ The battery is charged. It's fully depleted around 3.2v. The motor cycles on if I connect it directly to +3.7v and Gnd but I need it to switch on and off with the MCU. \$\endgroup\$ Oct 2, 2018 at 5:51
  • 1
    \$\begingroup\$ How are you (physically) connecting all this? Since the motor needs a large current to start you might need to use soldered connections and somewhat thick wires for the path where that current flows. Also, give the MCU it own wire to the battery, I mean, don't make it share (part of) the wire the motor uses. This is because, when the motor is on current will flow and a voltage is dropped across those wires. That will then lower the supply to the MCU then the NMOS will get a lower Vgs and it might not fully switch on. \$\endgroup\$ Oct 2, 2018 at 6:32
  • \$\begingroup\$ Are you sure your diode is connected at the right polarity on your circuit? The diode line should face the opposite to the mosfet \$\endgroup\$
    – Damien
    Oct 2, 2018 at 6:41
  • \$\begingroup\$ Right now every thing is plugged directly into a bread board except the MOSFET which is soldered to a PCB, due to it's SOT-23 package, then jumper wires are used to connect it to the breadboard. The batt is connected directly to the MCU via its built-on battery port. The MCU board has a BATT pin which allows for sourcing power directly from the battery. A wire leads directly from this pin to the (+) power line on the bread board. Gnd is connected the same way. Sorry for the non-detailed schematic, I was trying to keep it simple. \$\endgroup\$ Oct 2, 2018 at 6:43

1 Answer 1

3
\$\begingroup\$

Probably when turning on the motor it draws enough current that the battery's internal resistance will drop voltage. In turn you see the voltage drop at the battery's terminals. When a DC motor starts up it needs a relatively large current in order to develop torque. You could try and connect a capacitor in parallel with the battery. This cap should provide the initial start-up current for the motor. This will not guarante that the motor will run since we do not know the specs. However a quick look at the datasheet suggests: I_motor = P / U -> 1.3W/3V = 434 mA. Is your battery able to provide that current??

So.. Lots of questions about the specs of motor and battery.

edited: Ok, motor is able to start if connected directly. So my hint is to decouple the MCU voltage rail from the motor supply rail. I guess the voltage drop affects the MCU and it is not able to drive the FET properly. Maybe a brownout occurs and a subsequent reset.

Decoupling with a diode (possibly lowest forward voltage) and stabilizing with a capacitor.

schematic

simulate this circuit – Schematic created using CircuitLab

2nd edit:

Since you updated your schematic I've updated mine:

Note: The BAT Pin is the output from the MCP73831, this is a battery charger circuit with programmable charging currents, etc. So this is the wrong place to hook up the motor. Probably by just connecting the motor directly to the battery will lead you to the desired behaviour. If not, just add the diode and a capacitor.

schematic

simulate this circuit

\$\endgroup\$
7
  • \$\begingroup\$ As I said above, the motor will cycle on if I connect it directly to the battery so I know the battery can power it. The only info on the motor is what the company provided on that page from the link. And sorry I forgot to post the battery info. It's a batt I got from Amazon so I don't really have a datasheet for it. But here's the Amazon link: amazon.com/Lithium-Rechargeable-connector-Atomic-Market/dp/… \$\endgroup\$ Oct 2, 2018 at 6:19
  • \$\begingroup\$ But the battery is rated at 2500mAh. As is my understanding that means it should be able to supply around 2.5A for an hour before it dies. So I assume it would be able to handle the 434mA at start up \$\endgroup\$ Oct 2, 2018 at 6:34
  • \$\begingroup\$ I've update my schematic above. I'm not sure how to implement your suggestion given the battery is actually connected directly to the MCU. The MCU has a built-in battery charging circuit. The MCU provides a "BAT" pin which allows you to connect directly to the battery that's connected to the MCU. I don't think my initial schematic illustrated that fact. Is there a way to decouple the MCU from the motor supply rail given this setup? \$\endgroup\$ Oct 3, 2018 at 0:02
  • \$\begingroup\$ @anonymous_blackness the Adafruit setup is not engineered to power large external loads such as motors. For that you'll need a different power solution. \$\endgroup\$ Oct 3, 2018 at 0:04
  • \$\begingroup\$ @ChrisStratton I can connect the motor directly to the BAT pin and GND and it will run just fine. The issue comes up only when I try to switch it on when it's connected to the FET. Can you recommend or suggest a different power solution. \$\endgroup\$ Oct 3, 2018 at 0:11

Your Answer

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

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