Zasilanie układu scalonego z linii GPIO


10

Mam aplikację o niskiej mocy, która będzie zasilana z ogniwa monetowego Li. Z wybranym MCU osiągnąłem zadowalający prąd spania.

Aplikacja ADC IC to jednak inna sprawa: 900µA podczas nieaktywności - zdecydowanie za dużo dla aplikacji na monety.

Pomyślałem więc, dlaczego nie odłączyć zasilania ADC, gdy nie jest w użyciu. Przyszło mi do głowy dwa pomysły: wysokiej klasy FET na Vdd ADC lub po prostu podłączenie pinu Vdd (lub Vss) ADC do jednego z pinów MCU GPIO (zakładając, że prąd mieści się w specyfikacji źródła / ujścia MCU).

Zakładałem, że będzie mnóstwo artykułów, notatek aplikacji itp. Na ten temat, ale jeszcze nie znalazłem niczego w Internecie. Czy zanim zacznę eksperymentować, czy ktoś może skierować mnie do odpowiednich artykułów / notatek dotyczących aplikacji w Internecie? Czy to tylko zły pomysł? a jeśli tak to dlaczego?

(Tak, wiem, że większość MCU ma wbudowane ADC. Z powodów wykraczających poza zakres zapytania, naprawdę muszę użyć tego zewnętrznego ADC.)

Dzięki!


Jaki jest model twojego ADC?
Nick Alexeev

Odpowiedzi:


8

Zasilanie urządzenia przez pin GPIO jest zwykle złym pomysłem. W reżimie bardzo niskiej mocy być może uda ci się go uniknąć, ale nie zaleciłbym tego, chyba że masz bardzo poważne ograniczenia.

Zauważyłeś już, że sprawdziłeś, że wymaganie ADC jest niższe niż zdolność napędu kołka. Zazwyczaj wiele osób nie zawraca sobie głowy sprawdzaniem. Jeśli zużycie mieści się w wymaganych granicach, możesz być w porządku pod tym względem. Należy jednak upewnić się, że wszelkie wymagania dotyczące prądu przejściowego z ADC są również zawarte w możliwości napędu GPIO. Będziesz przynajmniej wymagał dość dużego oddzielenia zasilania ADC. Pamiętaj, że wyjście GPIO nie jest linią zasilającą o niskiej impedancji i wolniej reaguje na wymagania dotyczące prądu przejściowego.

Po drugie, ponieważ używasz ADC, a do tego ADC, który nie jest wbudowany w UC (co byłoby tym, co powinieneś robić przy bardzo niskim zużyciu energii), zakładam, że masz pewne wymagania, które nie są spełniony przez wewnętrzny ADC. GPIO, nie będąc linią zasilającą, a co ważniejsze, będąc GPIO mikrokontrolera, z całą pewnością zostanie zanieczyszczone co najmniej częstotliwością zegara uC, jego harmonicznych i ewentualnie subharmonicznych. Ponieważ będziesz przez to napędzać spory prąd, nie byłbym zaskoczony, gdyby wprowadzono również inne efekty. Możesz nawet zobaczyć małe elementy twojego SPI / I2C / co masz w zapasie, w zależności od używanego GPIO i tego, jak ciężkie jest odsprzęganie. Jeśli ważna jest rozdzielczość ADC i wydajność szumów,

Wysoka strona FET jest znacznie lepszym zakładem i jest bezpieczniejsza. Możesz również rozważyć użycie dowolnej liczby układów scalonych związanych z zasilaniem, które mają włączoną kontrolę, takich jak LDO i tym podobne. LDO w pobliżu zapasów ADC może również pomóc w poprawie wydajności. Należy jednak pamiętać, że oznacza to, że ADC będzie musiał pracować przy nieco niższym napięciu. Stanie się tak również z prostym przełącznikiem tranzystorowym, a przy niskim Rdson FET efekt będzie wprawdzie znacznie mniejszy, ale będzie istniał.

