Перейти к содержанию

Регистры АЦП STM32H7

Регистры трёх 16-битных АЦП STM32H742/H743/H750/H753: флаги и прерывания, калибровка, разрядность и запуск, предвыбор каналов, время выборки, последовательности, смещения, сторожа и общие настройки пары ADC1/ADC2.

АЦП 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 такта.

ЭкземплярБазовый адресЕсть у
ADC10x4002 2000всех
ADC20x4002 2100всех
ADC30x5802 6000всех
ADC12_COMMON0x4002 2300всех
ADC3_COMMON0x5802 6300всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
ADC_ISR0x00Флаги состояния и прерываний0x0000 0000
ADC_IER0x04Разрешение прерываний0x0000 0000
ADC_CR0x08Регулятор, калибровка, включение, запуск и остановка0x2000 0000
ADC_CFGR0x0CРежимы преобразования, внешний запуск, разрядность, DMA, сторож 10x8000 0000
ADC_CFGR20x10Передискретизация и режимы выборки0x0000 0000
ADC_SMPR10x14Время выборки каналов 0–90x0000 0000
ADC_SMPR20x18Время выборки каналов 10–190x0000 0000
ADC_PCSEL0x1CПредвыбор каналов0x0000 0000
ADC_LTR10x20Нижний порог аналогового сторожа 10x0000 0000
ADC_HTR10x24Верхний порог аналогового сторожа 10x03FF FFFF
ADC_SQR10x30Длина регулярной последовательности и каналы 1–40x0000 0000
ADC_SQR20x34Регулярная последовательность: каналы 5–90x0000 0000
ADC_SQR30x38Регулярная последовательность: каналы 10–140x0000 0000
ADC_SQR40x3CРегулярная последовательность: каналы 15–160x0000 0000
ADC_DR0x40Результат регулярного преобразования0x0000 0000
ADC_JSQR0x4CИнжектированная последовательность и её запуск0x0000 0000
ADC_OFR10x60Смещение 10x0000 0000
ADC_OFR20x64Смещение 20x0000 0000
ADC_OFR30x68Смещение 30x0000 0000
ADC_OFR40x6CСмещение 40x0000 0000
ADC_JDR10x80Результат инжектированного канала 10x0000 0000
ADC_JDR20x84Результат инжектированного канала 20x0000 0000
ADC_JDR30x88Результат инжектированного канала 30x0000 0000
ADC_JDR40x8CРезультат инжектированного канала 40x0000 0000
ADC_AWD2CR0xA0Каналы аналогового сторожа 20x0000 0000
ADC_AWD3CR0xA4Каналы аналогового сторожа 30x0000 0000
ADC_LTR20xB0Нижний порог аналогового сторожа 20x0000 0000
ADC_HTR20xB4Верхний порог аналогового сторожа 20x03FF FFFF
ADC_LTR30xB8Нижний порог аналогового сторожа 30x0000 0000
ADC_HTR30xBCВерхний порог аналогового сторожа 30x03FF FFFF
ADC_DIFSEL0xC0Дифференциальные входы0x0000 0000
ADC_CALFACT0xC4Калибровочные коэффициенты0x0000 0000
ADC_CALFACT20xC8Коэффициенты калибровки линейности0x0000 0000
ADC_CSR0x00Флаги ведущего и ведомого АЦП пары0x0000 0000
ADC_CCR0x08Общие настройки: двойной режим, тактирование, внутренние каналы0x0000 0000
ADC_CDR0x0CРезультаты пары АЦП в двойном режиме0x0000 0000
ADC_CDR20x10Результат чередующихся АЦП в 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.

31302928272625242322212019181716
—
1514131211109876543210
—LDORDY—JQOVFAWD3AWD2AWD1JEOSJEOCOVREOSEOCEOSMPADRDY
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—JQOVFIEAWD3IEAWD2IEAWD1IEJEOSIEJEOCIEOVRIEEOSIEEOCIEEOSMPIEADRDYIE
  • 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.

31302928272625242322212019181716
ADCALADCALDIFDEEPPWDADVREGENLINCALRDYW6LINCALRDYW5LINCALRDYW4LINCALRDYW3LINCALRDYW2LINCALRDYW1—ADCALLIN
1514131211109876543210
—BOOST—JADSTPADSTPJADSTARTADSTARTADDISADEN
  • 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.

31302928272625242322212019181716
JQDISAWD1CHJAUTOJAWD1ENAWD1ENAWD1SGLJQMJDISCENDISCNUMDISCEN
1514131211109876543210
—AUTDLYCONTOVRMODEXTENEXTSELRESDMNGT
  • 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Значение
    00016 бит
    00114 бит (у ревизии V — стандартный режим)
    01012 бит (у ревизии V — стандартный режим)
    01110 бит
    1008 бит у ревизии Y
    10114 бит у ревизии V
    11012 бит у ревизии V
    1118 бит у ревизии V
  • DMNGT (биты 1:0) — Результат: только в DR, DMA однократно, в DFSDM или DMA циклически.
    DMNGTЗначение
    00Только регистр DR
    01DMA, однократно
    10В DFSDM
    11DMA, циклически

