Długa żywotność baterii w obwodzie mikrokontrolera


26

Mam nadzieję, że zasilę ATtiny85V przez długi czas na małej baterii, prawdopodobnie na monety.

Zajrzałem do strony oprogramowania, a mój kod jest sterowany zegarem nadzorującym, ma wyłączone nieużywane konwertery analogowe i cyfrowe, układ działa z częstotliwością 1 MHz itp. Oczywiście będąc jednocześnie zajęty i nowy, nie jestem pewien ile prądu pobiera, ale mam nadzieję, że w zasadzie go zminimalizowałem.

Co kilka sekund budzi się, sprawdza poziom napięcia na ADC, rejestruje go, aby taranować i wraca do snu. Jeśli wykryje, że linia szeregowa jest podłączona, wyrzuca dane.

Jednak teraz patrzę na obwód jako całość i zastanawiam się, czy są rzeczy, które powinienem zrobić, aby obwód jako całość był bardziej przyjazny dla baterii?

Jakie są podstawowe zasady i zasady dotyczące projektowania długotrwałego (prostego) obwodu, w którym jeden element (mikrokontroler) ma powtarzalny, ale zmienny pobór prądu?

Na przykład:

  • Czy wskaźnik LED to wielka sprawa? Czy zużywa baterię, gdy jest jasna? Czy powinienem nałożyć gigantyczny rezystor, aby przyciemnić, czy to tylko powoduje, że rezystor korzysta z baterii?
  • Czy powinienem używać kondensatorów obejściowych / odsprzęgających, aby wyrównać pobór prądu z akumulatora, czy może kondensator po prostu marnuje moc akumulatora?
  • Mikrokontroler potrzebuje tylko 1,8 V, ale nie mam żadnych akumulatorów 1,8 V. Czy powinienem użyć dwóch baterii 1.x i wysłać za duże napięcie? Czy mogę przedłużyć żywotność baterii „nie zużywając tylu woltów”? W jaki sposób mogę to zrobić?
  • Czy sprawdzenie, czy pin jest WYSOKI czy NISKI, wymaga dodatkowej mocy? Czy w porównaniu z brakiem operacji lub arytmetyką występuje dodatkowe zużycie energii podczas sprawdzania stanu jednego z pinów we / wy GP?

Niejasno wiem, jak obliczyć (a bardziej niejasno jak zmierzyć) prąd, napięcie, moc, ale nie jestem pewien, która z tych rzeczy odpowiada żywotności baterii. Czy ważny pomiar żywotności baterii w Coulombach?

Mam niejasny pomysł, że baterie są pełne takich rzeczy jak:

  • ładować, jak w amp-godzinach
  • energia, jak w watogodzinach
  • moc, jak w watach

ale nie jestem do końca pewien, co mój obwód „je”, gdy działa. Przeczytałem sporo podręczników do fizyki i fizyki, ale tak naprawdę nie mam doświadczenia w laboratorium. Innymi słowy, czytałem tonę o bateriach, ale nie jestem do końca pewien, co to w większości znaczy.

Czy rezystory zużywają baterię? Czy kondensatory? Czy diody? Podejrzewam, że wszyscy tak robią, ale która z tych liczb ma znaczenie? Impedancja? Rozpraszanie mocy? Obecny? Napięcie?

Czy istnieje sposób na obniżenie napięcia bez marnowania baterii? Czy istnieje sposób na obniżenie napięcia przy jednoczesnym zwiększeniu żywotności baterii?


6
To bardzo, bardzo szerokie pytanie. Prawie musisz zadać wiele pytań. Mógłbym zadać pełne pytanie dotyczące pytania mocy LED.
Kortuk

1
Fajnie, podzielę to po godzinach pracy. Może ten jest po prostu szerokim zakazem. Myślę, że takie odpowiedzi byłyby pomocne dla osób, które po prostu chcą uzyskać więcej z baterii, ale wydaje mi się, że udzielenie jakiejkolwiek wiarygodnej lub edukacyjnej odpowiedzi wymaga węższego pytania.
Jack Schmidt,

Tak, zdałem sobie sprawę, że będę musiał podzielić odpowiedź na twoje pytanie i zajmie mi to godzinę.
Kortuk

