Jak obliczyć wymaganą wartość rezystora podciągającego?

98

Istnieje wiele samouczków, w których wykorzystuje się rezystor podnoszący lub obniżający w połączeniu z przełącznikiem, aby uniknąć pływającego uziemienia, np.

http://www.arduino.cc/en/Tutorial/button

Wiele z tych projektów wykorzystuje rezystor 10K, jedynie zaznaczając, że jest to dobra wartość.

Biorąc pod uwagę szczególny obwód, jak ustalić odpowiednią wartość dla rezystora obniżającego? Czy można to obliczyć, czy najlepiej określić to eksperymentalnie?

Mark Harrison
źródło
Uważam, że ten samouczek od Sparkfun to dobre wprowadzenie do podciągania i rozkładania rezystorów. Sparkfun Podciąganie rezystorów i odpowiedzi udzielone na twoje najbardziej doskonałe opublikowane pytanie są świetne.
Richard Chambers

Odpowiedzi:

82

Szybka odpowiedź: Doświadczenie i eksperymentowanie to sposób na znalezienie właściwej wartości pullup / pulldown.

Długa odpowiedź: rezystorem podwyższającym / obniżającym jest R w obwodzie czasowym RC. Szybkość zmiany sygnału będzie zależeć od R (rezystora) i C (pojemność tego sygnału). Często trudno jest dokładnie ustalić C, ponieważ zależy to od wielu czynników, w tym od tego, jak ten ślad jest kierowany na płytce drukowanej. Ponieważ nie znasz C, nie możesz dowiedzieć się, jakie powinno być R. Tam właśnie wkracza doświadczenie i eksperymenty.

Oto kilka praktycznych zasad zgadywania przy dobrej wartości rezystora podciągania / opuszczania:

  • W większości przypadków działa od 3,3 do 10 kiloomów.
  • W przypadku obwodów wrażliwych na moc użyj wyższej wartości. 50 000 lub nawet 100 000 omów może działać w wielu aplikacjach (ale nie we wszystkich).
  • W przypadku obwodów wrażliwych na prędkość użyj niższej wartości. 1 kilooma jest dość powszechny, a wartości tak niskie jak 200 omów nie są niespotykane.
  • Czasami, podobnie jak w przypadku I2C, „standard” określa konkretną wartość do użycia. Innym razem notatki aplikacji na żetony mogą zalecać wartość.

źródło
10
200 omów dla podciągania? Wow, to dużo prądu spoczynkowego.
0x6d64,
4
@ 0x6d64 - Zakładasz, że autobus jest niski, gdy jest cicho.
Connor Wolf,
3
Texas Instruments ma bardzo dobre referencje, które wyjaśniają nie tylko sposób obliczania wartości rezystora podciągającego I2C, ale także sposób wyprowadzenia wzoru. Zobacz raport dotyczący obliczania rezystora zatrzymującego magistralę I2C na stronie ti.com/lit/an/slva689/slva689.pdf .
JamieSee
77

Użyj 10 kΩ, to dobra wartość.

Aby uzyskać więcej szczegółów, musimy spojrzeć na to, co robi pullup. Powiedzmy, że masz przycisk, który chcesz czytać za pomocą mikrokontrolera. Przycisk jest chwilowym przełącznikiem SPST (Single Pole Single Throw). Ma dwa punkty połączenia, które są albo podłączone, albo nie. Po naciśnięciu przycisku dwa punkty są połączone (przełącznik jest zamknięty). Po zwolnieniu nie są połączone (przełącznik jest otwarty). Mikrokontrolery z natury nie wykrywają połączenia ani rozłączenia. Wyczuwają napięcie. Ponieważ ten przełącznik ma tylko dwa stany, sensowne jest użycie wejścia cyfrowego, które jest przecież zaprojektowane tylko w jednym z dwóch stanów. Mikro wyczuwa, w jakim stanie jest wejście cyfrowe.

Pullup pomaga przekształcić otwarte / zamknięte połączenie przełącznika w niskie lub wysokie napięcie, które mikrokontroler może wyczuć. Jedna strona przełącznika jest podłączona do masy, a druga do wejścia cyfrowego. Po naciśnięciu przełącznika linia zostaje wymuszona nisko, ponieważ przełącznik zasadniczo powoduje zwarcie do masy. Jednak po zwolnieniu przełącznika nic nie doprowadza linii do określonego napięcia. Może po prostu pozostać na niskim poziomie, odbierać inne pobliskie sygnały przez sprzężenie pojemnościowe lub ostatecznie unosić się do określonego napięcia z powodu niewielkiego prądu upływu przez wejście cyfrowe. Zadaniem rezystora podciągającego jest zapewnienie dodatniego gwarantowanego wysokiego poziomu, gdy przełącznik jest otwarty, ale nadal pozwala on bezpiecznemu zwarciu linii do masy po zamknięciu.

