SMD MOSFET to power down my SMD H-Bridge

5 volt system.
An atmega328P-AU, DS3234, & h-bridge (Si9986)

My atmega will be sleeping, waiting for the interrupt from the DS3234 timer. DS3234 will have Vcc cut off from an Arduino pin, so it runs on Vbatt. But if I’m reading the datasheet correctly on the Si9886, it uses 300 uA in standby mode.
To achieve a low quiescent current, I think I’ll need to power down this H-Bridge.

I found one user said they like this MOSFET. The DMN3404L
http://www.mouser.com/ProductDetail/Diodes-Inc/DMN3404L-7/?qs=oUsD4qhOtFw9qrJFkpbwKg%3D%3D

I don’t understand enough about FETs to be certain this is a good selection. Can someone please confirm this? My H-Bridge will be switching a 6 volt motor, .5 amp, max current. My atmega will be running on 3 cells (4.5 volts).

I’ve included an image of how I assume I power down the h bridge.
Many thanks.

Looks OK.
You could also use a small, sensitive DIP 5Volt relay.
http://www.frys.com/product/6401152

Not sure you can do that - the Si9886 requires all its inputs be no lower than -0.3V w.r.t. its ground terminal - you are
proposing low-side switching of the Si9886 - its ground will then rise to Vbat, so that Arduino ground will appear as
-Vbatt. If any of the Arduino pins connected to it are driven LOW, or if the Arduino is powered down you'll fry the
H-bridge inputs.

