AVR - Zasilanie bateryjne, coś do wybudzania AVR co godzinę

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
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ę

Post autor: mariusz_edw » 12 gru 2012, 7:25

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?

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 12 gru 2012, 11:11

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.

Awatar użytkownika
mariusz_edw
Użytkownik
Posty: 307
Rejestracja: 22 lip 2005, 13:02
Lokalizacja: Polanica Zdrój
Kontakt:

Post autor: mariusz_edw » 12 gru 2012, 11:35

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

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 12 gru 2012, 12:59

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

Awatar użytkownika
mariusz_edw
Użytkownik
Posty: 307
Rejestracja: 22 lip 2005, 13:02
Lokalizacja: Polanica Zdrój
Kontakt:

Post autor: mariusz_edw » 12 gru 2012, 13:28

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
Powyżej było napisane:

Problemem były kasujące się zmienne przy wyjściu z powerdown

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 12 gru 2012, 14:53

Faktycznie spróbuj z tym $NORAMCLEAR.

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 12 gru 2012, 15:01

mariusz_edw pisze:Problemem były kasujące się zmienne przy wyjściu z powerdown
Zobacz ten kod.
To działa.

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 13 gru 2012, 16:50

Dalej kolega meczy ten projekt na ATTINY13 ? Napisz coś więcej, na temat tego co ma robić cały układ, może się uda urodzić jaki działający i praktyczny kod w BASCOM, W domu mam ATTINY13 i 25, może coś działającego stworzę.

Awatar użytkownika
matrix
Użytkownik
Posty: 1805
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 13 gru 2012, 17:39

Potrzeba by wybudzać procka co godzinę lub co dwie. Ja bym rzekł że jeszcze lepiej było by co jakieś 4 godzinki, ale to Mariusz decyduje.

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 13 gru 2012, 17:56

Tu nie chodzi tyle o wybudzenie procesora, tylko o to żeby co 2 godziny coś tam zrobił, i między tymi operacjami pobierał jak najmniej prądu.

Awatar użytkownika
matrix
Użytkownik
Posty: 1805
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 13 gru 2012, 18:00

kayron pisze:Tu nie chodzi tyle o wybudzenie procesora, tylko o to żeby co 2 godziny coś tam zrobił, i między tymi operacjami pobierał jak najmniej prądu.
Wiem o co chodzi w tym projekcie. Współpracuję z Mariuszem nad nim.

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 13 gru 2012, 18:52

Trudno doradzać, jak się nie wie co to ma być i robić ? A wróżeniem z fusów się na razie nie zajmują. Może jak kryzys w UE się pogłębi :wink:

Awatar użytkownika
matrix
Użytkownik
Posty: 1805
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 13 gru 2012, 19:14

kayron pisze:Trudno doradzać, jak się nie wie co to ma być i robić ?
mariusz_edw pisze:(...)urządzenie zasilane bateryjnie, wybudzające się co godzinę, wykonujące operację i ponownie zasypiające.(...)
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.

Awatar użytkownika
kayron
Użytkownik
Posty: 2086
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 13 gru 2012, 20:05

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.

Awatar użytkownika
matrix
Użytkownik
Posty: 1805
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 13 gru 2012, 20:41

A jaśniej? Przypominam że ogarniam bascoma, cała reszta to raczej czarna magia dla mnie.

ODPOWIEDZ