Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Attiny13 i wykonywanie programu okresowo + Powerdown

devolt 11 Gru 2008 18:53 2166 14
  • #1 11 Gru 2008 18:53
    devolt
    Poziom 21  

    Witam mam taki problem. Postanowiłem sobie zrobić układzik który będzie wykrywał czy w skrzynce na listy jest poczta.
    Sam program detekcji już opracowałem, ale chciałbym żeby procesor wykonywał pomiar obecności poczty np co jakis czas 5-10 minut po czym przechodził w stan czuwania- power-down w celu oszczędzania energii.
    Czytałem noty i nie mam pomysłu jak można zrobić aby procesor sam się wybudzał po tak długim czasie.
    Wiem że można zrobić to za pomocą Watchdoga ale tam maksymalny czas to chyba 2 sek.
    Myślałem też nad zewnętrznym timerem np ne555 który by co 15 minut wysyłał stan wysoki w celu wybudzenia procka.
    Ale to kolejne mA dla NE555 no i miejsce..

    Moze macie jakieś pomysły jak to zrobić programowo

    Pzdr Devolt

    0 14
  • #2 11 Gru 2008 19:49
    Dr.Vee
    VIP Zasłużony dla elektroda

    Ze stanu power-down może procesor wybudzić tylko watchdog, reset, lub przerwanie zewnętrzne.

    W trybie Idle mógłbyś użyć timera (/256) + preskalera (/1024) + system clock preskalera (/256), czyli przerwanie co 67M cykli zegara systemowego. Dodaj do tego zewnętrzny oscylator 32kHz = maksymalny timeout ~35 minut (przy wewnętrznym RC 128kHz masz 8 minut).

    Przy tak niskiej częstotliwości zegara pobór prądu w trybie Idle to ok. 6,5uA, natomiast w trybie power-down będzie to ok. 0,5uA. Pewnie da się zrobić zewnętrzny układ czasowy CMOS na 6uA, ale czy warto?

    Pozdrawiam,
    Dr.Vee

    0
  • #3 11 Gru 2008 21:00
    mirekk36
    Poziom 42  

    ;) piszesz, że zrobiłeś już układ "detekcji poczty" w skrzynce na listy, że dopracowałeś już program detekcji .... skoro więc jest jakaś detekcja to znaczy, że musisz wykrywać zmianę stanu jakiegoś czujnika czy nie wiem tam czego.

    Zamiast więc podchodzić do tematu (jeśli chodzi o usypianie procka) jakby troszkę "od tyłu" - podejdź może "od przodu" czyli .....

    1. twój procek cały czas ładnie "śpi" w najgłębszej śpiączce Power-DOWN (najmniejszy pobór prądu - jeśli to ciebie interesuje i to jest głównym założeniem. Nie działają w nim wtedy żadne wewnętrzne moduły)
    - wybudzenie z tej śpiączki może nastąpić jednak pięknie przez jakieś zewnętrzne przerwanie

    2. W momencie więc gdy pojawia się poczta w skrzynce na listy, zmnienia się stan czujnika, który generuje na jakimś pinie INT przerwanie do procka. Ten się budzi - robi swoją robotę czyli, informuje o tymże zdarzeniu na zewnątrz no i ponownie zażywa całą fiolkę pigułek nasennych ;)

    takie rozwiązanie powinno się bardzo dobrze sprawdzać

    0
  • #4 12 Gru 2008 01:47
    devolt
    Poziom 21  

    No tak ale to komplikuje sprawę wykrywania.
    Musiałbym zrobić jakiś inny układ który by powodował przerwanie.
    Mój sposób detekcji jest banalnie prosty, programowy i opiera sie na czujniku odbiciowym (za pomocą fotodiody).
    Fotodioda jest podłączona do przetwornika prąd/napięcie i dalej za pomocą wbudowanego przetwornika A/D nastepuję pomiar ilości światła jakie wpada do fotodiody.
    Ilość ta zależy od tego od czego się odbije, koperty i listy zazwyczaj są jaśniejsze niż wnętrze skrzynki.
    Skrzynka jest tak usytuowana że panują tam praktycznie stale warunki oświetlenia. Wiec nie będzie problemu z zakłóceniami.

    Myślę, że to co napisał Dr.vee bedzie wystarczające 6.5 uA to naprawdę niewiele.
    Musze jeszcze tylko znaleźć jakiś wzmacniacz operacyjny który bedzie pracował na 3V i pobierał znikomy prąd, ale to tez da sie zminimalizować i będę go zasilał tylko w momencie pomiaru.

    1
  • #5 13 Gru 2008 13:36
    waldek72
    Poziom 10  

    witam

    6.5 uA to będzie brał procek ale jak dopniesz jeszcze wzmacniacz diody itd... to bateria szybko padnie. Lepiej oprzyj się na tym co masz w procku np komparator.

    Poprawiłem błąd ortograficzny - regulamin p.15
    Proszę korzystać z przycisku "Pisownia".
    [zumek]

    0
  • #6 13 Gru 2008 14:48
    asembler
    Poziom 32  

    Ja wykorzystuje cykliczne przerwanie od wachdog'a. Ustawiam SLEEP na power-down. Srednie zuzycie prądu to 5 uA. Wcale nie musisz w kazdym przerwaniu sprawdzac czy jest poczta. Wystarczy ze bedziesz zliczal przerwania w zakresie 0-255 i co 256-ste przerwanie właczysz LED i odczytasz napiecie z fotodiody. Jezeli ustawisz wachdog na okolo 2 sek to bedziesz mial pomiar co okolo 500-600sek czyli oko 10 minut. Piszę całyczas około gdyż generator wachdog'a pracuje z rózną czestotliwościa zależną od egzemplarza, temperatury, napiecia .

    0
  • #7 13 Gru 2008 21:51
    devolt
    Poziom 21  

    Niestety muszę zrobić dodatkowy układ konwersji prądu na napięcie gdyż sama dioda nie reaguje tak dobrze, ma duzo mniejszą czuość, a zmiany są powolne. Ewentalnie pobawie się jeszcze z fototranzystorem, może da silniejszy sygnał.
    Ale myślalełem zeby zasilić wzmak operacujny tylko w momencie pomiaru czyli przez ułamek sekundy( na tyle krótko aby to zadziałało, bo na pewno potrzebny jest jakis odcinek czasu by napiecia się unormowały).

    0
  • #8 13 Gru 2008 22:15
    asembler
    Poziom 32  

    spróbuj male fotoogniwo od kalkulatorka, napewno sie znajdzie jakis zepsuty daje swietlne efekty. Mam w samochodzie do automatycznego właczania swiateł,teraz po zmianie przepisów reguluje tylko podswietlenie w wyswietlaczach LCD

    0
  • #9 16 Gru 2008 22:45
    ilmenauer
    Poziom 14  

    Ciekawy problem od strony analogowej. Fotodioda w trybie prądowym ma świetny zakres liniowy przetwarzania natężenia światła. Za wzmacniaczem I->U dajesz komparator, dalej sygnał z komparatora na przerwanie sprzętowe procka.
    Jaką fotodiodę wybrałeś?
    Zasilanie części analogowej, żeby mało żarło - to jest wyzwanie.

    0
  • #10 17 Gru 2008 02:02
    Dr.Vee
    VIP Zasłużony dla elektroda

    Ja bym poeksperymentował z fototranzystorem. Będzie mały zakres dynamiki, ale można ustawić napięcie referencyjne ADC na 1.2V i odpowiednio dobrać rezystor w kolektorze fototranzystora. Problemem może być wysoka impedancja wyjściowa takiego układu, co obciąży wejście ADC. Można pomyśleć nad jakimś wtórnikiem, a zasilaniem wszystkiego sterować przez uC.

    Jak już wymyślisz jakiś układ to nie zapomnij się podzielić z innymi :)

    Pozdrawiam,
    Dr.Vee

    0
  • #11 17 Gru 2008 11:17
    devolt
    Poziom 21  

    ilmenauer napisał:
    Ciekawy problem od strony analogowej. Fotodioda w trybie prądowym ma świetny zakres liniowy przetwarzania natężenia światła. Za wzmacniaczem I->U dajesz komparator, dalej sygnał z komparatora na przerwanie sprzętowe procka.
    Jaką fotodiodę wybrałeś?
    Zasilanie części analogowej, żeby mało żarło - to jest wyzwanie.


    Fotodiodę wybrałem taką jaką znalazłem w szufladzie bpyp44a.
    Nie korzystam z komparatora, prosto z przetwornika I>U sygnał trafia do procka do przetwornika A/C. Reszta jest już programowo załatwiona.

    A tak przy okazji to zamówiłem jakieś opamp'y z maxima co niby biorą 750nA wiec nie tak dużo.

    0
  • #12 17 Gru 2008 15:50
    ilmenauer
    Poziom 14  

    Dr.Vee dotknął sedna sprawy. Jeśli ma być energooszczędnie to część analogowa musi być zasilana cyklicznie pod kontrolą uC, tylko w chwilach pomiaru.
    Przetwarzanie I->U zrób na tranzystorze, wystarczy. Ponieważ w gruncie rzeczy robisz układ detekcji a nie pomiarowy to wzmacniacz operacyjny wydaje się tu nadmiarowy, tak myślę.

    0
  • #13 17 Gru 2008 21:32
    asembler
    Poziom 32  

    Może zamontuj poprostu zwykły styk na tyle delikatny aby ciezar listu go właczył?

    0
  • #14 19 Gru 2008 14:39
    devolt
    Poziom 21  

    hej myślałem o tym na samym początku, ale jest kilka przeszkód. Po pierwsze chciałbym aby detektor był typu plug&play. Wkładasz do skrzynki kalibrujesz i dalej nic Cie nie interesuje.
    Montowanie styków wiąże sie z mechaniczną ingerencje w skrzynce, ja mieszkam w bloku wiec mam dosyć ograniczone możliwości( skrzynka nie jest moją własnością).
    Dlatego pomyslalem o układzie mikroprocesorowym. Przy okazji czegoś sie naucze:)

    0
  • #15 20 Gru 2008 23:22
    asembler
    Poziom 32  

    Niekoniecznie musisz ingerowac w skrzynkę mozesz włozyc kawałek plexi wilekosci dna twojego boxu i na niej wszystko umiescic. jak sie bedziesz przeprowadzal niedługo to poprostu wyjmiesz.

    0