AVR - Zasilanie bateryjne, coś do wybudzania AVR co godzinę
- mariusz_edw
- Użytkownik
- Posty: 307
- Rejestracja: 22 lip 2005, 13:02
- Lokalizacja: Polanica Zdrój
- Kontakt:
AVR - Zasilanie bateryjne, coś do wybudzania AVR co godzinę
Witam.
Potrzebuję zrobić urządzenie zasilane bateryjnie, wybudzające się co godzinę, wykonujące operację i ponownie zasypiające. Już wiem, że nie zrobię tego na wybudzającym się co 2s Attiny13 (to maksymalnie długi czas możliwy do uzyskania). Potrzebuję zewnętrzne źródło wybudzania. Może jakiś zegar PCF8583 z zaprogramowanym alarmem co godzinę? A może jakieś zwyklejsze odliczanie czasu na scalakach cyfrowych, ale tak, aby pobór prądu był porównywalny z poborem PCF8583 (50uA) lub mniejszym?
Teoria z artykułu też w praktyce na niewiele się zdaje.
Jakieś pomysły?
Potrzebuję zrobić urządzenie zasilane bateryjnie, wybudzające się co godzinę, wykonujące operację i ponownie zasypiające. Już wiem, że nie zrobię tego na wybudzającym się co 2s Attiny13 (to maksymalnie długi czas możliwy do uzyskania). Potrzebuję zewnętrzne źródło wybudzania. Może jakiś zegar PCF8583 z zaprogramowanym alarmem co godzinę? A może jakieś zwyklejsze odliczanie czasu na scalakach cyfrowych, ale tak, aby pobór prądu był porównywalny z poborem PCF8583 (50uA) lub mniejszym?
Teoria z artykułu też w praktyce na niewiele się zdaje.
Jakieś pomysły?
PCF8385, to akurat ślepa droga. To przestarzały układ, a 50uA w porównaniu do 0,8uA układu M41T00 to kosmiczny pobór energii. Jak już chcesz zewnętrzny układ wybudzania to rozejrzyj się za nowszymi RTC. Ostatecznie taktuj CPU bardzo małym zegarem np. 32KHz, wybudzaj co 2 sek, i zwiększaj sobie licznik czasu (nie musi to być typowy zegar czasu), jak upłyną 2h wykonaj masz do zrobienia, zrestartuj licznik i od nowa.
- mariusz_edw
- Użytkownik
- Posty: 307
- Rejestracja: 22 lip 2005, 13:02
- Lokalizacja: Polanica Zdrój
- Kontakt:
Problemem były kasujące się zmienne przy wyjściu z powerdown, ale... Pewnie rozwiązaniem będzie $NORAMCLEAR
"Aby Ci się zmienne nie kasowały po wyjściu z powerdown musisz je umieścić w sekcji NOINIT. " -> http://www.elektroda.pl/rtvforum/viewto ... p=11641801
"Aby Ci się zmienne nie kasowały po wyjściu z powerdown musisz je umieścić w sekcji NOINIT. " -> http://www.elektroda.pl/rtvforum/viewto ... p=11641801
- mariusz_edw
- Użytkownik
- Posty: 307
- Rejestracja: 22 lip 2005, 13:02
- Lokalizacja: Polanica Zdrój
- Kontakt:
Powyżej było napisane:bsw pisze:Ale w czym problem: jądro budzi się co 2sek, inkrementuje sobie zmienną, sprawdza ją "czy już czas (>=3600)" i jak trzeba robi co ma robić,
a jak nie czas zasypia ponownie.
Nie wiem jak w tiny ale u mnie na mega8 średni pobór prądu poniżej 5uA
Problemem były kasujące się zmienne przy wyjściu z powerdown
Zobacz ten kod.mariusz_edw pisze:Problemem były kasujące się zmienne przy wyjściu z powerdown
To działa.
kayron pisze:Trudno doradzać, jak się nie wie co to ma być i robić ?
Ja dodam że mogło by się wybudzać rzadziej i że po wybudzeniu ma zrobić pomiar lub dwa z wejść adc i jeśli pomiar mieści się w podanym przedziale to najlepiej było by jakby wysłał rozkaz w kodzie RC5 i do spania.mariusz_edw pisze:(...)urządzenie zasilane bateryjnie, wybudzające się co godzinę, wykonujące operację i ponownie zasypiające.(...)
Z takich szybkich rachunków. Zegar CPU 4,8 MHz podzielony przez 16 co daje taktowanie 300KHz. Z tego powinno dać się uzyskać nośną dla RC5 na 30KHz sprzętowo z Timera, wpisując do OCRn liczbę 4.
Jeżeli zaszalejecie trochę w ASM, to Watchdog też może robić jako Timer w trybie aktywnym, służąć do takiego PI x Dzwi odmierzania czasu w systemie.
Jeżeli jest dość pinów, to jedna zworka może ustalić czas uśpienia miedzy 2 a 4 godziny.
Jeżeli zaszalejecie trochę w ASM, to Watchdog też może robić jako Timer w trybie aktywnym, służąć do takiego PI x Dzwi odmierzania czasu w systemie.
Jeżeli jest dość pinów, to jedna zworka może ustalić czas uśpienia miedzy 2 a 4 godziny.