Istnieją dwa główne konkurujące wymagania dotyczące wielkości rezystora podciągającego. Musi być wystarczająco niski, aby solidnie ciągnąć linię wysoko, ale wystarczająco wysoki, aby nie powodować przepływu zbyt dużego prądu, gdy przełącznik jest zamknięty. Oba są oczywiście subiektywne, a ich względne znaczenie zależy od sytuacji. Ogólnie rzecz biorąc, podciąganie jest wystarczająco niskie, aby upewnić się, że linia jest wysoka, gdy przełącznik jest otwarty, biorąc pod uwagę wszystkie rzeczy, które mogłyby sprawić, że linia byłaby niska.

Spójrzmy na to, czego potrzeba, aby podciągnąć linię. Patrząc tylko na zapotrzebowanie prądu stałego, odkrywa się prąd upływowy cyfrowej linii wejściowej. Idealne wejście cyfrowe ma nieskończoną impedancję. Rzeczywiste nie, oczywiście, a stopień, w jakim nie są idealne, jest zwykle wyrażany jako maksymalny prąd upływowy, który może wyjść lub wpiąć się w kołek. Załóżmy, że twoja mikroprocesor jest określony dla maksymalnego upływu 1 µA na jego pinach wejściowych. Ponieważ pullup musi utrzymywać wysoką linię, najgorszym przypadkiem jest założenie, że pin wygląda jak ujście prądu 1 µA do ziemi. Jeśli na przykład użyjesz podciągania 1 MΩ, wówczas 1 µA spowoduje 1 wolt na oporniku 1 MΩ. Powiedzmy, że jest to system 5 V, więc oznacza to, że pin ma gwarancję tylko do 4 V. Teraz musisz spojrzeć na specyfikację wejścia cyfrowego i zobaczyć, jakie jest minimalne zapotrzebowanie na napięcie dla wysokiego poziomu logiki. Może to wynosić 80% Vdd dla niektórych mikrometrów, co w tym przypadku wynosiłoby 4 V. Dlatego podciągnięcie 1 MΩ znajduje się na marginesie. Potrzebujesz co najmniej trochę mniej niż to, aby zagwarantować prawidłowe zachowanie ze względu na względy DC.

Istnieją jednak inne względy, które są trudniejsze do oszacowania. Każdy węzeł ma pewne sprzężenie pojemnościowe ze wszystkimi innymi węzłami, chociaż wielkość sprzężenia spada z odległością, tak że istotne są tylko pobliskie węzły. Jeśli te inne węzły mają na sobie sygnały, sygnały te mogą się łączyć z wejściem cyfrowym. Podciągnięcie niższej wartości powoduje, że linia ma niższą impedancję, co zmniejsza ilość odbieranego sygnału błądzącego. Daje to również wyższy minimalny gwarantowany poziom prądu stałego względem prądu upływu, więc jest więcej miejsca między tym poziomem prądu stałego a miejscem, w którym wejście cyfrowe może interpretować wynik jako niski poziom logiczny zamiast zamierzonego poziomu wysoki. Ile wystarczy? Oczywiście podciąganie 1 MΩ w tym przykładzie nie jest wystarczające (zbyt wysoka rezystancja). Prawie niemożliwe jest odgadnięcie sprzężenia z pobliskimi sygnałami, ale chciałbym mieć margines co najmniej rzędu wielkości powyżej minimalnego przypadku DC. Oznacza to, że chcę podciągnąć co najmniej 100 kΩ lub mniej, chociaż jeśli w pobliżu jest dużo hałasu, chciałbym, aby był niższy.

Jest jeszcze jedna kwestia, która obniża pullup, czyli czas narastania. Linia będzie miała pewną pojemność błądzącą do ziemi, więc gwałtownie spadnie w kierunku wartości zasilania, zamiast natychmiast się tam udać. Powiedzmy, że cała pojemność błądząca sumuje się do 20 pF. To razy podciągnięcie 100 kΩ wynosi 2 µs. Dotarcie do 95% ustalonej wartości zajmuje 3 stałe czasowe, w tym przypadku 6 µs. Nie ma to żadnego wpływu na ludzki czas, więc nie ma znaczenia w tym przykładzie, ale gdyby była to linia magistrali cyfrowej, którą chciałbyś uruchomić z prędkością 200 kHz, nie działałaby.

