Блок прерываний EXTI: различия между версиями

Материал из MIK32 микроконтроллер
Строка 357: Строка 357:
|I0
|I0
|-
|-
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|ro
|rw
|}
|}
Биты 31:10 Зарезервировано
Биты 31:10 Зарезервировано

Версия от 07:01, 11 апреля 2023

Введение

Обработка прерываний выводов реализована в отдельном модуле. Входные линии  трех блоков ввода-вывода подключаются к 8 мультиплексорам формируя 8 линий, для которых формируются прерывания. Каждый мультиплексор управляется независимо, на основе соответствующих бит поля IRQ_LINE_MUX. Схема коммутации представлена в таблице.

Описание модуля

Мультиплексор линий прерываний

Прерывание Линия_0

Mux[3:0]

Линия_1

Mux[7:4]

Линия_2

Mux[11:8]

Линия_3

Mux[15:12]

Линия_4

Mux[19:16]

Линия_5

Mux[23:20]

Линия_6

Mux[27:24]

Линия_7

Mux[31:28]

MUX [i]=0 GPIO_0.0 GPIO_0.1 GPIO_0.2 GPIO_0.3 GPIO_0.4 GPIO_0.5 GPIO_0.6 GPIO_0.7
MUX [i]=1 GPIO_0.8 GPIO_0.9 GPIO_0.10 GPIO_0.11 GPIO_0.12 GPIO_0.13 GPIO_0.14 GPIO_0.15
MUX [i]=2 GPIO_1.0 GPIO_1.1 GPIO_1.2 GPIO_1.3 GPIO_1.4 GPIO_1.5 GPIO_1.6 GPIO_1.7
MUX [i]=3 GPIO_1.8 GPIO_1.9 GPIO_1.10 GPIO_1.11 GPIO_1.12 GPIO_1.13 GPIO_1.14 GPIO_1.15
MUX [i]=4 GPIO_2.0 GPIO_2.1 GPIO_2.2 GPIO_2.3 GPIO_2.4 GPIO_2.5 GPIO_2.6 GPIO_2.7
MUX [i]=5 GPIO_0.4 GPIO_0.5 GPIO_0.6 GPIO_0.7 GPIO_0.0 GPIO_0.1 GPIO_0.2 GPIO_0.3
MUX [i]=6 GPIO_0.12 GPIO_0.13 GPIO_0.14 GPIO_0.15 GPIO_0.8 GPIO_0.9 GPIO_0.10 GPIO_0.11
MUX [i]=7 GPIO_1.4 GPIO_1.5 GPIO_1.6 GPIO_1.7 GPIO_1.0 GPIO_1.1 GPIO_1.2 GPIO_1.3
MUX [i]=8 GPIO_1.12 GPIO_1.13 GPIO_1.14 GPIO_1.15 GPIO_1.8 GPIO_1.9 GPIO_1.10 GPIO_1.11
MUX [i]=9 GPIO_2.4 GPIO_2.5 GPIO_2.6 GPIO_2.7 GPIO_2.0 GPIO_2.1 GPIO_2.2 GPIO_2.3
MUX [i]=10 0 0 0 0 0 0 0 0

Описание регистров

Регистр EXTI_SATE

Смещение: 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
S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro

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

Биты 15:0 Sy - Биты отвечают за текущее состояние выводов линий после мультиплексоров. Только чтение.

Регистр EXTI_IRQ_LINE_MUX

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

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Mux_7 Mux_6 Mux_5 Mux_4
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Mux_3 Mux_2 Mux_1 Mux_0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 2y:2y+3 Mux_y[0:3]: Управление мультиплексорами.

При записи меняет выбор мультиплексора на заданный

При чтении - выдает заданный ранее выбор мультиплексора

Регистр EXTI_INTERRUPT

Смещение: 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
I9 I8 I7 I6 I5 I4 I3 I2 I1 I0
rw rw rw rw rw rw rw rw rw rw

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

Биты 9:0 Iy - Биты отвечают за текущее состояние прерываний.

При чтении выдают состояние

При записи - меняют состояние