Come implementare un interruttore di alimentazione soft controllabile dal microcontrollore?


16

Voglio progettare un circuito in modo tale che il microcontrollore possa attivare un pin GPIO e arrestare l'intero sistema (incluso il microcontrollore stesso). E quando l'utente preme un pulsante momentaneo, l'alimentazione viene ripristinata nuovamente.

È possibile?

Risposte:


11

testo alternativo

Questo esempio utilizza un regolatore step-up Maxim MAX1835 , ma potrebbe essere applicato anche ad altri che hanno un perno di arresto.

Il circuito è normalmente spento. Quando l'utente preme il pulsante, la batteria viene immessa nel pin -SHDN, abilitando il regolatore e accendendo 3.3V al microcontrollore. Il microcontrollore inserisce quindi una logica 1 sul cavo POWER ON, mantenendo l'alimentazione dopo che l'utente ha rilasciato il pulsante. Quando il microcontrollore desidera spegnersi, imposta il cavo POWER ON su 0.


2
Molto importante, penso, è rimandare questo interruttore.
Kortuk,

2
@Kortuk, buon punto. Stavo supponendo che il micro si accendesse abbastanza velocemente da poter sostituire l'interruttore prima del primo rimbalzo, supponendo che guidare il pin in alto fosse la prima cosa che faceva il micro. In caso contrario, si potrebbe aggiungere un condensatore sul cavo -SHDN per creare una costante di tempo per l'accensione (anche se ciò comporterebbe anche un leggero ritardo nello spegnimento). Probabilmente quello da 10 nF deve essere lasciato per la soppressione del rumore (è stato incluso in uno schema di esempio del foglio dati). Oppure si potrebbe aggiungere un circuito RC aggiuntivo solo per l'interruttore.
Tcrosley,

Ho già visto un pazzo rimbalzo sugli interruttori prima.
Kortuk,

Un problema più grande che cambia il rimbalzo è il comportamento del processore durante lo spegnimento. In particolare, può essere utile assicurarsi che il processore possa accendere l'alimentazione solo quando il suo VDD è al di sopra del punto in cui è garantito il corretto funzionamento. Ho dovuto modificare alcuni circuiti di spegnimento automatico che occasionalmente si guastavano a causa del processore che eseguiva il codice casuale quando VDD scendeva al di sotto della tensione operativa valida. Il codice casuale potrebbe impostare su "accensione" alta, che a sua volta alimenterebbe il backup del dispositivo, eseguendo il codice a un indirizzo casuale.
supercat,

1

Un modo per farlo è quello di entrare in una modalità di sonno profondo sul microcontrollore.

Molti microcontrollori supportano il risveglio da un interrupt esterno, come un fronte su un pin IO.


poi otterrei anche l'assorbimento di corrente di quiescenza dell'alimentazione del regolatore al micro giusto?
cksa361,

Sì. Tu vorresti.
Toby Jaffey,

@ cksa361, alcuni micro sono nano o micro amp. Uso MSP430 e lo conserviamo intorno a 3-5 microampere.
Kortuk,

0

Sì, questo è certamente possibile, ma il modo in cui lo realizzi dipende dal tipo di carico che accendi e spegni.

Probabilmente è semplice come usare semplicemente un relè collegato al PIN di uscita del microcontrollore (tramite un transistor e un diodo di protezione) e un interruttore a pulsante collegato a un pin configurato come ingresso.

Ecco un semplice schema elettrico di esempio: schema del relè controllato da un microcontrollore

Quando si utilizza un interruttore a pulsante momentaneo, prestare attenzione al rimbalzo , tuttavia è necessario implementare un ritardo nel codice del microcontrollore per assicurarsi di controllare lo stato del pulsante per un periodo di tempo (ad es. 1 ms) prima di cambiare il relè di nuovo su. In caso contrario, il microcontrollore potrebbe raccogliere più segnali e commutare il relè più volte in un breve lasso di tempo, e scoprirai che il tuo pulsante funziona in modo intermittente.

AGGIORNAMENTO Ho appena visto la tua modifica relativa allo spegnimento del microcontrollore. Puoi darci qualche informazione in più su ciò che stai effettivamente cercando di fare? È difficile rispondere alla tua domanda senza comprendere l'intero sistema.

Se vuoi spegnere anche il microcontrollore, allora avresti bisogno di un modo per riaccendere il microcontrollore. Forse potresti usare il relè per alimentare tutto, incluso il microcontrollore, in questo modo il microcontrollore può spegnersi, ma non riaccenderlo. Quindi il tuo pulsante potrebbe essere collegato attraverso l'interruttore del relè, per cortocircuitare efficacemente dando il tempo sufficiente per accendere e tenere aperto il relè stesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.