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
kayron
Użytkownik
Posty: 2090
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

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

A to wszystko w BASCOM da rady. A jaśniej bez schematu, ciężko rozpisać cały program, samo oszczędzanie energii, to tylko malutki kawałek całej układanki, do której muszą pasować wszystkie puzzle.

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

Post autor: matrix » 13 gru 2012, 21:50

Ciężko cokolwiek powiedzieć o schemacie.
Najpierw sercem miał być attiny13, ale jak rzuciłem temat że można wynik pomiarów wysyłać przez RC5 to po części koncepcja uległa zmianie i padło na attiny24.

Trzeba o schemat prosić Mariusza bo to głównie jego pomysł.

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

Post autor: kayron » 14 gru 2012, 7:06

TZN. jeżeli są wolne piny. to i Tiny13 wystarczy, na upchnięcie RC5. Oczywiście większą swobodę ma się na większym, czy lepiej doposażonym CPU jak ATTINY25, czy wspomniany 24.
Co prawda temat dotyczy, konkretnie obniżenia poboru mocy, i można by rzucić, ogólną ideą, tylko że ogólny opis nie koniecznie musi spasować, do konkretnego zastosowania. Oczywiście im mniej bebechów w sobie będzie miało CPU tym bardziej energooszczędne będzie tak w trybie aktywnym jak i pasywnym, ale trzeba podjąć decyzję, albo funkcje i bajery typu RC5, albo działanie 4 lata na jednej baterii.

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

Post autor: matrix » 14 gru 2012, 10:04

RC5SEND na tiny13 nie idzie bo nie ma timera1 a tego wykorzystuje bascom do wspomnianej funkcji wysyłania kodu RC5.
Żeby nie być gołosłownym to specjalnie próbowałem bujnąć tą dyrektywę i nie da się. Chyba że jest opcja zmiany uzywanego timera z 1 na 0 jak ma to miejsce w GETRC5.

Co do długości życia na jednej baterii, to myślę że aż 4 lata nie są wymagane, natomiast wysyłanie kodu RC5 sądzę jest nieodzowne bo to będzie najłatwiejszy sposób przekazania dowolnej informacji.

gomarko
-
Posty: 71
Rejestracja: 13 paź 2010, 21:20
Lokalizacja: Konin

Post autor: gomarko » 14 gru 2012, 11:33

Ta transmisja musi być w podczerwieni?
Jeżeli może być radiowo, to polecam takie
niedrogie moduły np. RFM02 i RFM01 (RFM12)
Mają możliwość resetowania wspólpracującego
mikrokontrolera w bardzo szerokim zakresie czasowym
(od sekund do wielu godzin).
O zasięgu transmisji nawet nie wspomnę.

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

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

gomarko pisze:Ta transmisja musi być w podczerwieni?
Nie, nie musi być w podczerwieni. To wydawało się być najprostszym rozwiązaniem.
gomarko pisze:Jeżeli może być radiowo, to polecam takie
niedrogie moduły np. RFM02 i RFM01 (RFM12)
Mają możliwość resetowania wspólpracującego
mikrokontrolera w bardzo szerokim zakresie czasowym
(od sekund do wielu godzin).
A możesz coś więcej na ten temat?

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

Post autor: kayron » 14 gru 2012, 15:58

RFM02 na pierwszy rzut oka wygląda to nieźle. Jeżeli dacie rade sobie to oprogramować.
Co do RC5 na Tiny13, jest to jak najbardziej wykonalne w BASCOM, tylko trzeba umieć napisać własną procedurę (w gruncie rzeczy prostą), zamiast gotowca RC5SEND.

gomarko
-
Posty: 71
Rejestracja: 13 paź 2010, 21:20
Lokalizacja: Konin

Post autor: gomarko » 14 gru 2012, 19:04

matrix pisze: A możesz coś więcej na ten temat?
W sieci jest mnóstwo danych na ten temat.
Moduły potrafią być upierdliwe przy pierwszym zetknięciu,
ale jak się już je opanuje, to są bardzo wdzięczne.

Jak robiłem zdalny wyłącznik na RFM02 i ATiny13 w roli nadajnika
to przystosowałem kod w asemblerze ze strony 8 (post233)
tego tematu na Elektrodzie:
http://www.elektroda.pl/rtvforum/viewto ... d=#7069116

Używałem tego kalkulatora do konfiguracji RFM02 (są również do RFM12)
http://www.controller-designs.de/index. ... 2_eva&sub=

