Sto lavorando a un progetto basato su AVR a batteria a bassa potenza che integra alcuni dispositivi diversi tra cui una striscia neopixel e un folletto di Adafruit . Quando il dispositivo generale è inattivo, mi piacerebbe che assorbisse meno di 0,1 mA per massimizzare la durata della batteria LiPo.
Ho fatto tutto questo (misurato 0,035 mA) ma non sono sicuro di averlo fatto necessariamente nel modo "giusto" e ho intenzione di costruire un prodotto basato su questo, quindi mi piacerebbe farlo nel modo giusto.
(Non mostrato: un diodo flyback per il relè)
La preoccupazione principale che ho è l'alimentazione "parassita" dei dispositivi quando VCC è disconnesso attraverso la corrente che scorre dai pin di dati. Ad esempio, il Pixie (che comunica via seriale) non ha la modalità di spegnimento e anche quando "off" si scarica di circa un milliampere. Quindi ho messo un piccolo relè per disconnettere il suo VCC e ho scoperto che il pin seriale stava ancora alimentando il folletto. Suggerimenti altrove hanno suggerito che molti chip hanno un diodo che sposta i loro pin di ingresso digitale su VCC come protezione dell'alimentazione. Per risolvere questo problema, ho dovuto sospendere la libreria seriale e in realtà digitalWrite (PIN, LOW) durante la sospensione.
La stessa cosa con la striscia WS2812b: la disconnessione di VCC consente comunque di alimentare il dispositivo dal pin dati. E in altri progetti quando ho disconnesso GND con un MOSFET a canale N, ho visto il contrario: un riflusso di corrente attraverso la linea dati verso terra! (Questo ha dovuto essere risolto con un diodo per post su PJRC.) Le WS2812b in realtà impiegano circa un milliamp ciascuna anche quando non sono illuminate,
Quindi la domanda: esiste un modo generale e "pulito" per disconnettere VCC e GND da parti di un progetto durante la sospensione del sistema quando ci sono pin di dati nel mix. Qual è la migliore pratica?
Qualche idea:
- Forza VCC su GND (non sai come? Hbridge?). (Se lo faccio, cosa succede ai pin di dati che sono alti?)
- Posizionare un buffer a tre stati tra tutti i pin di dati e questi dispositivi e durante la sospensione portare il buffer a tre stati in uno stato di alta impedenza, scollegare VCC o GND solo con mosfet P o N
- Scollegare GND solo con N mosfet e posizionare i diodi su tutti i pin di dati
- Esiste una sorta di blocco dell'alimentazione che disconnette sia VCC che GND e li mette in uno stato di "alta impedenza" (come un buffer a tre stati per l'alimentazione?) In questo modo la corrente non ha modo di fluire "fuori" dalle linee di dati.
Qualcuno può illuminarmi sul modo più pulito e ripetibile di gestire questo tipo di problema di "disconnessione del carico"? (Inutile dire che ho passato ore a cercare su Google questo problema con poca fortuna, anche se ho trovato questa nota tecnica sulla commutazione del carico ma non affronta il back-feed e il potere parassitario)