Блок прерываний 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 - Биты отвечают за текущее состояние выводов линий после мультиплексоров. Только чтение.

Нужно дать описание - что значит 1 и что значит 0.

Регистр 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

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

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

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

Нужно дать описание - что значит 1 и что значит 0.

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

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

Регистр EXTI_INTR_ENABLE_SET

Смещение: 0x0С, Значение после подачи сброса: 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
IE7 IE6 IE5 IE4 IE3 IE2 IE1 IE0
rw rw rw rw rw rw rw rw

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

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

Регистр разрешения прерываний.

При чтении – текущее состояние разрешений прерываний.

При записи «1» разрешает прерывание от соответствующего вывода

Регистр EXTI_INTR_ENABLE_CLEAR

Смещение: 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
IE7 IE6 IE5 IE4 IE3 IE2 IE1 IE0
rw rw rw rw rw rw rw rw

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

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

Регистр запрета прерываний.

При чтении – текущее состояние разрешений прерываний.

При записи «1» запрещает прерывание от соответствующего вывода

Регистр EXTI_INTR_EDGE

Смещение: 0x14, Значение после подачи сброса: 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
ED7 ED6 ED5 ED4 ED3 ED2 ED1 ED0
rw rw rw rw rw rw rw rw

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

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

Регистр типа прерываний.

При чтении – текущий тип прерывания: «1» – по событию (фронт или спад), «0» – по уровню.

Запись «1» – прерывание формируется по событию для соответствующего вывода

Регистр EXTI_INTR_LEVEL

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

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
LV7 LV6 LV5 LV4 LV3 LV2 LV1 LV0
rw rw rw rw rw rw rw rw

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

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

Регистр типа прерываний.

При чтении – текущий тип прерывания (инвертированный):  «0» – по событию; «1» – по уровню.

Запись «1» – прерывание формируется по уровню для соответствующего вывода

Регистр EXTI_INTR_LEVEL_SET

Смещение: 0x1C, Значение после подачи сброса: 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
LVS7 LVS6 LVS5 LVS4 LVS3 LVS2 LVS1 LVS0
rw rw rw rw rw rw rw rw

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

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

Регистр выбора уровня / события прерываний.

При чтении:

  • «0» – прерывания формируются по спаду или уровню логического «0»;
  • «1» – прерывания формируются по нарастающему фронту или уровню логической «1»

Запись «1» – прерывание формируется по нарастающему фронту или уровню логической «1» для соответствующего вывода

Регистр EXTI_INTR_LEVEL_CLEAR

Смещение: 0x20, Значение после подачи сброса: 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
LVC7 LVC6 LVC5 LVC4 LVC3 LVC2 LVC1 LVC0
rw rw rw rw rw rw rw rw

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

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

Регистр  уровня / события прерываний.

При чтении:

  • «0» – прерывания формируются по спаду или уровню логического «0»;
  • «1» – прерывания формируются по нарастающему фронту или уровню логической «1»

Запись «1»– прерывание формируется по спаду или уровню логического «0» для соответствующего вывода