Это действительно плохая идея оставить входной контакт MCU плавающим?

28

Я слышал, что оставление контакта, плавающего на MCU, когда он сконфигурирован как вход (по сравнению с выходом по умолчанию), плохо для контакта и может в конечном итоге привести к преждевременному выходу из строя. Это правда? В моем случае, вывод из-за входящего видеосигнала колеблется где-то между 0,3В и 1,3В. Это иногда падает в ничейной зоне 0,8 В - 2,0 В при работе от 3,3 В.

Томас О
источник
1
Вы проверили таблицу данных и документацию семейства MCU? У них должны быть довольно четкие ответы, и вы можете увидеть, как эти выводы реализованы внутри.
XTL
@XTL, я просмотрел их, но не нашел ссылок на них. Они говорят, что плавающие контакты могут входить в неопределенные состояния, но не упоминают, могут ли они вызвать проблемы.
Томас О
Существует разница между плавающим цифровым входом и входом, определенным как аналоговый. Похоже, это аналоговый вход.
Мартин
@ Martin Я не могу сделать вывод аналоговым входом. У меня есть временной интервал ~ 125 нс для каждого пикселя на видео (часы инструкций 25 нс), поэтому я не могу тратить на одну наносекунду больше.
Томас О
2
Какой MCU вы используете, который по умолчанию выводит все контакты ? Это звучит как рецепт катастрофы.
Коннор Вольф

Ответы:

31

Проблема:
Оставлять вывод, настроенный как плавающий вход, опасно просто потому, что вы не можете быть уверены в его состоянии. Как вы упомянули, из-за вашей схемы ваш пин-код иногда был НИЗКИМ, иногда на ничейной земле, или иногда мог идти в ВЫСОКИЙ.

Результат: по
сути, плавающий вход обязательно вызовет нестабильную работу микросхемы или непредсказуемое поведение. Я заметил, что некоторые микросхемы замерзли, просто подвинув руку ближе к плате (на мне не было браслета ESD), или некоторые из них имели бы другое поведение при запуске каждый раз, когда плата включалась.

Почему:
Это происходит просто потому, что если на этом выводе есть внешние шумы, он будет колебаться, что приведет к отводу энергии, поскольку логика CMOS отводит питание, когда они переключают состояния.

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

IntelliChick
источник
3
Если вы используете его в качестве входного сигнала, это определенно вызовет ошибочные входные данные, но действительно ли это влияет на другие части чипа и вызывает проблемы при запуске?
эндолит
3
Если я игнорирую штифт и не использую его для каких-либо периферийных устройств, это все равно вызовет проблемы?
Томас О
@endolith and Thomas - я думаю, что mikeselectricstuff уже ответил на это за вас! Это может вызвать проблемы, просто внося шум в другие части системы. Я знаю, что это было из-за плавающей булавки, потому что, как только я настроил его на выход, проблемы исчезли!
IntelliChick
2
Я не понимаю, как плавающий кусок металла может создавать шум для других частей системы. Конечно, он усиливает шум, но если вы не обращаете внимания на ввод, это не должно иметь значения. Действительно ли проблемы с размахиванием руками рядом с неиспользованными плавающими входами?
эндолит
Плавающие булавки TIL не безвредны. Спасибо IntelliChick и @Yann!
Ник Джонсон
13

Это немного хуже, чем просто находиться в неизвестном состоянии или без необходимости переключаться. В настоящее время цифровые схемы в основном относятся к типу CMOS с транзисторами, переключающими как верхнюю, так и низкую стороны; когда у нас есть четкие 1 и 0, они либо выключены, либо насыщены - два наиболее эффективных состояния транзисторов. Между ними находится область линейного действия; он используется для аналоговых усилителей, но он не так эффективен, как крайние значения - это означает, что больше энергии теряется в виде тепла в транзисторе. В худшем случае, как транзисторы на стороне высокого, так и на нижнего уровня протекают таким образом (потому что на самом деле вывод не является ни высоким, ни низким), и они могут затем объединиться, чтобы вызвать заметный ток в микросхеме, когда они пытаются поднять внутреннее состояние как высокое и низкий - возможно, делая то же самое для следующих ворот в цепной реакции. Жара может стать проблемой, даже если нет. Решения IntelliChick по-прежнему применяются.

