Регистры DMA STM32H7
Регистры DMA1 и DMA2 STM32H742/H743/H750/H753 и мультиплексора DMAMUX: флаги и настройка потоков, FIFO и пакеты, выбор запроса периферии для каждого потока, синхронизация и генераторы запросов.
Потоки DMA1 и DMA2 STM32H7 устроены как у STM32F4, но канала CHSEL нет: какой запрос периферии обслуживает поток, задаёт поле DMAREQ_ID регистра DMAMUX1_CxCR (каналы 0–7 — DMA1, 8–15 — DMA2; таблица 124 RM0433). DMAMUX умеет синхронизировать запросы и генерировать их сам (RM0433, разделы 15.5 и 17.6).
Буферы DMA должны лежать в памяти, доступной DMA1 и DMA2 (AXI SRAM, SRAM1–SRAM3), а не в DTCM. Кеш данных ядра очищайте перед передачей и делайте недействительным после приёма.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| DMA1 | 0x4002 0000 | всех |
| DMA2 | 0x4002 0400 | всех |
| DMA1_Stream0 | 0x4002 0010 | всех |
| DMA1_Stream1 | 0x4002 0028 | всех |
| DMA1_Stream2 | 0x4002 0040 | всех |
| DMA1_Stream3 | 0x4002 0058 | всех |
| DMA1_Stream4 | 0x4002 0070 | всех |
| DMA1_Stream5 | 0x4002 0088 | всех |
| DMA1_Stream6 | 0x4002 00A0 | всех |
| DMA1_Stream7 | 0x4002 00B8 | всех |
| DMA2_Stream0 | 0x4002 0410 | всех |
| DMA2_Stream1 | 0x4002 0428 | всех |
| DMA2_Stream2 | 0x4002 0440 | всех |
| DMA2_Stream3 | 0x4002 0458 | всех |
| DMA2_Stream4 | 0x4002 0470 | всех |
| DMA2_Stream5 | 0x4002 0488 | всех |
| DMA2_Stream6 | 0x4002 04A0 | всех |
| DMA2_Stream7 | 0x4002 04B8 | всех |
| DMAMUX1 | 0x4002 0800 | всех |
| DMAMUX1_Channel0 | 0x4002 0800 | всех |
| DMAMUX1_Channel1 | 0x4002 0804 | всех |
| DMAMUX1_Channel2 | 0x4002 0808 | всех |
| DMAMUX1_Channel3 | 0x4002 080C | всех |
| DMAMUX1_Channel4 | 0x4002 0810 | всех |
| DMAMUX1_Channel5 | 0x4002 0814 | всех |
| DMAMUX1_Channel6 | 0x4002 0818 | всех |
| DMAMUX1_Channel7 | 0x4002 081C | всех |
| DMAMUX1_Channel8 | 0x4002 0820 | всех |
| DMAMUX1_Channel9 | 0x4002 0824 | всех |
| DMAMUX1_Channel10 | 0x4002 0828 | всех |
| DMAMUX1_Channel11 | 0x4002 082C | всех |
| DMAMUX1_Channel12 | 0x4002 0830 | всех |
| DMAMUX1_Channel13 | 0x4002 0834 | всех |
| DMAMUX1_Channel14 | 0x4002 0838 | всех |
| DMAMUX1_Channel15 | 0x4002 083C | всех |
| DMAMUX2 | 0x5802 5800 | всех |
| DMAMUX2_Channel0 | 0x5802 5800 | всех |
| DMAMUX2_Channel1 | 0x5802 5804 | всех |
| DMAMUX2_Channel2 | 0x5802 5808 | всех |
| DMAMUX2_Channel3 | 0x5802 580C | всех |
| DMAMUX2_Channel4 | 0x5802 5810 | всех |
| DMAMUX2_Channel5 | 0x5802 5814 | всех |
| DMAMUX2_Channel6 | 0x5802 5818 | всех |
| DMAMUX2_Channel7 | 0x5802 581C | всех |
| DMAMUX1_ChannelStatus | 0x4002 0880 | всех |
| DMAMUX2_ChannelStatus | 0x5802 5880 | всех |
| DMAMUX1_RequestGenerator0 | 0x4002 0900 | всех |
| DMAMUX1_RequestGenerator1 | 0x4002 0904 | всех |
| DMAMUX1_RequestGenerator2 | 0x4002 0908 | всех |
| DMAMUX1_RequestGenerator3 | 0x4002 090C | всех |
| DMAMUX1_RequestGenerator4 | 0x4002 0910 | всех |
| DMAMUX1_RequestGenerator5 | 0x4002 0914 | всех |
| DMAMUX1_RequestGenerator6 | 0x4002 0918 | всех |
| DMAMUX1_RequestGenerator7 | 0x4002 091C | всех |
| DMAMUX2_RequestGenerator0 | 0x5802 5900 | всех |
| DMAMUX2_RequestGenerator1 | 0x5802 5904 | всех |
| DMAMUX2_RequestGenerator2 | 0x5802 5908 | всех |
| DMAMUX2_RequestGenerator3 | 0x5802 590C | всех |
| DMAMUX2_RequestGenerator4 | 0x5802 5910 | всех |
| DMAMUX2_RequestGenerator5 | 0x5802 5914 | всех |
| DMAMUX2_RequestGenerator6 | 0x5802 5918 | всех |
| DMAMUX2_RequestGenerator7 | 0x5802 591C | всех |
| DMAMUX1_RequestGenStatus | 0x4002 0940 | всех |
| DMAMUX2_RequestGenStatus | 0x5802 5940 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| DMA_LISR | 0x00 | Флаги потоков 0–3 | 0x0000 0000 |
| DMA_HISR | 0x04 | Флаги потоков 4–7 | 0x0000 0000 |
| DMA_LIFCR | 0x08 | Сброс флагов потоков 0–3 | 0x0000 0000 |
| DMA_HIFCR | 0x0C | Сброс флагов потоков 4–7 | 0x0000 0000 |
| DMA_SxCR | 0x00 | Настройка потока | 0x0000 0000 |
| DMA_SxNDT | 0x04 | Число передач потока | 0x0000 0000 |
| DMA_SxPAR | 0x08 | Адрес периферии | 0x0000 0000 |
| DMA_SxM0AR | 0x0C | Адрес памяти 0 | 0x0000 0000 |
| DMA_SxM1AR | 0x10 | Адрес памяти 1 (двойной буфер) | 0x0000 0000 |
| DMA_SxFCR | 0x14 | Настройка FIFO потока | 0x0000 0021 |
| DMAMUX_CxCR | 0x00 | Запрос канала DMA и синхронизация | 0x0000 0000 |
| DMAMUX_CSR | 0x00 | Флаги переполнения синхронизации | 0x0000 0000 |
| DMAMUX_CFR | 0x04 | Сброс флагов переполнения синхронизации | 0x0000 0000 |
| DMAMUX_RGxCR | 0x00 | Генератор запросов | 0x0000 0000 |
| DMAMUX_RGSR | 0x00 | Флаги переполнения генераторов запросов | 0x0000 0000 |
| DMAMUX_RGCFR | 0x04 | Сброс флагов генераторов запросов | 0x0000 0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
DMA1->LISR = 0x00000000;DMA_LISR — флаги потоков 0–3
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMA1->LISR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TCIF3 | HTIF3 | TEIF3 | DMEIF3 | — | FEIF3 | TCIF2 | HTIF2 | TEIF2 | DMEIF2 | — | FEIF2 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TCIF1 | HTIF1 | TEIF1 | DMEIF1 | — | FEIF1 | TCIF0 | HTIF0 | TEIF0 | DMEIF0 | — | FEIF0 | |||
- TCIF0–TCIF3 (по биту на каждый y, положение — на карте битов) — Передача потока y завершена.
- HTIF0–HTIF3 (по биту на каждый y, положение — на карте битов) — Передана половина данных потока y.
- TEIF0–TEIF3 (по биту на каждый y, положение — на карте битов) — Ошибка передачи потока y.
- DMEIF0–DMEIF3 (по биту на каждый y, положение — на карте битов) — Ошибка прямого режима потока y.
- FEIF0–FEIF3 (по биту на каждый y, положение — на карте битов) — Ошибка FIFO потока y.
DMA_HISR — флаги потоков 4–7
Смещение 0x04, 32 бит, после сброса 0x0000 0000. В коде: DMA1->HISR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TCIF7 | HTIF7 | TEIF7 | DMEIF7 | — | FEIF7 | TCIF6 | HTIF6 | TEIF6 | DMEIF6 | — | FEIF6 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TCIF5 | HTIF5 | TEIF5 | DMEIF5 | — | FEIF5 | TCIF4 | HTIF4 | TEIF4 | DMEIF4 | — | FEIF4 | |||
- TCIF4–TCIF7 (по биту на каждый y, положение — на карте битов) — Передача потока y завершена.
- HTIF4–HTIF7 (по биту на каждый y, положение — на карте битов) — Передана половина данных потока y.
- TEIF4–TEIF7 (по биту на каждый y, положение — на карте битов) — Ошибка передачи потока y.
- DMEIF4–DMEIF7 (по биту на каждый y, положение — на карте битов) — Ошибка прямого режима потока y.
- FEIF4–FEIF7 (по биту на каждый y, положение — на карте битов) — Ошибка FIFO потока y.
DMA_LIFCR — сброс флагов потоков 0–3
Смещение 0x08, 32 бит, после сброса 0x0000 0000. В коде: DMA1->LIFCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CTCIF3 | CHTIF3 | CTEIF3 | CDMEIF3 | — | CFEIF3 | CTCIF2 | CHTIF2 | CTEIF2 | CDMEIF2 | — | CFEIF2 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CTCIF1 | CHTIF1 | CTEIF1 | CDMEIF1 | — | CFEIF1 | CTCIF0 | CHTIF0 | CTEIF0 | CDMEIF0 | — | CFEIF0 | |||
- CTCIF0–CTCIF3 (по биту на каждый y, положение — на карте битов) — Сброс флага TCIFy записью единицы.
- CHTIF0–CHTIF3 (по биту на каждый y, положение — на карте битов) — Сброс флага HTIFy записью единицы.
- CTEIF0–CTEIF3 (по биту на каждый y, положение — на карте битов) — Сброс флага TEIFy записью единицы.
- CDMEIF0–CDMEIF3 (по биту на каждый y, положение — на карте битов) — Сброс флага DMEIFy записью единицы.
- CFEIF0–CFEIF3 (по биту на каждый y, положение — на карте битов) — Сброс флага FEIFy записью единицы.
DMA_HIFCR — сброс флагов потоков 4–7
Смещение 0x0C, 32 бит, после сброса 0x0000 0000. В коде: DMA1->HIFCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CTCIF7 | CHTIF7 | CTEIF7 | CDMEIF7 | — | CFEIF7 | CTCIF6 | CHTIF6 | CTEIF6 | CDMEIF6 | — | CFEIF6 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CTCIF5 | CHTIF5 | CTEIF5 | CDMEIF5 | — | CFEIF5 | CTCIF4 | CHTIF4 | CTEIF4 | CDMEIF4 | — | CFEIF4 | |||
- CTCIF4–CTCIF7 (по биту на каждый y, положение — на карте битов) — Сброс флага TCIFy записью единицы.
- CHTIF4–CHTIF7 (по биту на каждый y, положение — на карте битов) — Сброс флага HTIFy записью единицы.
- CTEIF4–CTEIF7 (по биту на каждый y, положение — на карте битов) — Сброс флага TEIFy записью единицы.
- CDMEIF4–CDMEIF7 (по биту на каждый y, положение — на карте битов) — Сброс флага DMEIFy записью единицы.
- CFEIF4–CFEIF7 (по биту на каждый y, положение — на карте битов) — Сброс флага FEIFy записью единицы.
DMA_SxCR — настройка потока
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMA1_Stream0->CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MBURST | PBURST | TRBUFF | CT | DBM | PL | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PINCOS | MSIZE | PSIZE | MINC | PINC | CIRC | DIR | PFCTRL | TCIE | HTIE | TEIE | DMEIE | EN | |||
- MBURST (биты 24:23) — Пакетные передачи со стороны памяти.
MBURST Значение 00 Одиночные передачи 01 Пакет из 4 передач (INCR4) 10 Пакет из 8 передач (INCR8) 11 Пакет из 16 передач (INCR16) - PBURST (биты 22:21) — Пакетные передачи со стороны периферии.
PBURST Значение 00 Одиночные передачи 01 Пакет из 4 передач (INCR4) 10 Пакет из 8 передач (INCR8) 11 Пакет из 16 передач (INCR16) - TRBUFF (бит 20) — Буферизуемые записи на шину (нужно для UART, USART и LPUART).
- CT (бит 19) — Текущая память в режиме двойного буфера.
CT Значение 0 Память 0 (M0AR) 1 Память 1 (M1AR) - DBM (бит 18) — Режим двойного буфера: смена памяти после каждого прохода.
- PL (биты 17:16) — Приоритет потока.
PL Значение 00 Низкий 01 Средний 10 Высокий 11 Очень высокий - PINCOS (бит 15) — Шаг увеличения адреса периферии: по PSIZE или 4 байта.
PINCOS Значение 0 По размеру PSIZE 1 Всегда 4 байта - MSIZE (биты 14:13) — Размер данных в памяти.
MSIZE Значение 00 8 бит 01 16 бит 10 32 бита 11 Зарезервировано - PSIZE (биты 12:11) — Размер данных периферии.
PSIZE Значение 00 8 бит 01 16 бит 10 32 бита 11 Зарезервировано - MINC (бит 10) — Увеличение адреса памяти после каждой передачи.
- PINC (бит 9) — Увеличение адреса периферии после каждой передачи.
- CIRC (бит 8) — Кольцевой режим: после последней передачи счётчик перезагружается.
- DIR (биты 7:6) — Направление передачи.
DIR Значение 00 Из периферии в память 01 Из памяти в периферию 10 Из памяти в память (только DMA2) 11 Зарезервировано - PFCTRL (бит 5) — Кто управляет числом передач: DMA или периферия.
PFCTRL Значение 0 DMA 1 Периферия - TCIE (бит 4) — Прерывание по завершении передачи.
- HTIE (бит 3) — Прерывание по передаче половины данных.
- TEIE (бит 2) — Прерывание по ошибке передачи.
- DMEIE (бит 1) — Прерывание по ошибке прямого режима.
- EN (бит 0) — Включение потока; сбрасывается аппаратно по окончании передачи и при ошибке.
DMA_SxNDT — число передач потока
Смещение 0x04, 32 бит, после сброса 0x0000 0000. В коде: DMA1_Stream0->NDTR.
Регистр данных: значение занимает его целиком.
DMA_SxPAR — адрес периферии
Смещение 0x08, 32 бит, после сброса 0x0000 0000. В коде: DMA1_Stream0->PAR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PA | |||||||||||||||
- PA (биты 31:0) — Адрес регистра периферии.
DMA_SxM0AR — адрес памяти 0
Смещение 0x0C, 32 бит, после сброса 0x0000 0000. В коде: DMA1_Stream0->M0AR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| M0A | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| M0A | |||||||||||||||
- M0A (биты 31:0) — Адрес памяти 0.
DMA_SxM1AR — адрес памяти 1 (двойной буфер)
Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: DMA1_Stream0->M1AR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| M1A | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| M1A | |||||||||||||||
- M1A (биты 31:0) — Адрес памяти 1 для режима двойного буфера.
DMA_SxFCR — настройка FIFO потока
Смещение 0x14, 32 бит, после сброса 0x0000 0021. В коде: DMA1_Stream0->FCR.
| 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 |
| — | FEIE | — | FS | DMDIS | FTH | ||||||||||
- FEIE (бит 7) — Прерывание по ошибке FIFO.
- FS (биты 5:3) — Заполнение FIFO (только чтение).
FS Значение 000 Меньше 1/4 001 От 1/4 до 1/2 010 От 1/2 до 3/4 011 От 3/4 до полного 100 FIFO пуст 101 FIFO полон - DMDIS (бит 2) — Выключение прямого режима: передачи через FIFO.
DMDIS Значение 0 Прямой режим 1 Через FIFO - FTH (биты 1:0) — Порог заполнения FIFO.
FTH Значение 00 1/4 FIFO 01 1/2 FIFO 10 3/4 FIFO 11 Полный FIFO
DMAMUX_CxCR — запрос канала DMA и синхронизация
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1->CCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SYNC_ID | NBREQ | SPOL | SE | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | EGE | SOIE | — | DMAREQ_ID | |||||||||||
- SYNC_ID (биты 28:24) — Сигнал синхронизации канала: биты 26:24 у DMAMUX1, 28:24 у DMAMUX2 (в заголовках CMSIS — 5 бит для обоих).
- NBREQ (биты 23:19) — Число запросов после события синхронизации минус 1.
- SPOL (биты 18:17) — Фронт сигнала синхронизации: нет, нарастающий, спадающий или оба.
- SE (бит 16) — Включение синхронизации.
- EGE (бит 9) — Выдача события после NBREQ + 1 запросов.
- SOIE (бит 8) — Прерывание по переполнению синхронизации.
- DMAREQ_ID (биты 6:0) — Номер запроса периферии для канала DMA: биты 6:0 у DMAMUX1 (таблица 124 RM0433), 4:0 у DMAMUX2; заголовки CMSIS задают 8 бит.
DMAMUX_CSR — флаги переполнения синхронизации
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1_ChannelStatus->CSR.
| 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 |
| SOF15 | SOF14 | SOF13 | SOF12 | SOF11 | SOF10 | SOF9 | SOF8 | SOF7 | SOF6 | SOF5 | SOF4 | SOF3 | SOF2 | SOF1 | SOF0 |
- SOF0–SOF15 (по биту на каждый y, положение — на карте битов) — Переполнение синхронизации канала y.
DMAMUX_CFR — сброс флагов переполнения синхронизации
Смещение 0x04, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1_ChannelStatus->CFR.
| 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 |
| CSOF15 | CSOF14 | CSOF13 | CSOF12 | CSOF11 | CSOF10 | CSOF9 | CSOF8 | CSOF7 | CSOF6 | CSOF5 | CSOF4 | CSOF3 | CSOF2 | CSOF1 | CSOF0 |
- CSOF0–CSOF15 (по биту на каждый y, положение — на карте битов) — Сброс флага SOFy записью 1.
- CSOF1 (бит 1) — Сброс флага SOF1 записью 1.
DMAMUX_RGxCR — генератор запросов
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1_RequestGenerator0->RGCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | GNBREQ | GPOL | GE | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | OIE | — | SIG_ID | ||||||||||||
- GNBREQ (биты 23:19) — Число запросов на одно событие минус 1.
- GPOL (биты 18:17) — Фронт сигнала генератора: нет, нарастающий, спадающий или оба.
- GE (бит 16) — Включение генератора запросов.
- OIE (бит 8) — Прерывание по переполнению генератора.
- SIG_ID (биты 4:0) — Сигнал, запускающий генератор запросов: биты 2:0 у DMAMUX1, 4:0 у DMAMUX2 (в заголовках CMSIS — 5 бит для обоих).
DMAMUX_RGSR — флаги переполнения генераторов запросов
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1_RequestGenStatus->RGSR.
| 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 |
| — | OF7 | OF6 | OF5 | OF4 | OF3 | OF2 | OF1 | OF0 | |||||||
- OF0–OF7 (по биту на каждый y, положение — на карте битов) — Переполнение генератора запросов y.
DMAMUX_RGCFR — сброс флагов генераторов запросов
Смещение 0x04, 32 бит, после сброса 0x0000 0000. В коде: DMAMUX1_RequestGenStatus->RGCFR.
| 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 |
| — | COF7 | COF6 | COF5 | COF4 | COF3 | COF2 | COF1 | COF0 | |||||||
- COF0–COF7 (по биту на каждый y, положение — на карте битов) — Сброс флага OFy записью 1.
- COF1 (бит 1) — Сброс флага OF1 записью 1.
Частые вопросы
Почему DMA STM32H7 не работает с буфером в DTCM?
DMA1 и DMA2 не имеют доступа к DTCM: по умолчанию компоновщик кладёт туда переменные. Разместите буфер в AXI SRAM или SRAM1–SRAM3 (секцией в скрипте компоновщика) и учтите кеш данных.
Источники
- STMicroelectronics. RM0433: Reference manual (Rev 9) — раздел 15.5: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-h7 v1.10.7: заголовки CMSIS stm32h742xx.h, stm32h743xx.h, stm32h750xx.h, stm32h753xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32H7
- Все регистры STM32H7Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_HSICFGR, RCC_CRRCR, RCC_CSICFGR, RCC_CFGR, RCC_D1CFGR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_PMCR, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4, SYSCFG_CFGR
- EXTI — контроллер внешних прерываний и событийEXTI_RTSR1, EXTI_FTSR1, EXTI_SWIER1, EXTI_D3PMR1, EXTI_D3PCR1L, EXTI_D3PCR1H
- USART — последовательные порты USART и LPUARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_CFG1, SPI_CFG2, SPI_IER, SPI_SR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR
- TIM — таймерыTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR
- LPTIM — малопотребляющие таймерыLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP
- АЦП — аналого-цифровые преобразователиADC_ISR, ADC_IER, ADC_CR, ADC_CFGR, ADC_CFGR2, ADC_SMPR1
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — блок вычисления CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBGMCU — поддержка отладкиDBGMCU_IDC, DBGMCU_CR, DBGMCU_APB3FZ1, DBGMCU_APB1LFZ1, DBGMCU_APB2FZ1, DBGMCU_APB4FZ1
- PWR — управление питаниемPWR_CR1, PWR_CSR1, PWR_CR2, PWR_CR3, PWR_CPUCR, PWR_D3CR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- ЦАП — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2