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

Регистры RTC STM32G4

Регистры RTC и TAMP STM32G4: календарь в BCD и доли секунды, предделители, два будильника, таймер пробуждения, метка времени, калибровка, флаги в SR и их сброс в SCR, входы вмешательства и 32 резервных регистра.

RTC STM32G4 — то же поколение, что у STM32G0: инициализация и состояние вынесены в ICSR, флаги — в SR, флаги разрешённых прерываний — в MISR, сброс флагов — запись 1 в SCR. Входы вмешательства и резервные регистры перенесены в отдельный блок TAMP (RM0440, разделы 37.6 и 38.6).

Регистры RTC защищены от записи (0xCA и 0x53 в WPR), домен RTC — битом DBP в PWR_CR1. Резервных регистров TAMP_BKP0R…BKP31R 32; срабатывание входа вмешательства стирает их, если не установлен TAMPxNOERASE. Тактирование RTC — LSE, LSI или HSE / 32 (RTCSEL в RCC_BDCR); для доступа к регистрам нужен ещё бит RTCAPBEN в RCC_APB1ENR1.

ЭкземплярБазовый адресЕсть у
RTC0x4000 2800всех
TAMP0x4000 2400всех

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

РегистрСмещениеНазначениеПосле сброса
RTC_TR0x00Время0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_DR0x04Дата0x0000 2101 (при сбросе резервного домена; системный сброс даёт 0x0000 2101 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_SSR0x08Доли секунды0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_ICSR0x0CИнициализация и состояние0x0000 0007 (при сбросе резервного домена; системный сброс обнуляет только INIT, INITF и RSF)
RTC_PRER0x10Предделители0x007F 00FF (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_WUTR0x14Период таймера пробуждения0x0000 FFFF (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_CR0x18Будильники, таймер пробуждения, метка времени, выходы0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_WPR0x24Защита от записи0x0000 0000
RTC_CALR0x28Точная калибровка хода0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_SHIFTR0x2CСдвиг на доли секунды0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_TSTR0x30Метка времени: время0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_TSDR0x34Метка времени: дата0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_TSSSR0x38Метка времени: доли секунды0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_ALRMAR0x40Будильник A0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_ALRMASSR0x44Будильник A: доли секунды0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_ALRMBR0x48Будильник B0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_ALRMBSSR0x4CБудильник B: доли секунды0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_SR0x50Флаги0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_MISR0x54Флаги разрешённых прерываний0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
RTC_SCR0x5CСброс флагов0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_CR10x00Включение входов вмешательства0xFFFF 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_CR20x04Активный уровень и действие входов вмешательства0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_FLTCR0x0CФильтр и предзаряд входов вмешательства0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_IER0x2CРазрешение прерываний0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_SR0x30Флаги вмешательства0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_MISR0x34Флаги разрешённых прерываний0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_SCR0x3CСброс флагов0x0000 0000 (при системном сбросе)
TAMP_BKP0R0x100Резервный регистр данных 00x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP1R0x104Резервный регистр данных 10x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP2R0x108Резервный регистр данных 20x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP3R0x10CРезервный регистр данных 30x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP4R0x110Резервный регистр данных 40x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP5R0x114Резервный регистр данных 50x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP6R0x118Резервный регистр данных 60x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP7R0x11CРезервный регистр данных 70x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP8R0x120Резервный регистр данных 80x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP9R0x124Резервный регистр данных 90x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP10R0x128Резервный регистр данных 100x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP11R0x12CРезервный регистр данных 110x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP12R0x130Резервный регистр данных 120x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP13R0x134Резервный регистр данных 130x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP14R0x138Резервный регистр данных 140x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP15R0x13CРезервный регистр данных 150x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP16R0x140Резервный регистр данных 160x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP17R0x144Резервный регистр данных 170x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP18R0x148Резервный регистр данных 180x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP19R0x14CРезервный регистр данных 190x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP20R0x150Резервный регистр данных 200x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP21R0x154Резервный регистр данных 210x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP22R0x158Резервный регистр данных 220x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP23R0x15CРезервный регистр данных 230x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP24R0x160Резервный регистр данных 240x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP25R0x164Резервный регистр данных 250x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP26R0x168Резервный регистр данных 260x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP27R0x16CРезервный регистр данных 270x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP28R0x170Резервный регистр данных 280x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP29R0x174Резервный регистр данных 290x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP30R0x178Резервный регистр данных 300x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)
TAMP_BKP31R0x17CРезервный регистр данных 310x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет)

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

RTC->TR = 0x00000000;

RTC_TR — время

Смещение 0x00, адрес 0x4000 2800, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1). В коде: RTC->TR.

