Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Pushbutton Power On/OFF Controller with MCU GPIO

sakibnaz

Full Member level 3
Joined
Jul 6, 2008
Messages
165
Helped
6
Reputation
12
Reaction score
6
Trophy points
1,298
Activity points
2,778
Hello All.

I am designing a Li-Po 3.7V powered system with nRF52840 MCU. There is a simple 3.3V LDO (with Enable pin) to power the system. I want to have a Tactile Pushbutton based Power ON/OFF feature similar to a smartphone. For example, single press will Power ON and Press-Hold >5s will Power OFF.

I know there are some push-button on/off controller IC's such as STM6600. But they are expensive. Hence I wanted to manage this operation with nRF52 MCU's GPIO with no additional MCU.

Can anyone suggest any suitable schematic to achieve it?

Thanks in advance.
 
Hello!

What I understand is that you want to use a low power µP just for power management.
And this will power a larger device that you want to power off, right?
I have a similar system using a MSP430 to power on a larger system.

What I do:
- In Off mode, MSP430 is in deep sleep with interrupts.
- As soon as you press the button, it wakes up, calls the interrupt.
- In On mode, as it's powered by the main battery, I haven't bothered putting in sleep
mode as it consumes less than 1mA.
- When pressing a button:
* I start a timer
* I reconfigure the button interrupt to detect if I release the button before the timer is done
- When the timer calls its ISR, I reconfigure it to go to sleep mode, the state is point 1 above.
- When the timer button is released before timer is over, then reset the timer for the next press
and leave the system in On mode.

The schematic is obvious. I would suggest low power device, I don't know STM6600.
And I wouldn't recommend polling (although it's possible) because the small MCUs give you
ISR for free. What do you mean by "expensive"? 10 cent? 1 Euro? 5 Euros? What is your
budget? There are MSP430s starting (about) less than 50 cents. At least there were some
when I was using them.

Dora


Hello All.

I am designing a Li-Po 3.7V powered system with nRF52840 MCU. There is a simple 3.3V LDO (with Enable pin) to power the system. I want to have a Tactile Pushbutton based Power ON/OFF feature similar to a smartphone. For example, single press will Power ON and Press-Hold >5s will Power OFF.

I know there are some push-button on/off controller IC's such as STM6600. But they are expensive. Hence I wanted to manage this operation with nRF52 MCU's GPIO with no additional MCU.

Can anyone suggest any suitable schematic to achieve it?

Thanks in advance.
 
Last edited:
Hi,

use a single RS-FF powered from the battery. (very low standby current)
* SET it on pushbutton ... output POWERs ON the MCU
* RESET it on MCU PORT to POWER OFF

Thus it´s a software controlled Power OFF only ...
You may read the pusbutton state into the MCU by using a diode to avoid current draw during power down.

Klaus
 
Thank you all for reply.

@danadakk: Yes, it looks like a solution. But I would prefer if we can control the pure Power Cut with some discrete components.

@doraemon: I don't want to use any additional MCU due to cost and space.

@KlausST: Looks like a great solution. Can you please suggest any reference schematic?

Regards.
 
I suggest running at lower current from Vo = 3.0V with 80 mV dropout @ 1A , enable and other options $0.33 on a reel. or $0.50 (500 pc)


Rja = 60 'C/W with STD JEDEC board 4 layers (2s2p) with a top copper plane of 4x4 mm or more depending on W.

unless your RF range is inadequate which depends on Vdd and antenna quality. I suggest 2 ant's

nPM1100 also $1.60/1k and this PMIC supports brown-out reset from low battery.

https://www.digikey.ca/en/products/detail/nordic-semiconductor-asa/NPM1100-CAAA-E-R/16678569
1705359580681.png
 
Last edited:
You will want to debounce the button circuit (a good reason to use a low
end processor) -




Now here is a way of using a low end processor, and small amout of block code, to do a debounce.
Many designers talk about bounce in the range of 10 - 100 mS, I have had real crappy push buttons
that exceeded 300 mS.

mBlock code, used on ATTINY85 8 pin processor :

1705502916603.png


mBlock takes your block code and converts to Arduino code for you. If you learn mBlock
there are many variants you can code with, all with similar and different capabilities.

1705504569788.png

Examples (mBlock and others) :




Regards., Dana.
 
Last edited:
Hello!

I don't want to use any additional MCU due to cost and space.

OK. In this case there was some missin information.
- What's your budget for this solution?
- How much space do you have?

What you (most likely) need is a system that handles low power modes, and the only feature you need
is to be able to set a GPIO.
As for the cost, there are sub-dollar chips in the MSP430 series (TI). You can have the full list here.
Click "all filters" and you can select the features, for example the number of pins. Check here.
For instance when you select 8 pins, you get this.
Note that it consumes about 0.25 mA / MW, and as far as I remember, less than 1µA when in low power mode.
This low power mode accepts interrupts, which mean that you can catch a button edge and act on a GPIO.
The size is indeed a bit big (SOIC) but the price is reasonable for line 2 and 3.

Dora.

MSP430.png
 

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top