tryb uśpienia atmega

Oct 19, 2005 4 Replies

Czy możliwe będzie uśpienie mikrokontrolera w trybie np. idle i odliczanie przez timer 0 okolo 5sekund oraz zliczanie przez timer 2 impulsów zewnętrznych w czasie tych 5 sekund. Wszystko co jest możliwe do wyłączenia w tym czasie powinno być wyłączone. Czy taka praca mikrokontrolera w tym trybie jest możliwa? Wydaje mi się, że w tym trybie atmega wiele nie zaoszczędzi - czy mam racje? Czy ktoś potrafi określić w procentach ile w danym trybie uśpienia oszczędza mikrokontroler? Czy mogę to zrobić w jakimś innym bardziej oszczędnym trybie?


Użytkownik "mateuszek" <mateus1934 snipped-for-privacy@o2.pl napisał w wiadomości news:dj5kr3$lbd$ snipped-for-privacy@nemesis.news.tpi.pl...

Wszystko masz w dokumentacji: budzikiem może być licznik 2; liczniki pracują w trybach Idle, ADC NRM i Power Save; w Idle pobór prądu obniża się o mniej niż połowę, w ADC NRM podobnie, w Power Save wynosi kilkanaście uA.

Pzdr, Raf.

Jeśli dobrze zrozumiałem z not aplikacyjnych to w sleep mode Timer2 działa jako timer asynchroniczny, czyli zasilany z dodatkowego rezonatora o niższej częstotliwości. Pozostałe timery chyba nie działają? Pozostaje mi chyba tylko tryb idle lub adc noise reduction, gdyż potrzebuje dwóch działających liczników. Jeden zlicza impulsy zewnętrzne a drugi okresla czas w jakim są zliczane te impulsy, czyli budzi mikrokontroler ze snu.

Użytkownik "mateuszek" <mateus1934 snipped-for-privacy@o2.pl napisał w wiadomości news:dj601t$r14$ snipped-for-privacy@atlantis.news.tpi.pl...

Dobrze zrozumiałeś, ja natomiast się zagalopowałem. :) Możesz jeszcze poeksperymentować następująco:

- jako budzik wykorzystaj watchdoga, działającego w trybie generacji przerwań,

- sygnał, którego zbocza zliczasz, podłącz do TOSC1 (podają niestety, że: "Applying an external clock to the TOSC1 pin may result in incorrect Timer/Counter2 operation", co warto sprawdzić),

- układ wprowadzaj w tryb Power-save. Metoda stosowalna, o ile nie potrzebujesz z góry określonej długości czasu opóźnienia (jego dokładną wartość możesz natomiast zbadać, mierząc go po starcie układu z użyciem któregoś timera).

Powodzenia, Raf.

To bardzo ciekawy pomysł. Jak najszybciej postaram się to sprawdzić. dziękuję i pozdrawiam

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required