BTW moja żona znalazła makezine.com/makeitlast, który może być w końcu przydatny, ponieważ jest to w zasadzie konkurs na zrobienie tego rodzaju rzeczy. Myślę, że zaczyna się dzisiaj, więc nie mają żadnych podpowiedzi, jak to zrobić. W każdym razie mój projekt jest niezależny i wątpię, czy i tak miałbym czas na udział :) Zapraszam do czekania do końca konkursu, jeśli nie podobają ci się takie rzeczy.
Jack Schmidt,

Odpowiedzi:


20

Po prostu losowa lista, jeśli opublikujesz swój schemat, prawdopodobnie byłoby łatwiej:

Ogniwa monety litowej 1,8 V są bardzo łatwe do znalezienia, ale bardziej prawdopodobne jest, że twój interfejs szeregowy potrzebuje 3.3v? Chyba że twój odbiorca poradzi sobie z napięciem 1.8 V.

Prąd upływowy zwykle rośnie wraz ze wzrostem napięcia, więc zwykle niższe. Weź również pod uwagę punkt brązowienia systemu względem charakterystyki akumulatora. Charakterystyka „śmierci” akumulatora będzie zależeć od zastosowanej chemii akumulatora. Na przykład, jeśli twój UC przepali się przy 1,7 V, możesz faktycznie chcieć użyć akumulatora o wyższym napięciu, ponieważ w przypadku niektórych akumulatorów napięcie wyjściowe będzie się powoli obniżać w miarę rozładowywania się akumulatora. Wydłużysz żywotność baterii 3,3 V, ponieważ gdy zacznie umierać, jej moc będzie powoli spadać i będziesz mógł pracować aż do 1,8 V. Jeśli użyjesz baterii 1,8 V, szybko się wyłączysz, gdy bateria wyczerpie się. Wszystko to zakłada, że ​​interfejs szeregowy lub inne elementy mogą poradzić sobie z szerokim zakresem napięć (wiem, że AVR może).

Diody LED zużywają dużo energii, chyba że użyjesz diody LED o bardzo niskiej mocy i kontrolujesz jej pobór prądu, prawdopodobnie pobiera o wiele więcej prądu niż AVR. Jeśli jest tam tylko do debugowania, nie wypełniaj go do produkcji lub tylko niech mruga raz na jakiś czas lub coś, aby zminimalizować jego czas i zdecydowanie kontrolować bieżące losowanie.

Jeśli możesz, wybierz polaryzację / stan spoczynku interfejsu szeregowego, aby pobierać jak najmniej energii, to stan spoczynku nie powinien pobierać mocy. Jeśli wymagane są podciągnięcia, użyj największego możliwego rezystora, aby zachować integralność sygnału, ale zminimalizować zużycie prądu. Jeśli moc jest ogromnym problemem, użyj schematu, który faworyzuje bity, które nie pobierają mocy. Na przykład, jeśli masz podciągnięcia, użycie protokołu, który powoduje, że w sygnale jest wiele 1, pozostawi interfejs szeregowy w stanie, który przez większość czasu nie pobiera tak dużej mocy. Takie optymalizacje są opłacalne tylko wtedy, gdy intensywnie korzystasz z magistrali szeregowej. Jeśli jest bardzo lekko używany, upewnij się, że jego stan spoczynku nie pobiera mocy.

Mówiąc ogólnie, możesz założyć, że wszystkie instrukcje (czytanie GPIO itp.) Wymagają takiej samej mocy. To nie do końca prawda, ale różnica mocy jest minimalna.

Zużycie energii jest znacznie bardziej zależne od liczby / rodzaju urządzeń peryferyjnych, które zostały włączone, oraz od czasu, jaki mikro spędza na aktywnym kontra spanie. Więc ADC zużywa więcej mocy, pisze EEPROM zużywa sporo energii. W szczególności coś takiego jak zapisy do EEPROM-u są zwykle wykonywane w dość dużych „porcjach”, dlatego powinieneś zgromadzić jak najwięcej informacji przed wykonaniem zapisu do EEPROM-u (jeśli nawet go używasz). Dla ADC, który mikro obsługuje odczytywanie ADC podczas 2 stanów uśpienia, ponieważ konwersja ADC zajmuje stosunkowo dużo czasu, jest to dobry czas na sen.

