Что означают эти режимы ввода / вывода выводов микроконтроллера?

9

Я купил stm32f103ret6 . Когда я увидел справочное руководство, я увидел, что оно имеет несколько режимов ввода / вывода.

Для входа: плавающий, подтягивающий, понижающий
Для выхода: аналоговый, открытый сток, двухтактный

Я уже работал с микроконтроллерами AVR, которые имеют три состояния и подтягивания. Таким образом, я могу понять подтягивание и понижение, но я не могу понять режимы плавающий, аналоговый, открытый сток, двухтактный. Что означают эти режимы и когда я должен их использовать?

Брайан
источник

Ответы:

9

Плавающий: ни подтягивание, ни опускание. Ваш вход эффективно идет прямо к воротам FET где-то. Должен использоваться только с внешним драйвером или с подтягиванием / опусканием; не оставляйте его полностью плавающим, чтобы поднять ESD.

Аналоговый (выход): не совсем ясно из таблицы, но я бы предположил, что это был выход ЦАП где-то и поэтому может принимать диапазон значений напряжения.

Открытый сток: если установлено значение «0», будет активирован FET для подключения к заземлению. Если установлено значение «1», оно останется плавающим. Используется для I2C и аналогичных шин, где есть несколько драйверов с открытым стоком и один резистор.

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

pjc50
источник
2
Нормальное различие между «плавающим» и «аналоговым» состоит в том, что первый перенаправляет вывод во входной буфер логического уровня, позволяя коду (или другой логике) видеть его состояние, но также вызывая дополнительный ток, если он не представляет действительный максимум или минимум; последний отсоединит контакт от входного буфера логического уровня, позволяя тем самым изменять напряжение на контакте в любом месте между питающими шинами, не вызывая чрезмерного потребления тока.
суперкат