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

15

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

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

user929404
источник

Ответы:

18

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

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

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

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


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

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

Сообщество
источник
5

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

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

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


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

Изменить: Найдено - это доступно на многих частях PIC24 и dsPIC: введите описание изображения здесь

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

Коннор Вольф
источник