Устранение резисторов при выводе и выводе на входные или выходные выводы MCU

Требуются ли резисторы вытягивания /уменьшения (внутренние или внешние) только для контактов MCU INPUT? Напротив, контакт MCU, сконфигурированный как OUTPUT, «знает, на каком уровне он находится», потому что он управляет - «плавающий» вывод MCU OUTPUT, привязанный к некоторому входу другой схемы, не имеет смысла, поскольку состояние вывода MCU может быть только высоким или низким ... у меня это право? Теперь, при загрузке или сбое MCU, может оказаться выгодным, чтобы привязка к линии ввода «MCU output to IC input» была привязана к этому каналу, чтобы гарантировать, что вход в какой-либо IC никогда не плавает.

Возможно, я просто ответил на свой вопрос здесь ... резисторы pull-up /down могут использоваться как на входных, так и на выходных выводах, в зависимости от приложения?

15 голосов | спросил The_Ders 19 FebruaryEurope/MoscowbTue, 19 Feb 2013 21:01:12 +0400000000pmTue, 19 Feb 2013 21:01:12 +040013 2013, 21:01:12

5 ответов


19

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

Но большинство контактов mcu - GPIO, а иногда при запуске определяются как входы вместо выходов. Как вы сказали, иногда вы не хотите, чтобы входной штырь IC включался при запуске, особенно как контакт сброса, который вы обычно будете приводить в действие с вашим GPIO вашего микроконтроллера.

Это когда вы используете Слабый Pull-up или Pull-down на линии. Поскольку они слабы, и вы выбираете состояние по умолчанию, они не создают помех для вашей схемы (если входной сигнал всегда должен быть низким, а затем вытягивается высоко, вы выбираете слабое выключение и наоборот), но они потребляют немного тока. Вот почему вы выбираете резистор слабый (более высокий, более слабый) для работы.

Другая нормальная настройка вывода, использующая подтягивания (или выпадающие, более редкие), - это Open Drain или Open Collector . Они только приводят к низкому соединению или освобождают линию, оставляя ее плавающей. Подтягивания используются, чтобы привести линию в высокое логическое состояние.

ответил Passerby 20 FebruaryEurope/MoscowbWed, 20 Feb 2013 01:01:05 +0400000000amWed, 20 Feb 2013 01:01:05 +040013 2013, 01:01:05
7

У вас есть это право; обычно вам не нужны подтягивания на выходах, но они могут быть полезны для обеспечения безопасности во время загрузки и т. д.

Еще одна причина использования подтягивания на выходе: если несколько выходов из нескольких MPU подключены друг к другу, вы действительно не хотите, чтобы один VCC VW и другой привод 0V на такой же провод! Таким образом, вы либо набираете 0V на выходе, либо отключите выход (возможно, настроив его как вход). Когда все выходы отключены, провод подтягивается до «1» (Vcc). Это называется «проводным И» сигналом. (Вы можете сделать то же самое вождение «1» или выключить, с выпадающим R, тогда он называется проводным OR).

Этот шаблон имеет несколько применений, в том числе позволяет любому одному MPU сигнализировать об ошибке или включать светодиод или позволять им по очереди передавать сообщения друг другу по одному проводу.

ответил Brian Drummond 19 FebruaryEurope/MoscowbTue, 19 Feb 2013 21:13:22 +0400000000pmTue, 19 Feb 2013 21:13:22 +040013 2013, 21:13:22
3

Как вы заявили, использование резисторов pullup /pulldown на выводах, которые, как ожидается, будут выходными штырьками, может быть там, чтобы гарантировать входное состояние.

Это делается для уменьшения прошивки /отказа MCU, но будет работать только для защиты от состояния Hi-импеданса (в основном, контакт сконфигурирован как вход случайно).

В большинстве MCU я знаком с выводами IO по умолчанию в состоянии ввода с высоким импедансом при загрузке (но без гарантии, и у меня нет опыта в любом месте рядом со всеми семействами MCU), что означает, что может потребоваться некоторое время, прежде чем код будет инициализируется состояние вывода.

Иногда это не имеет значения, иногда это происходит.

ответил helloworld922 19 FebruaryEurope/MoscowbTue, 19 Feb 2013 21:15:49 +0400000000pmTue, 19 Feb 2013 21:15:49 +040013 2013, 21:15:49
2

Ответ: это зависит от семейства микроконтроллеров, и то, что по умолчанию является положением Power On Reset. Если микроконтроллер может быть сконфигурирован только для «выхода» или «ввода» на штырь, это обычно означает, что для вывода используется драйвер тотема-полюса, что означает, что это, по сути, выход CMOS-затвора, и в этом случае выход всегда приводится к рельсу, поэтому нет причин пассивно влиять на него. Единственный случай, когда имеет смысл использовать pull-ups /pull-downs на выходе, когда он настроен как Open Collector /Open Drain топология. Гораздо чаще встречаются внутренние параметры pull-up /pull-down, которые применимы только тогда, когда контакт сконфигурирован как вход. Если вы можете гарантировать, что в вашей системе вход всегда управляется чем-то, это отнимает немного энергии.

ответил vicatcu 19 FebruaryEurope/MoscowbTue, 19 Feb 2013 21:14:09 +0400000000pmTue, 19 Feb 2013 21:14:09 +040013 2013, 21:14:09
1

У вас может быть pin, который является выходным частью времени , например, для I2C.

ответил pjc50 20 FebruaryEurope/MoscowbWed, 20 Feb 2013 00:55:20 +0400000000amWed, 20 Feb 2013 00:55:20 +040013 2013, 00:55:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132