GPIO: Dlaczego należy podłączyć przycisk do uziemienia zamiast + 3.3 V?


14

W większości przykładów, w których widziałem okablowanie przycisków do wejść GPIO, przycisk jest podłączony tak, że po zamknięciu obwód między pinem a masą jest zakończony, wytwarzając niski poziom wejścia na pin. Rezystor podciągający służy do ustawienia domyślnej wartości wejściowej na wysoką. Kod na Pi może następnie wykryć niski poziom po naciśnięciu przycisku.

Podłączyłem przyciski do + 3.3v, więc sygnał jest wysoki, ponieważ wydaje się to mieć większy sens i sprawia, że ​​kod jest bardziej logiczny, ale musi być powód, dla którego większość ludzi woli podłączyć się do uziemienia. Jakie są zalety?


Uwaga: Kiedy mówię „rezystor podwyższający”, miałem na myśli fizyczny zewnętrzny rezystor lub wewnętrzny rezystor podwyższający skonfigurowany w kodzie.
howard10

Odpowiedzi:


19

Jednym z głównych powodów, dla których faworyzowane jest podłączanie przycisków i logiki do GND (a następnie kopiowanie ich w Internecie), wynika z optymalizacji zasilania.

  • Pociągnięcie szpilki LOW z rezystorem do GND kosztuje 0 watów.
  • Pociągnięcie szpilki WYSOKA z rezystorem do + Vcc kosztuje moc.

W skomplikowanych obwodach lub obwodach opartych na bateriach ta moc jest bardzo cenna.

Inne powody to niskie generowanie pól elektromagnetycznych. W urządzeniach bezprzewodowych wysoki poziom logiki spowoduje niepotrzebne przesłuchy w bardzo wrażliwych odbiornikach RF. Na takich transiwerach znajduje się płaszczyzna GND używana do filtrowania szumów i do tego służy cała logika. Procesor używa następnie płaszczyzny GND do filtrowania dźwięków przełączania.


3
W jaki sposób ciągnięcie w górę lub w dół rezystorem kosztuje jakąkolwiek moc? Prąd płynie do bardzo wysokiej impedancji wejściowej na Pi, co ma zamiar zredukować każdy prąd do sub-mikroAmps, czyli mikroWatów mocy.
Stefan

OK, ale powiedz mi, czy się mylę. ciągnięcie szpilki w dół, co jest 0v = 0wattsużyteczne, ale ciągnięcie szpilki w górę >0watts- każdy rodzaj, micro, milli, nano, nie ma znaczenia. Jak wspomniano, na mocy baterii pomaga każdy nano wat. Ale jak już tutaj odpowiedziano ... na USB to nic nie znaczy. Czy się mylę?
Piotr Kula,

1
Niekoniecznie prawda. Wejścia cyfrowe mają wysoką impedancję do uziemienia - to prawda. Ale nie są to tylko rezystory. Są bramkami wejściowymi, zwykle do FET, a bramki te nie są idealne. Mają prądy upływowe, a prądy upływowe mogą być w obu kierunkach, do wewnątrz lub na zewnątrz. W związku z tym pulldown może zużywać mikrowat lub dwa, tak samo jak pullup.
Stefan

Jeśli musisz zaprojektować urządzenie wbudowane, które będzie działało na bateriach 2AA, a klient wymaga, aby działało przez co najmniej 12 miesięcy. I musisz pociągnąć w dół / w górę GPIO. Którego byś użył, aby zaoszczędzić najwięcej energii. (Mówimy tutaj o mikro zarządzaniu)
Piotr Kula,

4
Dla tego, co jest warte, zrobiłem kilka pomiarów na tym - i pulldown wygrywa (pod względem zużycia energii), ale tylko po prostu. 10k pullup do 3.3V = 9fW (tak femtowatts) - 10k pulldown do ziemi = 5fW. Z pewnością nie oznacza to nawet oszczędności terytorium baterii.
Stefan

10

Istnieją złożone historyczne powody, dla których inżynierowie elektryczni zazwyczaj podnosili wejścia za pomocą rezystorów i używali przełączników do ich uziemienia.

Jednak te powody nie są szczególnie istotne dla hobby korzystania z Raspberry Pi. Używaj tego, co ma dla ciebie sens.

Jeśli tworzysz produkt komercyjny lub chcesz, aby Twój projekt był nieco lepszy, wybierz podciągnięcia z przełącznikiem uziemienia z następujących praktycznych powodów:

  • Długi przewód uziemiający stwarza mniejsze ryzyko promieniowania EMI / EMC niż przewód podłączony do zasilania
  • Uziemienie czegoś i znalezienie punktu uziemienia, z którym można się połączyć, jest łatwiejsze niż linia energetyczna
  • Jeśli przełącznik lub okablowanie, zwykle umieszczone w pewnej odległości od obwodu, ulegnie uszkodzeniu i zewrze przewód lub wewnętrzne części przełącznika z obudową lub użytkownikiem, nie wyrządzi to żadnej szkody - wszystko dzieje się na ziemi

2

Bezwzględnie nie ma potrzeby stosowania rezystora podciągającego, BMC GPIO ma wewnętrzne rezystory podciągające, które są aktywowane po zaprogramowaniu jako wejście, chociaż nie szkodzi.

Złą praktyką jest podłączanie pinu GPIO bezpośrednio do 3V3 lub GND. GPIO jest dwukierunkowy, a zaprogramowanie go jako wejścia nie spowoduje żadnych problemów. Z drugiej strony, jeśli zaprogramowane jako wyjście, spowoduje pobór nadmiernego prądu.

Dobra (bezpieczna) konstrukcja wykorzystałaby szeregowy rezystor (1 kΩ) szeregowo z przyciskiem do ograniczenia prądu. Z powodów podanych przez Adama Davisa lepiej jest podłączyć przycisk do uziemienia i zlokalizować rezystor ochronny blisko styku GPIO.


Jedynym problemem jest to, że podczas faz rozruchu 1-3 piny te są pływające (przejście z GPU do procesora), a następnie na fazie 4 podczas rozruchu jądra systemu Linux, kody PIN są ustawione na prawidłowy stan. Może to powodować poważne problemy z bramkami oczekującymi na logikę. Dlatego wskazane jest, aby i tak je ściągnąć, aby pływający okres podczas rozruchu nie spowodował, że twoje obwody staną się mentalne!
Piotr Kula,

1

Nie sądzę, żeby istniał powód, by preferować jedno na drugim na RPi. Większość ludzi prawdopodobnie kopiuje lub przenosi obwody, które widziały gdzie indziej.

Podczas podłączania obwodu (za pomocą przewodów lub płytki drukowanej) dobrze jest wybrać, który z nich jest wygodniejszy i przetłumaczyć go na właściwe znaczenie w oprogramowaniu.


0

W dawnych czasach TTL ciągnięcie szpilki na niskim poziomie wymagało znacznie więcej prądu niż jej wysokiego. Tak więc rezystor podciągający może mieć wyższy opór (a zatem mniej marnowania energii) niż rezystor rozwijany. To nie ma znaczenia w przypadku współczesnej pamięci CMOS, ale stare nawyki umierają.


-1

Podłączenie szpilki do ziemi za pomocą wewnętrznego rezystora podciągającego oznacza, że ​​zużywasz mniej części. Wszystko czego potrzebujesz to przycisk; nie potrzebuję zewnętrznego rezystora, aby ograniczyć prąd.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.