ADC_CFGR2 — передискретизация и режимы выборки

Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CFGR2.

31302928272625242322212019181716
LSHIFT—OVSR
1514131211109876543210
—RSHIFT4RSHIFT3RSHIFT2RSHIFT1ROVSMTROVSOVSS—JOVSEROVSE
  • 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.

31302928272625242322212019181716
—SMP9SMP8SMP7SMP6SMP5
1514131211109876543210
SMP5SMP4SMP3SMP2SMP1SMP0
  • SMP0–SMP9 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 1,5…810,5 такта АЦП.
    SMPyЗначение
    0001,5 такта
    0012,5 такта
    0108,5 такта
    01116,5 такта
    10032,5 такта
    10164,5 такта
    110387,5 такта
    111810,5 такта
  • SMP5 (биты 17:15) — Время выборки канала 5: 1,5…810,5 такта АЦП.
    SMP5Значение
    0001,5 такта
    0012,5 такта
    0108,5 такта
    01116,5 такта
    10032,5 такта
    10164,5 такта
    110387,5 такта
    111810,5 такта
  • SMP1 (биты 5:3) — Время выборки канала 1: 1,5…810,5 такта АЦП.
    SMP1Значение
    0001,5 такта
    0012,5 такта
    0108,5 такта
    01116,5 такта
    10032,5 такта
    10164,5 такта
    110387,5 такта
    111810,5 такта

ADC_SMPR2 — время выборки каналов 10–19

Смещение 0x18, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SMPR2.

31302928272625242322212019181716
—SMP19SMP18SMP17SMP16SMP15
1514131211109876543210
SMP15SMP14SMP13SMP12SMP11SMP10
  • SMP10–SMP19 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 1,5…810,5 такта АЦП.
    SMPyЗначение
    0001,5 такта
    0012,5 такта
    0108,5 такта
    01116,5 такта
    10032,5 такта
    10164,5 такта
    110387,5 такта
    111810,5 такта

ADC_PCSEL — предвыбор каналов

Смещение 0x1C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->PCSEL.

31302928272625242322212019181716
—PCSEL
1514131211109876543210
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.

31302928272625242322212019181716
—SQ4—SQ3—SQ2
1514131211109876543210
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.

31302928272625242322212019181716
—SQ9—SQ8—SQ7
1514131211109876543210
SQ7—SQ6—SQ5
  • SQ5–SQ9 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте регулярной последовательности.

ADC_SQR3 — регулярная последовательность: каналы 10–14

Смещение 0x38, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR3.

31302928272625242322212019181716
—SQ14—SQ13—SQ12
1514131211109876543210
SQ12—SQ11—SQ10
  • SQ10–SQ14 (по 5 бита на каждый y, положение — на карте битов) — Номер канала на y-м месте регулярной последовательности.

ADC_SQR4 — регулярная последовательность: каналы 15–16

Смещение 0x3C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->SQR4.

31302928272625242322212019181716
—
1514131211109876543210
—SQ16—SQ15
  • SQ16 (биты 10:6) — Номер канала на 16-м месте регулярной последовательности.
  • SQ15 (биты 4:0) — Номер канала на 15-м месте регулярной последовательности.

ADC_DR — результат регулярного преобразования

Смещение 0x40, 32 бит, после сброса 0x0000 0000. В коде: ADC1->DR.

31302928272625242322212019181716
RDATA
1514131211109876543210
RDATA
  • RDATA (биты 31:0) — Результат регулярного преобразования.

ADC_JSQR — инжектированная последовательность и её запуск

Смещение 0x4C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JSQR.

31302928272625242322212019181716
JSQ4—JSQ3—JSQ2
1514131211109876543210
JSQ2—JSQ1JEXTENJEXTSELJL
  • 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.

31302928272625242322212019181716
SSATEOFFSET1_CHOFFSET1
1514131211109876543210
OFFSET1
  • SSATE (бит 31) — Знаковое насыщение результата после смещения.
  • OFFSET1_CH (биты 30:26) — Канал, к которому применяется смещение 1.
  • OFFSET1 (биты 25:0) — Значение смещения 1: вычитается из результата канала (26 бит).

ADC_OFR2 — смещение 2

Смещение 0x64, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR2.

31302928272625242322212019181716
SSATEOFFSET2_CHOFFSET2
1514131211109876543210
OFFSET2
  • SSATE (бит 31) — Знаковое насыщение результата после смещения.
  • OFFSET2_CH (биты 30:26) — Канал, к которому применяется смещение 2.
  • OFFSET2 (биты 25:0) — Значение смещения 2: вычитается из результата канала (26 бит).

ADC_OFR3 — смещение 3

Смещение 0x68, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR3.

31302928272625242322212019181716
SSATEOFFSET3_CHOFFSET3
1514131211109876543210
OFFSET3
  • SSATE (бит 31) — Знаковое насыщение результата после смещения.
  • OFFSET3_CH (биты 30:26) — Канал, к которому применяется смещение 3.
  • OFFSET3 (биты 25:0) — Значение смещения 3: вычитается из результата канала (26 бит).

