Читая руководство по STM32F051, похоже, можно настроить одну и ту же альтернативную функцию на двух контактах; Например, вы можете использовать несколько выводов USART1_TX одновременно. Или, например, более проблемный случай с двумя выводами USART_RX. В руководстве об этом случае ничего не сказано. Это законно / безопасно? Это полезно?
10
Ответы:
На процессорах, которые используют индивидуальные регистры для выбора функций ввода / вывода, обычно можно направить функцию вывода на несколько контактов без конфликта; все выводы будут отображаться одинаково. Эффект наличия нескольких выводов, подключенных к входу, часто не определен; если, например, UART имеет контакты 3 и 4 ввода / вывода, подключенные к UART, он может вести себя так, как если бы UART был подключен к вентилю «И», который принимает контакты 3 и 4 в качестве входов, или он мог бы вести себя так, как если бы он был подключен к одному контакту и игнорируют другой, или он может соединить оба контакта с входным буфером UART через транзисторы с умеренным сопротивлением, или он может потреблять дополнительный ток, когда контакт 3 высокий, а 4 низкий или наоборот, или он может сделать что-нибудь еще вообразить. Я не
Несколько более приятный подход к проектированию, используемый в некоторых частях микрочипа (возможно, также в некоторых частях STM), состоит в том, чтобы каждая функция ввода-вывода включала мультиплексор для выбора, с какого вывода он должен принимать вход, и чтобы вывод включал мультиплексор для индикации I Функция / O, из которой он должен выводить данные. Такая конструкция позволяет иметь один вывод для нескольких функций ввода / вывода, одновременно устраняя любые неопределенности, возникающие из-за конфликтующих конфигураций.
источник
Да, это полезно. Результат эксперимента на STM32F407VGT6: Оба контакта AF могут использоваться одновременно в качестве AF, по крайней мере, если эти контакты используются в качестве входов AF. Эксперимент состоял в том, чтобы запустить TIM1 по переднему фронту внешнего триггера - сигнала «TIM1_ETR». Сигнал «TIM1_ETR» может быть отображен на контакты PE7 и / или PA12 пакета MCU.
Эксперимент: Инициализируйте оба контакта PE7 и PA12 как AF "TIM1_ETR" для TIM1:
Результат - TIM1 запускается по переднему фронту на любом из контактов PE7 или PA12.
Это показывает путь к MUX (изменить) контактам AF во время выполнения:
Это может быть полезно, тогда для запуска таймера нужны два разных источника, это может спасти нас от MUX IC :). Оба входа могут использоваться одновременно, если они инициализированы, как показано в начале сообщения. Входы не соединены вместе, я имею в виду, что сигнал на PA12 не передается на PE7 и наоборот (потому что GPIO устанавливаются как входы).
Код генерируется «STM32CubeF4 v5.3» + «Пакет прошивок V1.24.0 / 08-Февраль-2019».
источник
По сути, это контакты GPIO, которые могут быть назначены альтернативным функциям, например, UART_RX. Каждая альтернативная функция имеет свой вывод по умолчанию и альтернативные выводы, на которые можно переназначить функцию. Если вы посмотрите справочное руководство по STM32F103 в разделе 9.1.5, они скажут:
источник