31302928272625242322212019181716
—PMHTHU
1514131211109876543210
—MNTMNU—STSU
  • PM (бит 22) — AM/PM: 0 — AM или 24-часовой формат, 1 — PM.
  • HT (биты 21:20) — Десятки часов (BCD).
  • HU (биты 19:16) — Единицы часов (BCD).
  • MNT (биты 14:12) — Десятки минут (BCD).
  • MNU (биты 11:8) — Единицы минут (BCD).
  • ST (биты 6:4) — Десятки секунд (BCD).
  • SU (биты 3:0) — Единицы секунд (BCD).

RTC_DR — дата

Смещение 0x04, адрес 0x4000 2804, 32 бит, после сброса 0x0000 2101 (при сбросе резервного домена; системный сброс даёт 0x0000 2101 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1). В коде: RTC->DR.

31302928272625242322212019181716
—YTYU
1514131211109876543210
WDUMTMU—DTDU
  • YT (биты 23:20) — Десятки лет (BCD).
  • YU (биты 19:16) — Единицы лет (BCD).
  • WDU (биты 15:13) — День недели: 1 — понедельник … 7 — воскресенье.
  • MT (бит 12) — Десятки месяца (BCD).
  • MU (биты 11:8) — Единицы месяца (BCD).
  • DT (биты 5:4) — Десятки числа (BCD).
  • DU (биты 3:0) — Единицы числа (BCD).

RTC_SSR — доли секунды

Смещение 0x08, адрес 0x4000 2808, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1). В коде: RTC->SSR.

31302928272625242322212019181716
—
1514131211109876543210
SS
  • SS (биты 15:0) — Подсекунды: текущее значение синхронного делителя.

RTC_ICSR — инициализация и состояние

Смещение 0x0C, адрес 0x4000 280C, 32 бит, после сброса 0x0000 0007 (при сбросе резервного домена; системный сброс обнуляет только INIT, INITF и RSF). В коде: RTC->ICSR.

31302928272625242322212019181716
—RECALPF
1514131211109876543210
—INITINITFRSFINITSSHPFWUTWFALRBWFALRAWF
  • RECALPF (бит 16) — Новая калибровка CALR ещё не применена.
  • INIT (бит 7) — Режим инициализации: счёт остановлен.
  • INITF (бит 6) — Можно записывать время, дату и делители.
  • RSF (бит 5) — Регистры синхронизированы; сбрасывается программно перед чтением.
  • INITS (бит 4) — Календарь уже настроен: год не равен 0.
  • SHPF (бит 3) — Идёт сдвиг, заданный в SHIFTR.
  • WUTWF (бит 2) — Можно менять настройки таймера пробуждения.
  • ALRBWF (бит 1) — Можно менять будильник B.
  • ALRAWF (бит 0) — Можно менять будильник A.

RTC_PRER — предделители