Для выводов, также подключенных к АЦП, некоторые микроконтроллеры предлагают функцию отключения цифрового входного буфера, чтобы предотвратить как эту проблему, так и утечку, искажающую сигнал.

Ян Вернье
источник
Входы не имеют гистерезиса?
эндолит
3
Триггерные входы Шмитта делают, но, как правило, нет.
Янн Вернье
6

На практике основным эффектом является увеличение энергопотребления. Если штырь фактически плавает, а не подключен к какому-либо неопределенному источнику напряжения, возможно возникновение колебаний, которые, как и увеличение потребляемой мощности, могут создавать шум в других частях системы. Любой вывод, который может использоваться для входа АЦП или компаратора, будет иметь возможность отключить буфер цифрового ввода, чтобы избежать этой проблемы. (DIDR на AVR, ADCON1 / ANSEL на PIC)

mikeselectricstuff
источник
Что именно будет колебаться и почему?
эндолит
@endolith - входной буфер на выводе. Подумайте о инвертирующем буфере с конденсатором между входом и выходом.
Коннор Вольф
@FakeName: а где инвертор? Где вывод, который возвращается к входу?
эндолит
3
По сути, все выводы IC IO проходят через буфер (часто инвертор) на IC Die . Поскольку буфер будет иметь провода для входа и выхода, между входом и выходом может быть емкостная связь. Поэтому, если на входе достаточно высокий импеданс, переход на выходе инвертора может привести к изменению входа инвертора, что приведет к повторному изменению выхода и т. Д.
Коннор Вольф
4

Обычно плохая идея оставлять входной контакт плавающим, так как это может привести к:

a) Функциональные проблемы - неизвестное состояние ввода, переключение (например, может вызывать прерывание с неопределенным ISR, которое может привести к зависанию процессора)

б) Повышенное энергопотребление - скорее всего, входной вентиль похож на КМОП-инвертор. С этой структурой, когда вход достаточно далеко от любой шины (например, при половинном питании), значительный перекрестный ток будет течь постоянно.

c) Если будет распространяться перекрестный ток, явления, известные как инжекция горячего носителя, могут фактически сократить срок службы устройства. Входной затвор может быть предназначен только для обычного переключения, а не для непрерывной проводимости, поэтому устройство может катастрофически выйти из строя. Обратите внимание, однако, что для этого потребуется поместить устройство в такое состояние на многие сотни часов при повышенной температуре.

Обратите внимание, что а) и б) являются реальными проблемами, с которыми, скорее всего, столкнется один. Что касается в) это менее вероятная проблема, но зачем рисковать?

mazurnification
источник
3

Вход будет переключаться между 0 и 1 в зависимости от любого EMI. Я не уверен, что это приведет к сбою входа, но это приведет к увеличению потребляемой мощности, поскольку происходит переход от 0 к 1 к 0.

Установите его на выход и покончите с этим.

Роберт
источник
1
Если я установлю его на выход 0 или 1, он будет заземлять видеосигнал и вызывать потерю видео.
Томас О
Можете ли вы включить внутреннее подтягивание и покончить с этим?
эндолит
Включение внутреннего подтягивания должно быть хорошо. Дело в том, чтобы привести его в известное состояние и оставить там.
Роберт
2

Некоторые высокоскоростные CMOS-устройства могут быть разрушены, если вход остается плавающим, но наиболее распространенная проблема, с которой приходится сталкиваться, это повышенное потребление тока. На микроконтроллерах серии PIC дополнительный ток составляет порядка сотен микроампер на плавающий контакт. Не достаточно, чтобы вызвать повреждение устройства, но достаточно, чтобы серьезно повлиять на срок службы батареи в приложении, которое в противном случае потребляет 5 мкА. Некоторые чипы имеют опции для отключения цифрового входа; если вход отключен, он может свободно оставаться плавающим.

Supercat
источник