Skocz do zawartości

Wybudzenie AVR przy pomocy kilku przycisków.


miccaldo

Pomocna odpowiedź

Witam, 

Chcę zrobić własny pilot IR do sterowania urządzeniem. Będzie on miał 4 przyciski. Chciałbym również wprowadzić kontroler (Attiny2313A) w tryb power down w celu oszczędzania energii.

Mam jednak problem z wybudzeniem kontrolera, bo wiem że wybudzić go można podając stan niski na pin INT0. Nie chcę jednak aby określony przycisk go wybudzał, a dowolny przycisk.

Jak mogę w najprostszy sposób podłączyć przyciski, tak aby każdy mógł wybudzić AVR, ale żeby nie wpływały na siebie nawzajem? 

Pozdrawiam.

Edytowano przez miccaldo
Link do komentarza
Share on other sites

Możesz połączyć przyciski z bramkami OR. Np 74HC32 pobiera prąd 40 uA czyli nie wiele różni się od attiny w trybie power down. Układ ten ma 4 sztuki bramek po 2 wejścia, ale znajdziesz też inne opcje (3,4,8 wejść). Jak chcesz więcej wejść to łączysz sobie w drzewko takie bramki (alternatywa alternatywy to wciąż alternatywa).

Edytowano przez Gieneq
  • Pomogłeś! 1
Link do komentarza
Share on other sites

21 godzin temu, miccaldo napisał:

Mam jednak problem z wybudzeniem kontrolera, bo wiem że wybudzić go można podając stan niski na pin INT0.

Nie tylko "low level interrupt on INT0" może wybudzić z trybu Power-down. Zgodnie z tabelką 7-1 dokumentacji jak i informacją w punkcie 7.1.2 na stronie 35 do wybudzenia można też użyć Pin Change Interrupt. Przerwanie to, odpowiednio skonfigurowane, może wybudzić mikrokontroler przy pomocy zmiany stanu na dowolnych pinach PCINT bez konieczności używania jakichkolwiek dodatkowych elementów zewnętrznych.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie wszystkie AVRy mają pin change interrupt. Najłatwiej jak tylko się da, aby na różnych pinach mieć przerwanie INT0 to połączyć je wszystkie diodami schotky do INT0 anodami a na pinie INT0 dać wewnętrzny pullup. Podczas wystąpienia przerwania można sprawdzić który pin wywołał przerwanie. Po wybudzeniu z power-down dobrze jest też dać delaya na kilka ms żeby ustabilizować zasilanie peryferiów bo potrafią świrować po wybudzeniu np. USART. Dobrym pomysłem jest też zastosować filtry RC na przyciskach aby zniwelować drgania styków lub po wejściu do przerwania odczekać aż przestaną drgać ponieważ drgające styki mogą wywołać kilka błędnych przerwań.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.