Расчёт подтягивающего резистора (I²C и открытый сток)

Введите напряжение питания, выходное напряжение низкого уровня и ток самого слабого драйвера, допустимое время нарастания и ёмкость шины. Калькулятор покажет диапазон подходящих подтягивающих резисторов и проверит выбранный номинал.

V
V
mA
ns
pF
kΩ
Минимальный резистор967 Ω
Максимальный резистор3 541 Ω
Ваш резистор
В допустимом диапазоне
Ток стока с вашим резистором
1,318 mA
Время нарастания с вашим резистором (30–70 %)
186,4 ns
Постоянная времени RC
220 ns

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Введите напряжение питания VDD и максимальное напряжение низкого уровня VOL самого слабого устройства на шине.
  2. Введите ток стока IOL, который это устройство гарантирует при VOL.
  3. Введите максимальное время нарастания и полную ёмкость шины (выводы, дорожки, кабель).
  4. При желании введите выбранный резистор в кОм, чтобы его проверить.

Формулы

  • Минимум: R_min = (VDD − VOL) / IOL.
  • Максимум: R_max = tr / (0,8473 × Cb), где 0,8473 = ln(0,7 / 0,3) — время нарастания RC-фронта от 30 % до 70 % VDD в единицах RC.
  • С вашим резистором: ток стока (VDD − VOL) / R, время нарастания 0,8473 × R × Cb, постоянная времени R × Cb.

Если R_min больше R_max, ни один резистор не выполнит оба условия: укоротите шину, уберите устройства, выберите более медленный режим, активную подтяжку или буфер шины.

Пример расчёта

Шина 3,3 В в режиме Fast-mode, VOL = 0,4 В, IOL = 3 мА, tr = 300 нс, Cb = 100 пФ:

  • R_min = 2,9 ÷ 0,003 = 967 Ом;
  • R_max = 300 × 10⁻⁹ ÷ (0,8473 × 100 × 10⁻¹²) = 3 541 Ом.

Резистор 2,2 кОм в диапазоне: при низком уровне через него течёт 1,318 мА, фронт нарастает за 186,4 нс.

Советы и частые ошибки

  • Одна пара на шину. На модулях часто стоят свои подтяжки; несколько параллельно могут дать меньше R_min.
  • Измерьте ёмкость длинной шины: кабель добавляет десятки пФ на метр.
  • Меньше — быстрее, но дороже по току. Для экономии берите ближе к R_max, для скорости — ближе к R_min.

Частые вопросы

Как рассчитать минимальный подтягивающий резистор I2C?

R_min = (VDD − VOL) / IOL. Драйвер должен прижать линию до VOL или ниже, пропуская не больше IOL. При 3,3 В, VOL 0,4 В и 3 мА R_min = 2,9 ÷ 0,003 = 966,67 Ом.

Как рассчитать максимальный подтягивающий резистор?

R_max = tr / (0,8473 × Cb). Линия заряжается через R на ёмкость шины, а tr измеряют от 30 % до 70 % VDD — это ln(0,7/0,3) = 0,8473 постоянной времени. При 300 нс и 100 пФ R_max = 3 541 Ом.

Какое время нарастания и ток вводить для I2C?

Спецификация I²C задаёт максимальное время нарастания 1 000 нс для Standard-mode (100 кГц), 300 нс для Fast-mode (400 кГц) и 120 нс для Fast-mode Plus (1 МГц), ток стока 3 мА при VOL 0,4 В для Standard и Fast-mode (20 мА для Fast-mode Plus). Сверьтесь с даташитами своих микросхем.

Подходит ли расчёт для кнопки или входа GPIO?

Да. Для кнопки пределы широкие: при нажатии течёт ток VDD / R, а постоянная времени RC с ёмкостью вывода и провода задаёт, как быстро линия вернётся в единицу. Обычно ставят 4,7–10 кОм; слишком большие номиналы ловят помехи.

Ещё в разделе «Конвертеры величин»

Все инструменты раздела: Конвертеры величин ·Обновлено 6 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.