Prawdopodobnie powinieneś po prostu przeczytać sekcje dotyczące zarządzania energią, stanów uśpienia i minimalizacji zużycia energii w karcie danych mikrokontrolera: linky strona 35 na. Utrzymuj AVR w możliwie najgłębszym stanie uśpienia tak długo, jak to możliwe. Jedynym wyjątkiem jest to, że należy wziąć pod uwagę czas uruchomienia i wyłączenia. Nie warto spać przez 10 cykli, jeśli budzenie zajmuje 25 itd.

Czy rezystory zużywają baterię? Czy kondensatory? Czy diody?

Wszystkie robią do pewnego stopnia. Rezystory rozpraszają się najbardziej w większości aplikacji:

P = V * I

P = V ^ 2 / R lub P = I ^ 2 * R (gdzie V to spadek napięcia na oporniku)

Diody mają (względnie) stały spadek napięcia, więc rozpraszanie mocy jest prawie wyłącznie związane z prądem przepływającym przez diodę. Na przykład dioda ze spadkiem napięcia do przodu o 0,7 V, P = 0,7 * I, jeśli prąd przepływa przez diodę do przodu. Jest to oczywiście uproszczenie i powinieneś sprawdzić tryb pracy oparty na charakterystyce IV diody.

Kondensatory teoretycznie nie powinny rozpraszać żadnej mocy, ale w rzeczywistości mają skończoną oporność szeregową i niezerowy prąd upływowy, co oznacza, że ​​rozpraszają pewną moc, co na ogół nie jest czymś, o co należy się martwić przy tak niskich napięciach. To powiedziawszy, wybór kondensatorów o minimalnym prądzie upływu i ESR to wygrana mocy.

Jeśli chodzi o wykorzystanie ich do wygładzenia poboru baterii, tak naprawdę nie pomaga to w zużyciu energii, a bardziej w filtrowaniu. W grę wchodzi również chemia baterii, niektóre chemikalia będą szczęśliwsze przy ciągłym pobieraniu, niektóre lepiej radzą sobie z gwałtownym pobieraniem prądu.


1
ważną częścią P = V ^ 2 / R jest to, że wraz ze wzrostem R przy stałym napięciu zużycie energii maleje.
Kortuk

Fajnie, więc aby użyć więcej baterii, prawdopodobnie będę potrzebować wyższego napięcia (prawdopodobnie używając regulatora sugerowanego przez Andrew). Zrobię kilka eksperymentów, aby zobaczyć, jak niskie napięcie przejmie linia szeregowa. Upewnię się również, aby ustawić nieużywane piny na wyjście. Szeregowy jest używany tylko sporadycznie, więc po prostu sprawdzę stan spoczynku. Zdecydowanie próbowałem wyłączyć wszystkie urządzenia peryferyjne, jakie mogę.
Jack Schmidt

W przypadku kondensatorów: więc prawdopodobnie nie potrzebuję żadnego kondensatora, aby pomóc rozładować baterię. Sprawdź skład chemiczny akumulatora, ale zakładając, że może on obsłużyć wzór prądu, który mam, to nie musisz go dostosowywać, prawda?
Jack Schmidt

Dzięki za rzecz P. Myślę, że teraz rozumiem. P = I * V gdzie V jest spadkiem napięcia, więc mogę zmierzyć zużycie baterii w P lub I (lub P-godzinach lub I-godzinach), o ile napięcia nie można zmienić. Nadal nie jestem pewien, czy mogę zmienić V na „za darmo”.
Jack Schmidt

1
Wspomniany wyżej regulator buck-boost jest naprawdę najlepszym rozwiązaniem. Nie wspomniałem o tym, ponieważ układ takich obwodów jest zwykle krytyczny. Trudno je sobie wyobrazić bez funky wydajności lub promieniowania EMI. Przeczytaj uważnie arkusz danych, zwykle zawiera zalecenia dotyczące układu i identyfikacji ścieżek krytycznych. Będą również zaostrzone ograniczenia dla niektórych używanych części. Kondensatory o niskim ESR i tym podobne.
Mark

12

Mark udzielił najbardziej doskonałej odpowiedzi i trafił w wiele punktów, które chciałem przedstawić. Jest też kilka, do których chciałbym się przyczynić.

