rezystory podciagajace
-
ignus
rezystory podciagajace
czy moze mi ktos objasnic zasade dzialania rezystorow podciagajacych podlaczanych do portow mikrokontrolerow ?
możliwości są dwie:
wbudowane w kontroler rezystory pull-up i rezystory dołączane na zewnątrz kości.
jeżeli dany bit (pin) portu kontrolera pracuje jako wejscie i jest
podłączony do np. przycisku zwierającego go do masy (wymuszanie niskiego stanu logicznego) to gdy przycisk nie jest naciśnięty na końcówce
(pinie) jest stan nieokreślony i w zależności od zakłóceń i innych czynników stan wejścia może być interpretowany przez kontroler zupełnie przypadkowo. dlatego daje się pomiędzy pin portu a Vcc rezystor (kilka kilo), który wymusi wysoki stan logiczny. z drugiej strony, zwarcie dolnej końcówki takiego R do masy (przyciskiem) wywoła przepływ prądu
rzędu miliamper, to nie jest znaczące (ani szkodliwe).
jeżeli nie masz miejsca na płytce - zamiast montować zewnętrzne pull-upy, możesz wykorzystać te co są w strukturze procesora. jak je uaktywnić - to jest napisane w dokumentacji konkretnej kosci.
dla AVR:
jeżeli odpowiedni bit w rejestrze DDRx (Data Direction Register) danego portu ustawisz na 0 to ten pin portu będzie pracował jako wejście.
jeżeli odpowiadający mu bit w rejestrze PORTx będzie:
0 - rezystor pull-up jest wyłączony i wejście wisi w powietrzu (wtedy podłączasz zewnętrzne /jeżeli to ma sens oczywiście/)
1 - rezystor pull-up jest aktywny i kontroler sam sobie wymusza tam wysoki stan logiczny (nie potrzeba dodawać zewn. R )
wbudowane w kontroler rezystory pull-up i rezystory dołączane na zewnątrz kości.
jeżeli dany bit (pin) portu kontrolera pracuje jako wejscie i jest
podłączony do np. przycisku zwierającego go do masy (wymuszanie niskiego stanu logicznego) to gdy przycisk nie jest naciśnięty na końcówce
(pinie) jest stan nieokreślony i w zależności od zakłóceń i innych czynników stan wejścia może być interpretowany przez kontroler zupełnie przypadkowo. dlatego daje się pomiędzy pin portu a Vcc rezystor (kilka kilo), który wymusi wysoki stan logiczny. z drugiej strony, zwarcie dolnej końcówki takiego R do masy (przyciskiem) wywoła przepływ prądu
rzędu miliamper, to nie jest znaczące (ani szkodliwe).
jeżeli nie masz miejsca na płytce - zamiast montować zewnętrzne pull-upy, możesz wykorzystać te co są w strukturze procesora. jak je uaktywnić - to jest napisane w dokumentacji konkretnej kosci.
dla AVR:
jeżeli odpowiedni bit w rejestrze DDRx (Data Direction Register) danego portu ustawisz na 0 to ten pin portu będzie pracował jako wejście.
jeżeli odpowiadający mu bit w rejestrze PORTx będzie:
0 - rezystor pull-up jest wyłączony i wejście wisi w powietrzu (wtedy podłączasz zewnętrzne /jeżeli to ma sens oczywiście/)
1 - rezystor pull-up jest aktywny i kontroler sam sobie wymusza tam wysoki stan logiczny (nie potrzeba dodawać zewn. R )