Порты ввода вывода GPIO

Материал из MIK32 микроконтроллер

Общая информация

Каждый модуль ввода/вывода (GPIO) подключен к шине APB и управляет до 16 внешними выводами. Каждый из внешних выводов может управляться индивидуально.

Каждый вывод снабжен встроенными отключаемыми подтяжками к Vdd и Vss.

Выводы помимо функции программного управления так же могут управляться периферийными блоками, а так же иметь аналоговый функционал (ЦАП/АЦП)

Регистры

В таблице перечислены регистры модуля GPIO. Все регистры имеют разрядность соответствующую количествам выводов блока.  

Регистр GPIOx_SET_STATUS

Cмещение: 0x00, Значение после подачи сброса: 0x0000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OSR15 OSR14 OSR13 OSR12 OSR11 OSR10 OSR9 OSR8 OSR7 OSR6 OSR5 OSR4 OSR3 OSR2 OSR1 OSR0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 31:16 Зарезервировано

Биты 15:0 OSRy - Биты установки порта в 1цу (y=0...15)

При записи:

  • 0: эффекта нет
  • 1: соответствующий вывод y порта x будет переведен в состояние логической 1

При чтении - состояние вывода y порта x.

Регистр GPIOx_CLEAR

Cмещение: 0x04, Значение после подачи сброса: 0x0000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ORR15 ORR14 ORR13 ORR12 ORR11 ORR10 ORR9 ORR8 ORR7 ORR6 ORR5 ORR4 ORR3 ORR2 ORR1 ORR0
w w w w w w w w w w w w w w w w

Биты 31:16 Зарезервировано

Биты 15:0 OSRy - Биты установки порта в 0 (y=0...15)

При записи:

  • 0: эффекта нет
  • 1: соответствующий вывод y порта x будет переведен в состояние логического 0

Регистр GPIOx_SET_DIRECTION_OUT

Cмещение: 0x08, Значение после подачи сброса: 0x0000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DIR15 DIR14 DIR13 DIR12 DIR11 DIR10 DIR9 DIR8 DIR7 DIR6 DIR5 DIR4 DIR3 DIR2 DIR1 DIR0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 31:16 Зарезервировано

Биты 15:0 DIRy - Биты установки порта в 0 (y=0...15)

При записи:

  • 0: эффекта нет
  • 1: соответствующий вывод y порта x будет переведен в состояние выхода

При чтении текущая конфигурация вывода y порта х

  • 0: вывод в режиме выхода
  • 1: вывод в режиме входа

Регистр GPIOx_SET_DIRECTION_IN

Cмещение: 0x0C, Значение после подачи сброса: 0x0000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DIR15 DIR14 DIR13 DIR12 DIR11 DIR10 DIR9 DIR8 DIR7 DIR6 DIR5 DIR4 DIR3 DIR2 DIR1 DIR0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 31:16 Зарезервировано

Биты 15:0 DIRy - Биты установки порта в 0 (y=0...15)

При записи:

  • 0: эффекта нет
  • 1: соответствующий вывод y порта x будет переведен в состояние выхода

При чтении текущая конфигурация вывода y порта х

  • 0: вывод в режиме выхода
  • 1: вывод в режиме входа

Регистр GPIOx_OUTPUT

Cмещение: 0x10, Значение после подачи сброса: 0x0000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ODR15 ODR14 ODR13 ODR12 ODR11 ODR10 ODR9 ODR8 ODR7 ODR6 ODR5 ODR4 ODR3 ODR2 ODR1 ODR0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 31:16 Зарезервировано

Биты 15:0 ODRy - Биты установки порта в 0 (y=0...15)

При записи:

  • 0: соответствующий вывод y порта x будет переведен в состояние 0
  • 1: соответствующий вывод y порта x будет переведен в состояние 1

При чтении текущее состояние вывода y порта х

  • 0: вывод в 0
  • 1: вывод в 1

Дополнительный функционал выводов

Помимо основной функции программного управления входы-выходы GPIO мультиплексированы с входами-выходами встроенных периферийных модулей. Назначение и схема мультеплексирования представлена в таблице выводов. Для управления функциями используются регистры конфигурации.

Ячейка ввода-вывода позволяет регулировать нагрузочную способность вывода с помощью специального регистра

А так же можно подключать резисторы подтяжки к питанию/земле активируя соответствующую функцию в соответствующем специальном регистре

Регистры