Protezione dei pin di ingresso del microcontrollore dall'interruttore Soft Power


10

Sto lavorando a un interruttore di alimentazione soft per un microcontrollore in cui un interruttore momentaneo può accendere il circuito (incluso il microcontrollore), quindi quando l'interruttore viene premuto una seconda volta, il microcontrollore può spegnersi dopo aver eseguito un po 'di pulizia.

disegno del circuito

Finora ho il circuito sopra, ma non sono sicuro che sarà affidabile. Sto usando una batteria agli ioni di litio (3,7-4,2 V) e il regolatore TC1015 (uscita 3,0 V). L'idea è che quando si preme l'interruttore, il regolatore si accende, quindi il microcontrollore si alza uC Power, mantenendosi acceso. Quando l'interruttore viene premuto una seconda volta, un interruzione uC Switchconsentirà al microcontrollore di uC Powerabbassarsi, spegnendosi.

Ciò di cui non sono sicuro è se devo proteggere il microcontrollore dalla tensione della batteria. Il microcontrollore che sto usando ha una tensione massima assoluta sui pin I / O di Vdd + 0.4V, quindi non sono sicuro di come gestirlo al meglio.

In secondo luogo, questo circuito impedirà al regolatore di accendersi quando è nello stato "off"? Avevo pensato di utilizzare un resistore di pulldown sulla linea di abilitazione, ma sono preoccupato per l'assorbimento di corrente mentre il chip è acceso.

Modifica: il microcontrollore è il carico principale che verrà commutato, quindi sfortunatamente metterlo in modalità a basso consumo non funzionerà qui.

Modifica n. 2 (dopo aver pubblicato le risposte):

Ho finito usando il circuito qui sotto:

schema a circuito fisso

Il circuito precedentemente pubblicato non funzionava molto bene e aveva problemi con una linea di abilitazione mobile quando il microcontrollore non lo alimentava.

Il nuovo circuito utilizza un flip flop, con la linea dati normalmente abbassata. Premendo l'interruttore si attiva l'orologio, accendendo il sistema. Le successive pressioni dell'interruttore guidano la CLOCKlinea in alto (consentendo al microcontrollore di rilevare la pressa), ma non influenzano l'uscita del regolatore. Una volta che il microcontrollore è pronto per spegnersi, imposta la DATAlinea alta e quindi imposta la CLOCKlinea alta, che causerà l'arresto del regolatore.

Una delle cose veramente belle di questa configurazione è che la prima pressione del pulsante accende il regolatore e lo tiene acceso fino a quando il microcontrollore non è pronto per spegnersi. Il rimbalzo non è un problema, perché non importa quante volte la linea di clock si alza, la linea di dati viene comunque mantenuta bassa dal pull down. Inoltre, l'assorbimento di corrente dovrebbe essere minimo (solo il flip flop e il TC1015 quando è spento) e l'assorbimento di corrente minimo attraverso i resistori è acceso.

Il microcontrollore deve essere protetto dalla tensione della batteria sulla linea di clock, ma come suggerito da @Andy aka, ciò può essere fatto con un resistore acceso CLOCK.

Risposte:


4

R1 e R2 limiteranno la corrente in pin sul tuo uC e questo di solito è sufficiente per proteggere il tuo dispositivo - devi solo controllare nelle specifiche qual è quella "corrente" di limite e scegliere un valore di resistenza che sia appropriato dato che l'alimentazione uC potrebbe essere a 0 V (non alimentato). Gli zener possono essere esclusi su questa base.

L'affidabilità è un altro problema. Il cambio di rimbalzo può causare l'accensione del tuo uC, quindi lo spegnimento alcune volte, quindi scrivi il tuo codice per esserne consapevole.

Penso che potrebbe essere consigliabile avere un resistore abilitato, ma probabilmente nella regione di + 10K e forse questo potrebbe essere più alto di 100k.

La tensione sul pin di spegnimento deve essere almeno del 45% di Vin, quindi questo non dovrebbe essere un problema.


3

Questo sembra un sistema autobloccante, che in teoria dovrebbe funzionare, come farebbe un circuito relè autobloccante (un pulsante viene utilizzato per accendere il relè, quindi poiché il perno di carico e il perno della bobina sono collegati insieme, il relè rimane acceso fino a quando l'alimentazione va ai perni di carico).

Per testarlo, senza rischiare un microcontoller, puoi farlo. Aggiungi un carico fittizio per rendere felice il regolatore (alcuni led, anche così puoi vedere che funziona), quindi lega l'output al punto in cui è contrassegnato uC Power. Dopo aver premuto l'interruttore, il regolatore dovrebbe avviarsi, accendendo i led e l'UC Power, che a loro volta dovrebbero mantenere il pin Enable in logica alto (Shutdown Logic High è almeno il 45% di VIN, quindi 1,89 V a 4,2 V In. ).

Quindi, se si preme il pulsante e i led rimangono accesi dopo averlo rilasciato, funziona. In caso contrario, non funzionerà così com'è.

Avvertenza: lo dico, non essendo sicuro di come i diodi Zener causeranno la reazione del circuito.


0

Il circuito che collega la batteria, i segnali del microcontrollore e l'ingresso SHDN * del regolatore (rinominato EN) sembra complicato.

Che ne dici di usare un fermo (funzionante a batteria) per catturare la chiusura della chiave. Quindi l'uscita di questo dispositivo di chiusura può essere OR con un segnale di segnale proveniente dall'MCU per pilotare il pin SHDN * del regolatore (rinominato in EN nello schema). All'avvio, l'MCU dovrebbe prima guidare la sua linea di abilitazione, quindi eliminare il fermo, assicurando così che EN rimanga affermato.

La successiva azione del pulsante può essere monitorata tramite il latch: se l'interruttore viene premuto di nuovo, il latch aumenta di nuovo. L'MCU lo nota e cancella sia il fermo sia il segnale di abilitazione, innescando l'arresto. Poiché l'interruttore è bloccato, l'MCU può monitorarlo molto comodamente semplicemente eseguendo il polling a una frequenza piacevole.

Un altro perfezionamento opzionale sarebbe un circuito per garantire che quando la batteria stessa è online, il sistema si accende senza l'uso del pulsante. Questo potrebbe essere un tipo di impulso che imposta il fermo.


0

Tirare EN in basso con un resistore adatto e legarlo a un perno io sull'MCU. L'interruttore passa su un pin di ingresso dell'MCU. Premendo il pulsante si attiva un interruzione sul pin di ingresso MCU che attiva / disattiva il pin di uscita che controlla il pin EN del tuo LDO.

Mettendo la mcu in modalità deep sleep, il pin verrà abbassato e disabiliterà LDO. L'attivazione di un'interruzione con l'interruttore lo riattiverà, tirando di nuovo il perno in alto e riaccendendo l'abilitazione dell'LDO.


Spiacente, avrei dovuto specificare un po 'più chiaramente, il microcontrollore è il carico principale che il LDO commuterà, quindi lasciarlo in uno stato di basso consumo non funzionerà.
Carson Darling,
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.