The normal approach is high-side switching - what is Vbatt? If its also 5V then a logic-level p-channel MOSFET could be used to
switch the H-bridge (if higher you'd need an small n-channel MOSFET as a level-shifter to drive the p-channel gate.

What state will the Arduino be in when sleeping - can it drive an output HIGH or LOW then?

BTW the H-bridge has a standby current drain of about 75uA, not 300uA - see the graphs in the datasheet. The
300uA figure is across all supply voltages and temperatures.

MarkT:
Not sure you can do that - the Si9886 requires all its inputs be no lower than -0.3V w.r.t. its ground terminal - you are
proposing low-side switching of the Si9886 - its ground will then rise to Vbat, so that Arduino ground will appear as
-Vbatt. If any of the Arduino pins connected to it are driven LOW, or if the Arduino is powered down you'll fry the
H-bridge inputs.

The normal approach is high-side switching - what is Vbatt? If its also 5V then a logic-level p-channel MOSFET could be used to
switch the H-bridge (if higher you'd need an small n-channel MOSFET as a level-shifter to drive the p-channel gate.

What state will the Arduino be in when sleeping - can it drive an output HIGH or LOW then?

BTW the H-bridge has a standby current drain of about 75uA, not 300uA - see the graphs in the datasheet. The
300uA figure is across all supply voltages and temperatures.

Thanks. I wondered about that issue of switching the gnd. The P channel counterpart to that MOSFET is this: http://www.mouser.com/ProductDetail/Diodes-Inc/DMP2305U-7/?qs=oUsD4qhOtFyFQmlG8wLVjw%3D%3D
I could switch Vcc of the H bridge with this I think. Would that upset the Si9986?
From what I understand from Nick G's tutorial on low power modes, you can set the Arduino pins high or low before powering it down.
Vbatt will be 3 volt from a lithium cell.

The best alternative would be an H-bridge that uses low quiescent current, but I don't know how you'd even go about searching for one.

Edit: Vbatt is just referring to the coin cell supply for the DS3234, and it not connected to the Arduino.

The best alternative would be an H-bridge that uses low quiescent current, but I don’t know how you’d even go about searching for one.

I looked through several other h bridge data sheets for low quiescent current without lick. I hoping cutting the supply Vcc using the above mentioned N channel MOSFET will work?

SouthernAtHeart:
5 volt system.
An atmega328P-AU, DS3234, & h-bridge (Si9986)

My atmega will be sleeping, waiting for the interrupt from the DS3234 timer. DS3234 will have Vcc cut off from an Arduino pin, so it runs on Vbatt. But if I'm reading the datasheet correctly on the Si9886, it uses 300 uA in standby mode.

300uA maximum, but more like 65uA typical @ Vdd=5V judging from page 3 of the datasheet.

Low-side switching to turn the power supply to the H-bridge off using an N-channel mosfet is OK provided you set INA and INB high first. Similarly, turn the mosfet on before you set the pins driving INA and INB to be outputs. It's slightly better to put the 10K resistor to ground on the other side of the 330 ohm resistor unless there is a connector involved, that way the mosfet gate gets the full ~5V drive from the atmega328p instead of ~97% of it.

...would this solid state DC relay be a better choice to power down an H-bridge? I didn't seem anything in the datasheet that would indicate I couldn't switch the high side, which sounds safer than turning everything on/off high/low in the right order as suggested to switch the low side...
Seems this only has 1uA of current when off?

Thanks for taking a look at this. This does seem a good solution to me, I'll be anxious to get some feedback on this relay.

...and if there's a better more obvious way to cut power to an H-bridge so my project can run on just a few uA, don't hesitate to tell me I'm missing something. I thought of trying to skip the h bridge but couldn't come up with a way to run a 200-500mA motor in both directions.

If you switch the high side of the H-bridge, you will still have to make sure you set the outputs correctly (i.e. low) before you power it down. So switching the high side instead of the low side doesn't gain anything.

Using an SSR is overkill, you don't need isolation in this case.

Low-side switching to turn the power supply to the H-bridge off using an N-channel mosfet is OK provided you set INA and INB high first. Similarly, turn the mosfet on before you set the pins driving INA and INB to be outputs.

Ok, if I switch the low side, I won’t need the extra MOSFET driver transistor, just this setup in the attached picture. But then to do all that I’ve quoted you here. …can I do this if I’m turning on power, running the motor a few seconds, turning off power, rinse repeat twice a day?
Can you list the order of proper startup/ shutdown? The way I see it if I set INA/B high first, then shut down the MOSFET, won’t I leave them high until after I power it up again? But you said to turn on the MOSFET before setting INA/B as outputs, but they’ll already be outputs, & set to high. ???

I don’t mind using a P channel, or using extra components, I just want to do it properly-what ever is the best most acceptable way of turning off power so as to bring my total quiescent current down to just a few uA. From all that I’ve read, it seems a P channel is more commonly used to switch the high side, but I did notice those P channel circuits all have a pull up resister, and that in itself will draw more current than I want.

If your H-bridge and the Arduino are running from the same +5V supply, then you can switch either the high side or the low side of the H-bridge. You can use either a logic-level P-channel mosfet to switch the high side, or a logic-level N-channel mosfet to switch the low side. The P-channel mosfet needs a pullup resistor between gate and +5V to hold it off while the system is powering up; the N-channel mosfet needs a pulldown resistor to ground for the same reason. In both cases, when the mosfet is off, there is no voltage across the resistor, so no associated current drain.

If your H-bridge uses a different +5V (or higher) power supply from the one powering the Arduino, then you must use high-side switching, with a P-channel mosfet and an NPN BJT or similar to level-shift the mosfet gate drive. The usual level shifting circuit consumes no power when the mosfet is off.

I suggest you include 1K resistors between INA, INB and the corresponding Arduino pins, to protect the chips in the event of you getting the sequence wrong.

Here is my suggested operating sequence:

  1. Low side switching with N-channel mosfet (output pin high to turn mosfet on)

Initialise:
digitalWrite LOW to mosfet control
mosfet control pinMode to OUTPUT
digitalWrite HIGH to INA, INB
INA, INB pinMode to OUTPUT (both will be set HIGH because of the previous command)

Power up:
INA, INB should both already be HIGH
Mosfet control HIGH to enable power to H-bridge

Power down:
INA, INB HIGH
Mosfet control LOW to power down H-bridge

  1. High side switching, direct connection to P-channel mosfet (output pin low to turn mosfet on)

Initialise:
digitalWrite HIGH to mosfet control
mosfet control pinMode to OUTPUT
DigitalWrite LOW to INA, INB
INA, INB pinMode to OUTPUT

Power up:
INA, INB should already be LOW
Mosfet control LOW

Power down:
INA, INB LOW
Mosfet control HIGH.

  1. High side switching with level shift: as (2) but reverse mosfet control pin HIGH/LOW.

Thanks dc42,
I really would like to understand this stuff better. So my scenario is #3, since my motor voltage is 6 volts and my Arduino voltage is 4.5 volts.
This photo is what I’ve found from another thread. Is this correct? I’ve read that the pull up resistor on the MOSFET’s gate is needed to turn it off. But the continuous current drain across that 10K resistor will defeat the purpose of attaining ultra low quiescent current. My motor voltage is 6 volts, so across 10K, that’d be a 600 uA, no?

image.jpg

That circuit is OK, although personally I would reduce the value of the pullup resistor to +6V to 2k2 or 4K7, at the expense of slightly increased current consumption when the H-bridge is powered up. This resistor will only draw current when the transistor is turned on and the H-bridge is powered up, so it doesn't defeat the purpose of switching the H-bridge supply.

As you have a little under 6V gate drive available, you will need to use a logic level P-channel mosfet.

Ok, I think I got it! Here’s a photo of what I’ve got, and the components. Oh, I don’t have it… I just discovered the 2N3904 transistor doesnt come in SMD at Digikey. What would a good NPN transistor be to turn on/off my MOSFET? I have some BSS138W-7-F in stock. Would they be a good choice? If not ill be ordering from Digkey anyway.
and does the P channel mosfet look appropriate?

BSS1338 transistor: (I guess it’s not a transistor, but an NPN MOSFET)
http://www.diodes.com/datasheets/ds30206.pdf

The P channel MOSFET (DMP2305U)
http://www.diodes.com/datasheets/ds31737.pdf

H-Bridge

Looks OK to me. The Vgs rating of that P-channel mosfet is only 8V, uncomfortablly close to the 6V drive it is getting, so it is probably better to spit the 2K2 resistor into 2 x 1K and drive the gate from the junction of the two. Alternatively, pick a mosfet with a higher Vgs rating but designed for 5V gate drive, such as TSM2313CX.

For the transistor, use either a bipolar NPN transistor such as BC817 and omit the 10K resistor to ground, or a small signal mosfet such as your BSS138W and omit the 10K series resistor…

PS - don't forget to add some good decoupling capacitors between the source terminal of the P-channel mosfet and the ground connection of the H-bridge.

Alternatively, pick a mosfet with a higher Vgs rating but designed for 5V gate drive, such as TSM2313CX.

…still looking for something at Digikey. I can’t get the one you mentioned at Digikey, and at Mouser it’s a non stocked item which you’ve gotta order 15000 of…
Digikey’s filtering system doesn’t have the criteria of Vgs, so I’m having trouble selecting one. Once I find something I’ll post my updated schematic.

Perhaps PMV48XP then?

dc42:
Perhaps PMV48XP then?

Thanks! Here’s what I came up with…
Is R1 needed? I usually put something like that to make sure the motor is off while the Arduino boots up.
So nothing is needed between the Arduino pin and the gate of the BS1338?
Sure appritiate all the help!

I’ll be glad to go this route rather than just a relay.

R1 is worth including. Its purpose is to ensure the mosfet is kept off when the system is powered up but the Arduino pin has not yet been configured as an output. It isn't needed if the pin feeds a BJT, but then you need a series resistor instead.

Looks OK to me. The Vgs rating of that P-channel mosfet is only 8V, uncomfortablly close to the 6V drive it is getting, so it is probably better to spit the 2K2 resistor into 2 x 1K and drive the gate from the junction of the two. Alternatively, pick a mosfet with a higher Vgs rating but designed for 5V gate drive, such as TSM2313CX.

I have changed from a 6 volt motor supply to a 9 volt supply, (and tapping off 4.5v for the 328 chip), but I don’t understand this Vgs thing, so will this schematic still work to turn on/off Vcc to my motor driver chip?
Will I still need to have the 2k2 resister split into 2 1k resistors? I don’t understand thus part.
Thanks.