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

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

Регистры АЦП STM32G4: регулятор и калибровка, регулярная последовательность до 16 каналов и инжектированная до 4, время выборки, смещения с насыщением, передискретизация до 256 отсчётов, коррекция усиления, три сторожа, DMA и двойной режим.

АЦП STM32G4 — 12-битные, до 4 млн выборок в секунду, того же устройства, что у STM32F3 и L4: регулярная группа (SQR1–SQR4, DR) и инжектированная (JSQR, JDR1–JDR4), смещения OFR1–OFR4 и три аналоговых сторожа. Перед работой нужно сбросить DEEPPWD, включить регулятор ADVREGEN, подождать tADCVREG_STUP и выполнить калибровку ADCAL (RM0440, раздел 21.7).

Новое у STM32G4 — режимы выборки по триггеру и «лампы» (CFGR2), коррекция усиления по ADC_GCOMP, насыщение смещённого результата (SATEN) и фильтр сторожа AWDFILT. Пары ADC1/ADC2 и ADC3/ADC4/ADC5 имеют общие регистры по смещению 0x300: двойной режим, предделитель, внутренние каналы VREFINT, датчик температуры и VBAT. Такт АЦП — PLLP или SYSCLK (ADC12SEL, ADC345SEL в RCC_CCIPR) или синхронный от HCLK.

ЭкземплярБазовый адресЕсть у
ADC10x5000 0000всех
ADC20x5000 0100всех
ADC30x5000 0400STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1
ADC40x5000 0500STM32G473, STM32G474, STM32G483, STM32G484
ADC50x5000 0600STM32G473, STM32G474, STM32G483, STM32G484
ADC12_COMMON0x5000 0300всех
ADC345_COMMON0x5000 0700STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1

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

РегистрСмещениеНазначениеПосле сброса
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–180x0000 0000
ADC_TR10x20Пороги аналогового сторожа 10x0FFF 0000
ADC_TR20x24Пороги аналогового сторожа 20x00FF 0000
ADC_TR30x28Пороги аналогового сторожа 30x00FF 0000
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_DIFSEL0xB0Дифференциальные входы0x0000 0000
ADC_CALFACT0xB4Калибровочные коэффициенты0x0000 0000
ADC_GCOMP0xC0Коэффициент коррекции усиления0x0000 0000
ADC_CSR0x00Флаги ведущего и ведомого АЦП пары0x0000 0000
ADC_CCR0x08Общие настройки: двойной режим, тактирование, внутренние каналы0x0000 0000
ADC_CDR0x0CРезультаты пары АЦП в двойном режиме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
—JQOVFAWD3AWD2AWD1JEOSJEOCOVREOSEOCEOSMPADRDY
  • 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
ADCALADCALDIFDEEPPWDADVREGEN—
1514131211109876543210
—JADSTPADSTPJADSTARTADSTARTADDISADEN
  • ADCAL (бит 31) — Запуск калибровки; сбрасывается по окончании. АЦП должен быть выключен.
  • ADCALDIF (бит 30) — Калибровка для дифференциальных (1) или несимметричных (0) входов.
  • DEEPPWD (бит 29) — Глубокое отключение АЦП; после сброса установлен — сбросьте перед включением регулятора.
  • ADVREGEN (бит 28) — Включение регулятора напряжения АЦП; после него — пауза tADCVREG_STUP.
  • 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
ALIGNAUTDLYCONTOVRMODEXTENEXTSELRES—DMACFGDMAEN
  • 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) — Прерывистый режим регулярной группы.
  • ALIGN (бит 15) — Выравнивание результата: вправо или влево.
  • AUTDLY (бит 14) — Автозадержка: следующее преобразование ждёт чтения результата.
  • CONT (бит 13) — Непрерывное преобразование регулярной группы.
  • OVRMOD (бит 12) — При переполнении: сохранить старый результат (0) или записать новый (1).
  • EXTEN (биты 11:10) — Внешний запуск регулярной группы: выключен, по нарастающему, спадающему или обоим фронтам.
  • EXTSEL (биты 9:5) — Источник внешнего запуска регулярной группы (таблица триггеров в RM0440).
  • RES (биты 4:3) — Разрядность: 12, 10, 8 или 6 бит.
  • DMACFG (бит 1) — DMA: однократный (0) или циклический (1) режим.
  • DMAEN (бит 0) — Запрос DMA после каждого регулярного преобразования.

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

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