Teraz spójrzmy na inne konkurencyjne rozważania, czyli prąd zmarnowany po naciśnięciu przełącznika. Jeśli w tym urządzeniu brakuje prądu lub w inny sposób obsługuje znaczną moc, kilka mA nie będzie miało znaczenia. Przy napięciu 5 V potrzeba 5 kΩ, aby pobrać 1 mA. To w rzeczywistości „dużo” prądu w niektórych przypadkach i znacznie więcej niż jest to wymagane z innych względów. Jeśli jest to urządzenie zasilane bateryjnie, a przełącznik może być włączony przez znaczną część czasu, to każdy µA może mieć znaczenie i musisz o tym bardzo ostrożnie pomyśleć. W niektórych przypadkach możesz okresowo próbować przełącznik i włączać pullup tylko na krótki czas wokół próbki, aby zminimalizować bieżące pobieranie.

Poza szczególnymi względami, takimi jak zasilanie bateryjne, impedancja 100 kΩ jest wystarczająco wysoka, aby denerwować się zbieraniem hałasu. 1 mA prądu zmarnowanego przy włączonym przełączniku wydaje się niepotrzebnie duży. A więc 500 µA, co oznacza, że ​​impedancja 10 kΩ jest prawie właściwa.

Jak powiedziałem, użyj 10 kΩ. To dobra wartość.

Olin Lathrop
źródło
1
Dodatkowym wymaganiem jest, aby niektóre przełączniki, na przykład zwykłe przełączniki typu „taktowego”, były określone tylko dla bardzo niskiego prądu, na przykład 1 mA. Należy pamiętać, że 10k (przy 5 V lub niższej) spełnia to wymaganie, ale należy pamiętać, że przy uwzględnieniu niższych wartości rezystorów.
Wouter van Ooijen
1
@Wouter - moje ulubione przełączniki taktowe mają nie tylko maksimum 50 mA (dla mnie 1 mA wydaje się niskie), ale także minimum. Aby utrzymać styki w czystości, umieszczam kondensator równolegle do przełącznika, przy założeniu, że szczytowy prąd zwarciowy podczas przełączania utrzymuje styki w czystości. Pomimo tego, że żywotność wynosi zaledwie 100 000 cykli jest określona w testach, nie mieliśmy problemów z ich użyciem do 200 000 cykli.
stevenvh
@stevenvh Czy możesz wyjaśnić więcej na temat kondensatora równolegle z przełącznikiem? Jak to możliwe, że wysokie początkowe natężenie prądu zwarciowego utrzymuje styki w czystości?
abdullah kahraman
Sytuacja, w której widać nadmierne sprzężenie pojemnościowe wpływające na wartość rezystora podciągającego. Wydaje się szalony, ale tak nie jest. Mam nieznośny wynik trójstanowy, który czytam za pomocą ADC. Jedna płyta, podciąganie 220k jest wystarczające, aby ADC mógł odczytać wszystkie trzy stany. Na innej (ściślej umieszczonej planszy) potrzebuję podciągnięcia 100k. Myślałem, że przez cały ranek ścigam szalone pigułki.
Leroy105
23

Po pierwsze, tego rodzaju samouczki są bezużyteczne, nie nauczy Cię elektroniki. Musisz nauczyć się rysować schemat , a następnie pojawi się okablowanie.
Tak więc, nie mając schematu, musiałem sam wyprowadzić go ze schematu elektrycznego. OK, to nie było takie trudne, ale kiedy narysujesz schemat, zauważysz, że czegoś brakuje: z czym łączy się przełącznik taktowy? Musisz to wiedzieć, aby odpowiedzieć na twoje pytanie. Zakładam, że jest to wejście cyfrowe mikrokontrolera, ale nie można tego wiedzieć.

Istnieją dwie sytuacje: przełącznik taktowy otwarty i przełącznik zamknięty.

Ω5V10kΩμ

μμμ×Ω× VDD

Co jeśli wybraliśmy inną wartość rezystora? Niższa wartość oznaczałaby mniejszy spadek napięcia, a napięcie wejściowe byłoby nawet wyższe niż 4,99 V. Ale wtedy rezystor przepłynie więcej prądu, gdy przełącznik jest zamknięty, a tego nie chcesz.
Wyższa wartość rezystora byłaby OK, gdy przełącznik jest zamknięty, ponieważ byłby mniejszy prąd, ale napięcie wejściowe na mikrokontrolerze będzie niższe niż 4,99 V. Mamy tu trochę miejsca, więc nieco wyższa wartość może być OK.

wniosek

  1. Ω
  2. Naucz się rysować schematy i czytać arkusze danych
stevenvh
źródło
7
Nie zgodziłbym się z tym, że jest to bezużyteczne, w rzeczywistości schematy połączeń wykonane za pomocą Fritzing są prawdopodobnie teraz powszechniejsze niż schematy, jeśli chodzi o Arduino. Publiczność należy wziąć pod uwagę.
Dave Newton