Należy zwrócić uwagę na to, że podłączenie linii cyfrowych niezasilonego układu scalonego do GPIO zasilanego komputera nie jest dobrym pomysłem. Skończysz zasilać swój ADC poprzez cyfrowe IO i powodować dziwne i potencjalnie niebezpieczne zachowanie. Byłbym szczególnie zaskoczony, gdyby twój ADC nie odpowiedział nawet po WYŁĄCZENIU. Może to powodować długoterminową degradację i przede wszystkim oszczędza energię. Aby go dobrze wyłączyć, należy użyć bufora translacji poziomów dla każdej linii cyfrowej między nimi z możliwością wyłączenia (trójstabilności) wyjść. Można to zrobić albo za pomocą pinu EN, albo za pomocą bufora z innymi mechanizmami do wyłączania (SN74LVC1T45 tristates, jeśli zasilanie z jednej strony jest na przykład uziemione). To, czy schemat jest użyteczny, zależy od zużycia bufora w stanie WYŁĄCZONYM, zużycia w stanie WŁĄCZONYM i cyklu pracy (ułamek czasu, dla którego chcesz go włączyć) oraz zużycia ADC (900uA), które możesz zaoszczędzić, robiąc to. Jeśli jesteś bardzo ostrożny, możesz być w stanie uniknąć potrzeby stosowania buforów, trist IO uC, które są podłączone do ADC przed wyłączeniem, a tym samym wytwarzając w przybliżeniu ten sam efekt.


Świetna odpowiedź. Inną rzeczą, o której należy wspomnieć, jest to, że ADC prawdopodobnie będzie chciał odłączyć kondensator na styku zasilania. Prąd rozruchowy kondensatora prawdopodobnie zakłóci linię GPIO.
Rocketmagnet

5

Tak, możesz to zrobić, po prostu upewnij się, że wszystkie ograniczenia są spełnione. Zrobiłem to kilka razy. Wykorzystanie wyjścia mikrokontrolera do zasilania małego obwodu zamiast przełączania jego mocy może być użytecznym sposobem na zaoszczędzenie miejsca. Użyłem tego w jednym projekcie, na przykład, aby włączyć analogowy interfejs odbiornika ultradźwiękowego tylko w razie potrzeby.

Oprócz oczywistego problemu ograniczonego prądu dostępnego z pinu wyjściowego, musisz obserwować szum z mikro dostającego się do obwodu przełączanego i radzić sobie z prądami przejściowymi pobieranymi przez obwód. Dodanie zaślepki do uziemienia na cyfrowym styku wyjściowym pomaga rozwiązać oba problemy, ale musisz również wziąć pod uwagę, ile pojemności mikro może przejechać podczas włączania lub wyłączania linii.

Nie jest to coś, co powinieneś lekceważyć i musisz dokładnie przemyśleć problemy, ale po odrabianiu lekcji i nadal ma to sens, idź dalej.


5

Tak, możesz to zrobić. I wielu ma. Na przykład Adafruit pokazuje, że robi się to w przypadku DS1307 RTC na adruino, zasilanym przez dwa gpio (jako vcc i gnd) . Odbywa się to również w przypadku monitorów LCD Nokia, które potrzebują tylko 1 mA dla ekranu (diody LED podświetlenia to inna historia, ale nadal można to zrobić za pomocą gpio).

Źródło zasilania jest źródłem zasilania. Dopóki pobór prądu jest niski, (Lub możesz tolerować spadek napięcia z powodu poboru prądu na stykach portu mcu), możesz to zrobić.

Teraz zależy to od czystości wyjścia gpio. Niektóre układy scalone rzadziej narzekają na nieco brudną linię niż inne. ADC może być jednym z tych, które nie są najlepszą opcją. Brudne źródło może wpłynąć na rozdzielczość lub niezawodność ADC. Może to spowodować pogorszenie zewnętrznego ADC niż wewnętrznego. Jak inni wspominali, czapka może pomóc.

Jest mało prawdopodobne, aby usmażyć ADC, więc najlepiej postawić? Podłącz go i przeprowadź testy kalibracyjne. Jeśli to działa, idź z tym. Jeśli nie, użyj tranzystora npn lub podobnego fet, aby odciąć zasilanie. Jeszcze jedna rzecz. upewnij się, że przełączasz piny danych na wejścia, gdy układ scalony jest wyłączony, i poczekaj, aż włączysz pin zasilania, zanim przełączysz je w tryb, w którym muszą być.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.