Блок управления прерываниями: различия между версиями
Строка 1: | Строка 1: | ||
=== | === Общая информация === | ||
Данный модуль управляет минимально необходимым функционалом для обслуживания прерываний. | Данный модуль управляет минимально необходимым функционалом для обслуживания прерываний. | ||
=== | === Работы с модулем === | ||
==== Введение ==== | |||
Модуль реализует поддержку 32 линий прерываний от внешних устройств. Модуль обеспечивает формирование прерываний как по уровню, так и при детектировании фронта(спада) на линии прерывания. | Модуль реализует поддержку 32 линий прерываний от внешних устройств. Модуль обеспечивает формирование прерываний как по уровню, так и при детектировании фронта(спада) на линии прерывания. | ||
Строка 108: | Строка 110: | ||
|} | |} | ||
=== Описание регистров === | ==== Описание регистров ==== | ||
Далее перечислены регистры модуля | Далее перечислены регистры модуля | ||
Строка 227: | Строка 229: | ||
*1: прерывание срабатывает по уровню | *1: прерывание срабатывает по уровню | ||
=====Регистр MASK_LEVEL_CLEAR===== | =====Регистр MASK_LEVEL_CLEAR===== | ||
Смещение: | Смещение: 0x4, Значение после подачи сброса: 0x00000000; | ||
{| class="wikitable" | {| class="wikitable" | ||
|31 | |31 | ||
Строка 341: | Строка 343: | ||
*0: прерывание не срабатывает по уровню | *0: прерывание не срабатывает по уровню | ||
*1: прерывание срабатывает по уровню | *1: прерывание срабатывает по уровню | ||
* | |||
=====Регистр MASK_EDGE_SET===== | |||
Смещение: 0x8, Значение после подачи сброса: 0x00000000; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
|MES31 | |||
|MES30 | |||
|MES29 | |||
|MES28 | |||
|MES27 | |||
|MES26 | |||
|MES25 | |||
|MES24 | |||
|MES23 | |||
|MES22 | |||
|MES21 | |||
|MES20 | |||
|MES19 | |||
|MES18 | |||
|MES17 | |||
|MES16 | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
|MES15 | |||
|MES14 | |||
|MES13 | |||
|MES12 | |||
|MES11 | |||
|MES10 | |||
|MES9 | |||
|MES8 | |||
|MES7 | |||
|MES6 | |||
|MES5 | |||
|MES4 | |||
|MES3 | |||
|MES2 | |||
|MES1 | |||
|MES0 | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|}Биты 31:16 Зарезервировано | |||
Биты 15:0 '''MESy''' - Биты линий прерываний, отвечающие за активацию срабатывания прерывания по фронту (y=0...31) | |||
При записи: | |||
*0: соответствующая линия прерывания не меняет тип | |||
*1: соответствующая линия прерывания активируется на срабатывание по фронту | |||
При чтении текущее состояние линии прерывания | |||
*0: прерывание не срабатывает по фронту | |||
*1: прерывание срабатывает по фронту | |||
=====Регистр MASK_EDGE_CLEAR===== | |||
Смещение: 0x0C, Значение после подачи сброса: 0x00000000; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
|MEC31 | |||
|MEC30 | |||
|MEC29 | |||
|MEC28 | |||
|MEC27 | |||
|MEC26 | |||
|MEC25 | |||
|MEC24 | |||
|MEC23 | |||
|MEC22 | |||
|MEC21 | |||
|MEC20 | |||
|MEC19 | |||
|MEC18 | |||
|MEC17 | |||
|MEC16 | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
|MEC15 | |||
|MEC14 | |||
|MEC13 | |||
|MEC12 | |||
|MEC11 | |||
|MEC10 | |||
|MEC9 | |||
|MEC8 | |||
|MEC7 | |||
|MEC6 | |||
|MEC5 | |||
|MEC4 | |||
|MEC3 | |||
|MEC2 | |||
|MEC1 | |||
|MEC0 | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|}Биты 31:16 Зарезервировано | |||
Биты 15:0 '''MECy''' - Биты линий прерываний, отвечающие за деактивацию срабатывания прерывания по фронту (y=0...31) | |||
При записи: | |||
*0: соответствующая линия прерывания не меняет тип | |||
*1: соответствующая линия прерывания деактивируется на срабатывание по фронту | |||
При чтении текущее состояние линии прерывания | |||
*0: прерывание не срабатывает по фронту | |||
*1: прерывание срабатывает по фронту |
Версия от 15:56, 17 апреля 2023
Общая информация
Данный модуль управляет минимально необходимым функционалом для обслуживания прерываний.
Работы с модулем
Введение
Модуль реализует поддержку 32 линий прерываний от внешних устройств. Модуль обеспечивает формирование прерываний как по уровню, так и при детектировании фронта(спада) на линии прерывания.
Перечень линий прерывания для устройств, подключённых к контроллеру прерываний, указан в таблице
Номер линии прерывания | Имя источника прерывания |
0 | Timer32_0 |
1 | USART_0 |
2 | USART_1 |
3 | SPI_0 |
4 | SPI_1 |
5 | GPIO |
6 | I2C_0 |
7 | I2C_1 |
8 | Сторожевой таймер |
9 | Timer16_0 |
10 | Timer16_1 |
11 | Timer16_2 |
12 | Timer32_1 |
13 | Timer32_2 |
14 | SPIFI |
15 | RTC |
16 | EEPROM |
17 | Сторожевой таймер шины (перефирийные устройства) |
18 | Сторожевой таймер шины (SPIFI) |
19 | Сторожевой таймер шины (EEPROM) |
20 | ПДП |
21 | Монитор частоты |
22 | Монитор напряжения AVCC (ниже порога) |
23 | Монитор напряжения AVCC (выше порога) |
24 | Монитор напряжения VCC (ниже порога) |
25 | Монитор напряжения VCC (выше порога) |
26 | Недостатоное напряжение батареи |
27 | BrouwnOut детектор |
28 | Монитор температуры |
29 | АЦП |
30 | DAC0 |
31 | DAC1 |
Описание регистров
Далее перечислены регистры модуля
Регистр MASK_LEVEL_SET
Смещение: 0x0, Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
MLS31 | MLS30 | MLS29 | MLS28 | MLS27 | MLS26 | MLS25 | MLS24 | MLS23 | MLS22 | MLS21 | MLS20 | MLS19 | MLS18 | MLS17 | MLS16 |
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 |
MLS15 | MLS14 | MLS13 | MLS12 | MLS11 | MLS10 | MLS9 | MLS8 | MLS7 | MLS6 | MLS5 | MLS4 | MLS3 | MLS2 | MLS1 | MLS0 |
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 31:16 Зарезервировано
Биты 15:0 MLSy - Биты линий прерываний, отвечающие за активацию срабатывания прерывания по уровню (y=0...31)
При записи:
- 0: соответствующая линия прерывания не меняет тип
- 1: соответствующая линия прерывания активируется на срабатывание по уровню
При чтении текущее состояние линии прерывания
- 0: прерывание не срабатывает по уровню
- 1: прерывание срабатывает по уровню
Регистр MASK_LEVEL_CLEAR
Смещение: 0x4, Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
MLC31 | MLC30 | MLC29 | MLC28 | MLC27 | MLC26 | MLC25 | MLC24 | MLC23 | MLC22 | MLC21 | MLC20 | MLC19 | MLC18 | MLC17 | MLC16 |
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 |
MLC15 | MLC14 | MLC13 | MLC12 | MLC11 | MLC10 | MLC9 | MLC8 | MLC7 | MLC6 | MLC5 | MLC4 | MLC3 | MLC2 | MLC1 | MLC0 |
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 31:16 Зарезервировано
Биты 15:0 MLCy - Биты линий прерываний, отвечающие за деактивацию срабатывания прерывания по уровню (y=0...31)
При записи:
- 0: соответствующая линия прерывания не меняет тип
- 1: соответствующая линия прерывания деактивируется на срабатывание по уровню
При чтении текущее состояние линии прерывания
- 0: прерывание не срабатывает по уровню
- 1: прерывание срабатывает по уровню
Регистр MASK_EDGE_SET
Смещение: 0x8, Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
MES31 | MES30 | MES29 | MES28 | MES27 | MES26 | MES25 | MES24 | MES23 | MES22 | MES21 | MES20 | MES19 | MES18 | MES17 | MES16 |
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 |
MES15 | MES14 | MES13 | MES12 | MES11 | MES10 | MES9 | MES8 | MES7 | MES6 | MES5 | MES4 | MES3 | MES2 | MES1 | MES0 |
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 31:16 Зарезервировано
Биты 15:0 MESy - Биты линий прерываний, отвечающие за активацию срабатывания прерывания по фронту (y=0...31)
При записи:
- 0: соответствующая линия прерывания не меняет тип
- 1: соответствующая линия прерывания активируется на срабатывание по фронту
При чтении текущее состояние линии прерывания
- 0: прерывание не срабатывает по фронту
- 1: прерывание срабатывает по фронту
Регистр MASK_EDGE_CLEAR
Смещение: 0x0C, Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
MEC31 | MEC30 | MEC29 | MEC28 | MEC27 | MEC26 | MEC25 | MEC24 | MEC23 | MEC22 | MEC21 | MEC20 | MEC19 | MEC18 | MEC17 | MEC16 |
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 |
MEC15 | MEC14 | MEC13 | MEC12 | MEC11 | MEC10 | MEC9 | MEC8 | MEC7 | MEC6 | MEC5 | MEC4 | MEC3 | MEC2 | MEC1 | MEC0 |
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 31:16 Зарезервировано
Биты 15:0 MECy - Биты линий прерываний, отвечающие за деактивацию срабатывания прерывания по фронту (y=0...31)
При записи:
- 0: соответствующая линия прерывания не меняет тип
- 1: соответствующая линия прерывания деактивируется на срабатывание по фронту
При чтении текущее состояние линии прерывания
- 0: прерывание не срабатывает по фронту
- 1: прерывание срабатывает по фронту