Według tego co wylicza ten konfigurator, timer wybudzający (Wake_Up Timer)
można nastawić od 1ms do max 547 608 330 240ms (to ponad 17lat).

Jeżeli zainteresuje was transmisja dwukierunkowa,
to tu też ciekawy kalkulator do RFM12B (RFM12)
http://tools.jeelabs.org/rfm12b

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

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

kayron pisze:RFM02 na pierwszy rzut oka wygląda to nieźle. Jeżeli dacie rade sobie to oprogramować.
Też to znalazłem tylko że z technicznym językiem angielskim trochę u mnie na bakier.
kayron pisze:Co do RC5 na Tiny13, jest to jak najbardziej wykonalne w BASCOM, tylko trzeba umieć napisać własną procedurę (w gruncie rzeczy prostą), zamiast gotowca RC5SEND.
Z pewnością się da bo jakoś specjalnie trudne to nie jest, zwłaszcza że wszystko ładnie opisane, tylko czy nie zajmie za dużo miejsca w procku? Czy się zmieści? Pytam bo nigdy nie podejmowałem próby samodzielnego pisania od początku obsługi wysyłania kodu w RC5.

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

Post autor: kayron » 14 gru 2012, 21:11

Jeżeli użyjesz Timer to właściwie 50-70% zadania robi sprzęt, ty tylko go włączasz i wyłączasz w odpowiednim momencie. Nawet gdzieś mam chyba gotowca, na ATTINY25, co prawda bardzo zaawansowany (sterownie z pliku Config w EEPROM), ale jak obciąć z zbędnych bebechów, to powinien pójść nawet na Tiny13, bez problemu.
Tak przeglądając swoje pliki, nawet coś na Tiny13 kiedyś zacząłem robić, pod kątem RC5.

Kod: Zaznacz cały

'*** program IR13SX ***'
'CPU ATTiny13 - 4.8MHz
'BlackJack I-2012

$regfile = "attiny13.dat"
$crystal = 4800000
$hwstack = 8
$swstack = 8
$framesize = 8

'*** Wartości dla standardowych TSOPów ***'
Const Tsop30 = 79                       '30KHz
Const Tsop33 = 72                       '33KHz
Const Tsop36 = 66                       '36KHz
Const Tsop38 = 62                       '38KHz
Const Tsop40 = 59                       '40KHz
Const Tsop56 = 42                       '56KHz

Dim Freq As Byte
Dim Ramka As Byte
Dim Temp As Word
Dim __rseed As Word

'*** Tutaj wystarczy przypisać sobie czestotliwość wybranego TSOPa ***'
Freq = Tsop36
'Obliczanie czasu trwania ramki w zalezności od Fn TSOPa'
Ramka = Freq
Rotate Ramka , Right , 2
Ramka = Ramka And 15
'* Konfiguracja Timera 0 jako nadajnika IR
Tccr0a = &H42
Ocr0a = Freq
Tccr0b = &H80
'* tutaj Timer 0 jest już skonfigurowany, wystarczy go tylko wystartowac
'* i na OCR0A, pojawi sie czestotliwośc nośna.

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

Post autor: kayron » 16 gru 2012, 17:58

Czemu napisaliście w pierwszym poście że procesor budzi się co 2S, jak watchdog w TINY13 może budzić co 8 Sek CPU ?

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

Post autor: matrix » 16 gru 2012, 23:18

W bascom max liczbe ms jaka da sie wpisac do watchdoga to 2048 co daje 2sek przy taktowaniu 8MHz.

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

Post autor: kayron » 17 gru 2012, 15:58

Kompletnie nie rozumiem waszego podejścia ? Tak trudno do BASCOMa przepisać kod w ASM noty katalogowej i ustawić 8 sek zamiast 2 ? Przecież to nawet znajomości ASMa nie wymaga, a Angielski jest naprawdę do opanowania za pomocą tłumaczy internetowych. Takim sposobem, zbudujecie tylko urządzenie które będzie przerostem formy nad treścią. Już chcecie skakać procesor wyżej, a co za chwile ? Wyląduje tam XMEGA ?
Jak będzie tak skakać, z Harwerem co nowy pomysł, to za chwile nie nadążycie z oprogramowaniem, bo jedno nie będzie przenośne na drugie.

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

Post autor: matrix » 17 gru 2012, 18:19

Mi niestety padla plyta glowna w kompie wiec nic sprawdzic ani przepisc nie moge. Pisze z czego sie da, nawet z piornika. Jak widac piornik nie posiada polskich znakow.

ODPOWIEDZ