Użyj oscyloskopu z rezystorem niskoemisyjnym szeregowo ze wspólnym powrotem do akumulatora, aby wykonać pomiary prądu. Aktualny pobór za pomocą mikrokontrolera nie jest prosty i z reguły mierniki są zbyt DUŻO zbyt wolne, aby dać ci dobry obraz tego, co się dzieje. To, co oznacza „niski om”, zależy od oczekiwanego poboru prądu. rezystor 1 Ω wytworzy 100mV na każde pobrane 100mA, a to prawdopodobnie dla ciebie za dużo. Wypróbowałbym rezystor 10 omów 1% lub 0,5%; zobaczysz 100mV na każde 10mA bieżącego poboru. 18 omów daje 100 mV na każde 5,5 mA. Jeśli NAPRAWDĘ dążysz do niskiej mocy, być może uda Ci się uciec z 1k; I = V / R: zobaczysz 100 mV na każde 100uA pobieranego prądu. Ostrożnie jednak; jeśli pobierzesz wystarczającą ilość prądu, spadniesz zbyt mocno na bocznik i twoje pomiary będą wyłączone, nie wspominając, że obwód prawdopodobnie nie zadziała. :-)

Po podłączeniu lunety wypróbuj kilka różnych częstotliwości pracy mikrokontrolera. Możesz być zaskoczony, gdy dowiadujesz się, że zużywasz mniej energii przy wyższej częstotliwości taktowania, ponieważ spędzasz znacznie mniej czasu „na jawie”.

Wyeliminuj jak najwięcej podciągnięć / upadków. Nie powinieneś mieć żadnych na żadnym wyjściu, ponieważ w większości przypadków możesz je doprowadzić do stanu bezczynności. Wejścia powinny być powiązane z tym, co ma sens, wykorzystując możliwie najwyższą wartość, jak powiedział Mark.

Upewnij się, że twój mikrokontroler ma jak najwięcej wyłączeń. Zamień nieużywane piny w wyjścia i ustaw je w stan (wysoki lub niski, nie ma znaczenia). Nie pozostawiaj włączonych diod LED. Jeśli możesz wyłączyć inne komponenty lub zatrzymać ich zegary, zrób to. Na przykład pamięci SPI Flash często mają polecenie „wyłączania”, które pobiera już niski pobór mocy i obniża go jeszcze bardziej.

Inni poruszyli kwestię napięcia i również chciałbym to skomentować. Prawdopodobnie uzyskasz DUŻO lepsze wykorzystanie baterii, jeśli zastosujesz wysokowydajny regulator buck / boost między baterią a obwodem. Regulator będzie w trybie buck (obniżenie napięcia), gdy poziom naładowania akumulatora będzie wyższy niż 1,8 V, którego potrzebujesz, i przełączy się w tryb doładowania (wzrost napięcia), gdy poziom naładowania akumulatora spadnie poniżej 1,8 V. Pozwoli ci to uruchomić obwód, dopóki bateria nie będzie dobrze naładowana i naprawdę wyładowana, co jest warte kilku procentowej utraty wydajności, jaką uzyskasz podczas ich używania. Upewnij się, że wybrałeś regulator w oparciu o jego wydajność w całym zakresie, którego chcesz użyć, i odpowiednio dobieraj regulator; regulator, który może dostarczyć 1A przy sprawności 98%, prawdopodobnie ma 60% wydajności, dostarczając 50mA. Przeczytaj uważnie karty danych.


Fajne. Nie korzystałem wcześniej z lunety, ale podejrzewam, że nasze lokalne laboratorium chętnie mi to pokaże (w tej chwili używam szeregowego miernika do pomiaru prądu; niezbyt dobrze). - Czy poleciłby Pan również regulator, nawet jeśli używam tylko 1-10 mA, zakładając, że mogę znaleźć odpowiednią część? Czy sprawność na poziomie 90% jest wystarczająca (pamiętam znalezienie taniego w tym zakresie), czy też zużywa więcej prądu niż mnie oszczędza?
Jack Schmidt

