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ść.