Pull up

Относится к подтягивающим резисторам, которые обычно используются для «слабого» подтягивания сигнальной линии к высокому уровню. Используйте этот тег для обсуждения подтягиваний.


Подтягивающий резистор используется, чтобы контакт не «плавал» с неопределенным напряжением, например:

Подтягивающий резистор

В этом примере вывод Arduino поддерживается резистором на уровне HIGH. Однако, если переключатель замкнут, контакт становится LOW.

, используется резистор высокого номинала (например, 10 кОм или более, возможно, 100 кОм или даже 1 МОм). Когда переключатель замкнут, линия 5 В будет подключена к земле через подтягивающий резистор, поэтому вы не хотите, чтобы протекал слишком большой ток. В приведенном выше примере текущий будет:

I = V / R
I = 5 / 10000
I = 0.5 mA

Открытый сток

Подтягивающие резисторы также используются в конструкциях с открытым стоком, например, в I2C. В таких конструкциях линии данных или тактовых импульсов «подтягиваются» подтягивающим резистором, при этом к шине подключено несколько устройств. Когда один из них хочет отправить 0-бит, они переводят линию в низкий уровень, перекрывая подтягивающий резистор. Чтобы отправить 1 бит, они позволяют подтягивающему резистору снова перевести линию в высокий уровень.

Таким образом, вы избегаете "борьбы" нескольких устройств за шину, при этом некоторые из них пытаются установить высокий уровень, а некоторые - низкий уровень.

В случае I2C обычно используется резистор 4,7 кОм для SDA (последовательные данные) и SCL (последовательные часы). Таким образом, устройства I2C должны потреблять только 10,6 мА (5/4700), что обычно находится в пределах их конструктивных возможностей.


Внутреннее подтягивание

В платы AVR Arduino встроены функции подтягивания. Это позволяет встроить подтягивающий элемент в цепь (например, в переключатель) без необходимости подключать резистор.

Внутреннее сопротивление указано для Atmega328P (используется в Uno) и составляет от 30 кОм до 50 кОм.

Вы можете активировать подтягивание в коде следующим образом:

pinMode (3, INPUT_PULLUP);

Ссылки

  • I2C — Википедия
  • Открытый коллектор — Википедия
  • Справочник по Arduino — pinMode

Вопросы, связанные с [pull up]:

  • 1