Блок прерываний EXTI

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

Введение

Обработка прерываний выводов реализована в отдельном модуле. Входные линии  трех блоков ввода-вывода подключаются к 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
S7 S6 S5 S4 S3 S2 S1 S0
ro ro ro ro ro ro ro ro

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

Биты 7: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
I7 I6 I5 I4 I3 I2 I1 I0
rw rw rw rw rw rw rw rw

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

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

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

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