Есть ли каждый вывод микроконтроллера, связанный с регистром? - PullRequest
0 голосов
/ 07 февраля 2020

Я новичок в мире разработки встраиваемых систем. Я хотел бы получить некоторые разъяснения по следующим вопросам:

  1. Связан ли каждый вывод микроконтроллера (далее обозначаемый как m c) с регистром?
  2. Это отношение один к одному?
  3. Как порты (или группы выводов) назначаются внутри m c?
  4. Можно ли установить только один вывод как низкий или только высокий?

Ответы [ 3 ]

4 голосов
/ 07 февраля 2020
  1. Нет. Некоторые выводы вообще не связаны с регистром, например, V cc и GND, и если они не имеют двойного использования в качестве GPIO, это также относится к выводам тактового генератора / генератора и сброса.

  2. Если вывод связан с регистрами, он обычно связан с несколькими: один для определения направления ввода-вывода, один для чтения входа, один или несколько для настройки выхода. Для выводов I2 C, SPI, UART связанный является косвенным, т.е. регистр в основном управляет контроллером I2C / SPI / UART, который, в свою очередь, связан с выводом.

  3. Я не понимаю вопроса

  4. Вывод GPIO может быть установлен как вход, как выход в высоком состоянии (подающий ток или со слабым подтягиванием) , как выход в низком состоянии (ток источника или со слабым понижением) или в состоянии с открытым стоком (часто аналогично режиму ввода). Контакт также может быть сконфигурирован для использования одним из контроллеров I2C / SPI / UART или как DA C (вывод переменного напряжения между GND и V cc).

3 голосов
/ 07 февраля 2020

В дополнение к таким базовым вещам, как контакты питания и тактовые импульсы, MCU получил множество аппаратных периферийных устройств внутри. Аппаратная периферия - это нечто вроде GPIO (универсальный ввод / вывод), AD C, UART, SPI и др. 1015 *. Каждое такое аппаратное периферийное устройство имеет несколько возможных выводов, на которые можно направить его функции.

Традиционно, они были в значительной степени исправлены - если вы хотите UART Tx, то вы всегда получите его на каком-то фиксированном пин-коде, возьмите его или оставьте. В настоящее время большинство микроконтроллеров имеют достаточно гибкую внутреннюю структуру, позволяя перенаправлять функциональные возможности аппаратного периферийного устройства практически на любой понравившийся вывод.

В любом случае несколько аппаратных периферийных устройств могут использовать один и тот же вывод, и тогда это MCU указывает c, который имеет приоритет. Например, GPIO может присутствовать на выводе по умолчанию, но если вы включите UART, то, возможно, MCU заявляет, что вместо этого вы получаете UART Tx на этом выводе.

Что касается аппаратного периферийного устройства, называемого GPIO, они почти всегда сгруппированы в ports , где каждый порт состоит из нескольких выводов. Чаще всего регистры портов имеют размер 8 бит или размер слова процессора. Каждый бит в различных регистрах портов соответствует выводу.

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

0 голосов
/ 20 февраля 2020
  1. Не все выводы, но все IOs (вход / выход) имеют определенный регистр c.
  2. Каждый IO имеет указанную группу c регистров. Однако некоторые регистры могут включать определенные c биты, которые влияют на IO или все IOs.
  3. Это зависит от конструкции микроконтроллера.
  4. Да, это так.

Я настоятельно рекомендую вам прочитать некоторые книги по встроенному оборудованию / программному обеспечению (например, книги Newness Know It All для встроенных систем) и таблицы данных.

...