To sprobuj wybudzac recznie a nie za pomoaca CLK i zobaczysz czy przyczyną jest długosc sygnalu '0". Kiedys mialempodobny problem nie wnikajac w szczegóły dale diode i kondensator na wejscie INT1 i osiagnąlem 100% wybudzen oczywiscie pod warunkie ze to wejscie tylko uzywasz do wybudzen. Zwróc uwagę ze kazdy procesor startuje w okreslonym czasie po wybudzeniu...
Nie, trwa dodatkowe 4 takty zegara. Ale po co ci ta informacja? Tak naprawdę w trybach uśpienia ważne jest tylko to czy pracuje zegar, czy nie. Jeśli nie pracuje to istotnie warto wiedzieć ile wstaje procesor, bo liczba taktów staje się znacząca i jest określana przez konfigurację fusebitów.
W tym trybie timery są wyłączone - może działać tylko Timer 2 z zewnętrznym, kwarcem zegarkowym. Najpierw czytaj Datasheet, potem wymyślaj oprogramowanie... ;)
Witam Już dłuższy czas męczę się z banalnym .... Powerdown nie powinien być w Interrupt service. Zwróć uwagę na bit7 (I) w SREG - jest on zerowany i twój INT0 jak i inne na ten czas są blokowane. e marcus
Witaj. Na początek uporządkuj sprawy dot. trybu usypiania, ponieważ wykonujesz niepotrzebnie w pętli głównej część czynności w tym zakresie. Poza tym skoro już używasz nagłówka sleep.h, to używaj go w pełni, a nie osobno ustawiasz np. [syntax=c]MCUCR |=(1<<SE)|(1<<SM1);[/syntax] Zobacz przykład funkcji main tutaj: [syntax=c]int main(void)...
Witam! Mam pytanie: w jaki sposób obudzić uP Atmega8 ze stanu powersave? Poniższy program nie działa: Config Int0 = Rising On Int0 Przerwanie Enable Int0 Enable Interrupts print "reset" powerdown do loop przerwanie: print "aaaa" return Bez polecenia 'powerdown' program działa i wykonuje przerwanie. Czy jeszcze coś trzeba ustawić?
Można tylko stanem niskim więc zostaje tylko tranzystor.
Z tym odbiornikiem podczerwieni powinno być oczywiste, przecież czy użycie innego pilota, czy też jakakolwiek inna podczerwień i sygnał pojawia się na wyjściu odbiornika. A jak sygnał się pojawia to procek się wybudza. I to jest całkiem normalne, dzieje się tak w każdym urządzeniu, czy to w telewizorze, czy w czymkolwiek innym co używa podczerwieni,...
nic nie rozumiem :( "troche" mnie to przerasta... "idealnego czasu" ?? to jak nastawię timer0 na 50Hz to nie będzie idealnie?? A skąd układ ma wiedzieć, że ma się wybudzić od timera0 a nie od timera1 odpowiedzialnego za multipeksowanie.
A odbiornik IR ile pobiera prądu?
Weź pod uwagę, że w trakcie wchodzenia w usypianie wykonywana jest jeszcze kolejna instrukcja, w twoim przypadku cli(). Jak się domyślasz cli w połączeniu z sleep tworzy śmiertelną pułapkę z której procesor może wybudzić tylko reset. Swoją drogą, piszesz o oszczędności energii, a używasz staruszka procesora, który bierze energii kilka razy więcej niż...
Witam Procesor przechodzi w stan Powerdown po ustalonym czasie kiedy zmienna L=1. Ustawiłem wybudzanie z przycisku (podanie 0 na int0) no i nie działa . Przepatrzyłem już chyba wszystkie tematy na forum i robiłem z milion kombinacji. Już nie mam pojęcia co robić czy to może być wina BASCOM, procesora , prosilbym o konkretne wskazówki jak ustawić aby...
Jasne, że wybranie technologii zależy od wielu czynników, o których autor nie pisze. Zwróciłem tylko uwagę, że wykorzystuje POWER DOWN, a to ogranicza możliwości wybudzania.
Czyli jezeli dobrze rozumuję to co 8 sekund procesor się wybudzi. A jakto wygląda z kwarcem bo czytam ze do powersave potrzeny jest 32,768 kHz a do obsługi programu ja potrzebuję 8 MHz.
Oczywiście można skorzystać z idle'a. Tylko powiedz mi jak niby miałby się wybudzać...
100µA?!! Tosz zwykła ATMega8 pracująca jako RTC (Timer2 i wybudzanie co sekundę dla zinkrementowania daty) pobiera jakieś 8µA (przy 3V).
O ile mi wiadomo z własnych doświadczeń, to przejście w tryby oszczędnościowe nie powoduje zmian w rejestrach i w pamieci ram, wiec stan wyjsc pozostaje niezmieniony. Tylko reset powoduje ustawienie we/wy w stan highz, ale nie powoduje wyczyszczenia zawartosci pamieci,. Przydaje sie to np. przy wybudzaniu z trybu power down przy pomocy watchdoga.
Może trzeba dać SEI przed uśpieniem procka? Przecież włącza SEI tyle że wszystko wg najgorszych praktyk programistycznch. SREG |= 0x80; --------------------------------- W nocie PDF ATtiny2313 wprawdzie napisano w uwadze, że tylko INT0 reaguje na wybudzanie poziomem, ale to słówko tylko (Only) tyczy się poziomu a nie samego przerwania. Powinno być...
Witam Przy tak skomplikowanym układzie i programie :) można zmodyfikować założenia i spokojnie zejść z poborem prądu na kilkanaście uA a może nawet niżej. Kilka zasad: - zjechać z zegarem ile się tylko da, np. wewnętrzny zegar 1MHz, albo niżej na kwarcu zegarkowym, bo procesor się będzie nudził ; - zastosować stabilizator liniowy o bardzo małym poborze...
BTW, można dołączyć np. kwarc zegarkowy i wykorzystać RTC procesora, przy okazji odpadnie konieczność użycia zewnętrznego. Ok, dzięki. Pójde w tym kierunku. Z tego co widzę, to przy maksymalnym prescalerze wybudzałby się co 8sek.
Nie no, jakby to był poważniejszy projekt to bym wziął MSP430-coś tam, one mają b. mały pobór ;) a i zegar też można wybierać. Zaproponowany procesor ma podobne parametry do MSP430, a jest ciągle AVRem. W dodatku ma 1 kHz generator o ultraniskim poborze energii, więc bez zewnętrznego rezonatora można korzystać z głębszych trybów uśpienia + asynchroniczne...
Ech... To mi pod dziadowski SPL podchodzi. Jakby tak nie można było: MCUCR |= (1<<SE)|(1<<SM1)|(1<<S... Przynajmniej wtedy zajrzałbyś do DSa i zobaczył że T2 wybudza z tego przerwania ale tylko w trybie zegarkowym.
W swoim programie wyłącz timer wybudzający, a resztę pozostaw tak, by mikrokontroler wszedł w IDLE bez wybudzania i wtedy dokonaj pomiaru.
Kondensator tantalowy pasuje jak najbardziej i jest znacznie mniejszy. Soldermaska lepiej zabezpiecza; lakier uniemożliwi serwis zegarka STK200 i tak trzeba zasilać; programujesz bez baterii Wybudzanie poprzez SW1 to głównie jak jest napisany program. Po cynowane ścieżki - utlenia się cyna - powinna być soldetmaska 2k2 to zbyt duża wartość, to ok 600uA...
W kwestii PWM tranzystory nie stanowią żadnej przeszkody. Użycie przerwań konieczne nie jest, ale zdecydowanie przydatne - można uśpić procesor obniżając pobór mocy, i wybudzać z uśpienia przerwaniem. Jeszcze kwestia zasilania, co będzie przed 7805?
Nie masz LEDów? :) Ale masz multimetr, a przycisk możesz zastąpić przewodem :) W ten sposób najszybciej potwierdzisz, czy wybudza się z power down, czy też nie.
W stanie rozwartych przycisków układ nie posiada połączenia z masą czyli prąd nie popłynie przez kontroler czyli kontroler nie działa. Przy wciśniętym przycisku diody również skutecznie zapobiegną umownemu przepływowi prądu w kierunku masy czyli kontroler również nie działa. Zaiste skąd taki pomysł, że to zadziała? Może lepszym rozwiązaniem byłoby normalne...
Czy jest możliwe że zasilanie procesora napięciem trochę wyższym niż 3 V - 3.2V może powodować problemy z jego wybudzaniem? Dodano po 5 Wersja procesora:ATMEGA8A-PU
Ten pomysł z takim wykorzytaniem diod wydaje mi się bardzo mało szczęśliwy - tym bardziej, że nie będziesz miał na procku 0V tylko tyle co na spadku napięcia na diodzie a w tym momencie na wejście portu będzie podawane dla procka niższe napięcie niż jego GND ... Diody to można byłoby próbować zastosować do wybudzania procka ze stanu uśpienia którymś...
A google nie działa?. Twój problem jest problemem twoim i indywidualnym. Wybudzać procek możesz również Uartem. Na niewielka ilość danych to tak jak tmf powiedział fram lub nawet eeprom..
W trybie IDLE oraz POWER SAVE można użyć Timera2. W IDLE Timer2 może być taktowany synchronicznie jak i asynchronicznie. Tryb POWER SAVE takiej możliwości nie daje bo clkI/O jest zatrzymany. Zatem w tym trybie licznik może być taktowany wyłącznie asynchronicznie. Dodatkowo występują tu pewne niuanse opisane w datasheet ATMega8L na str. 34-35. Możesz...
Racja, dzięki, umknęło to mojej uwadze. Ale problem jest nadal : podprogram obsługi przerwania wykonuje się szybciutko i kończy, ale niski poziom trwa dalej. Czy da się od tego jakoś uciec, żeby dopiero na następnym niskim poziomie wywołał się podprogram? Jest dla mnie istotne, żeby wybudzać z power-down przez INT0, na którym jest przebieg niskiej częstotliwości.
Rób powerdown a potem go wybudzaj przerwaniem na int0 np. nie dziw się, że po watchdogu masz program od nowa;) To logiczne. Jak rozumiem zasilanie LCD odłączasz oczywiście? (na te 2sekundy)...
Zawsze możesz zapomnieć o tym aby wyłączyć S9 a tak masz "święty spokój". Co do wybudzania to nie wiem czy przy takich analogowych przyciskach będziesz w stanie wybudzić uC. Poza tym nadajnik wtedy będzie i tak cały czas pobierać prąd.
Dzielnik napięciowy 10k i 5k6 ma za zadanie wykryć zanik zasilania i dzięki temu uC przechodzi w stan niskiego poboru energii (po zaniku zasilania) i analogicznie wybudza się z niego po pojawieniu się napięcia na tym pinie. Kwarc nie ma kondensatorów gdyż programowo podłączona jest wewnętrzna pojemność atmegii (nóżki kwarcu podpinamy tylko do uC) ....
Wydaje mi sie ze wiem co robie, badalem pobor prady, podczas normalnej pracy jest ok 14mA, podczas idle jest 7mA, a przy powerdown jest jest duzo ponizej 1mA. A jakbym chcial korzystac z timerow do wybudzania to bym skorzystal :) Nie mam wielkiego doswiadczenia w programowaniu, dlatego pytam o rozwiazanie mojego problemu.
i nawet ręczny reset nie działa tylko odpięcie zasilania pomaga. Właśnie się zastanawiam jak może procesor się zablokować że nawet ręczny reset nie wybudza go, to jest raczej nie możliwe. Może wiesz a się układ który odpowiada po magistrali I2C i należało by go właściwie ponownie zainicjować.
Witam. Schemat całego układu: http://obrazki.elektroda.net/75_12533785... Przed położeniem uC do snu ustawiam stany wysokie na bazach tranzystorów (zmierzyłem prąd samych tranzystorów, poniżej 0.00uA bo miernik nie chwyta). Ustawiam wszystkie pozostałe piny w stan wysoki oprócz: pinów przycisków S1-S4 które mają być masą dla pinu przerwania...
Co do INT, to myślę, że Atmega8 przecz, i dajemy Atmega88A(z obniżonym poborem energii). Pin change na każdym pinie do enkodera i tym sposobem INT do wybudzania jest luzem. Jeśli układ pracuje w obszarze zakłóceń elektromagnetycznych(zwłaszcza w pobliżu silników trójfazowych), to bym się zastanowił nad dodatkowym zasilaniem z... anteny. ;)
Czy wystarczy zasilanie (ew. przez rezystor) podłączyć do INT1 (na przykład) i wykrywać te zbocza ? Nie wiem czy wystarczająco zrozumiale to opisałem. Jeżeli użyjesz trybu najgłębszego snu, to musisz być świadomy, że on wybudza mikrokontroler (ATmega) tylko poziomem nie zboczami. To może nie mieć dla Ciebie znaczenia, ale równie dobrze może być baaardzo...
3 paluszki + LDO to nawet mi odpowiada. Używam atmega8A z tego co wiadomo nie należy ona do najoszczędniejszych. Będę usypiał mikro-kontroler i wybudzał przerwaniem zewnętrznym (przyciskiem) praca tego pilota to około 10 min na tydzień. tmf może poleciłbyś jakąś bardziej oszczędną atmegę ? Na razie miałem do czynienia tylko z 8A.
Witam, chciałbym prosić o pomoc przy budowie układu wykrywającego dźwięki, a konkretnie odbicia piłeczki pingpongowej. Układ będzie współdziałał z mikrokontrolerem atmega8. Ponieważ zasilanie musi być bateryjne chciałbym żeby atmega była cały czas w trybie uśpienia (PowerDown) i wybudzana za pomocą przerwania zewnętrznego INT0. Przerwanie to miało by...
Witam. Jestem obecnie na etapie budowy stacji pogodowej. Po pokonaniu problemów ze stacją bazową, nadszedł czas na budowę czujnika zewnętrznego. Będzie się on składał z mikrokontrolera AtMega88PA, czujnika SHT11, nadajnika RTFQ2 i czujnika mierzącego prędkość wiatru (kontaktron lub dioda + fototranzystor, jeszcze nie zdecydowałem). Czujnik będzie zasilany...
Przerwanie od przepełnienia (co 1 sek.) Jeśli masz taką potrzebę możesz co 1 sekundę, ale jeśli nie musisz, to wykorzystaj timer do końca i wybudzaj co 8 sekund :) Czy poza Atmegą8 i Atmegą32 jest jeszcze jakiś inny AVR mający taką fajną funkcję jak możliwość podpięcia kwarcu zegarkowego oraz to aby pracował na nim w trybie asynchronicznym ? ... nie...
Poradzilem sobie z tym stanem wysokim zerując TCCR1A. Zaczne od tego, że programje pilot 6 przyciskowy z usypianiem, wybudzaniem i przełączaniem miedzy podprogramami - zapalniem Led-ów. Ma 4 przyciski do wysyłania kodów i 2 do przełączania podprogramów. Do tych czterech przycisków podpięte są diody które podają też niski stan na INT0. Wyjscie OC1a podpięte...
"The pin change interrupt PCI2 will trigger if any enabled PCINT23..16 pin toggles. The pin change interrupt PCI1 will trigger if any enabled PCINT14..8 pin toggles. The pin change interrupt PCI0 will trigger if any enabled PCINT7..0 pin toggles. The PCMSK2, PCMSK1 and PCMSK0 Regis- ters control which pins contribute to the pin change interrupts. Pin...
Jak dla mnie to przede wszystkim zamiast deley() wykorzystać jakiś zew. zegar RTC usypiać procka i wybudzać przerwaniem z RTC Nie trzeba używać zewnętrznego RTC - wystarczy podłączyć kwarc i użyć przerwania z wewnętrznego timera. Nie wiem, jak w przypadku Arduino, ale zastosowany w nim mikrokontroler to chyba ATmega8, więc jest taka możliwość (o ile...
Musisz doczytać w nocie, że aby wybudzić procka trzeba to zrobić poziomem a nie zboczem, a ty jak ustawiasz ??? MCUCR |= _BV(ISC01); widzisz o co chodzi ? (skasuj tą linijkę - to będzie wyzwalane stanem niskim i będzie OK)
Witam, chciałbym zaprezentować schemat wykonany w Eagle'u i poprosić o sprawdzenie. Schemat przedstawia minutnik, który: - będzie zasilany z baterii 2 x AAA, - sterowany jedynie enkoderem obrotowym, - posiadał 3 cyfrowy wyświetlacz 7-seg ( będzie on tylko chwilowo pracował), - sygnalizował koniec odliczania buzerem, - miał możliwość późniejszego przeprogramowania...
Nie jestem pewny ale przerwania od twi wywoływane są na starcie transmisji. Używane w układach slave pozwalają na przerywanie programu głównego / wybudzanie gdy nadejdzie transmisja. Dla konfiguracji master nie zaoszczędzają czasu traconego w pętlach while. Przerwania TWI sa wywoływane na dowolnym etapie transmisji i pozwalają na niestosowanie pętli...
Czyli błędnie rozumowałem, że mogę wybudzić procka przez Int0, bo jeśli będzie procek w power down, to Int0 nie będzie działać, więc nie zareaguje na pojawienie się tam stanu niskiego. Ale nadal nie wiem jak obudzić procek. W helpie bascoma nie ma na to odpowiedzi. Może to jest tak oczywiste, że nie trzeba tego tłumaczyć... Zanim wyciągniesz wnioski...
Jeżeli oszczędzanie baterii tak niewielkiej jak CR2032 i około 300 obrotów/min, to upierać się będę, że najlepszym rozwiązaniem jest kontaktron na wejściu procesora zwierający do masy. Oczywiście Ty decydujesz. Co do schematu, który przedstawiłeś nie wypowiadam się bo moim skromnym zdaniem jest zbędny. Jeśli chodzi o hallotrony to gdzieś kiedyś widziałem...
Jak pisze Mariusz wyżej, sprawdzałem. Wpisanie w watchdoga każdej innej liczby niż 2048 czyli 2 sekundy nie daje żadnego rezultatu. Nawet bym rzekł że wpisanie czegoś więcej wydłuża czas startu procesora. (sprawdzane na atmega8 i płytce ewaluacyjnej PROPOX'u) 2048 to max co da się bujnąć. Jakby nie liczył wychodzi 2 sekundy. Co do samej dyrektywy $NORAMCLEAR...
Witam pisałem program który miał po pewnym czasie zmuszać mikrokontroler do przejścia w stan uśpienia po czym wybudzanie miało następować w reakcji na zewnętrzne przerwanie na linii PD2. Mikrokontroler wchodzi w uśpienie po zadanym czasie jednak nie chce się potem wybudzić w reakcji na zewnętrzne przerwanie. Byłbym wdzięczny gdyby ktoś rzucił okiem...
Rozumiem, że Wam udało się uzyskać prądy porównywalne z tym co obiecuje Atmel? :) Spokojnie, na ATtiny2313 w pilotach podczerwieni w uśpieniu, procki zadowalają mi się prądzikiem jedynie 0,6uA !!! ;) to dużo ? Tak z ciekawości: Idle? Power-down? Standby? Jak przywracasz je do życia? INT? Pin Change? Ile klawiszy? Korzystam z najgłębszego PowerDown,...
Cześć, Buduje energooszczędny układ, który ma sprawdzać, czy jest ciemno, czy jasno. Używam do tego dzielnika z fotorezystorem (od strony masy). Procesor wprowadzam w trym Power Save, Timer2 wybudza go co 8 sekund, inkrementuje licznik sprawdzając, czy minęło już 30 minut. Jeśli tak to włączam komparator i dokonuje pomiaru. Zależnie od wyniku włączam/wyłączam...
Marek_Skalski To co napisałeś wydaje się sensowne, ale niestety problem występuje nadal gdy nawet wyświetlacza nie ma w obwodzie. Wlaczylem uklad bez wyświetlacza, przerwałem zasilanie, a nastepnie wpiąłem wyświetlacz I ponownie uruchomiłem układ. Wyświetlacz niestety nie pokazał znianę pamięci eeprom. Już brakuje mi pomysłów. Spróbowałem na innym...
Jak rozumiem ma być czytane przerwanie z klawiatury ( miedzy innymi ) , a czemu nie zrobić przerwania z jakiegoś timera które będzie cyklicznie sprawdzało pin podłączony z tym klawiszem ( przyciskiem ). Timera też wolałbym nie używać. Zamierzam użyć tych przerwań, żeby procesor przez cały czas w trybie Power-down i był wybudzany tylko po to, żeby obsłużyć...
Skoro pierwotnie starczało mu IO na multipleksowanie to przecież nagle mu ich nie ubyło, prawda? A zawsze układ bez 3 dodatkowych scalaków jest prostszy niż z nimi. Ale już pomijając nawet ten fakt, to sprawne procedury obsługi 1-wire i tak kiedys mu się przydadzą, więc poprawa tego co ma nie będzie czasem straconym. Starczało. Lecz podejście do sprawy...
Na pin VCHG możesz podać maksymalnie 5.25 V. Na pin VBAT 4.5 V. Pin VCHG służy do zasilania obwodu ładowania baterii i jego zasilanie powinno wytrzymywać co najmnie 650 mA. Dopiero podpinając ładowanie i baterie, będziesz miał dostęp do takich funkcji modemu jak np. wybudzanie ze stanu uśpienia. Co do łączenia tx/rx modemu i atmegi, to przy jednakowym...
Dzięki za zainteresowanie tematem :) Może podkreślę to co napisałem w pierwszym poście. To co ma być w pchełce musi spełniać warunki: - koszt musi być minimalny, jeśli zmieścimy się w 5zł byłoby super, - mam bardzo, bardzo ... bardzo mało miejsca na PCB. Kilka dodatkowych elementów o rozmiarach 0603, to już bardzo duże wyzwanie, - w czasie czuwania...
Mikrokontroler to atmega8L: http://www.atmel.com/images/doc2486.pdf str 35 informacje o sleep modes. Używam zewnętrzenego kwarcu 16Mhz. Nie używam BOD. Przycisk na INT0 nie ma debouncingu. Układ działa poprawnie bez usypiania.
Drogi autorze umieszczając swoją konstrukcje powinieneś się liczyć z jej opinią. Masz swoje argumenty czemu Mega8, a nie inaczej, jednakże powinieneś również posłuchać rad innych. Cena ceną, ale układ mniejszy z pewnością by bardziej cieszył. Co do samego projektu, to nie rozumiem jednej rzeczy. Układ jest załączany po stacyjce by nie rozładowywał akumulatora....
Witam, byłem pewien, że mam ATMega8L ale mój błąd - to ATmega8-16PU, więc obniżenie napięcia nie wchodzi w grę (Vcc min 4,5V). Nie zamierzam polemizować, bo także wydaje mi się, że dondu zamieszcza tylko sprawdzone układy i programy na blogspocie. Mam tylko jedną uwagę - podany projekt jest dla AS6 (którego nie znam), ja używam AVRStudio4 i dla poprawnego...
Witam, Wiele tematów czytałem na ten temat ale wszystkie sugestie po zastosowaniu nie rozwiązały naszego problemu. Otóż: ATMEGA8 programowana od jakiegos czasu w na testowej bazie obudowa DIL - program napisany działa poprawnie Zamówiliśmy płytkę pod atmega8 TQFP i tutaj pojawil się psikus. Płytka zmontowana program wgrany fusbity ustawione układ działa...
Jeżeli procesor ma zadziałać na INT to musi chodzić główny zegar, czy się mylę. W pewnym sensie się nie mylisz. Jeśli INT ma reagowac na zbocze, to musi pracować zegar, jeśli ma to byc poziom to nie. Jest tylko jedno ale, poziom niski musi byc odpowiednio długo utrzymany (start generatora itp). Czas ten zależy od ustawień bitów konfiguracyjnych CKSEL...
Witam Zastanawiam się nad budową układu służącego do włączania i wyłączania "odbiornika" za pomocą pilota. Transmisja pomiędzy pilotem i sterownikiem musi być zakodowana, tak aby nikt nie skopiował kodu i nie miał dostępu do włączania i wyłączania urządzenia. Odległość transmisji może być np. do 10 metrów. Pilot jak i sterownik zasilany baterią. Wpadłem...
A co do usypiania - to stosuj jak najczęściej, nawet pracując na zasilaniu innym niż bateryjne - to dobry nawyk który ułatwi Ci pisanie kodu, gdy oszczędzanie będzie niezbędne. Generalnie - wykonaj, co masz i idź spać :) W Twoim przypadku zakłócenia elektryczne z licznika mogą przenosić się na procesor - tutaj możesz szukać przyczyny wieszania się...
Witam. Dopiero zaczynam naukę z AVR i ogólnie z programowaniem. Korzystam z książki P. Borkowski 'AVR & ARM7 Programowanie uC dla każdego' i zatrzymała mnie pewna sprawa dotycząca uśpienia wywoływanego przyciskiem. Program wygląda mniej więcej tak: -dwie diody migają naprzemiennie -po naciśnięciu przycisku na PD0 ukłąd wchodzi w stan uśpienia -po...
Tak się zastanawiałem nad problemem przedstawionym przez Jj_Johnys i mam takie dwie odpowiedzi. W urządzeniach czasu rzeczywistego z reguły jest możliwość nastawienia aktualnej daty i czasu, więc rozstrzyganie o tym czy układ policzy te lata czy nie chyba raczej nie ma sensu, bo po uruchomieniu urządzenia czas można nastawić ponownie:) Jak kupujesz...
W manualu od uC masz tabelkę opisującą które przerwania (od czego) wybudzają procesor zależnie od głębokości uśpienia - to Ci powinno wszystko wyjaśnić.
Przy uśpieniu oscylator, czy to kwarcowy, czy RC jest wyłączony. Wybudzić może go zewnętrzne przerwanie wyzwalane poziomem lub (nie w każdym procesorze) przerwanie asynchroniczne od timera2.
POWERSAVE (ATMEGA88) This mode is identical to Power-down, with one exception: If Timer/Counter2 is enabled, it will keep running during sleep. The device can wake up from either Timer Overflow or Output Compare event from Timer/Counter2 if the corresponding Timer/Counter2 interrupt enable bits are set in TIMSK2, and the Global Interrupt Enable bit...
http://obrazki.elektroda.pl/9531378400_1... Witam. Chciałem zaprezentować wykonany przeze mnie sterownik rolet okiennych wewnętrznych. Inspiracją do wykonania projektu było urządzenie zaprezentowane już jakiś czas temu: Założenia Głównym celem mojego projektu było automatyczne zasłonięcie okna po włączeniu światła w pomieszczeniu (po...
2rs232 podał ważną, choć niekompletną wskazówkę, bo dotyczącą jednej modyfikacji. W każdej obsłudze przerwania - podobnie jak z rejestrami - należy zabezpieczyć flagi (rejestr SREG), jeśli tylko ich modyfikacja może wpłynąć na działanie innych części programu. Jeżeli flagi nie są modyfikowane, to nie trzeba ich zabezpieczać. SREG można zapisać na stosie,...
Co do kodu i innych wyborów, które pomogą ograniczyć pobór prądu. 1. Jak najniższe napięcie zasilania, ważne jeśli jest dodatkowy stabilizator. 2. Wewnętrzny generator RC - bo wybudzanie z Power Down trwa 6 cykli a dla rezonatora kwarcowego 16 tysięcy cykli. 3. Praca z jak największą częstotliwością, ale należy dobrać częstotliwość do napięcia zasilania,...
Czułość zależy od konkretnego modułu. Ale noszenie w kieszeni przy chodzeniu spokojnie wyzwoli taki czujnik. Na Alle... są dostepne gotowe modułu ( choć duże ) za 5 zł plus wysyłka. Można z nich wylutować sam czujnik lub polować na niego w sklepach ( szukaj np. SW-420 ). Można także zaprząc jakiś tani i energooszczędny akcelerometr. Przy ruchach oczywiście...
A czy pobór prądu przez cewkę przekaźnika nie pogrzebie planowanej energooszczędności tego rozwiązania? ;)
Jeśli chodzi o AVR i jak najmniejszy pobór prądu, to warto się zainteresować serią PB: Atmega48/88/168PB.
Każdy uK da się wprowadzić w stan obniżonego poboru mocy (to się chyba IDLE nazywa) i wybudzić zewnętrznym przerwaniem. Więcej w dokumentacji na www.atmel.com. Pozdrawiam.
A może na czas "nie korzystania" z zegara poprostu włączyć go w tryb PowerDown. "Wybudzić" by go można albo przyciskiem albo czujnikiem fotooptycznym . Wszystko zależy w jakich warunkach będzie przebywał.
Nie musze czytać tego dokumentu bo u mnie chodzi o usypianie power save a jezeli w artykule jest opis UARTA to juz mnie nie interesuje w tej sprawie gdyz procesor sa sie wybudzic za pomoca UARTA jedynie przy uspieniu do IDLE .I może to jest kość niezgody? Ja nie podważam dokumentu ATMELA tylko go czytam ze zrozumieniem, i to co wywnioskowałem nie jest...
Na jednym tranzystorze...hmmm Oglądałem na YouTube na kanale EEVBlog film o budowie ON/OFF jednym przyciskiem..to rozwiązanie sprzętowe. YT ma wyszukiwarkę wiec znajdziesz. O rozwiązanie programowe chyba kolega nie pytał, albo nie doprecyzował pytania. Da się uśpić mikrokontroler do trybu Powerdown i wybudzić go z tego stanu jednym i tym samym przyciskiem..ale...
Atmega8L możesz spokojnie zasilać bezpośrednio z baterii 3V, do tego tryby głębokiego uśpienia i po kłopocie. Jeśli mnie pamięć nie myli, to uzyskałem w jednym projekcie 20uA. Programowy watchdog, licznik wybudzeń i masz urządzenie, które teoretycznie podziała kilka lat na jednej dobrej baterii.
Dziękuję za odpowiedz. Co do uwag - tak mam podpięte rezystory, a rozkaz _VB(INT0|INT1); rzeczywiście nie będzie działać poprawnie. Jeśli chodzi o drgania styków - zwykle je eliminowałem, ale w tym wypadku widziałem testując układ, że ich nie ma - chociaż w rzeczywistości były eliminowane przez długość przerwania. Moją ideą było uśpienie uC, i wybudzenie...
Mam w swoich kilku programach na ATmegach wprowadzone bloki zatrzymujące (przed pomiarem) i wznawiające (po pomiarze) przerwania. Przerwania to raczej nie mają wpływu na wynik pomiaru. Nie bardziej niż kod wykonywany poza przerwaniem. Więc nie wiem po co to. No chyba, że chodzi Ci o usypianie procka na czas pomiaru z wyłączeniem przerwań by zapobiec...
Może tak. Funkcja usypiająca: [syntax=c]void usypianie() { EICRA |= (0 << ISC00) | (0 << ISC01); //Przestawienie przerwania Int0 na aktywację stanem niskim (żeby móc wybudzić) sei(); power_all_disable(); //wyłącza zasilanie TWI, Timer0-2, SPI, USART0, ADC cbi(PORTB,2); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); }[/syntax] Mam nadzieję,...
Witam! Chcę wykonać zegar na ATmega8L lub 16L (takie mam u siebie). Raczej będe wybierał ATmege16L bo ma możliwość debuggowania przez jtag (który posiadam). Do atmegi chcę podłączyć DS1337, jako RTC. Będzie miał on podłączony kwarc 32kHz. Atmega będzie prawdopodobnie działać na kwarcu wewnętrznym 1Mhz. Chyba więcej nie będzie potrzeba do transmisji...
Nie znam się dlatego piszę. Jednak czytam i staram się zrozumieć. To co piszesz ma sens. Ale jeżeli wprowadzam procesor w tryb powerdown , to tak jakbym go wyłączył. Właśnie studiowałem dokumentację mojego procka atmega88 i niestety nie ma tam wzmianki o zasilaniu pamięci . Tak czy inaczej sprawdzę to. Trochę mam utrudnione zadanie, bo nie mam wyświetlacza...
Faktycznie teraz mam tak i zaczęło działać, tylko że wybudzenie czasami nie działa i trzeba kilka razy kliknąć żeby obudzić od czego to zależy? Aby odpowiedzieć na to pytanie, musielibyśmy poznać zawartość funkcji interruptInit() by mieć pewność, że realizuje to co ma w komentarzu oraz schemat Twojego układu. PS. Czy podczas uśpienia stan linii portów...
Co do racji tmf i konstruktywnej krytyki, to takowa może wynikać co najwyżej z rzeczowej oceny sytuacji i opierać się na pewnych przesłankach. Oczywiście wziąłem pod uwagę takie drobiazgi jak kondensatory blokujące 100nF przy układach, duże pola masy. Układy mają pracować w środowisku o wysokich zakłóceniach, gdzie przełączane są obciążenia indukcyjne...
https://obrazki.elektroda.pl/6021352700_... https://obrazki.elektroda.pl/6921159500_... https://obrazki.elektroda.pl/3416870700_... https://obrazki.elektroda.pl/7961253800_... https://obrazki.elektroda.pl/7601893100_... Dzisiaj przedstawię państwu dwa sejfy dla dzieciaków,...
Witam. Blok w którym mieszkam zamieszkuje jeden gość, który notorycznie kopci w windzie, mimo iż zwraca mu się uwagę. Osobiście doprowadza mnie to do szału, więc chcę coś z tym zrobić. Pierwszy pomysł to czujnik dymu z jakimś wydajnym i niedużym źródłem dźwięku, który umieściłbym nad taką kratką w windzie. Zasilany byłby z baterii 9V. Całością sterowała...
Witam! Mam pytanie odnośnie budzenia uP AVR. Z trybu POWER-DOWN da się wyjść m.in. poprzez przerwania INTx. Do ATmega8 chciałbym podłączyć "klawiaturę" zrobioną za pomocą 7 tact-switch'y i kodera 8 na 3 serii '148. Koder ten posiada wyście EO sygnalizujące wystąpienie na którymś z wyjść zmiany stanu (wciśnięcie przycisku). Chciałbym to wyjście podpiąć...
Witam Chciałbym zachować wartość zmiennej po wybudzeniu uP z trybu uśpienia przez WATCHDOG. Dodatkowy RAM zewnętrzny nie wchodzi w grę, bo układ z założenia ma być minimalnych rozmiarów i zasilany z baterii. Nie chcę też korzystać z EEPROM, gdyż zapisy mają być częste (po każdym resecie) Zrobiłem test na płytce stykowej na AtMega8 dodając polecenie...
http://obrazki.elektroda.pl/3570970300_1... Od jakiegoś czasu akumulatory Li-Ion coraz częściej goszczą w naszych domach. Wymagają one jednak specyficznego traktowania. Autor projektu zaprzągł do pracy dosyć popularne układy TP4056 w połączeniu z uC Atmega48 (jednakże nic nie stoi na przeszkodzie zmienić go na inny). Układ co ok. 17...
shadow0013 : Zacytuję pierwszą stronę dokumentacji: – Real Time Counter with Separate Oscillator RTC służy do odliczania czasu niezależnie od stanu procesora (np uśpienie) czy oscylatora taktującego procesor (wahania częstotliwości), funkcja zegara/kalendarza jest tylko często stosowanym dodatkiem. Tutaj tą funkcję trzeba zrealizować programowo....
Inaczej projektuje się zegar dla zasilania z baterii, a zupełnie inaczej dla zasilania z zasilacza. Jeżeli mikrokontroler ma być zasilany z baterii, to projekt musi drastycznie zminimalizować zużycie energii. Aby to zrobić należy zmniejszyć radykalnie napięcie zasilania i zmniejszyć częstotliwość zegara F_CPU. Należy także usypiać mikrokontroler ......
Fatalny przydział pinów... Żebyś chociaż mógł wejście E wyświetlacza podpiąć pod pin3, żeby zwolnić INT0 to już by coś się rozjaśniło, tylko, że następnym krokiem to przecięcie masy dla przycisków s1 i s4 i podpięcie ich pod to INT0. Co następuje - tuż przed stanem uśpienia na INT0 wystawiasz jedynkę, a na s1 i s4 logiczne zero. Teraz po wciśnięciu...
Ten sam układ zmontowałem na płytce uniwersalnej. Jest lepiej - czyli wskazywało by to, że winne jest moje lutowanie, choć nie jestem pewny (bo układ działa). 1. Na płytce uniwersalnej układ startuje prawidłowo jeśli jest zasilony od już włączonego zasilacza. 2. Jeśli podłączę ODŁĄCZONY od sieci zasilacz i uruchomię go z całym układem atmega zawisa:...
wybudzanie esp8266 samoczynne wybudzanie wybudzanie klawiaturą
renault ręczny hamulec skanowanie dwustronne przebarwi kolor
elektronika baterie parkside elektronika baterie parkside
Błąd E900 w pralce Haier - przyczyny i rozwiązania Lokalizacja czujnika powietrza dolotowego w BMW E65