rezystory podciagajace

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!
ODPOWIEDZ
ignus

rezystory podciagajace

Post autor: ignus » 14 kwie 2005, 2:44

czy moze mi ktos objasnic zasade dzialania rezystorow podciagajacych podlaczanych do portow mikrokontrolerow ?

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 14 kwie 2005, 9:01

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 )

ODPOWIEDZ