Alimentare un circuito integrato da una linea GPIO


10

Ho un'applicazione a bassa potenza che sarà alimentata da una cella a bottone Li. Ho raggiunto una corrente di sonno soddisfacente con il mio MCU scelto.

L'applicazione ADC IC, tuttavia, è una questione diversa: 900µA mentre inattiva - troppo per un'applicazione a bottone.

Quindi ho pensato perché non isolare l'alimentazione dell'ADC quando non è in uso. Mi sono venute in mente due idee: un FET high-side sul Vdd dell'ADC o semplicemente il collegamento del pin Vdd (o Vss) dell'ADC a uno dei pin GPIO MCU (supponendo che la corrente rientri nelle specifiche source / sink dell'MCU).

Ho pensato che ci sarebbero stati molti articoli, note sulle app, ecc. Che discutevano di questa idea, ma devo ancora trovare qualcosa online. Prima di iniziare a sperimentare, qualcuno può indicarmi articoli pertinenti / note app online? O è solo una cattiva idea? e se sì perché?

(Ya, sai che la maggior parte degli MCU hanno ADC integrati. Per ragioni che esulano dallo scopo della query, devo davvero usare questo IC ADC esterno.)

Grazie!


Qual è il modello del tuo ADC?
Nick Alexeev

Risposte:


8

Alimentare un dispositivo tramite un pin GPIO è di solito una cattiva idea. Nel regime a bassissima potenza, forse potresti cavartela, ma non lo consiglierei a meno che tu non abbia vincoli molto severi.

Hai già notato che hai verificato che il requisito dell'ADC è inferiore alla capacità dell'unità del pin. Questo è in genere ciò che molte persone non si preoccupano di controllare. Se il consumo rientra nei limiti richiesti, è possibile che tu stia bene su quel punto. Tuttavia, assicurarsi che eventuali requisiti di corrente transitoria dall'ADC siano contenuti anche nella capacità dell'unità GPIO. Come minimo occorrerebbe un disaccoppiamento ragionevolmente pesante sulla fornitura di ADC. Ricorda che l'uscita GPIO non è una linea di alimentazione a bassa impedenza e sarà più lenta a rispondere ai requisiti di corrente transitoria.

In secondo luogo, dal momento che stai usando un ADC, e quindi un ADC che non è integrato in un uC (che sarebbe quello che dovresti fare per un consumo di energia molto basso), presumo che tu abbia alcuni requisiti che non sono t soddisfatto dall'ADC interno. Il GPIO, non essendo una linea di alimentazione e, cosa più importante, essendo un GPIO di un microcontrollore, sarà sicuramente contaminato da almeno la frequenza di clock dell'uC, le sue armoniche e forse la subarmonica. Dal momento che stai anche guidando un po 'di corrente sostanziale attraverso di essa, non sarei sorpreso se anche altri effetti fossero introdotti. Potresti persino vedere piccoli componenti del tuo SPI / I2C / cosa hai in dotazione, a seconda di quale GPIO usi e di quanto sia pesante il disaccoppiamento. Se la risoluzione ADC e le prestazioni del rumore sono importanti,

La FET high side è una scommessa molto migliore ed è più sicura. Si potrebbe anche prendere in considerazione l'utilizzo di un numero qualsiasi di circuiti integrati relativi all'alimentazione che dispongono del controllo Enable, come LDO e simili. Un LDO vicino alla fornitura ADC può anche aiutare a migliorare le prestazioni. Nota, tuttavia, che questo significa che il tuo ADC dovrà funzionare a una tensione leggermente inferiore. Ciò accadrà anche con un semplice interruttore a transistor e, con un basso FET Rdson, l'effetto sarà, certamente, molto più piccolo, ma esisterà.

Una cosa che dovresti notare è che collegare le linee digitali di un IC non alimentato ai GPIO di un uC alimentato non è una buona idea. Finirai per alimentare il tuo ADC attraverso i suoi IO digitali e causerai comportamenti strani e potenzialmente pericolosi. In particolare, sarei sorpreso se il tuo ADC non avesse risposto anche quando era OFF. Questo è in grado di causare un degrado a lungo termine e, in primo luogo, è un vantaggio per il risparmio energetico. Per farlo spegnere bene, dovresti usare un buffer di traduzione di livello per ogni linea digitale tra i due con la possibilità di disabilitare (tristare) le uscite. Questo può essere fatto usando un pin EN, forse, o usando un buffer con altri meccanismi per disabilitare (SN74LVC1T45 si interrompe se l'alimentazione su un lato viene tirata a terra, per esempio). L'utilità dello schema dipende dal consumo del buffer nello stato OFF, dal consumo nello stato ON e dal ciclo di lavoro (la frazione di tempo per cui si desidera attivarlo) e dal consumo ADC (900uA) che puoi salvare facendo questo. Se state molto attenti, potreste essere in grado di evitare la necessità dei buffer tristando gli I / O U che sono collegati all'ADC prima di spegnerlo e producendo quindi lo stesso effetto.


Bella risposta. Un'altra cosa da menzionare è che l'ADC probabilmente vorrà un condensatore di disaccoppiamento sul suo pin di alimentazione. La corrente di spunto per il condensatore probabilmente sconvolgerà la linea GPIO.
Rocketmagnet

5

Sì, puoi farlo, assicurati solo che tutti i vincoli siano soddisfatti. L'ho fatto alcune volte. L'uso di un'uscita microcontrollore per alimentare effettivamente un piccolo circuito invece di commutare la sua potenza può essere un modo utile per risparmiare spazio. L'ho usato in un progetto, ad esempio, per accendere un front-end analogico del ricevitore a ultrasuoni solo quando necessario.

Oltre all'ovvio problema della corrente limitata disponibile dal pin di uscita, devi guardare il rumore del micro che entra nel circuito commutato e gestire le correnti transitorie disegnate dal circuito. L'aggiunta di un cappuccio a massa sul pin di uscita digitale aiuta con entrambi i problemi, ma devi anche considerare quanta capacità può guidare il micro mentre accendi o spegni la linea.

Questo non è qualcosa che dovresti fare alla leggera e devi pensare attentamente ai problemi, ma dopo aver fatto i compiti e ha ancora senso, vai avanti.


5

Si, puoi fare questo. E molti hanno. Ad esempio, Adafruit mostra che ciò viene fatto per un RTC ds1307 su un adruino, alimentato da due gpio (come vcc e gnd) . Questo viene fatto anche per gli LCD Nokia, che richiedono solo 1 mA per lo schermo (i led di retroilluminazione sono una storia diversa, ma possono ancora essere eseguiti da gpio).

Una fonte di energia è una fonte di energia. Finché l'assorbimento di corrente è basso (o è possibile tollerare l'abbassamento di tensione a causa dell'assorbimento di corrente sui pin della porta dell'MCU), è possibile farlo.

Ora dipende da quanto è pulito l'output di gpio. Alcuni IC hanno meno probabilità di lamentarsi di una linea leggermente sporca rispetto ad altri. Un ADC potrebbe essere uno di quelli che non sono l'opzione migliore. Una fonte sporca potrebbe influire sulla risoluzione o l'affidabilità dell'ADC. Potrebbe rendere l'ADC esterno peggiore di quello interno. Come altri hanno già detto, un cappello potrebbe aiutare.

È improbabile friggere l'ADC, quindi scommessa migliore? Collegalo ed eseguilo attraverso alcuni test di calibrazione. Se funziona, seguilo. In caso contrario, utilizzare un transistor npn o un fet simile per ridurre la potenza. Solo una cosa. assicurarsi di cambiare i pin dei dati in input quando l'IC è spento e attendere fino a quando non si accende il pin di alimentazione prima di passare alla modalità in cui devono essere.

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.