31302928272625242322212019181716
—SMPTRIGBULBSWTRIG—GCOMP
1514131211109876543210
—ROVSMTROVSOVSSOVSRJOVSEROVSE
  • SMPTRIG (бит 27) — Выборка по триггеру: идёт от нарастающего до спадающего фронта сигнала запуска.
  • BULB (бит 26) — Режим «лампы»: выборка начинается сразу после конца предыдущего преобразования.
  • SWTRIG (бит 25) — Программный триггер выборки при SMPTRIG = 1: 1 — начать, 0 — преобразовать.
  • GCOMP (бит 16) — Коррекция усиления по коэффициенту ADC_GCOMP на всех каналах.
  • ROVSM (бит 10) — Регулярная передискретизация при прерывании инжектированной группой: продолжить или начать заново.
  • TROVS (бит 9) — Передискретизация по триггеру: каждый отсчёт — по своему запуску.
  • OVSS (биты 8:5) — Сдвиг суммы при передискретизации: 0…8 бит.
  • OVSR (биты 4:2) — Коэффициент передискретизации: 2…256 отсчётов.
  • JOVSE (бит 1) — Передискретизация инжектированных каналов.
  • ROVSE (бит 0) — Передискретизация регулярных каналов.

ADC_SMPR1 — время выборки каналов 0–9

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

31302928272625242322212019181716
SMPPLUS—SMP9SMP8SMP7SMP6SMP5
1514131211109876543210
SMP5SMP4SMP3SMP2SMP1SMP0
  • SMPPLUS (бит 31) — Время выборки 2,5 такта становится 3,5 такта.
  • SMP0–SMP9 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 2,5…640,5 такта АЦП.
  • SMP5 (биты 17:15) — Время выборки канала 5: 2,5…640,5 такта АЦП.
  • SMP2 (биты 8:6) — Время выборки канала 2: 2,5…640,5 такта АЦП.

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

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

31302928272625242322212019181716
—SMP18SMP17SMP16SMP15
1514131211109876543210
SMP15SMP14SMP13SMP12SMP11SMP10
  • SMP10–SMP18 (по 3 бита на каждый y, положение — на карте битов) — Время выборки канала y: 2,5…640,5 такта АЦП.

ADC_TR1 — пороги аналогового сторожа 1

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

31302928272625242322212019181716
—HT1
1514131211109876543210
—AWDFILTLT1
  • HT1 (биты 27:16) — Верхний порог аналогового сторожа 1 (12 бит).
  • AWDFILT (биты 14:12) — Фильтр сторожа 1: флаг после 1…8 подряд срабатываний.
  • LT1 (биты 11:0) — Нижний порог аналогового сторожа 1 (12 бит).

ADC_TR2 — пороги аналогового сторожа 2

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

31302928272625242322212019181716
—HT2
1514131211109876543210
—LT2
  • HT2 (биты 23:16) — Верхний порог аналогового сторожа 2 (старшие 8 бит результата).
  • LT2 (биты 7:0) — Нижний порог аналогового сторожа 2 (старшие 8 бит результата).

ADC_TR3 — пороги аналогового сторожа 3

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

31302928272625242322212019181716
—HT3
1514131211109876543210
—LT3
  • HT3 (биты 23:16) — Верхний порог аналогового сторожа 3 (старшие 8 бит результата).
  • LT3 (биты 7:0) — Нижний порог аналогового сторожа 3 (старшие 8 бит результата).

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
—
1514131211109876543210
RDATA
  • RDATA (биты 15: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) — Источник внешнего запуска инжектированной группы (таблица триггеров в RM0440).
  • JL (биты 1:0) — Длина инжектированной последовательности: 1…4 канала (записывается JL − 1).

ADC_OFR1 — смещение 1

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

31302928272625242322212019181716
OFFSET1_ENOFFSET1_CHSATENOFFSETPOS—
1514131211109876543210
—OFFSET1
  • OFFSET1_EN (бит 31) — Включение смещения 1.
  • OFFSET1_CH (биты 30:26) — Канал, к которому применяется смещение 1.
  • SATEN (бит 25) — Насыщение результата со смещением на 0x000 и 0xFFF (без знака).
  • OFFSETPOS (бит 24) — Знак смещения: вычитание (0) или прибавление (1).
  • OFFSET1 (биты 11:0) — Значение смещения 1: вычитается из результата канала.