Смещение 0x10, адрес 0x4000 2810, 32 бит, после сброса 0x007F 00FF (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->PRER.

31302928272625242322212019181716
—PREDIV_A
1514131211109876543210
—PREDIV_S
  • PREDIV_A (биты 22:16) — Асинхронный делитель: ck_apre = RTCCLK / (PREDIV_A + 1).
  • PREDIV_S (биты 14:0) — Синхронный делитель: ck_spre = ck_apre / (PREDIV_S + 1).

RTC_WUTR — период таймера пробуждения

Смещение 0x14, адрес 0x4000 2814, 32 бит, после сброса 0x0000 FFFF (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->WUTR.

31302928272625242322212019181716
—
1514131211109876543210
WUT
  • WUT (биты 15:0) — Период таймера пробуждения: WUT + 1 тактов выбранной частоты.

RTC_CR — будильники, таймер пробуждения, метка времени, выходы

Смещение 0x18, адрес 0x4000 2818, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->CR.

31302928272625242322212019181716
OUT2ENTAMPALRM_TYPETAMPALRM_PU—TAMPOETAMPTSITSECOEOSELPOLCOSELBKPSUB1HADD1H
1514131211109876543210
TSIEWUTIEALRBIEALRAIETSEWUTEALRBEALRAE—FMTBYPSHADREFCKONTSEDGEWUCKSEL
  • OUT2EN (бит 31) — Вывод RTC_OUT2 (PB2) для сигнала калибровки или будильника.
  • TAMPALRM_TYPE (бит 30) — Тип выхода TAMPALRM: двухтактный или открытый сток.
  • TAMPALRM_PU (бит 29) — Подтяжка выхода TAMPALRM.
  • TAMPOE (бит 26) — Сигнал вмешательства на выход TAMPALRM.
  • TAMPTS (бит 25) — Метка времени по событию вмешательства.
  • ITSE (бит 24) — Метка времени по внутреннему событию (переход на VBAT).
  • COE (бит 23) — Выход калибровки RTC_CALIB.
  • OSEL (биты 22:21) — Сигнал на выходе RTC_ALARM.
  • POL (бит 20) — Полярность выхода RTC_ALARM.
  • COSEL (бит 19) — Частота выхода калибровки.
  • BKP (бит 18) — Бит пользователя: отметка, что переход на летнее время уже сделан.
  • SUB1H (бит 17) — Вычесть час — переход на зимнее время.
  • ADD1H (бит 16) — Прибавить час — переход на летнее время.
  • TSIE (бит 15) — Прерывание по метке времени.
  • WUTIE (бит 14) — Прерывание таймера пробуждения.
  • ALRBIE (бит 13) — Прерывание будильника B.
  • ALRAIE (бит 12) — Прерывание будильника A.
  • TSE (бит 11) — Метка времени по событию на входе TIMESTAMP.
  • WUTE (бит 10) — Включение таймера пробуждения.
  • ALRBE (бит 9) — Включение будильника B.
  • ALRAE (бит 8) — Включение будильника A.
  • FMT (бит 6) — Формат часов.
  • BYPSHAD (бит 5) — Чтение календаря напрямую, минуя теневые регистры.
  • REFCKON (бит 4) — Подстройка по опорной частоте сети 50 или 60 Гц.
  • TSEDGE (бит 3) — Фронт события метки времени.
  • WUCKSEL (биты 2:0) — Тактирование таймера пробуждения.

RTC_WPR — защита от записи

Смещение 0x24, адрес 0x4000 2824, 32 бит, после сброса 0x0000 0000. В коде: RTC->WPR.

31302928272625242322212019181716
—
1514131211109876543210
—KEY
  • KEY (биты 7:0) — Ключ защиты записи: 0xCA, затем 0x53.

RTC_CALR — точная калибровка хода

Смещение 0x28, адрес 0x4000 2828, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->CALR.

31302928272625242322212019181716
—
1514131211109876543210
CALPCALW8CALW16—CALM
  • CALP (бит 15) — Ускорение календаря на 488,5 ppm.
  • CALW8 (бит 14) — Период калибровки 8 секунд.
  • CALW16 (бит 13) — Период калибровки 16 секунд.
  • CALM (биты 8:0) — Точная калибровка: импульсы, пропускаемые за 32 секунды, шаг 0,95 ppm.

RTC_SHIFTR — сдвиг на доли секунды

Смещение 0x2C, адрес 0x4000 282C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->SHIFTR.

31302928272625242322212019181716
ADD1S—
1514131211109876543210
—SUBFS
  • ADD1S (бит 31) — Прибавить секунду.
  • SUBFS (биты 14:0) — Отнять долю секунды: SUBFS / (PREDIV_S + 1).

RTC_TSTR — метка времени: время

Смещение 0x30, адрес 0x4000 2830, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->TSTR.

31302928272625242322212019181716
—PMHTHU
1514131211109876543210
—MNTMNU—STSU
  • PM (бит 22) — AM/PM: 0 — AM или 24-часовой формат, 1 — PM.
  • HT (биты 21:20) — Десятки часов (BCD).
  • HU (биты 19:16) — Единицы часов (BCD).
  • MNT (биты 14:12) — Десятки минут (BCD).
  • MNU (биты 11:8) — Единицы минут (BCD).
  • ST (биты 6:4) — Десятки секунд (BCD).
  • SU (биты 3:0) — Единицы секунд (BCD).

RTC_TSDR — метка времени: дата

Смещение 0x34, адрес 0x4000 2834, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->TSDR.

31302928272625242322212019181716
—
1514131211109876543210
WDUMTMU—DTDU
  • WDU (биты 15:13) — День недели: 1 — понедельник … 7 — воскресенье.
  • MT (бит 12) — Десятки месяца (BCD).
  • MU (биты 11:8) — Единицы месяца (BCD).
  • DT (биты 5:4) — Десятки числа (BCD).
  • DU (биты 3:0) — Единицы числа (BCD).

RTC_TSSSR — метка времени: доли секунды

Смещение 0x38, адрес 0x4000 2838, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->TSSSR.

31302928272625242322212019181716
—
1514131211109876543210
SS
  • SS (биты 15:0) — Подсекунды метки времени.

RTC_ALRMAR — будильник A

Смещение 0x40, адрес 0x4000 2840, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMAR.

31302928272625242322212019181716
MSK4WDSELDTDUMSK3PMHTHU
1514131211109876543210
MSK2MNTMNUMSK1STSU
  • MSK4 (бит 31) — Маска даты: 1 — число и день недели не сравниваются.
  • WDSEL (бит 30) — В поле DU — число месяца или день недели.
  • DT (биты 29:28) — Десятки числа (BCD).
  • DU (биты 27:24) — Единицы числа или день недели при WDSEL = 1 (BCD).
  • MSK3 (бит 23) — Маска часов.
  • PM (бит 22) — AM/PM: 0 — AM или 24-часовой формат, 1 — PM.
  • HT (биты 21:20) — Десятки часов (BCD).
  • HU (биты 19:16) — Единицы часов (BCD).
  • MSK2 (бит 15) — Маска минут.
  • MNT (биты 14:12) — Десятки минут (BCD).
  • MNU (биты 11:8) — Единицы минут (BCD).
  • MSK1 (бит 7) — Маска секунд.
  • ST (биты 6:4) — Десятки секунд (BCD).
  • SU (биты 3:0) — Единицы секунд (BCD).

RTC_ALRMASSR — будильник A: доли секунды

Смещение 0x44, адрес 0x4000 2844, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMASSR.

31302928272625242322212019181716
—MASKSS—
1514131211109876543210
—SS
  • MASKSS (биты 27:24) — Сколько младших битов подсекунд сравнивать: 0 — не сравнивать.
  • SS (биты 14:0) — Подсекунды для сравнения с будильником.

RTC_ALRMBR — будильник B

Смещение 0x48, адрес 0x4000 2848, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMBR.

31302928272625242322212019181716
MSK4WDSELDTDUMSK3PMHTHU
1514131211109876543210
MSK2MNTMNUMSK1STSU
  • MSK4 (бит 31) — Маска даты: 1 — число и день недели не сравниваются.
  • WDSEL (бит 30) — В поле DU — число месяца или день недели.
  • DT (биты 29:28) — Десятки числа (BCD).
  • DU (биты 27:24) — Единицы числа или день недели при WDSEL = 1 (BCD).
  • MSK3 (бит 23) — Маска часов.
  • PM (бит 22) — AM/PM: 0 — AM или 24-часовой формат, 1 — PM.
  • HT (биты 21:20) — Десятки часов (BCD).
  • HU (биты 19:16) — Единицы часов (BCD).
  • MSK2 (бит 15) — Маска минут.
  • MNT (биты 14:12) — Десятки минут (BCD).
  • MNU (биты 11:8) — Единицы минут (BCD).
  • MSK1 (бит 7) — Маска секунд.
  • ST (биты 6:4) — Десятки секунд (BCD).
  • SU (биты 3:0) — Единицы секунд (BCD).

RTC_ALRMBSSR — будильник B: доли секунды

Смещение 0x4C, адрес 0x4000 284C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMBSSR.

31302928272625242322212019181716
—MASKSS—
1514131211109876543210
—SS
  • MASKSS (биты 27:24) — Сколько младших битов подсекунд сравнивать: 0 — не сравнивать.
  • SS (биты 14:0) — Подсекунды для сравнения с будильником.

RTC_SR — флаги

Смещение 0x50, адрес 0x4000 2850, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->SR.

31302928272625242322212019181716
—
1514131211109876543210
—ITSFTSOVFTSFWUTFALRBFALRAF
  • ITSF (бит 5) — Метка времени по внутреннему событию.
  • TSOVF (бит 4) — Переполнение: новая метка при несброшенном TSF; сбрасывается записью 0.
  • TSF (бит 3) — Метка времени сохранена; сбрасывается записью 0.
  • WUTF (бит 2) — Сработал таймер пробуждения; сбрасывается записью 0.
  • ALRBF (бит 1) — Сработал будильник B; сбрасывается записью 0.
  • ALRAF (бит 0) — Сработал будильник A; сбрасывается записью 0.

RTC_MISR — флаги разрешённых прерываний

Смещение 0x54, адрес 0x4000 2854, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->MISR.

31302928272625242322212019181716
—
1514131211109876543210
—ITSMFTSOVMFTSMFWUTMFALRBMFALRAMF
  • ITSMF (бит 5) — Прерывание: метка времени по внутреннему событию.
  • TSOVMF (бит 4) — Прерывание: переполнение метки времени.
  • TSMF (бит 3) — Прерывание: метка времени.
  • WUTMF (бит 2) — Прерывание: таймер пробуждения.
  • ALRBMF (бит 1) — Прерывание: будильник B.
  • ALRAMF (бит 0) — Прерывание: будильник A.

RTC_SCR — сброс флагов

Смещение 0x5C, адрес 0x4000 285C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->SCR.

31302928272625242322212019181716
—
1514131211109876543210
—CITSFCTSOVFCTSFCWUTFCALRBFCALRAF
  • CITSF (бит 5) — Сброс флага ITSF записью 1.
  • CTSOVF (бит 4) — Сброс флага TSOVF записью 1.
  • CTSF (бит 3) — Сброс флага TSF записью 1.
  • CWUTF (бит 2) — Сброс флага WUTF записью 1.
  • CALRBF (бит 1) — Сброс флага ALRBF записью 1.
  • CALRAF (бит 0) — Сброс флага ALRAF записью 1.

TAMP_CR1 — включение входов вмешательства

Смещение 0x00, адрес 0x4000 2400, 32 бит, после сброса 0xFFFF 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->CR1.

31302928272625242322212019181716
—ITAMP6EITAMP5EITAMP4EITAMP3E—
1514131211109876543210
—TAMP3ETAMP2ETAMP1E
  • ITAMP6E (бит 21) — Внутренний вход вмешательства 6: доступ отладчика при защите чтения (считывание ST).
  • ITAMP5E (бит 20) — Внутренний вход вмешательства 5: переполнение календаря RTC.
  • ITAMP4E (бит 19) — Внутренний вход вмешательства 4: отказ HSE (система защиты тактирования).
  • ITAMP3E (бит 18) — Внутренний вход вмешательства 3: отказ LSE (система защиты тактирования).
  • TAMP3E (бит 2) — Вход вмешательства TAMP_IN3.
  • TAMP2E (бит 1) — Вход вмешательства TAMP_IN2.
  • TAMP1E (бит 0) — Вход вмешательства TAMP_IN1.

TAMP_CR2 — активный уровень и действие входов вмешательства

Смещение 0x04, адрес 0x4000 2404, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->CR2.

31302928272625242322212019181716
—TAMP3TRGTAMP2TRGTAMP1TRG—TAMP3MSKTAMP2MSKTAMP1MSK
1514131211109876543210
—TAMP3NOERASETAMP2NOERASETAMP1NOERASE
  • TAMP3TRG (бит 26) — Активный уровень или фронт TAMP_IN3.
  • TAMP2TRG (бит 25) — Активный уровень или фронт TAMP_IN2.
  • TAMP1TRG (бит 24) — Активный уровень или фронт TAMP_IN1.
  • TAMP3MSK (бит 18) — Маскирование TAMP_IN3: событие только по уровню, без стирания.
  • TAMP2MSK (бит 17) — Маскирование TAMP_IN2: событие только по уровню, без стирания.
  • TAMP1MSK (бит 16) — Маскирование TAMP_IN1: событие только по уровню, без стирания.
  • TAMP3NOERASE (бит 2) — Не стирать резервные регистры при срабатывании TAMP_IN3.
  • TAMP2NOERASE (бит 1) — Не стирать резервные регистры при срабатывании TAMP_IN2.
  • TAMP1NOERASE (бит 0) — Не стирать резервные регистры при срабатывании TAMP_IN1.

TAMP_FLTCR — фильтр и предзаряд входов вмешательства

Смещение 0x0C, адрес 0x4000 240C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->FLTCR.

31302928272625242322212019181716
—
1514131211109876543210
—TAMPPUDISTAMPPRCHTAMPFLTTAMPFREQ
  • TAMPPUDIS (бит 7) — Отключение предзаряда входов вмешательства перед выборкой.
  • TAMPPRCH (биты 6:5) — Длительность предзаряда: 1, 2, 4 или 8 тактов RTCCLK.
  • TAMPFLT (биты 4:3) — Фильтр: срабатывание по фронту или после 2, 4, 8 одинаковых отсчётов.
  • TAMPFREQ (биты 2:0) — Частота выборки входов: RTCCLK / 32768 … / 256.

TAMP_IER — разрешение прерываний

Смещение 0x2C, адрес 0x4000 242C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->IER.

31302928272625242322212019181716
—ITAMP6IEITAMP5IEITAMP4IEITAMP3IE—
1514131211109876543210
—TAMP3IETAMP2IETAMP1IE
  • ITAMP6IE (бит 21) — Прерывание от внутреннего входа 6.
  • ITAMP5IE (бит 20) — Прерывание от внутреннего входа 5.
  • ITAMP4IE (бит 19) — Прерывание от внутреннего входа 4.
  • ITAMP3IE (бит 18) — Прерывание от внутреннего входа 3.
  • TAMP3IE (бит 2) — Прерывание от TAMP_IN3.
  • TAMP2IE (бит 1) — Прерывание от TAMP_IN2.
  • TAMP1IE (бит 0) — Прерывание от TAMP_IN1.

TAMP_SR — флаги вмешательства

Смещение 0x30, адрес 0x4000 2430, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->SR.

31302928272625242322212019181716
—ITAMP6FITAMP5FITAMP4FITAMP3F—
1514131211109876543210
—TAMP3FTAMP2FTAMP1F
  • ITAMP6F (бит 21) — Сработал внутренний вход 6: доступ отладчика при защите чтения (считывание ST).
  • ITAMP5F (бит 20) — Сработал внутренний вход 5: переполнение календаря RTC.
  • ITAMP4F (бит 19) — Сработал внутренний вход 4: отказ HSE (система защиты тактирования).
  • ITAMP3F (бит 18) — Сработал внутренний вход 3: отказ LSE (система защиты тактирования).
  • TAMP3F (бит 2) — Сработал вход TAMP_IN3.
  • TAMP2F (бит 1) — Сработал вход TAMP_IN2.
  • TAMP1F (бит 0) — Сработал вход TAMP_IN1.

TAMP_MISR — флаги разрешённых прерываний

Смещение 0x34, адрес 0x4000 2434, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->MISR.

31302928272625242322212019181716
—ITAMP6MFITAMP5MFITAMP4MFITAMP3MF—
1514131211109876543210
—TAMP3MFTAMP2MFTAMP1MF
  • ITAMP6MF (бит 21) — Сработал внутренний вход 6: доступ отладчика при защите чтения (считывание ST).
  • ITAMP5MF (бит 20) — Сработал внутренний вход 5: переполнение календаря RTC.
  • ITAMP4MF (бит 19) — Сработал внутренний вход 4: отказ HSE (система защиты тактирования).
  • ITAMP3MF (бит 18) — Сработал внутренний вход 3: отказ LSE (система защиты тактирования).
  • TAMP3MF (бит 2) — Сработал вход TAMP_IN3.
  • TAMP2MF (бит 1) — Сработал вход TAMP_IN2.
  • TAMP1MF (бит 0) — Сработал вход TAMP_IN1.

TAMP_SCR — сброс флагов

Смещение 0x3C, адрес 0x4000 243C, 32 бит, после сброса 0x0000 0000 (при системном сбросе). В коде: TAMP->SCR.

31302928272625242322212019181716
—CITAMP6FCITAMP5FCITAMP4FCITAMP3F—
1514131211109876543210
—CTAMP3FCTAMP2FCTAMP1F
  • CITAMP6F (бит 21) — Сброс флага ITAMP6F записью 1.
  • CITAMP5F (бит 20) — Сброс флага ITAMP5F записью 1.
  • CITAMP4F (бит 19) — Сброс флага ITAMP4F записью 1.
  • CITAMP3F (бит 18) — Сброс флага ITAMP3F записью 1.
  • CTAMP3F (бит 2) — Сброс флага TAMP3F записью 1.
  • CTAMP2F (бит 1) — Сброс флага TAMP2F записью 1.
  • CTAMP1F (бит 0) — Сброс флага TAMP1F записью 1.

TAMP_BKP0R — резервный регистр данных 0

Смещение 0x100, адрес 0x4000 2500, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP0R.

Регистр данных: значение занимает его целиком.

TAMP_BKP1R — резервный регистр данных 1

Смещение 0x104, адрес 0x4000 2504, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP1R.

Регистр данных: значение занимает его целиком.

TAMP_BKP2R — резервный регистр данных 2

Смещение 0x108, адрес 0x4000 2508, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP2R.

Регистр данных: значение занимает его целиком.

TAMP_BKP3R — резервный регистр данных 3

Смещение 0x10C, адрес 0x4000 250C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP3R.

Регистр данных: значение занимает его целиком.

TAMP_BKP4R — резервный регистр данных 4

Смещение 0x110, адрес 0x4000 2510, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP4R.

Регистр данных: значение занимает его целиком.

TAMP_BKP5R — резервный регистр данных 5

Смещение 0x114, адрес 0x4000 2514, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP5R.

Регистр данных: значение занимает его целиком.

TAMP_BKP6R — резервный регистр данных 6

Смещение 0x118, адрес 0x4000 2518, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP6R.

Регистр данных: значение занимает его целиком.

TAMP_BKP7R — резервный регистр данных 7

Смещение 0x11C, адрес 0x4000 251C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP7R.

Регистр данных: значение занимает его целиком.

TAMP_BKP8R — резервный регистр данных 8

Смещение 0x120, адрес 0x4000 2520, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP8R.

Регистр данных: значение занимает его целиком.

TAMP_BKP9R — резервный регистр данных 9

Смещение 0x124, адрес 0x4000 2524, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP9R.

Регистр данных: значение занимает его целиком.

TAMP_BKP10R — резервный регистр данных 10

Смещение 0x128, адрес 0x4000 2528, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP10R.

Регистр данных: значение занимает его целиком.

TAMP_BKP11R — резервный регистр данных 11

Смещение 0x12C, адрес 0x4000 252C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP11R.

Регистр данных: значение занимает его целиком.

TAMP_BKP12R — резервный регистр данных 12

Смещение 0x130, адрес 0x4000 2530, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP12R.

Регистр данных: значение занимает его целиком.

TAMP_BKP13R — резервный регистр данных 13

Смещение 0x134, адрес 0x4000 2534, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP13R.

Регистр данных: значение занимает его целиком.

TAMP_BKP14R — резервный регистр данных 14

Смещение 0x138, адрес 0x4000 2538, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP14R.

Регистр данных: значение занимает его целиком.

TAMP_BKP15R — резервный регистр данных 15

Смещение 0x13C, адрес 0x4000 253C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: TAMP->BKP15R.

Регистр данных: значение занимает его целиком.

TAMP_BKP16R — резервный регистр данных 16

Смещение 0x140, адрес 0x4000 2540, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP16R.

Регистр данных: значение занимает его целиком.

TAMP_BKP17R — резервный регистр данных 17

Смещение 0x144, адрес 0x4000 2544, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP17R.

Регистр данных: значение занимает его целиком.

TAMP_BKP18R — резервный регистр данных 18

Смещение 0x148, адрес 0x4000 2548, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP18R.

Регистр данных: значение занимает его целиком.

TAMP_BKP19R — резервный регистр данных 19

Смещение 0x14C, адрес 0x4000 254C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP19R.

Регистр данных: значение занимает его целиком.

TAMP_BKP20R — резервный регистр данных 20

Смещение 0x150, адрес 0x4000 2550, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP20R.

Регистр данных: значение занимает его целиком.

TAMP_BKP21R — резервный регистр данных 21

Смещение 0x154, адрес 0x4000 2554, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP21R.

Регистр данных: значение занимает его целиком.

TAMP_BKP22R — резервный регистр данных 22

Смещение 0x158, адрес 0x4000 2558, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP22R.

Регистр данных: значение занимает его целиком.

TAMP_BKP23R — резервный регистр данных 23

Смещение 0x15C, адрес 0x4000 255C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP23R.

Регистр данных: значение занимает его целиком.

TAMP_BKP24R — резервный регистр данных 24

Смещение 0x160, адрес 0x4000 2560, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP24R.

Регистр данных: значение занимает его целиком.

TAMP_BKP25R — резервный регистр данных 25

Смещение 0x164, адрес 0x4000 2564, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP25R.

Регистр данных: значение занимает его целиком.

TAMP_BKP26R — резервный регистр данных 26

Смещение 0x168, адрес 0x4000 2568, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP26R.

Регистр данных: значение занимает его целиком.

TAMP_BKP27R — резервный регистр данных 27

Смещение 0x16C, адрес 0x4000 256C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP27R.

Регистр данных: значение занимает его целиком.

TAMP_BKP28R — резервный регистр данных 28

Смещение 0x170, адрес 0x4000 2570, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP28R.

Регистр данных: значение занимает его целиком.

TAMP_BKP29R — резервный регистр данных 29

Смещение 0x174, адрес 0x4000 2574, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP29R.

Регистр данных: значение занимает его целиком.

TAMP_BKP30R — резервный регистр данных 30

Смещение 0x178, адрес 0x4000 2578, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP30R.

Регистр данных: значение занимает его целиком.

TAMP_BKP31R — резервный регистр данных 31

Смещение 0x17C, адрес 0x4000 257C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет); регистр есть только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1. В коде: TAMP->BKP31R.

Регистр данных: значение занимает его целиком.

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

Почему RTC STM32G4 не отвечает на запись?

Нужны три условия: бит RTCAPBEN в RCC_APB1ENR1 (такт интерфейса), DBP в PWR_CR1 (доступ к домену) и ключи 0xCA, 0x53 в RTC_WPR. Для установки времени — ещё INIT в RTC_ICSR и ожидание INITF.

Где у STM32G4 резервные регистры?

В блоке TAMP: TAMP->BKP0R…BKP31R, 32 слова. Они сохраняются при системном сбросе и питании от VBAT и стираются сбросом домена или срабатыванием входа вмешательства.

Источники

  1. STMicroelectronics. RM0440: Reference manual (Rev 9) — раздел 37.6, 38.6: описание регистров, назначение полей и значения после сброса
  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

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