Порты микроконтроллера с открытым стоком


9

Я хочу понять концепцию портов с открытым стоком, таких как порт P0 микроконтроллера 8051. Зачем нам подключать подтягивающие резисторы к порту P0?

У меня есть базовые знания о МОП-транзисторах и других электронных устройствах.


Хорошо, так что я понимаю, что он в основном работает как любой другой порт, но мы должны подать питание через какой-то внешний источник. Я прав ?
abkds

Ответы:


13

Не обращая внимания на тонкости работы мосфейтов. Выход действует как переключатель на землю. Он не может самостоятельно выдавать сигнал высокого уровня (+ 5 В). Подъемный резистор используется для того, чтобы при разомкнутом переключателе выходной сигнал был высоким. Когда переключатель замкнут, выходной сигнал будет низким (0 В)

введите описание изображения здесь


9

Есть два распространенных применения с открытым стоком (или с открытым коллектором, в случае BJT):

1) Подключение более одного выхода к одной линии. Это называется проводной ИЛИ. Например, у вас может быть нормально высокий контакт сброса на устройстве, который сбрасывается как с контакта микроконтроллера, так и с другого источника, скажем, кнопки. Штырь сброса имеет высокое сопротивление с помощью подтягивающего резистора. Микроконтроллер настроен как выход с открытым стоком. Кнопка нажимается на землю при нажатии. Если микроконтроллер установит выходной сигнал на 0 или нажмет кнопку, устройство будет сброшено.

Обратите внимание, что когда микроконтроллер устанавливает свой выходной вывод на 1, этот вывод фактически отсоединяется от линии. Он не управляет линией ("источником") с любым напряжением, поэтому, когда кнопка нажимает на линию на землю, короткого замыкания не происходит.

Поскольку конфигурация проводного ИЛИ очень полезна, именно поэтому выводы, такие как сброс на микроконтроллере, линии прерывания, очистка и включение линий на устройствах, таких как триггеры, все имеют «активный низкий уровень» - это означает, что они обычно привязаны к высокому уровню (снова через подтягивающий резистор), и любое из нескольких устройств, сконфигурированных как открытый сток, может снизить их. Такие входы обычно обозначаются как активный-низкий либо с полосой в верхней части имени сигнала, либо с лидирующей! (! CLR) или завершающий знак # (CLR #).

2) Управляющие устройства подключены к различным напряжениям питания. Скажем, у вас есть реле, которое требует 20 мА, но напряжение 5 вольт. Но ваш выход микроконтроллера может приводить контакты только в напряжение питания (VCC) 3.3В. С выходом с открытым стоком вы можете подключить одну сторону реле к 5 В, а другую - к выходному контакту микроконтроллера. Когда выход микроконтроллера в 1 равен 1, ничего не происходит (опять же, действует как разъединенный вывод). Когда он установлен в 0, это заземляет нижнюю сторону реле, замыкая цепь и управляя реле. В таком случае важно поместить «обратный» диод поперек катушки реле, чтобы предотвратить повреждение микроконтроллера при обесточивании устройства.

Для драйверов вывода, таких как ULN2803 (транзисторная матрица Дарлингтона), вы можете управлять нагрузками, подключенными к напряжению до 50 В, и управлять ими с помощью логически совместимого входа.


a microcontroller can often sink more current (drive to ground) than it can source (drive to the VCC of the microcontroller)Это уже не так с современным КМОП-микроконтроллером
m.Alin

1
Ваш второй вариант использования редко применяется к микроконтроллерам: в большинстве случаев их выводы ввода-вывода не могут выдерживать напряжение вне интервала заземления (хотя некоторые микросхемы низкого напряжения утверждают, что они допускают 5 В). Исключением был (есть ??) вывод RA4 на некоторых микросхемах UC. Но микросхемы драйверов стиля 2003/2803 являются отличным примером вашего второго варианта использования.
Воутер ван Оойен

Между MSP430, Atmel AVR и Pic 16/18 я еще не видел современный микроконтроллер, который не может поглощать или потреблять одинаковое количество тока.
Прохожий

m.Alin, Wouter_van_Ooijen, Passerby - спасибо за ваши комментарии, я отредактировал свой ответ.
tcrosley

2

Выход с открытым стоком - это просто выключатель, подключенный к 0 В. Чтобы пропустить ток через него, вам нужно подать ток в него, и это можно сделать с помощью подтягивающего резистора. Если вы не пропустите ток на вывод, вы не сможете увидеть напряжение: -

введите описание изображения здесь

Вот два устройства, использующих один и тот же выход с открытым стоком - обратите внимание на подтягивающий резистор до + 5В. Фактически, эта схема использует «открытый сток» для выполнения логики - если любой из шлюзов NAND «активирован» с 1,1, они понижают шину до 0 В. Таким образом, логика доставляется в автобус

ОБРАТНЫЙ АВТОБУС = AB + CD

МОП-транзисторы обычно используются в качестве устройств с открытым стоком, хотя обычные BJT также могут выполнять эту функцию. Выход с открытым стоком - это упрощение обычного выхода CMOS - он быстро включается на землю, но при обратном пути к + Logic он будет медленнее из-за времени зарядки паразитных конденсаторов через подтягивающий резистор.

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


0

1) Чтобы упростить первую точку в ответе tcrosley, преимущество отсутствия встроенного подтягивающего резистора внутри выхода заключается в возможности разделить этот самый подтягивающий резистор между многими выходами. Затем выходы подключаются параллельно и все подключаются к общему резистору и к земле.

2) Точка «ниже» резистора (на схеме) - это место, где объединенный выход собирается другими частями схемы. (Конечно, все могло бы быть наоборот с точки зрения земли и снабжения.)

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


Я разобрал твою стену текста в пронумерованные абзацы. Это облегчает понимание при чтении и комментировании определенных частей или утверждений, которые вы сделали. Обратите внимание, что абзацы начинаются с изменения контекста в вашем ответе.
Sparky256
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.