ADC_OFR2 — смещение 2

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

31302928272625242322212019181716
OFFSET2_ENOFFSET2_CHSATENOFFSETPOS—
1514131211109876543210
—OFFSET2
  • OFFSET2_EN (бит 31) — Включение смещения 2.
  • OFFSET2_CH (биты 30:26) — Канал, к которому применяется смещение 2.
  • SATEN (бит 25) — Насыщение результата со смещением на 0x000 и 0xFFF (без знака).
  • OFFSETPOS (бит 24) — Знак смещения: вычитание (0) или прибавление (1).
  • OFFSET2 (биты 11:0) — Значение смещения 2: вычитается из результата канала.

ADC_OFR3 — смещение 3

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

31302928272625242322212019181716
OFFSET3_ENOFFSET3_CHSATENOFFSETPOS—
1514131211109876543210
—OFFSET3
  • OFFSET3_EN (бит 31) — Включение смещения 3.
  • OFFSET3_CH (биты 30:26) — Канал, к которому применяется смещение 3.
  • SATEN (бит 25) — Насыщение результата со смещением на 0x000 и 0xFFF (без знака).
  • OFFSETPOS (бит 24) — Знак смещения: вычитание (0) или прибавление (1).
  • OFFSET3 (биты 11:0) — Значение смещения 3: вычитается из результата канала.

ADC_OFR4 — смещение 4

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

31302928272625242322212019181716
OFFSET4_ENOFFSET4_CHSATENOFFSETPOS—
1514131211109876543210
—OFFSET4
  • OFFSET4_EN (бит 31) — Включение смещения 4.
  • OFFSET4_CH (биты 30:26) — Канал, к которому применяется смещение 4.
  • SATEN (бит 25) — Насыщение результата со смещением на 0x000 и 0xFFF (без знака).
  • OFFSETPOS (бит 24) — Знак смещения: вычитание (0) или прибавление (1).
  • OFFSET4 (биты 11:0) — Значение смещения 4: вычитается из результата канала.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ADC_DIFSEL — дифференциальные входы

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

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

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

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

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

ADC_GCOMP — коэффициент коррекции усиления

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

31302928272625242322212019181716
—
1514131211109876543210
—GCOMPCOEFF
  • GCOMPCOEFF (биты 13:0) — Коэффициент коррекции усиления: 0…3,999756 с шагом 1/4096.

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
—VBATSELVSENSESELVREFENPRESCCKMODE
1514131211109876543210
MDMADMACFG—DELAY—DUAL
  • VBATSEL (бит 24) — Внутренний канал VBAT / 3.
  • VSENSESEL (бит 23) — Внутренний канал датчика температуры.
  • VREFEN (бит 22) — Внутренний канал опорного напряжения VREFINT.
  • PRESC (биты 21:18) — Предделитель асинхронного такта АЦП: 1…256.
  • CKMODE (биты 17:16) — Тактирование: асинхронный такт из RCC (00) или синхронный HCLK / 1, / 2, / 4.
  • MDMA (биты 15:14) — DMA в двойном режиме: выключен, 12/10 бит или 8/6 бит.
  • DMACFG (бит 13) — DMA: однократный (0) или циклический (1) режим.
  • 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) — Результат ведущего АЦП в двойном режиме.

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

С чего начать работу с АЦП STM32G4?

Включите тактирование ADC12EN и источник ADC12SEL, сбросьте DEEPPWD, установите ADVREGEN и подождите 20 мкс. Затем ADCAL = 1 при ADEN = 0 и ожидание конца калибровки, после — ADEN = 1 и ожидание ADRDY.

Как получить 16 бит вместо 12?

Передискретизацией: ROVSE = 1, OVSR = 111 (256 отсчётов) и OVSS = 0100 (сдвиг на 4) дают 16-битный результат ценой частоты преобразований.

Источники

  1. STMicroelectronics. RM0440: Reference manual (Rev 9) — раздел 21.7–21.8: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-g4 v1.2.6: заголовки CMSIS stm32g431xx.h, stm32g441xx.h, stm32g471xx.h, stm32g473xx.h, stm32g474xx.h, stm32g483xx.h, stm32g484xx.h, stm32g491xx.h, stm32g4a1xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

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

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

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