Что такое альтернативная функция вывода на микроконтроллере?

Я хотел бы знать, что означает «Альтернативная функция» в контексте портов ввода-вывода микроконтроллера.

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

Ответы (2)

Многие выводы вашего микроконтроллера имеют разные функции. «Нормальная» функция будет относиться к GPIO, вводу/выводу общего назначения . В этом случае вы можете использовать эти контакты напрямую, записывая и читая из соответствующих регистров.

«Альтернативные» функции будут относиться к другим функциям, которые могут включать в себя I 2 C, SPI, USART, CCP, PWM, Clock, ADC и т. д. То, как вы управляете контактами в альтернативной функции, зависит от периферийного устройства, но это обычно сводится к записи и чтению из регистров специальных функций (SFR); периферийное устройство позаботится обо всем остальном.

Какая функция является стандартной после RESET, зависит (это не всегда GPIO!), и вы можете найти это в соответствующем описании. В большинстве случаев вы можете выбрать функцию, которую хотите использовать, «на лету», чтобы переключаться между периферийными устройствами.

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


Как отмечает Коннор , «альтернативная функция» может относиться и к чему-то другому, просто в несколько ином контексте: здесь речь идет не о том, какую функцию вы назначите булавке, а о том, какую булавку вы используете для функции. Это называется Peripheral Pin Select, и в основном означает, что вы можете выбрать, какой контакт использует ваше периферийное устройство. Например, вы можете использовать RS232 через RA1 и RA2 или через RB1 и RB2.

Смотрите ответ Коннора для более подробного описания (и проголосуйте за него).

В дополнение к ответу @CamilStaps есть еще один контекст, в котором «альтернативная функция вывода» является широко используемым термином.

Некоторые микроконтроллеры имеют возможность переключать свои внутренние периферийные устройства между несколькими наборами линий ввода-вывода. Таким образом, вы можете избежать проблем, если хотите использовать внутренние модули (SPI, I2C и т. д.), функции которых сопоставлены с одним и тем же набором контактов.

Как правило, существует управляющий регистр, который определяет, на какой набор контактов сопоставляются различные периферийные устройства.


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

Редактировать: нашел - он доступен на многих частях PIC24 и dsPIC:введите описание изображения здесь

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