Регистры АЦП STM32H7
Регистры трёх 16-битных АЦП STM32H742/H743/H750/H753: флаги и прерывания, калибровка, разрядность и запуск, предвыбор каналов, время выборки, последовательности, смещения, сторожа и общие настройки пары ADC1/ADC2.
Содержание
- Регистры блока
- Конструктор
- ADC_ISR
- ADC_IER
- ADC_CR
- ADC_CFGR
- ADC_CFGR2
- ADC_SMPR1
- ADC_SMPR2
- ADC_PCSEL
- ADC_LTR1
- ADC_HTR1
- ADC_SQR1
- ADC_SQR2
- ADC_SQR3
- ADC_SQR4
- ADC_DR
- ADC_JSQR
- ADC_OFR1
- ADC_OFR2
- ADC_OFR3
- ADC_OFR4
- ADC_JDR1
- ADC_JDR2
- ADC_JDR3
- ADC_JDR4
- ADC_AWD2CR
- ADC_AWD3CR
- ADC_LTR2
- ADC_HTR2
- ADC_LTR3
- ADC_HTR3
- ADC_DIFSEL
- ADC_CALFACT
- ADC_CALFACT2
- ADC_CSR
- ADC_CCR
- ADC_CDR
- ADC_CDR2
АЦП STM32H7 — блок того же поколения, что у STM32G4 (регистры ISR, CR, CFGR, SQR, JSQR, смещения OFR и три сторожа), но 16-битный. Каналы надо предварительно выбрать в ADC_PCSEL, режим тока BOOST — задать по частоте АЦП, а перед включением выйти из глубокого отключения (DEEPPWD), включить стабилизатор ADVREGEN и откалибровать смещение и линейность (RM0433, раздел 25.6).
Коды разрядности RES у ревизий Y и V разные: у ревизии V 14, 12 и 8 бит задаются кодами 101, 110 и 111. Время выборки — 1,5…810,5 такта.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| ADC1 | 0x4002 2000 | всех |
| ADC2 | 0x4002 2100 | всех |
| ADC3 | 0x5802 6000 | всех |
| ADC12_COMMON | 0x4002 2300 | всех |
| ADC3_COMMON | 0x5802 6300 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| ADC_ISR | 0x00 | Флаги состояния и прерываний | 0x0000 0000 |
| ADC_IER | 0x04 | Разрешение прерываний | 0x0000 0000 |
| ADC_CR | 0x08 | Регулятор, калибровка, включение, запуск и остановка | 0x2000 0000 |
| ADC_CFGR | 0x0C | Режимы преобразования, внешний запуск, разрядность, DMA, сторож 1 | 0x8000 0000 |
| ADC_CFGR2 | 0x10 | Передискретизация и режимы выборки | 0x0000 0000 |
| ADC_SMPR1 | 0x14 | Время выборки каналов 0–9 | 0x0000 0000 |
| ADC_SMPR2 | 0x18 | Время выборки каналов 10–19 | 0x0000 0000 |
| ADC_PCSEL | 0x1C | Предвыбор каналов | 0x0000 0000 |
| ADC_LTR1 | 0x20 | Нижний порог аналогового сторожа 1 | 0x0000 0000 |
| ADC_HTR1 | 0x24 | Верхний порог аналогового сторожа 1 | 0x03FF FFFF |
| ADC_SQR1 | 0x30 | Длина регулярной последовательности и каналы 1–4 | 0x0000 0000 |
| ADC_SQR2 | 0x34 | Регулярная последовательность: каналы 5–9 | 0x0000 0000 |
| ADC_SQR3 | 0x38 | Регулярная последовательность: каналы 10–14 | 0x0000 0000 |
| ADC_SQR4 | 0x3C | Регулярная последовательность: каналы 15–16 | 0x0000 0000 |
| ADC_DR | 0x40 | Результат регулярного преобразования | 0x0000 0000 |
| ADC_JSQR | 0x4C | Инжектированная последовательность и её запуск | 0x0000 0000 |
| ADC_OFR1 | 0x60 | Смещение 1 | 0x0000 0000 |
| ADC_OFR2 | 0x64 | Смещение 2 | 0x0000 0000 |
| ADC_OFR3 | 0x68 | Смещение 3 | 0x0000 0000 |
| ADC_OFR4 | 0x6C | Смещение 4 | 0x0000 0000 |
| ADC_JDR1 | 0x80 | Результат инжектированного канала 1 | 0x0000 0000 |
| ADC_JDR2 | 0x84 | Результат инжектированного канала 2 | 0x0000 0000 |
| ADC_JDR3 | 0x88 | Результат инжектированного канала 3 | 0x0000 0000 |
| ADC_JDR4 | 0x8C | Результат инжектированного канала 4 | 0x0000 0000 |
| ADC_AWD2CR | 0xA0 | Каналы аналогового сторожа 2 | 0x0000 0000 |
| ADC_AWD3CR | 0xA4 | Каналы аналогового сторожа 3 | 0x0000 0000 |
| ADC_LTR2 | 0xB0 | Нижний порог аналогового сторожа 2 | 0x0000 0000 |
| ADC_HTR2 | 0xB4 | Верхний порог аналогового сторожа 2 | 0x03FF FFFF |
| ADC_LTR3 | 0xB8 | Нижний порог аналогового сторожа 3 | 0x0000 0000 |
| ADC_HTR3 | 0xBC | Верхний порог аналогового сторожа 3 | 0x03FF FFFF |
| ADC_DIFSEL | 0xC0 | Дифференциальные входы | 0x0000 0000 |
| ADC_CALFACT | 0xC4 | Калибровочные коэффициенты | 0x0000 0000 |
| ADC_CALFACT2 | 0xC8 | Коэффициенты калибровки линейности | 0x0000 0000 |
| ADC_CSR | 0x00 | Флаги ведущего и ведомого АЦП пары | 0x0000 0000 |
| ADC_CCR | 0x08 | Общие настройки: двойной режим, тактирование, внутренние каналы | 0x0000 0000 |
| ADC_CDR | 0x0C | Результаты пары АЦП в двойном режиме | 0x0000 0000 |
| ADC_CDR2 | 0x10 | Результат чередующихся АЦП в 32-битном формате | 0x0000 0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
ADC1->ISR = 0x00000000;ADC_ISR — флаги состояния и прерываний
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: ADC1->ISR.
| 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 |
| — | LDORDY | — | JQOVF | AWD3 | AWD2 | AWD1 | JEOS | JEOC | OVR | EOS | EOC | EOSMP | ADRDY | ||
- LDORDY (бит 12) — Внутренний стабилизатор АЦП готов (только чтение).
- JQOVF (бит 10) — Переполнение очереди контекстов инжектированной группы (JSQR).
- AWD1–AWD3 (по биту на каждый y, положение — на карте битов) — Сработал аналоговый сторож y.
- JEOS (бит 6) — Окончание инжектированной последовательности.
- JEOC (бит 5) — Окончание инжектированного преобразования.
- OVR (бит 4) — Переполнение: новый результат, а DR не прочитан.
- EOS (бит 3) — Окончание регулярной последовательности.
- EOC (бит 2) — Окончание регулярного преобразования; сбрасывается чтением DR.
- EOSMP (бит 1) — Окончание выборки регулярного канала.
- ADRDY (бит 0) — АЦП готов к преобразованиям.
ADC_IER — разрешение прерываний
Смещение 0x04, 32 бит, после сброса 0x0000 0000. В коде: ADC1->IER.
| 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 |
| — | JQOVFIE | AWD3IE | AWD2IE | AWD1IE | JEOSIE | JEOCIE | OVRIE | EOSIE | EOCIE | EOSMPIE | ADRDYIE | ||||
- JQOVFIE (бит 10) — Прерывание по переполнению очереди контекстов инжектированной группы (JSQR).
- AWD3IE (бит 9) — Прерывание аналогового сторожа 3.
- AWD2IE (бит 8) — Прерывание аналогового сторожа 2.
- AWD1IE (бит 7) — Прерывание аналогового сторожа 1.
- JEOSIE (бит 6) — Прерывание по окончании инжектированной последовательности.
- JEOCIE (бит 5) — Прерывание по окончании инжектированного преобразования.
- OVRIE (бит 4) — Прерывание по переполнению.
- EOSIE (бит 3) — Прерывание по окончании регулярной последовательности.
- EOCIE (бит 2) — Прерывание по окончании регулярного преобразования.
- EOSMPIE (бит 1) — Прерывание по окончании выборки регулярного канала.
- ADRDYIE (бит 0) — Прерывание: АЦП готов к преобразованиям.
ADC_CR — регулятор, калибровка, включение, запуск и остановка
Смещение 0x08, 32 бит, после сброса 0x2000 0000. В коде: ADC1->CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ADCAL | ADCALDIF | DEEPPWD | ADVREGEN | LINCALRDYW6 | LINCALRDYW5 | LINCALRDYW4 | LINCALRDYW3 | LINCALRDYW2 | LINCALRDYW1 | — | ADCALLIN | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | BOOST | — | JADSTP | ADSTP | JADSTART | ADSTART | ADDIS | ADEN | |||||||
- ADCAL (бит 31) — Запуск калибровки; сбрасывается по окончании. АЦП должен быть выключен.
- ADCALDIF (бит 30) — Калибровка для дифференциальных (1) или несимметричных (0) входов.
- DEEPPWD (бит 29) — Глубокое отключение АЦП; после сброса установлен — сбросьте перед включением регулятора.
- ADVREGEN (бит 28) — Включение регулятора напряжения АЦП; после него — пауза tADCVREG_STUP.
- LINCALRDYW1–LINCALRDYW6 (по биту на каждый y, положение — на карте битов) — Слово y калибровки линейности готово к чтению или записи.
- ADCALLIN (бит 16) — Калибровка линейности вместе со смещением (ADCAL).
- BOOST (биты 9:8) — Режим тока АЦП по его частоте: до 6,25, 12,5, 25 или 50 МГц.
BOOST Значение 00 Частота АЦП до 6,25 МГц 01 До 12,5 МГц 10 До 25 МГц 11 До 50 МГц - JADSTP (бит 5) — Остановка инжектированных преобразований.
- ADSTP (бит 4) — Остановка регулярных преобразований.
- JADSTART (бит 3) — Запуск инжектированных преобразований (или ожидание триггера).
- ADSTART (бит 2) — Запуск регулярных преобразований (или ожидание триггера).
- ADDIS (бит 1) — Выключение АЦП.
- ADEN (бит 0) — Включение АЦП; готовность — флаг ADRDY.
ADC_CFGR — режимы преобразования, внешний запуск, разрядность, DMA, сторож 1
Смещение 0x0C, 32 бит, после сброса 0x8000 0000. В коде: ADC1->CFGR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JQDIS | AWD1CH | JAUTO | JAWD1EN | AWD1EN | AWD1SGL | JQM | JDISCEN | DISCNUM | DISCEN | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | AUTDLY | CONT | OVRMOD | EXTEN | EXTSEL | RES | DMNGT | ||||||||
- JQDIS (бит 31) — Запрет очереди контекстов инжектированной группы; после сброса установлен.
- AWD1CH (биты 30:26) — Канал аналогового сторожа 1 при AWD1SGL = 1.
- JAUTO (бит 25) — Автоматический запуск инжектированной группы после регулярной.
- JAWD1EN (бит 24) — Сторож 1 следит за инжектированными каналами.
- AWD1EN (бит 23) — Сторож 1 следит за регулярными каналами.
- AWD1SGL (бит 22) — Сторож 1 следит за одним каналом (AWD1CH) или за всеми.
- JQM (бит 21) — Режим очереди JSQR: при пустой очереди ждать триггер (0) или выключить инжектированную группу (1).
- JDISCEN (бит 20) — Прерывистый режим инжектированной группы: по каналу на каждый триггер.
- DISCNUM (биты 19:17) — Число регулярных каналов на один триггер в прерывистом режиме: 1…8.
- DISCEN (бит 16) — Прерывистый режим регулярной группы.
- AUTDLY (бит 14) — Автозадержка: следующее преобразование ждёт чтения результата.
- CONT (бит 13) — Непрерывное преобразование регулярной группы.
- OVRMOD (бит 12) — При переполнении: сохранить старый результат (0) или записать новый (1).
- EXTEN (биты 11:10) — Внешний запуск регулярной группы: выключен, по нарастающему, спадающему или обоим фронтам.
- EXTSEL (биты 9:5) — Источник внешнего запуска регулярной группы (таблица 212 RM0433).
- RES (биты 4:2) — Разрядность: 16, 14, 12, 10 или 8 бит; коды у ревизий Y и V разные.
RES Значение 000 16 бит 001 14 бит (у ревизии V — стандартный режим) 010 12 бит (у ревизии V — стандартный режим) 011 10 бит 100 8 бит у ревизии Y 101 14 бит у ревизии V 110 12 бит у ревизии V 111 8 бит у ревизии V - DMNGT (биты 1:0) — Результат: только в DR, DMA однократно, в DFSDM или DMA циклически.
DMNGT Значение 00 Только регистр DR 01 DMA, однократно 10 В DFSDM 11 DMA, циклически
ADC_CFGR2 — передискретизация и режимы выборки
Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CFGR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LSHIFT | — | OVSR | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RSHIFT4 | RSHIFT3 | RSHIFT2 | RSHIFT1 | ROVSM | TROVS | OVSS | — | JOVSE | ROVSE | |||||
- LSHIFT (биты 31:28) — Сдвиг результата влево: 0…15 бит.
- OVSR (биты 25:16) — Коэффициент передискретизации: 2…256 отсчётов.
- RSHIFT2–RSHIFT4 (по биту на каждый y, положение — на карте битов) — Сдвиг результата вправо на 1 бит после смещения y.
- RSHIFT1 (бит 11) — Сдвиг результата вправо на 1 бит после смещения 1.
- ROVSM (бит 10) — Регулярная передискретизация при прерывании инжектированной группой: продолжить или начать заново.
- TROVS (бит 9) — Передискретизация по триггеру: каждый отсчёт — по своему запуску.
- OVSS (биты 8:5) — Сдвиг суммы при передискретизации: 0…8 бит.
- JOVSE (бит 1) — Передискретизация инжектированных каналов.
- ROVSE (бит 0) — Передискретизация регулярных каналов.
ADC_SMPR1 — время выборки каналов 0–9
Смещение 0x14, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SMPR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SMP9 | SMP8 | SMP7 | SMP6 | SMP5 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SMP5 | SMP4 | SMP3 | SMP2 | SMP1 | SMP0 | ||||||||||
- SMP0–SMP9 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 1,5…810,5 такта АЦП.
SMPy Значение 000 1,5 такта 001 2,5 такта 010 8,5 такта 011 16,5 такта 100 32,5 такта 101 64,5 такта 110 387,5 такта 111 810,5 такта - SMP5 (биты 17:15) — Время выборки канала 5: 1,5…810,5 такта АЦП.
SMP5 Значение 000 1,5 такта 001 2,5 такта 010 8,5 такта 011 16,5 такта 100 32,5 такта 101 64,5 такта 110 387,5 такта 111 810,5 такта - SMP1 (биты 5:3) — Время выборки канала 1: 1,5…810,5 такта АЦП.
SMP1 Значение 000 1,5 такта 001 2,5 такта 010 8,5 такта 011 16,5 такта 100 32,5 такта 101 64,5 такта 110 387,5 такта 111 810,5 такта
ADC_SMPR2 — время выборки каналов 10–19
Смещение 0x18, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SMPR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SMP19 | SMP18 | SMP17 | SMP16 | SMP15 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SMP15 | SMP14 | SMP13 | SMP12 | SMP11 | SMP10 | ||||||||||
- SMP10–SMP19 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 1,5…810,5 такта АЦП.
SMPy Значение 000 1,5 такта 001 2,5 такта 010 8,5 такта 011 16,5 такта 100 32,5 такта 101 64,5 такта 110 387,5 такта 111 810,5 такта
ADC_PCSEL — предвыбор каналов
Смещение 0x1C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->PCSEL.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PCSEL | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PCSEL | |||||||||||||||
- PCSEL (биты 19:0) — Предвыбор каналов: по биту на канал, обязателен для преобразуемых.
ADC_LTR1 — нижний порог аналогового сторожа 1
Смещение 0x20, 32 бит, после сброса 0x0000 0000. В коде: ADC1->LTR1.
Регистр данных: значение занимает его целиком.
ADC_HTR1 — верхний порог аналогового сторожа 1
Смещение 0x24, 32 бит, после сброса 0x03FF FFFF. В коде: ADC1->HTR1.
Регистр данных: значение занимает его целиком.
ADC_SQR1 — длина регулярной последовательности и каналы 1–4
Смещение 0x30, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SQ4 | — | SQ3 | — | SQ2 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SQ2 | — | SQ1 | — | L | |||||||||||
- SQ1–SQ4 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте регулярной последовательности.
- L (биты 3:0) — Длина регулярной последовательности: 1…16 каналов (записывается L − 1).
ADC_SQR2 — регулярная последовательность: каналы 5–9
Смещение 0x34, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SQ9 | — | SQ8 | — | SQ7 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SQ7 | — | SQ6 | — | SQ5 | |||||||||||
- SQ5–SQ9 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте регулярной последовательности.
ADC_SQR3 — регулярная последовательность: каналы 10–14
Смещение 0x38, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SQ14 | — | SQ13 | — | SQ12 | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SQ12 | — | SQ11 | — | SQ10 | |||||||||||
- SQ10–SQ14 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте регулярной последовательности.
ADC_SQR4 — регулярная последовательность: каналы 15–16
Смещение 0x3C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR4.
| 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 |
| — | SQ16 | — | SQ15 | ||||||||||||
- SQ16 (биты 10:6) — Номер канала на 16-м месте регулярной последовательности.
- SQ15 (биты 4:0) — Номер канала на 15-м месте регулярной последовательности.
ADC_DR — результат регулярного преобразования
Смещение 0x40, 32 бит, после сброса 0x0000 0000. В коде: ADC1->DR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RDATA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RDATA | |||||||||||||||
- RDATA (биты 31:0) — Результат регулярного преобразования.
ADC_JSQR — инжектированная последовательность и её запуск
Смещение 0x4C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JSQR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JSQ4 | — | JSQ3 | — | JSQ2 | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JSQ2 | — | JSQ1 | JEXTEN | JEXTSEL | JL | ||||||||||
- JSQ1–JSQ4 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте инжектированной последовательности.
- JEXTEN (биты 8:7) — Внешний запуск инжектированной группы: выключен, по нарастающему, спадающему или обоим фронтам.
- JEXTSEL (биты 6:2) — Источник внешнего запуска инжектированной группы (таблица 213 RM0433).
- JL (биты 1:0) — Длина инжектированной последовательности: 1…4 канала (записывается JL − 1).
ADC_OFR1 — смещение 1
Смещение 0x60, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SSATE | OFFSET1_CH | OFFSET1 | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OFFSET1 | |||||||||||||||
- SSATE (бит 31) — Знаковое насыщение результата после смещения.
- OFFSET1_CH (биты 30:26) — Канал, к которому применяется смещение 1.
- OFFSET1 (биты 25:0) — Значение смещения 1: вычитается из результата канала (26 бит).
ADC_OFR2 — смещение 2
Смещение 0x64, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SSATE | OFFSET2_CH | OFFSET2 | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OFFSET2 | |||||||||||||||
- SSATE (бит 31) — Знаковое насыщение результата после смещения.
- OFFSET2_CH (биты 30:26) — Канал, к которому применяется смещение 2.
- OFFSET2 (биты 25:0) — Значение смещения 2: вычитается из результата канала (26 бит).
ADC_OFR3 — смещение 3
Смещение 0x68, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SSATE | OFFSET3_CH | OFFSET3 | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OFFSET3 | |||||||||||||||
- SSATE (бит 31) — Знаковое насыщение результата после смещения.
- OFFSET3_CH (биты 30:26) — Канал, к которому применяется смещение 3.
- OFFSET3 (биты 25:0) — Значение смещения 3: вычитается из результата канала (26 бит).
ADC_OFR4 — смещение 4
Смещение 0x6C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR4.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SSATE | OFFSET4_CH | OFFSET4 | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OFFSET4 | |||||||||||||||
- SSATE (бит 31) — Знаковое насыщение результата после смещения.
- OFFSET4_CH (биты 30:26) — Канал, к которому применяется смещение 4.
- OFFSET4 (биты 25:0) — Значение смещения 4: вычитается из результата канала (26 бит).
ADC_JDR1 — результат инжектированного канала 1
Смещение 0x80, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JDATA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JDATA | |||||||||||||||
- JDATA (биты 31:0) — Результат инжектированного преобразования.
ADC_JDR2 — результат инжектированного канала 2
Смещение 0x84, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JDATA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JDATA | |||||||||||||||
- JDATA (биты 31:0) — Результат инжектированного преобразования.
ADC_JDR3 — результат инжектированного канала 3
Смещение 0x88, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JDATA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JDATA | |||||||||||||||
- JDATA (биты 31:0) — Результат инжектированного преобразования.
ADC_JDR4 — результат инжектированного канала 4
Смещение 0x8C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR4.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| JDATA | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JDATA | |||||||||||||||
- JDATA (биты 31:0) — Результат инжектированного преобразования.
ADC_AWD2CR — каналы аналогового сторожа 2
Смещение 0xA0, 32 бит, после сброса 0x0000 0000. В коде: ADC1->AWD2CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | AWD2CH | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| AWD2CH | |||||||||||||||
- AWD2CH (биты 19:0) — Каналы аналогового сторожа 2: по биту на канал.
ADC_AWD3CR — каналы аналогового сторожа 3
Смещение 0xA4, 32 бит, после сброса 0x0000 0000. В коде: ADC1->AWD3CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | AWD3CH | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| AWD3CH | |||||||||||||||
- AWD3CH (биты 19:0) — Каналы аналогового сторожа 3: по биту на канал.
ADC_LTR2 — нижний порог аналогового сторожа 2
Смещение 0xB0, 32 бит, после сброса 0x0000 0000. В коде: ADC1->LTR2.
Регистр данных: значение занимает его целиком.
ADC_HTR2 — верхний порог аналогового сторожа 2
Смещение 0xB4, 32 бит, после сброса 0x03FF FFFF. В коде: ADC1->HTR2.
Регистр данных: значение занимает его целиком.
ADC_LTR3 — нижний порог аналогового сторожа 3
Смещение 0xB8, 32 бит, после сброса 0x0000 0000. В коде: ADC1->LTR3.
Регистр данных: значение занимает его целиком.
ADC_HTR3 — верхний порог аналогового сторожа 3
Смещение 0xBC, 32 бит, после сброса 0x03FF FFFF. В коде: ADC1->HTR3.
Регистр данных: значение занимает его целиком.
ADC_DIFSEL — дифференциальные входы
Смещение 0xC0, 32 бит, после сброса 0x0000 0000. В коде: ADC1->DIFSEL.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | DIFSEL | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DIFSEL | |||||||||||||||
- DIFSEL (биты 19:0) — Дифференциальный режим каналов: по биту на канал.
ADC_CALFACT — калибровочные коэффициенты
Смещение 0xC4, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CALFACT.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CALFACT_D | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CALFACT_S | ||||||||||||||
- CALFACT_D (биты 26:16) — Калибровочный коэффициент дифференциального режима.
- CALFACT_S (биты 10:0) — Калибровочный коэффициент несимметричного режима.
ADC_CALFACT2 — коэффициенты калибровки линейности
Смещение 0xC8, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CALFACT2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | LINCALFACT | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LINCALFACT | |||||||||||||||
- LINCALFACT (биты 29:0) — Коэффициенты калибровки линейности (по словам LINCALRDYW).
ADC_CSR — флаги ведущего и ведомого АЦП пары
Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CSR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | JQOVF_SLV | AWD3_SLV | AWD2_SLV | AWD1_SLV | JEOS_SLV | JEOC_SLV | OVR_SLV | EOS_SLV | EOC_SLV | EOSMP_SLV | ADRDY_SLV | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | JQOVF_MST | AWD3_MST | AWD2_MST | AWD1_MST | JEOS_MST | JEOC_MST | OVR_MST | EOS_MST | EOC_MST | EOSMP_MST | ADRDY_MST | ||||
- JQOVF_SLV (бит 26) — Копия флага JQOVF ведомого АЦП пары (только чтение).
- AWD3_SLV (бит 25) — Копия флага AWD3 ведомого АЦП пары (только чтение).
- AWD2_SLV (бит 24) — Копия флага AWD2 ведомого АЦП пары (только чтение).
- AWD1_SLV (бит 23) — Копия флага AWD1 ведомого АЦП пары (только чтение).
- JEOS_SLV (бит 22) — Копия флага JEOS ведомого АЦП пары (только чтение).
- JEOC_SLV (бит 21) — Копия флага JEOC ведомого АЦП пары (только чтение).
- OVR_SLV (бит 20) — Копия флага OVR ведомого АЦП пары (только чтение).
- EOS_SLV (бит 19) — Копия флага EOS ведомого АЦП пары (только чтение).
- EOC_SLV (бит 18) — Копия флага EOC ведомого АЦП пары (только чтение).
- EOSMP_SLV (бит 17) — Копия флага EOSMP ведомого АЦП пары (только чтение).
- ADRDY_SLV (бит 16) — Копия флага ADRDY ведомого АЦП пары (только чтение).
- JQOVF_MST (бит 10) — Копия флага JQOVF ведущего АЦП пары (только чтение).
- AWD3_MST (бит 9) — Копия флага AWD3 ведущего АЦП пары (только чтение).
- AWD2_MST (бит 8) — Копия флага AWD2 ведущего АЦП пары (только чтение).
- AWD1_MST (бит 7) — Копия флага AWD1 ведущего АЦП пары (только чтение).
- JEOS_MST (бит 6) — Копия флага JEOS ведущего АЦП пары (только чтение).
- JEOC_MST (бит 5) — Копия флага JEOC ведущего АЦП пары (только чтение).
- OVR_MST (бит 4) — Копия флага OVR ведущего АЦП пары (только чтение).
- EOS_MST (бит 3) — Копия флага EOS ведущего АЦП пары (только чтение).
- EOC_MST (бит 2) — Копия флага EOC ведущего АЦП пары (только чтение).
- EOSMP_MST (бит 1) — Копия флага EOSMP ведущего АЦП пары (только чтение).
- ADRDY_MST (бит 0) — Копия флага ADRDY ведущего АЦП пары (только чтение).
ADC_CCR — общие настройки: двойной режим, тактирование, внутренние каналы
Смещение 0x08, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | VBATEN | TSEN | VREFEN | PRESC | CKMODE | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DAMDF | — | DELAY | — | DUAL | |||||||||||
- VBATEN (бит 24) — Внутренний канал VBAT / 3.
- TSEN (бит 23) — Внутренний канал датчика температуры.
- VREFEN (бит 22) — Внутренний канал опорного напряжения VREFINT.
- PRESC (биты 21:18) — Предделитель асинхронного такта АЦП: 1…256.
- CKMODE (биты 17:16) — Тактирование: асинхронный такт из RCC (00) или синхронный HCLK / 1, / 2, / 4.
- DAMDF (биты 15:14) — Формат данных пары АЦП: без упаковки, 32 бита или 8 бит на результат.
- DELAY (биты 11:8) — Задержка между выборками ведущего и ведомого АЦП в чередующемся режиме.
- DUAL (биты 4:0) — Режим пары АЦП: независимый, одновременный, чередующийся, поочерёдный запуск.
ADC_CDR — результаты пары АЦП в двойном режиме
Смещение 0x0C, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CDR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RDATA_SLV | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RDATA_MST | |||||||||||||||
- RDATA_SLV (биты 31:16) — Результат ведомого АЦП в двойном режиме.
- RDATA_MST (биты 15:0) — Результат ведущего АЦП в двойном режиме.
ADC_CDR2 — результат чередующихся АЦП в 32-битном формате
Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CDR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RDATA_ALT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RDATA_ALT | |||||||||||||||
- RDATA_ALT (биты 31:0) — Результаты чередующихся АЦП пары как одно 32-битное слово.
Частые вопросы
Почему АЦП STM32H7 не преобразует канал?
Канал не выбран в ADC_PCSEL: на STM32H7 его бит обязателен в дополнение к последовательности SQR. Проверьте также, что АЦП вышел из DEEPPWD и стабилизатор включён (ADVREGEN) перед калибровкой и ADEN.
Источники
- STMicroelectronics. RM0433: Reference manual (Rev 9) — раздел 25.6: описание регистров, назначение полей и значения после сброса
- 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
- DMA — контроллеры DMA и мультиплексор запросовDMA_LISR, DMA_HISR, DMA_LIFCR, DMA_HIFCR, DMA_SxCR, DMA_SxNDT
- 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