1
bardzo dobry punkt na graniu z częstotliwością, przypomina mi, jak radio Wi-Fi w moim telefonie komórkowym zużywa więcej energii niż modem komórkowy, ale Wi-Fi jest o wiele szybsze, może więcej spać i dzięki temu jest ogólnie lepiej na mocy.
Mark

2
Inną sztuczką w szacowaniu średniego czasowego zużycia prądu przez mikrokontroler w scenariuszach, w których pobór prądu będzie „gwałtowny”, jest naładowanie naprawdę dużego kondensatora i doprowadzenie go do zasilenia regulatora niskiego prądu spoczynkowego w celu symulacji napięcia akumulatora. Kondensator 100 000uF będzie spadał o 0,01 wolta na miliamper na sekundę. Jeśli spadnie o 0,3 wolta w ciągu pięciu minut (300 sekund), średni pobór prądu wynosi 100uA.
supercat

Sprawność regulatorów jest bardzo ważna. Musisz więc oszacować swój zakres poboru prądu, aby wybrać odpowiedni regulator w tym zakresie
gustavovelascoh

4

W przypadku obwodu zalecam użycie multimetru w zakresie mikroamperów do pomiaru zużycia prądu. Następnie, biorąc pod uwagę charakterystykę baterii, możesz obliczyć żywotność. To niekoniecznie amperogodzina / prąd, ponieważ bateria będzie miała różne charakterystyki rozładowania dla różnych obciążeń. Ale może być przydatny jako przybliżenie.

Przy 1 MHz myślę, że zużyjesz trochę mocy - co najmniej 100µA, jeśli mikroskopy PIC są czymś do porównania. Ale to będzie przytłoczone przez 5mA do 20mA przechodzących przez twoją diodę LED, więc powinieneś się tego najpierw pozbyć.


Cool, dioda LED skasowana. Trudno jest uzyskać dokładny pomiar. Wygląda teraz na 0,9 mA, więc może moje oprogramowanie nie wyłącza się tak, jak myślałem. Z zaangażowanym Arduino (i diodą LED pulsu) jest to bardziej jak 8-9mA, więc przynajmniej maleńka pomaga.
Jack Schmidt

1

Obecnie dostępne są łatwo dostępne zestawy uruchomieniowe i płytki zabezpieczające, które są niezwykle przydatne do wykonywania precyzyjnych pomiarów prądu, w niektórych przypadkach nawet w zakresie nA. Jeśli jeszcze tego nie zrobiłeś, zdecydowanie sprawdź µCurrent Gold . Jest to dobre dla pomiarów statycznych, ale mniej dla rejestrowania pomiarów w czasie.

Jednym ze sposobów, w jaki można nadal używać µCurrent, jest podłączenie wzmacniacza różnicowego do wyjścia. Następnie możesz podać to do oscyliskopu lub analizatora logicznego z wejściami analogowymi. Napisałem pełny samouczek z nakrętkami i śrubami . Czuję, że może to pomóc osobom z ograniczonym budżetem, które nie mają odpowiednich narzędzi.

To niesamowite, czego można się nauczyć nie tylko z tego, co robi napięcie w obwodzie, ale także z tego, jak reaguje na każdy mały skok prądu. Kilka razy uratował mi tyłek przy wyborze technologii akumulatorów i testach walidacyjnych. 😎


0

Wszystkie odpowiedzi mają już ważne punkty. Dodam jedną z mojego doświadczenia.

Kiedy opracowywałem urządzenia o zużyciu mniejszym niż 10uA, a nawet mniejszym niż 1uA w trybie głębokiego uśpienia, czyszczenie płyty miało znaczenie. Kiedyś miałem 7 na 10 płyt o oczekiwanym zużyciu prądu. Wszystkie były takie same i wszystkie działały OK. Po wyczyszczeniu ich w myjce ultradźwiękowej wszystkie płyty poszły do ​​oczekiwanego rezultatu.

Na koniec oszacuj oczekiwane / ukierunkowane zużycie, sprawdzając arkusze danych wszystkich swoich elementów. Jeśli poradzisz sobie z nimi dobrze, osiągniesz swoje oszacowanie. Obejmuje to wszystkie nieużywane styki mikrokontrolera. Nawet jeśli wyłączysz ADC, upewnij się, że konfiguracja pinów przy wyłączonym jest najlepsza w zależności od połączenia zewnętrznego.

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.