Існує правильний діапазон значень, однак важко точно описати, що таке діапазон. Взагалі працює 10 к.
Цифрові виходи мають задану здатність джерела або потоку струму. Якщо ваш вихід може затопити 5 мА, а вихід підключений через підтягувач до 5 В, а потім встановлений на 0, вам знадобиться мінімум 1 к опір. Якщо ви використовуєте менше 1 к, вихід не зможе занурити достатньо струму, щоб витягнути штифт аж до 0В. Якщо ви використовуєте більшу величину, наприклад 10 к, тоді штифт повинен затонути лише 0,5 мА, що набагато менше, ніж його номінальний показник.
Цифрові входи мають заданий струм витоку. Це якось, як кількість струму, необхідного для "підтримки" 0 або 1 на вході. Якщо ваш підтягуючий резистор занадто великий, він не зможе подолати струм витоку. Якщо він ледве долає струм витоку, то будь-якого шуму в ланцюзі може бути достатньо для зміни входу.
Використовуючи цифрові виходи, які можуть потопати і джерело струму ("драйвер тотемного полюса", "драйвер поштовху"), ви можете спокуситись не використовувати резистори, що піднімаються. Однак дуже важливо, щоб входи CMOS не дозволяли плавати, інакше вони можуть тягнути надмірний струм ... і дуже просто забути, що двосторонні штифти MCU зазвичай виходять в якості входів!
I2C та інші подібні протоколи використовують виходи "відкритого стоку" (або "відкритого колектора"). Замість того, щоб мати виходи, які можуть тягнути вгору і вниз, а відкриті зливні виходи можуть лише тягнути вниз. Ось чому потрібен зовнішній висувний резистор. Зараз існують додаткові обмеження щодо діапазону підтягуючих резисторів; значення підтягування утворюватиме RC ланцюг з ємністю шини. Занадто мале значення ще раз не дозволить вихідним драйверам занурити достатній струм, щоб тягнути штифт аж до 0. Однак занадто велике значення займе занадто довго, щоб зарядити ємність шини.
Якщо є час налаштування / утримування, яке не дозволяється порушувати, вони допоможуть вам визначити постійну частоту RC. Ємність шини в значній мірі визначається компонуванням друкованої плати, тому ви можете вибрати значення R, яке поєднується з C, щоб забезпечити значення, зручне протягом часу установки / утримування цифрового входу.