Es gibt einen korrekten Wertebereich, es ist jedoch schwierig, diesen Bereich genau zu beschreiben. Im Allgemeinen funktioniert 10k.
Digitale Ausgänge können Strom erzeugen oder ableiten. Wenn Ihr Ausgang 5 mA sinken könnte und der Ausgang über einen Pull-up auf 5 V angeschlossen und dann auf 0 gesetzt wurde, benötigen Sie einen Widerstand von mindestens 1k. Wenn Sie weniger als 1k verwenden, kann der Ausgang nicht genug Strom aufnehmen, um den Pin bis auf 0V herunterzuziehen. Wenn Sie einen größeren Wert wie 10k verwenden, muss der Pin nur 0,5 mA einspeisen, was viel weniger ist als seine Bewertung.
Digitaleingänge haben einen bestimmten Ableitstrom. Dies entspricht in etwa der Strommenge, die benötigt wird, um eine 0 oder 1 an einem Eingang zu "halten". Wenn Ihr Pull-up-Widerstand zu groß ist, kann er den Leckstrom nicht überwinden. Wenn es den Ableitstrom nur knapp überwindet, kann jedes Rauschen im Stromkreis ausreichen, um den Eingang zu ändern.
Bei Verwendung von digitalen Ausgängen, die Strom aufnehmen und abgeben können ("Totempfahltreiber", "Gegentakttreiber"), sind Sie möglicherweise versucht, keine Pull-up- oder Pull-down-Widerstände zu verwenden. Es ist jedoch sehr wichtig, dass CMOS-Eingänge nicht schweben dürfen, da sie sonst einen übermäßigen Strom ziehen können ... und es ist sehr leicht zu vergessen, dass bidirektionale MCU-Pins normalerweise als Eingänge dienen!
I2C und ähnliche Protokolle verwenden "Open Drain" - (oder "Open Collector" -) Ausgänge. Anstatt Ausgänge zu haben, die nach oben und unten ziehen können, können Open-Drain-Ausgänge nur nach unten ziehen. Deshalb wird der externe Pull-Up-Widerstand benötigt. Der Bereich der Pull-up-Widerstände unterliegt jetzt zusätzlichen Einschränkungen. Der Pull-Up-Wert bildet mit der Buskapazität eine RC-Schaltung. Ein zu kleiner Wert verhindert erneut, dass die Ausgangstreiber genug Strom aufnehmen, um den Pin vollständig auf 0 zu ziehen. Ein zu großer Wert dauert jedoch zu lange, um die Buskapazität aufzuladen.
Wenn es Rüst- / Haltezeiten gibt, gegen die Sie nicht verstoßen dürfen, können Sie anhand dieser Zeiten eine RC-Zeitkonstante bestimmen. Die Buskapazität wird größtenteils durch das PCB-Layout bestimmt, sodass Sie einen R-Wert auswählen können, der mit dem C kombiniert wird, um einen Wert zu erhalten, der bequem innerhalb der Einricht- / Haltezeit für Ihren Digitaleingang liegt.