ADC_OFR4 — смещение 4

Смещение 0x6C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->OFR4.

31302928272625242322212019181716
SSATEOFFSET4_CHOFFSET4
1514131211109876543210
OFFSET4
  • SSATE (бит 31) — Знаковое насыщение результата после смещения.
  • OFFSET4_CH (биты 30:26) — Канал, к которому применяется смещение 4.
  • OFFSET4 (биты 25:0) — Значение смещения 4: вычитается из результата канала (26 бит).

ADC_JDR1 — результат инжектированного канала 1

Смещение 0x80, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR1.

31302928272625242322212019181716
JDATA
1514131211109876543210
JDATA
  • JDATA (биты 31:0) — Результат инжектированного преобразования.

ADC_JDR2 — результат инжектированного канала 2

Смещение 0x84, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR2.

31302928272625242322212019181716
JDATA
1514131211109876543210
JDATA
  • JDATA (биты 31:0) — Результат инжектированного преобразования.

ADC_JDR3 — результат инжектированного канала 3

Смещение 0x88, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR3.

31302928272625242322212019181716
JDATA
1514131211109876543210
JDATA
  • JDATA (биты 31:0) — Результат инжектированного преобразования.

ADC_JDR4 — результат инжектированного канала 4

Смещение 0x8C, 32 бит, после сброса 0x0000 0000. В коде: ADC1->JDR4.

31302928272625242322212019181716
JDATA
1514131211109876543210
JDATA
  • JDATA (биты 31:0) — Результат инжектированного преобразования.

ADC_AWD2CR — каналы аналогового сторожа 2

Смещение 0xA0, 32 бит, после сброса 0x0000 0000. В коде: ADC1->AWD2CR.

31302928272625242322212019181716
—AWD2CH
1514131211109876543210
AWD2CH
  • AWD2CH (биты 19:0) — Каналы аналогового сторожа 2: по биту на канал.

ADC_AWD3CR — каналы аналогового сторожа 3

Смещение 0xA4, 32 бит, после сброса 0x0000 0000. В коде: ADC1->AWD3CR.

31302928272625242322212019181716
—AWD3CH
1514131211109876543210
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.

31302928272625242322212019181716
—DIFSEL
1514131211109876543210
DIFSEL
  • DIFSEL (биты 19:0) — Дифференциальный режим каналов: по биту на канал.

ADC_CALFACT — калибровочные коэффициенты

Смещение 0xC4, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CALFACT.

31302928272625242322212019181716
—CALFACT_D
1514131211109876543210
—CALFACT_S
  • CALFACT_D (биты 26:16) — Калибровочный коэффициент дифференциального режима.
  • CALFACT_S (биты 10:0) — Калибровочный коэффициент несимметричного режима.

ADC_CALFACT2 — коэффициенты калибровки линейности

Смещение 0xC8, 32 бит, после сброса 0x0000 0000. В коде: ADC1->CALFACT2.

31302928272625242322212019181716
—LINCALFACT
1514131211109876543210
LINCALFACT
  • LINCALFACT (биты 29:0) — Коэффициенты калибровки линейности (по словам LINCALRDYW).

ADC_CSR — флаги ведущего и ведомого АЦП пары

Смещение 0x00, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CSR.

31302928272625242322212019181716
—JQOVF_SLVAWD3_SLVAWD2_SLVAWD1_SLVJEOS_SLVJEOC_SLVOVR_SLVEOS_SLVEOC_SLVEOSMP_SLVADRDY_SLV
1514131211109876543210
—JQOVF_MSTAWD3_MSTAWD2_MSTAWD1_MSTJEOS_MSTJEOC_MSTOVR_MSTEOS_MSTEOC_MSTEOSMP_MSTADRDY_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.

31302928272625242322212019181716
—VBATENTSENVREFENPRESCCKMODE
1514131211109876543210
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.

31302928272625242322212019181716
RDATA_SLV
1514131211109876543210
RDATA_MST
  • RDATA_SLV (биты 31:16) — Результат ведомого АЦП в двойном режиме.
  • RDATA_MST (биты 15:0) — Результат ведущего АЦП в двойном режиме.

ADC_CDR2 — результат чередующихся АЦП в 32-битном формате

Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: ADC12_COMMON->CDR2.

31302928272625242322212019181716
RDATA_ALT
1514131211109876543210
RDATA_ALT
  • RDATA_ALT (биты 31:0) — Результаты чередующихся АЦП пары как одно 32-битное слово.

Частые вопросы

Почему АЦП STM32H7 не преобразует канал?

Канал не выбран в ADC_PCSEL: на STM32H7 его бит обязателен в дополнение к последовательности SQR. Проверьте также, что АЦП вышел из DEEPPWD и стабилизатор включён (ADVREGEN) перед калибровкой и ADEN.

Источники

  1. STMicroelectronics. RM0433: Reference manual (Rev 9) — раздел 25.6: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-h7 v1.10.7: заголовки CMSIS stm32h742xx.h, stm32h743xx.h, stm32h750xx.h, stm32h753xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32H7

Калькуляторы и статьи