Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Termometr mikromocowy LCD ATMEGA16

bobeer 07 Sep 2013 07:47 11259 10
Automation24.pl
  • Termometr mikromocowy LCD ATMEGA16





    Termometr mikromocowy LCD ATMEGA16

    Tym razem głównym celem projektu było sprawdzenie możliwości wykonania mikromocowego systemu pomiaru temperatury w oparciu o możliwie standardowe elementy, mówiąc w skrócie byłem ciekawy czy zwykły avr może być konkurencją dla układów msp430, które to podobno właśnie do takich zastosowań są preferowane. Zanim jednak zacznę przynudzać (co niektórych)...

    Najistotniejsze parametry urządzenia:
    Zasilanie Akumulator ni-mh 60mAh ładowany ogniwami fotowoltanicznymi.
    Średni pobór prądu ~150uA (zależny od napięcia zasilającego), dla pełnego akumulatora daje to teoretycznie 2 tygodnie pracy, bez doładowywania słońcem.
    Pomiar temperatury z rozdzielczością 1C (dokładność względna i zakres jak dla użytych DS18B20)
    Obsługa równocześnie dwu termometrów (wewnętrzny i zewnętrzny)
    Wskazywanie monotoniczności temperatury (nie spada, nie rośnie)
    Zapamiętywanie najniższej/najwyższej temperatury z możliwością skasowania
    Pomiar i zapamiętywanie min/max napięcia zasilającego
    Zliczanie błędów magistrali 1Wire termometrów (max 255 kasowalne)
    Obsługa za pomocą jednego przycisku (przeglądanie min/max, kasowanie...)
    Wizualizacja za pomocą 4 cyfrowego wyświetlacza LCD

    Kosztorys:
    Ogniwa słoneczne -obudowa urządzenia sztuk 3 =15zł
    Ogniwo słoneczne zewnętrzne 2.5zł
    Akumulator ni-mh (w zestawie z każdym ogniwem sztuk jedna)=0zł
    Atmega16 (10zł ?)
    DS18B20 sztuk dwie =10zł
    Płytka uniwersalna, lvc14, reszta drobnicy- odzysk cena nieznana
    W sumie ~40zł, ale z powodzeniem można zastosować tylko jedno małe ogniwo „zaokienne” co obniży znacznie koszt.

    Wynalazek ciekłych kryształów zastosowany do użytku w wyświetlaczach moim zdaniem był przełomem jeśli chodzi o urządzenia elektroniczne mogące zużywać jak najmniej prądu. Porównałbym go do wynalezienia tranzystora (zwłaszcza tranzystora MOS). Oba wynalazki zaowocowały, po pierwsze miniaturyzacją, po drugie zmniejszeniem poboru mocy przez urządzenia. Chociaż technologia LCD ma już sporo lat (samo odkrycie zjawiska to rok 1888 i doświadczenia z marchewkami :D https://en.wikipedia.org/wiki/Liquid_crystal_display ), nie zanosi się, aby miała konkurencje jeśli chodzi o układy, które powinny pobierać moce rzędu mikrowatów. W końcu i ja miałem okazję przyjrzeć się z bliska sposobowi sterowania prostym (jedno podłoże) wyświetlaczem LCD, równocześnie walcząc o minimalizację poboru prądu przez prymitywną przetwornice step-up, na deser pozostawiając sobie przyjemność z implementacji wspomnianych we wstępie funkcjonalności pomiarowych, oraz treningu pisania menu urządzenia które jest obsługiwane jednym guzikiem bez możliwości pomiaru czasu jego przyciśnięcia.
    Budowę termometru rozpocząłem od sprawdzenia możliwości wysterowania wyświetlacza przez procesor, a dokładniej zbadania , czy odświeżanie generowane przez zegar WDT procesora umożliwia poprawną jego pracę. W skrócie przypomnę, że wyświetlacz o którym mówimy, aby mu się krzywda nie działa musi być sterowany przez czas cały sygnałem prostokątnym o częstotliwości około 50Hz. Zaciemnienie segmentu występuje w momencie występowania różnicy potencjałów między wyprowadzeniem podłoża oraz segmentu który chcemy uaktywnić. Napięcie sterujące powinno wynosić od kilku do kilkunastu woltów. Jeżeli chcemy aby segment pozostał nieaktywny, należy po prostu podawać na niego napięcie zmienne w fazie z napięciem podawanym na wyprowadzenie BP. W użytym procesorze udało się uzyskać maksymalną częstotliwość 15Hz sygnału sterującego, co okazało się wystarczające do poprawnego działania. Nota katalogowa podaje minimalną częstotliwość 30Hz, jednak nie przypuszczam, aby 15Hz miało jakieś destruktywne skutki dla kryształów przynajmniej na przestrzeni dekady ;). Tak więc mamy już wysterowany wyświetlacz, oraz procesor który większość swojego czasu spędza na głębokiej drzemce, pobierając kilka uA prądu, dokładne wartości średniego poboru prądu w takiej konfiguracji są następujące:

    Pobór prądu dla zegara 1MHz / 8MHz, częstotliwość WDT=30Hz:
    2.5V Atmega przestaje współpracować ;)
    3V 12uA/9uA
    3.5V 14uA /11uA
    4V 18uA/12uA
    5V 23uA/18uA
    6V 30uA/24uA

    Nie ma pomyłki w przedstawionych wynikach, dla szybszego zegara pobór mocy jest mniejszy :)
    Pobór prądu jak widzimy jest zachęcająco mały, ale żeby nie było tak wesoło sporo energii zmarnuje nam ordynarna przetwornica, której sprawność to max 50%, co i tak jest niezłą wartością biorąc pod uwagę jej prostotę. Przetwornica zbudowana jest z bramek odwracających z przerzutnikami Schmitta, elementy RC ustalają częstotliwość generatora na około 500Hz, oraz długość impulsów załączających tranzystor mosfet który steruje prądem indukowanym w cewce. Później klasyczna dioda filtr, i sprzężenie zwrotne które wyłącza przetwornicę po przekroczeniu 5.8V. Maksymalne napięcie celowo zostało dobrane na graniczne bezpieczne dla AVR z powodu wymagań wyświetlacza który wg noty powinien być zasilany min. 4V RMS, ale najlepszy kontrast to wartości jeszcze wyższe. Podczas normalnej pracy obciążonego układu procesorem napięcie jednak nie osiąga tak wysokiego poziomu, utrzymując się w granicach 4.5V dla 1.3V napięcia ogniwa. Chciałem w tym miejscu zwrócić uwagę na użycie transila. Niestety spory prąd wsteczny zwykłej diody zenera wykluczył jej użycie w tym rozwiązaniu. (Być może przetwornica podwyższająca doczeka się współczesnej wersji na TPS6120, bo na takich specjalizowanych kontrolerach powinno się realizować takie zadania. Wtedy teoretycznie pobór prądu powinno się udać uzyskać jeszcze mniejszy, niestety to okaże się dopiero w praktyce, ponieważ nota układu nie podaje sprawności dla tak niskich poborów mocy).

    Pobór prądu przez przetwornicę na układzie 74LVC14 (odłączone zasilanie cewki):

    1.25V 6uA
    1.3V 10uA
    1.4V 15uA
    1.5V 26uA
    1.6V 41uA
    1.7V 60uA
    1.8V 80uA
    1.9V 105uA
    2V 135uA

    Podłączmy więc nasz „zasilacz” z zabezpieczeniem nadnapięciowym, który będzie zasilał procesor dostarczając odpowiednio wysokiego napięcia z ogniwa PV (w początkowej fazie wszystkie próby pracy układu odbywały się z zasilania za pomocą ogniwa). Niestety podłączona do takiego źródła napięcia Atmega nie startuje. Po krótkiej analizie okazuje się, iż procesor dla napięć poniżej progu jego zadziałania pobiera ponad 1mA prądu, co jest wartością zbyt dużą, aby było możliwe jego wystartowanie dla powoli narastającego napięcia z tak małowydajnego źródła. W związku z tym, byłem zmuszony dodać układ, który załączy zasilanie procesora dopiero po przekroczeniu napięcia 3.1V. Układ składa się z specjalizowanego komparatora/resetu MC33460, oraz dowolnego mosfeta (wystarczy jakikolwiek RDSON<10R). Układ ten pobiera dodatkowo kilka uA, ale zapewnia niezawodny start procesora mimo wahań napięcia. Ktoś mógłby tutaj zauważyć, że można by użyć układu BOD AVRa, jednak po pierwsze nie zmniejszyło by to poboru prądu dla napięć 0-2.5V (zanim wystartuje program), po drugie BOD pobiera dodatkowo 30uA, co jest wartością 2x większą od średniego prądu pobieranego przez procesor w stanie swojej normalnej pracy. Na zakończenie ważna informacja. Kondensator blokujący zasilanie ATMEGI nie może mieć dużej wartości gdyż napięcie musi narastać odpowiednio szybko. Wartość 100nF jest optymalna i umożliwia poprawne zadziałanie układu POR procesora w całym zakresie temperatur (oczywiście sprawdziłem czy układ po schłodzeniu do -30C działa i wyświetla poprawnie ;) ).
    Przejdźmy do następnego zasilanio-zagadnienia jakim jest wydajność prądowa ogniw PV dla natężenia oświetlenia „żarówkowego”. Niestety mimo użycia kilku ogniw natężenie światła zapewniające pracę urządzenia musi być na poziomie takim jaki zapewnia komfortową pracę elektronika :) czyli najlepiej gdyby stało pod lampką. Na przykładowym zdjęciu odległość żarówki od PV to około 40cm. Nie ma więc możliwości, aby urządzenie dało radę działać nonstop bez pomocy naszego ukochanego słoneczka :). Wprawdzie można by się uprzeć i używać termometru tylko w momencie mocniejszego jego oświetlania, ale ponieważ chciałem aby urządzenie pamiętało ekstrema temperatur oraz inne parametry pracy, użyłem akumulatora ni-mh. Mimo iż z początku wzbraniałem się do zastosowania tego wynalazku w taki sposób, okazało się jednak, że to najlepsze i najprostsze rozwiązanie. Przede wszystkim niski prąd upływu (~3uA dla 1.3V) przeważył za użyciem go w tym zastosowaniu. W przypadku użytkowania akumulatorka w temperaturze pokojowej, i naładowanego, rokuję jego żywotność na min kilka lat, chociaż można mieć pewne obawy w momentach mocnego nasłonecznienia kiedy prąd ładowania osiąga kilka mA, co w przypadku pełnego ogniwa skutkuje napięciem sięgającym 1.6V (W fabrycznym rozwiązaniu akumulator również nie był chroniony przed zbyt wysokim napięciem (przeładowaniem?), jedyna różnica, to dioda która minimalnie obniżała prąd, ale sam układ scalony przynajmniej u mnie na biurku nie wykazywał takiej funkcjonalności). Uspokaja fakt, iż akumulatory ni-mh ładowane prądami poniżej 1/20C nie powinny ulegać przeładowaniu i uszkodzeniu. Jako ciekawostkę wspomnę o próbie użycia kondensatora ”pro-cap” o pojemnośći 1F na 5V. Kondensator który miałem przy 4V posiadał prąd samorozładowania rzędu 100uA, co wykluczyło go z zastosowania jako wysoko sprawna „bateria” podtrzymująca. Jak zapewne się domyślacie zarówno akumulator, jak i ogniwo PV to dar naszych chińskich przyjaciół przemycony do nas w postaci „lampki ogrodowej” w cenie 5zł od sztuki :). Na zdjęciach widać urządzenie zaopatrzone w 3 takie ogniwa, ale nie uratowało to sytuacji, w celu pewnego ładowania konieczne było umieszczenie jednego mniejszego (z lampki za 2.5zł) na zewnątrz, w pobliżu termometru zewnętrznego (z tą różnicą, że termometr w cieniu a ogniwo w słońcu ;) ). Dzięki takiemu zabiegowi możemy być spokojni o naładowanie akumulatorka, bo nawet w pochmurne dni ilość energii zużytej będzie mniejsza od dostarczonej z kosmosu.
    O działaniu programu słów kilka. Pomiary termometrów są inicjowane i sczytywane z częstotliwością zależną od stopnia naładowania akumulatorka. Dla napięcia ogniwa <1.3V czas ten wynosi minutę dla każdego termometru. Program po wystartowaniu nie dokonuje konwersji temperatury w celu odczekania tych 30 sekund na naładowanie kondensatora (w przypadku braku akumulatora możliwa praca na samym ogniwie słonecznym). Podczas normalnej pracy, na wyświetlaczu wyświetlana jest przez 80% czasu temperatura zewnętrzna, 20% czasu temperatura wewnętrzna (miga ówczas małe 'r' z lewej strony). Dodatkowo na tej samej pozycji wskazywane jest czy temperatura nie wzrasta lub nie rośnie. Analogicznie po prawej stronie małe c oznaczające stopnie Celcjusza po osiągnięciu maksymalnej lub minimalnej zanotowanej temperatury zamienia się w taki sam znaczek. Zapamiętane ekstremalne temperatury można odczytać naciskając przycisk. Kolejne przyciśnięcia wywołują następujące funkcje menu:

    1.wyświetlenie obecnego napięcia zasilania czas 2sek
    '2.'Lo c' najniższa notowana temperatura /kasowanie flagi min temperatury
    '3.'Hi c' najwyższa notowana temperatura
    '4.'Lo U' najniższe napięcie zasilania
    '5.'hi U' najwyższe napięcie zasilania
    '6.Err' ilość błędów magistrali 1wire jeśli wystąpiły <>0 (zerowanie po 5sek.)
    '7.rES' po 5s od wyświetlenia napisu 'res' resetuje zapamiętane temperatury i napięcia.

    Jak widać można za pomocą jednego przycisku i menu z odpowiednimi „time outami” zrobić całkiem intuicyjną obsługę wyświetlania i kasowania zmierzonych parametrów. Żeby było ciekawiej przycisk jest podłączony do portu reset procesora, ponieważ w tym projekcie wąskim gardłem była ilość wyprowadzeń, cała reszta zasobów wystąpiła w nadmiarze :). Przy tej okazji wspomnę o jednym porcie, który na wstępie zarezerwowałem dla pomiaru napięcia przez ADC. Można je odczytać po wejściu w menu, lub jest automatycznie wyświetlane ~ 5% czasu po obniżeniu się napięcia do 1.2V w celu poinformowania o rozładowanym akumulatorze / słabym oświetleniu. Konwersja jest wywoływana raz na cykl pomiarowy- sekundę po pomiarze temperatury przez każdy DS18B20, lub za każdym razem po naciśnięciu przycisku (można na bieżąco monitorować poziom zasilania, pomiar przez AVR nie jest szczególnie prądożerny w porównaniu z konwersją termometrów). Dla urozmaicenia ekstrema temperatur są zapamiętywane równocześnie w ram procesora oraz w pamięci eeprom DS18B20. Umożliwia to pamiętanie tych wartości nawet w przypadku odcięcia napięcia zasilającego (po podaniu napięcia uruchamiany jest program przepisujący te wartości do ram).

    Wróćmy jeszcze do wyświetlacza i sposobu zamiany zmierzonej temperatury na cyfry LCD.
    Jest faktem, że korzystając z nadmiaru romu, a chcąc oszczędzić na czasie, można by umieścić całą tablice przeliczania wartości binarnej bezpośrednio na przemapowaną wartość LCD-ram w pamięci, jednak zrezygnowałem z tego pomysłu ponieważ zysk czasu byłby naprawdę niezauważalny, a pracy w napisaniu tablicy sporo. I tak wszystkie obliczenia związane z wyświetlaniem wykonywane są raz na sekundę (z małym wyjątkiem programu wywoływanego po wejściu w menu 'reset', gdzie zrobiona jest szybsza „animacja” na wyświetlaczu).
    Ponieważ najpierw podłączyłem do procesora wyświetlacz (tak żeby było wygodnie poprowadzić „ścieżki”), a później dochodziłem do tego który segment do którego portu, odpowiednie mapowanie znaków umieszczone jest w pamięci rom. Jedna cyfra/znak wykorzystuje jeden lub dwa porty procesora. Procedura wyświetlania znaków napisana jest w ten sposób, że każda jedna cyfra ma swój odpowiednik 4 bajtów (wszystkie porty/segmenty mogą zostać dowolnie ustawione). W celu wyświetlenia 4 cyfr procedura wywoływana jest 4 razy, a pobrane dane są „or -owane”- ulegają logicznemu 'lub' jak kto woli. W identyczny sposób przechowywane są etykiety semitekstowe, które również zajmują 4 bajty każda.
    Na zakończenie o 1wire. Termometry korzystają ze wspólnego portu, co wymusiło konieczność sczytania adresów każdego z nich i umieszczenia w pamięci programu (brak procedury poszukiwawczej automatycznie rozpoznającej i przypisującej adresy urządzeń na magistrali). Z powodu resetowania się procesora 30 razy na sekundę nie możliwe było życie standardowego sposobu zasilania pasożytniczego (cykliczne spadki napięcia na linii danych uniemożliwiają poprawną konwersję temperatury – 'strong pullup'). Z tego powodu termometry zaopatrzone są w dodatkowy kondensator oraz diodę która dostarcza napięcie z wyprowadzenia danych, umożliwiając standardowe zasilanie dwuprzewodowe oraz poprawną konwersję, mino niedomagań napięcia zasilającego w trakcie jej trwania. Dodatkowy rezystor w zewnętrznym termometrze wymusza większy prąd magistrali, konieczny w przypadku użycia dłuższych przewodów wnoszących znaczną pojemność. Rezystor na linii danych w wewnętrznym termometrze jest tylko po to, aby umożliwić poprawne programowanie przez spi. Nie typowym, lecz celowym zjawiskiem ze względu na oszczędność energii jest fakt, że napięcie na 1wire występuje tylko w momencie pomiaru temperatury przez jeden z termometrów. Mam nadzieję, że udało mi się przybliżyć ciekawostki i niuanse mojego potraktowania problemów występujących przy adaptacji AVR w mikromocowym zastosowaniu, równocześnie zachęcając do budowania urządzeń o jak najmniejszym zapotrzebowaniu na energię :)

    Zdjęcia z budowy:

    Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16
    Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16 Termometr mikromocowy LCD ATMEGA16
    About Author
    bobeer
    Level 28  
    Offline 
  • Automation24.pl
  • #2
    leonow32
    Level 30  
    Wszystko fajnie, ale ATmega16 to już dinozaur i do energooszczędnych nie należy ;) Spróbuj tych nowych z serii PicoPower - są zdecydowanie bardziej energooszczędne - np. ATmega164PA lub inne z końcówką 4P/4PA (pinologicznie zgodne z ATmega16). Możesz w nich powyłączać niepotrzebne peryferia, a nawet dynamicznie zmieniać częstotliwość zegara. Kiedy nie potrzebujesz mocy obliczeniowej możesz sobie podzielić F_CPU przez 256 i tym samym oszczędzić energię. Kiedyś zamieniłem w ten sposób Atmega644 na ATmega1284P i bez większych ceregieli zmniejszyłem pobór mocy prawie 10 razy!

    Możesz spróbować też ATmega z kontrolerem LCD, chyba to jest ATmega169P czy jakoś tak.
  • Automation24.pl
  • #3
    Anonymous
    Anonymous  
  • #4
    tmf
    Moderator of Microcontroller designs
    Świetny projekt, bardzo się cieszę, że ktoś w końcu spróbował zrobić projekt energooszczędny, co jest wbrew pozorom dużym wyzwaniem. No i to bezpośrednie sterowanie z ATMega, też wymaga pewnych starań.
    Faktem jest, jak napisał kolega leonow32, że są AVRy lepiej dostosowane do takich zastosowań, np. seria PicoPower, z natury też seria XMEGA, szczególnie XMEGA E5 są bardzo energooszczędne. W żaden sposób oczywiście nie zmniejsza to zalet prezentowanego projektu. Oby tak dalej, szczególnie, że proste LCD bez kontrolerów są niezwykle tanie (1-5 zł sztuka) i jak widać da się je wysterować z ATMega, można też zastosować AVR z wbudowanym kontrolerem takich LCD. Stanowi to więc interesującą alternatywę dla dużych i droższych LCD alfanumerycznych, czy graficznych.
  • #5
    bobeer
    Level 28  
    Quote:
    Wszystko fajnie, ale ATmega16 to już dinozaur i do energooszczędnych nie należy ;) Spróbuj tych nowych z serii PicoPower - są zdecydowanie bardziej energooszczędne - np. ATmega164PA lub inne z końcówką 4P/4PA (pinologicznie zgodne z ATmega16). Możesz w nich powyłączać niepotrzebne peryferia, a nawet dynamicznie zmieniać częstotliwość zegara. Kiedy nie potrzebujesz mocy obliczeniowej możesz sobie podzielić F_CPU przez 256 i tym samym oszczędzić energię. Kiedyś zamieniłem w ten sposób Atmega644 na ATmega1284P i bez większych ceregieli zmniejszyłem pobór mocy prawie 10 razy!


    Szkoda, że kolega nie zadał sobie trudu przeczytania wszystkiego co napisałem, albo chociaż połowy. Nie proponował by mi wtedy obniżania taktowania cpu. Zysk z zastosowania atmega164 nie koniecznie byłby taki oszałamiający, bo najistotniejszym parametrem wpływającym na oszczędność energii, o którym nie wspomniałem to czas wybudzania procesora, a ja jeszcze raz powtarzam, że nie o to chodziło żeby robić projekt na nowszych komponentach.

    Quote:
    Brak schematu więc nawet nie ma jak dobrze poradzić z usprawnieniami.

    1) Jak napisał poprzednik, użyj nowszej wersji procesora, na prawdę warto.
    2) Będziesz mógł wystartować procesor już od około 1.8V bez żadnych przetwornic.
    3) Przetwornicę zbuduj kulturalnie na 1 wyjściu PWM i 1 wejściu ADC. Szału nie będzie ale masz uproszczenie układu.


    schemat jest
    ad1. "Wszystko co nowe jest lepsze" z tym że nie zawsze ;)
    ad2. LCD dla 1.8V ledwo zaciemnia mi segmenty, podtrzymanie aku ni-mh wymagało by nie jednego ogniwa i napięcie i tak musiało by wynosić 2.4V (nowe atmegi nawiązując już do nich będą pracować przy nim bez problemu).
    ad3. dwa porty zużyte, z czego rezygnujemy na LCD ? z kropki i któregoś segmentu na pierwszej pozycji ? ;)
  • #6
    Anonymous
    Anonymous  
  • #7
    bobeer
    Level 28  
    Quote:
    2a) Rozładowane aku to 0.9V, więc masz te minimum 1.8V dla AtMegi. Jednak warto użyć "nowość".
    2b) Jako że LCD i procesor ciągnie mało prądu to można nawet użyć prosty charge pump (podwajacz/potrajacz napięcia) do podbicia napięcia w górę. Odpada wtedy zabawa z cewką.
    3) Gdy masz mało pinów to warto wtyknąć np. PCF8533 (gdy jakimś cudem uda się go kupić).


    2a) Baterie akumulatorów to często szybsza droga do zużycia (chociaż nie koniecznie w przypadku ciągłego ładowania takiej baterii). 0.9V to już próg zdrowotny dla ni-mh, wg. mnie 1.1V to "puste" ogniwo.
    2b) Prosty charge pump na diodach ma mniejszą sprawność niż układ z użyciem indukcyjności, a potrajacz już szczególnie.
    3) PCF8533 ma zachęcające parametry. Gdybym miał takiego, to zamiast MEGA16 zrobiłbym ten termometr na tiny13 :) do poszerzenia kolekcji. (Niestety trudno go dzisiaj dostać, a pewnie cena też nieciekawa).
  • #8
    PiotrPitucha
    Level 34  
    Witam
    Byłem kiedyś na szkoleniu firmy JM na temat procesorów PicoPower i optymalizacji poboru mocy, zagadnienie jest dość rozbudowane i ku mojemu zaskoczeniu nie tylko rozwiązania układowe mogą obniżyć pobór mocy ale też rozwiązania programowe mają bardzo znaczący wpływ na tą efektywność.
    Reasumując testowa płytka Butterfly z procesorem Atmega169 w wersji PicoPower dedykowanym do sterowania LCD pobierała tak mało prądu, że na standartowej pastylce CR2032 mogłaby pracować koło 3 lat, jest to czas zbliżony do chińskich termometrów pokojowych na układach specjalizowanych.
  • #9
    bobeer
    Level 28  
    Pierwszym mikromocowym urządzeniem jakie pamiętam był zegarek na komunię dwie dekady temu. Gdyby tamten zegarek ("specjalizowany procesor") zasilić ową CR2032 powinien działać 10lat minimum. Odnośnie programu, to wspominam o tym w opisie projektu, że optymalizując czasy programu oszczędzam kolejne kilka uA. Podsumowując, jeśli jakiś risc można taktować z 32kHz i osiąga on ówczas pobory rzędu 1uA, to można uznać taki procesor za w miarę nowoczesny i nadający się do takich zastosowań. Ewentualnie w momencie kiedy główny pobór prądu przypada na wyświetlacz LCD (czym większy tym większe pojemności do przeładowania i większy pobór). Użyta w moim rozwiązaniu metoda wybudzania procesora do pracy z 1MHz jest nieco nieeleganckim rozwiązaniem. Moim zdaniem "Prawdziwe" układy mikromocowe powinny działać z niskim zegarem i niskim poborem mocy.
  • #10
    MiLupo
    Level 12  
    Śwetny projekt - gratulacje. Jakiś czas temu robiłem czujnik temperatury do sterowania piecem C.O. Rozwiązanie oparte o mikroprocesor Atmega168, moduł radiowy RF24L01+ oraz potencjometr. Obudowa ze zwykłego mechanicznego regulatora temperatury. Na dwóch paluszkach chodzi już prawie 2 lata :)
  • #11
    Anonymous
    Anonymous