logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega8a - Atmega8A jak najmniejszy pobór mocy (idle/power-down/power-save?)

tsiu 08 Lut 2014 13:57 3114 12
REKLAMA
  • #1 13276182
    tsiu
    Poziom 13  
    Cześć!

    W swoim projekcie zasilanym bateryjnie (3V) użyłem Atmegi8A. Zazwyczaj do podobnych zadań dawałem Attiny13A który muszę przyznać ma bardzo rozbudowane tryby uśpienia. Nie mniej potrzebowałem licznych pinów ósemki stąd wybór ;)

    Aktualnie zrobiłem Idle mode z wybudzeniem przez Timer2 Overflow. Wyłączyłem też AC (komparatora) bo go nie potrzebuję.

    I proste małe pytanko w celu potwierdzenia - czy mogę użyć jakiegoś głębszego trybu uśpienia?

    Jeśli dobrze rozumiem z datasheet to nie mogę użyć power-save bo nie mam zew. oscylatora na TOSC1. Jeśli chodzi o piny INT (i tryb power-down) to też lipa, bo już mam taki schemat:
    Atmega8a - Atmega8A jak najmniejszy pobór mocy (idle/power-down/power-save?)

    Dodam że w grę nie wchodzi dodanie przycisku/oscylatora - po pierwsze 'too late', a po drugie płytka ma być mega mała i lekka.

    Czekam na odp, bo wg mnie musi być jak jest, tzn zostaje przy idle mode i trudno ;)

    pozdrawiam
  • REKLAMA
  • #2 13276232
    tmf
    VIP Zasłużony dla elektroda
    Jeśli potrzebujesz naprawdę małego poboru energii to po co bierzesz muzealny procesor typu M8A? Bez głębszego wnikania w tryby oszczędzania energii na dzień dobry więcej osiągniesz biorąc np. XMEGA8E5 - obudowa ta sama, więcej pinów IO i dla 3V możesz sobie zegar wybierać od ułamków Hz do 32 MHz dostosowując w każdej chwili moc obliczeniową procka do potrzeb. W dodatku masz piny umożliwiające asynchroniczne wybudzanie procka, kiedy rdzeń w ogóle nie jest taktowany.
  • REKLAMA
  • #3 13276316
    tsiu
    Poziom 13  
    Nie no, jakby to był poważniejszy projekt to bym wziął MSP430-coś tam, one mają b. mały pobór ;) a i zegar też można wybierać.
  • #4 13276357
    perlon
    Poziom 20  
    Sory za mały OT i nie chciałbym odpowiadać za autora wątku, ale z własnego doświadczenia - takie XMegi są jak Yeti. Wszyscy o niej słyszeli ale nikt jej nie widział. Znalazłem ją na Farnellu magazyn W.Brytania. Tylko że zakupy w Farnellu dla przeciętnego śmiertelnika/hobbysty w Polsce delikatnie mówiąc nie należą do najłatwiejszych. Może jakaś inna lokalizacja w Polsce gdzie to można kupić? Mega8 jest na każdym rogu i kosztuje 4PLNy.
  • Pomocny post
    #5 13276371
    tmf
    VIP Zasłużony dla elektroda
    tsiu napisał:
    Nie no, jakby to był poważniejszy projekt to bym wziął MSP430-coś tam, one mają b. mały pobór ;) a i zegar też można wybierać.


    Zaproponowany procesor ma podobne parametry do MSP430, a jest ciągle AVRem. W dodatku ma 1 kHz generator o ultraniskim poborze energii, więc bez zewnętrznego rezonatora można korzystać z głębszych trybów uśpienia + asynchroniczne wybudzanie.
    W przypadku ATMeg8 właściwie nic więcej nie osiągniesz, jakiś zegar musi działać, żeby było dostępne źródło mogące wybudzić procesor.

    Dodano po 6 [minuty]:

    perlon napisał:
    Sory za mały OT i nie chciałbym odpowiadać za autora wątku, ale z własnego doświadczenia - takie XMegi są jak Yeti. Wszyscy o niej słyszeli ale nikt jej nie widział. Znalazłem ją na Farnellu magazyn W.Brytania. Tylko że zakupy w Farnellu dla przeciętnego śmiertelnika/hobbysty w Polsce delikatnie mówiąc nie należą do najłatwiejszych. Może jakaś inna lokalizacja w Polsce gdzie to można kupić? Mega8 jest na każdym rogu i kosztuje 4PLNy.


    Bez żartów, w Farnelu super się kupuje, klikasz rano, a często już po południu puka kurier z przesyłką. Duży wybór, więc raz się płaci za przesyłkę, zresztą praktycznie tyle co w innych sklepach. XMEGA8E5 jest u nich na stanie za niecałe 7zł za 1-9 sztuk, czyli w cenie ATMega8, a jest od niej pod każdym względem lepsza, różnica mniej więcej jak stare '51 vs. AVR.
    Ale jeśli chcesz w Polsce to pierwszy lepszy sklep - Seguro - mają na skłądzie co prawda XMEGA32E5 ale to to samo, tylko ma więcej FLASH i SRAM (8E5 i 32E5 można stosować zamiennie) za niecałe 10 zł.
  • #6 13277104
    PiotrPitucha
    Poziom 34  
    Witam
    Jak jesteś przy Atmedze8 to polecam Atmegę88V, najtańszy procesor z tej serii i pobiera prawie zero prądu, ale jak kiedyś pisałem to wszystko zależy od filozofii programowania, przez dobrze zaplanowany program można zmniejszyć pobór prądu kilkadziesiąt razy.
    Piotr
  • Pomocny post
    #7 13277588
    dondu
    Moderator na urlopie...
    tsiu napisał:
    Jeśli chodzi o piny INT (i tryb power-down) to też lipa, bo już mam taki schemat:
    ...
    Dodam że w grę nie wchodzi dodanie przycisku/oscylatora - po pierwsze 'too late', a po drugie płytka ma być mega mała i lekka.

    Do takich projektów podchodzi się od samego początku zupełnie inaczej niż do projektu zasilanego z zasilacza. Tutaj trzeba działać odwrotnie - najpierw funkcje związane z poborem energii, a dopiero później reszta funkcjonalności i wszystko co się da na przerwaniach i maksymalnym (w danym momencie) trybie snu:
    http://mikrokontrolery.blogspot.com/2011/04/S...PIP-elektroniczny-dreczyciel-spis-tresci.html


    tsiu napisał:
    Jeśli dobrze rozumiem z datasheet to nie mogę użyć power-save bo nie mam zew. oscylatora na TOSC1.

    Tak, Power Save różni się od Power Down tylko tym, że pozwala na wybudzenie z timer2, gdy pracuje asynchronicznie na zewnętrznym kwarcu.
  • REKLAMA
  • #8 13277736
    tmf
    VIP Zasłużony dla elektroda
    PiotrPitucha napisał:
    Witam
    Jak jesteś przy Atmedze8 to polecam Atmegę88V, najtańszy procesor z tej serii i pobiera prawie zero prądu, ale jak kiedyś pisałem to wszystko zależy od filozofii programowania, przez dobrze zaplanowany program można zmniejszyć pobór prądu kilkadziesiąt razy.
    Piotr


    Ale on używa ATMega8A, który bierze mniej więcej tyle samo prądu co ATMega88V. A oba taktowane zaledwie zegarem 4 MHz biorą tyle prądu co wspomniana przeze mnie XMEGA taktowana zegarem 16-25 MHz. W power down typowo biorą 1 uA, XMEGA 0,1 uA, czyli rząd wielkości mniej.
    Nie zmiena to prostego faktu, że jeśli autor tematu nie chce zmieniać procesora, to z M8A nic więcej nie wyciśnie, jedyne co może zrobić to tak jak piszesz pomyśleć nad odpowiednim napisaniem programu. Chociaż tu też brak preskalera zegara (który zresztą jest w 88) zadania nie ułatwia.
  • Pomocny post
    #9 13279273
    PiotrPitucha
    Poziom 34  
    Witam
    Wracając do początku pytanie, to autor zaprojektował to na Atmega8, Atmega88V nie ma jak piszesz takiego samego poboru prądu jak Atmega8A, według manuala jest to 5 razy mniej, na dodatek Atmega88V może pracować spokojnie przy 1,8V co w przeliczeniu na moc daje nam 10 razy mniejszy pobór.
    Z tego co pamiętam to seria P procesorów pobiera jeszcze mniej prądu i w tej serii jest z pewnością Atmega48, 88 i 168 i pracuje dość szybko, z drugiej strony pobór prądu rośnie z częstotliwością a pytający nie podał jakie ma wymagania, może do jego zadania wystarczy kwarc zegarkowy i podniecanie się częstotliwością na jakiej może pracować Xmega nie ma sensu.
    Proponowane procesory mają tą zaletę że są zgodne z Atmega8 pinowo i nic nie zmieniają w konstrukcji pytającego.
    Może Xmega ma wiele zalet ale usiłowałem sprawdzić pobór mocy Xmegi, Atmel milczy na ten temat, spróbuj znaleźć PDFa do Xmegi, ja się natknąłem tylko na preliminary a tam zero informacji na temat poboru prądu.
    Polecany jako dostawca Farnell też traktuje te procesory po macoszemu, wpisanie Xmega w ich wyszukiwarce powoduje wyrzucenie całej serii 128, a 8 znajduje dopiero po wpisaniu całej nazwy.
    Pozdrawiam
  • Pomocny post
    #10 13279387
    tmf
    VIP Zasłużony dla elektroda
    Nie wiem jak patrzysz w te manuale, ale 8A ma mniej więcej takie same pobory prądu jak 88V.
    ATMega8A: tabela 26.2 - power down mode with WDT disabled typowo <1 uA, Power Supply Current, Idle @4MHz 3V typowo 0,5mA, Power Supply Current @4MHz 3V 0,5-2mA, to samo dla ATMega88V (tab. 29.2): 1 uA, max 1,5 mA, max 3,5 mA. Wynika z tego, że 8A jest nawet ciut lepsza.
    Co do tych MHz, nie chodzi o to, że XMEGA może szybciej, wręcz przeciwnie. Skoro pobiera @20 MHz tyle samo prądu co wspomniane ATMegi @4 MHz, to znaczy, że zwalniając XMEGA do 4 MHz zgodnie z tym co słusznie napisałeś uzyskamy dalsze znaczne zmniejszenie zapotrzebowania na energię. Praktycznie o rząd wielkości. W dodatku możemy ją wprowadzić w tryb power down, bo ma własny generator ULP, który w połączeniu z preskalerem może ją wybudzać co dowolne odcinki czasu, co pozostałe ATMegi mogą zrtobić tylko w połączeniu z zewnętrznym kwarcem, który zresztą jest o wiele bardziej prądożerny niż ULP.
    Wszelkie dane o XMEGA80-32E5 są dostępne na stronie Atmela - dokument 8153G. Zapewne szukałeś w nocie dla rodziny, a nie dla konkretnego procesora. W notach dla rodziny nie ma informacji o poborze, bo każdy procesor ma inne parametry. W notach procesora te informacje są szczegółowo pokazane:
    http://www.atmel.com/devices/ATXMEGA8E5.aspx
    pierwszy dokument, tabela 36.3.
    Wyszukiwarka Farnella też wszystko ładnie wyszukuje - po wpisaniu XMEGA pojawia się lista 40 procesorów obejmujących także XMEGA8E5. Na pierwszym miejscu są XMEGA128 bo 1 jest przed 8 w nazwie i wszystkie wyszukiwarki elementów elektronicznych tak działają.
    BTW, XMEGA może pracować od 1,6V co daje dalsze oszczędności.
  • REKLAMA
  • #11 13279456
    tsiu
    Poziom 13  
    Ciekawa dyskusja.

    Wymyśliłem jeszcze jedną opcję która niestety w moim układzie i tak nie może być zastosowana, ale brzmi to jak niezły 'hack'.
    Mianowicie - można by ładować kondensator np. 1uF w 0603, między pinem INT a masą. Ładowanie stanem wysokim z pinu, następnie ustawienie przerwania przy stanie niskim na tym pinie i power down mode ;) Kondensator się w końcu rozładuje przez własny prąd upływu + ten z pinu. Pytanie tylko czy zyskamy na takim zabiegu (po jedne naładowanie kondensatora straci nam 4.5uJ dla 3V i 1uF ;) )

    Opcja brzmi ciekawie sama w sobie.
    Dziękuję za wypowiedzi
  • #12 13279734
    tmf
    VIP Zasłużony dla elektroda
    Pomysł ciekawy, ale mało praktyczny. Z dwóch powodów:
    - prąd upływu wejścia IO to 1uA - tyle co cały prąd trybu power down, do tego trzeba dodać prąd upływu kondensatora. Jest jeszcze jeden problem - procesor musi mieć możliwość wybudzania asynchronicznego - normalnie jeśli odetniesz zegar taktujący procesor, to nie jest on w stanie stwierdzić czy zaszła zmiana poziomu logicznego na wejściu (MCU jest układem synchronicznym). Taka możliwość istnieje tylko w stosunku do niektórych pinów i tylko niektórych procesorów - np. XMEGA mają taką opcję na dwóch pinach każdego portu.
    - nie ma to sensu skoro są procesory AVR, które dają ci taką możliwość bez kombinacji.
    - mówimy o uA - to wymaga naprawde przemyślanego schematu, a dwa, że więcej zyskujesz pisząc odpowiednio program i ograniczając tryb aktywny procesora.
  • #13 13280491
    dondu
    Moderator na urlopie...
    W uzupełnieniu dodam, że np. PIC18 Microchipa w technologi nanoWatt XLP, możesz wyłączyć do trybu w którym pobiera zaledwie 20nA. Wybudzanie poprzez zewnętrzne przerwanie. Ale jeżeli ma wewnętrzny układ RTCC (czasomierz z datą godzinami i sekundami), to masz pełną dowolność w jego wybudzaniu, a pobór prądu wynosi 700nA. Zapewne inni producenci także mają podobne osiągi więc w przyszłości do takich projektów warto szukać.

    Przy okazji kolejne materiału w tym zakresie: http://mikrokontrolery.blogspot.com/2011/01/bateria-zasila-mikrokontroler-czesc-1.html
REKLAMA