Регистры RTC STM32F7
Регистры RTC STM32F74x/F75x: время и дата в BCD, будильники A и B, таймер пробуждения, подсекунды и сдвиг, калибровка, метка времени, входы тампера и резервные регистры.
Содержание
- Регистры блока
- Конструктор
- RTC_TR
- RTC_DR
- RTC_CR
- RTC_ISR
- RTC_PRER
- RTC_WUTR
- RTC_ALRMAR
- RTC_ALRMBR
- RTC_WPR
- RTC_SSR
- RTC_SHIFTR
- RTC_TSTR
- RTC_TSDR
- RTC_TSSSR
- RTC_CALR
- RTC_TAMPCR
- RTC_ALRMASSR
- RTC_ALRMBSSR
- RTC_OR
- RTC_BKP0R
- RTC_BKP1R
- RTC_BKP2R
- RTC_BKP3R
- RTC_BKP4R
- RTC_BKP5R
- RTC_BKP6R
- RTC_BKP7R
- RTC_BKP8R
- RTC_BKP9R
- RTC_BKP10R
- RTC_BKP11R
- RTC_BKP12R
- RTC_BKP13R
- RTC_BKP14R
- RTC_BKP15R
- RTC_BKP16R
- RTC_BKP17R
- RTC_BKP18R
- RTC_BKP19R
- RTC_BKP20R
- RTC_BKP21R
- RTC_BKP22R
- RTC_BKP23R
- RTC_BKP24R
- RTC_BKP25R
- RTC_BKP26R
- RTC_BKP27R
- RTC_BKP28R
- RTC_BKP29R
- RTC_BKP30R
- RTC_BKP31R
RTC STM32F7 тактируется от LSE, LSI или HSE через делитель RTCPRE и выбирается в RCC_BDCR. Запись в регистры открывают бит DBP регистра PWR_CR1 и ключи 0xCA и 0x53 в RTC_WPR; для изменения времени войдите в режим инициализации битом INIT (RM0385, раздел 29.6).
Тридцать два резервных регистра RTC_BKP0R–BKP31R сохраняются при питании от VBAT и стираются событием тампера.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| RTC | 0x4000 2800 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| RTC_TR | 0x00 | Время | 0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1) |
| RTC_DR | 0x04 | Дата | 0x0000 2101 (при сбросе резервного домена; системный сброс даёт 0x0000 2101 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1) |
| RTC_CR | 0x08 | Будильники, таймер пробуждения, метка времени, выходы | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_ISR | 0x0C | Инициализация, состояние и флаги | 0x0000 0007 (при сбросе резервного домена; системный сброс обнуляет только INIT, INITF и RSF) |
| RTC_PRER | 0x10 | Предделители | 0x007F 00FF (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_WUTR | 0x14 | Период таймера пробуждения | 0x0000 FFFF (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_ALRMAR | 0x1C | Будильник A | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_ALRMBR | 0x20 | Будильник B | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_WPR | 0x24 | Защита от записи | 0x0000 0000 |
| RTC_SSR | 0x28 | Доли секунды | 0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1) |
| RTC_SHIFTR | 0x2C | Сдвиг на доли секунды | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_TSTR | 0x30 | Метка времени: время | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_TSDR | 0x34 | Метка времени: дата | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_TSSSR | 0x38 | Метка времени: доли секунды | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_CALR | 0x3C | Точная калибровка хода | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_TAMPCR | 0x40 | Входы вмешательства и метка времени по ним | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_ALRMASSR | 0x44 | Будильник A: доли секунды | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_ALRMBSSR | 0x48 | Будильник B: доли секунды | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_OR | 0x4C | Выход будильника и источник метки времени | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP0R | 0x50 | Резервный регистр данных 0 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP1R | 0x54 | Резервный регистр данных 1 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP2R | 0x58 | Резервный регистр данных 2 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP3R | 0x5C | Резервный регистр данных 3 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP4R | 0x60 | Резервный регистр данных 4 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP5R | 0x64 | Резервный регистр данных 5 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP6R | 0x68 | Резервный регистр данных 6 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP7R | 0x6C | Резервный регистр данных 7 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP8R | 0x70 | Резервный регистр данных 8 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP9R | 0x74 | Резервный регистр данных 9 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP10R | 0x78 | Резервный регистр данных 10 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP11R | 0x7C | Резервный регистр данных 11 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP12R | 0x80 | Резервный регистр данных 12 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP13R | 0x84 | Резервный регистр данных 13 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP14R | 0x88 | Резервный регистр данных 14 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP15R | 0x8C | Резервный регистр данных 15 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP16R | 0x90 | Резервный регистр данных 16 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP17R | 0x94 | Резервный регистр данных 17 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP18R | 0x98 | Резервный регистр данных 18 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP19R | 0x9C | Резервный регистр данных 19 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP20R | 0xA0 | Резервный регистр данных 20 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP21R | 0xA4 | Резервный регистр данных 21 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP22R | 0xA8 | Резервный регистр данных 22 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP23R | 0xAC | Резервный регистр данных 23 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP24R | 0xB0 | Резервный регистр данных 24 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP25R | 0xB4 | Резервный регистр данных 25 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP26R | 0xB8 | Резервный регистр данных 26 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP27R | 0xBC | Резервный регистр данных 27 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP28R | 0xC0 | Резервный регистр данных 28 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP29R | 0xC4 | Резервный регистр данных 29 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP30R | 0xC8 | Резервный регистр данных 30 | 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет) |
| RTC_BKP31R | 0xCC | Резервный регистр данных 31 | 0x0000 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PM | HT | HU | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | MNT | MNU | — | ST | SU | ||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | YT | YU | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| WDU | MT | MU | — | DT | DU | ||||||||||
- 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_CR — будильники, таймер пробуждения, метка времени, выходы
Смещение 0x08, адрес 0x4000 2808, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | ITSE | COE | OSEL | POL | COSEL | BKP | SUB1H | ADD1H | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TSIE | WUTIE | ALRBIE | ALRAIE | TSE | WUTE | ALRBE | ALRAE | — | FMT | BYPSHAD | REFCKON | TSEDGE | WUCKSEL | ||
- 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_ISR — инициализация, состояние и флаги
Смещение 0x0C, адрес 0x4000 280C, 32 бит, после сброса 0x0000 0007 (при сбросе резервного домена; системный сброс обнуляет только INIT, INITF и RSF). В коде: RTC->ISR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | ITSF | RECALPF | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TAMP3F | TAMP2F | TAMP1F | TSOVF | TSF | WUTF | ALRBF | ALRAF | INIT | INITF | RSF | INITS | SHPF | WUTWF | ALRBWF | ALRAWF |
- ITSF (бит 17) — Метка времени по внутреннему событию.
- RECALPF (бит 16) — Новая калибровка CALR ещё не применена.
- TAMP3F (бит 15) — Сработал вход TAMPER3; сбрасывается записью 0.
- TAMP2F (бит 14) — Сработал вход TAMPER2; сбрасывается записью 0.
- TAMP1F (бит 13) — Сработал вход TAMPER1; сбрасывается записью 0.
- TSOVF (бит 12) — Переполнение: новая метка при несброшенном TSF; сбрасывается записью 0.
- TSF (бит 11) — Метка времени сохранена; сбрасывается записью 0.
- WUTF (бит 10) — Сработал таймер пробуждения; сбрасывается записью 0.
- ALRBF (бит 9) — Сработал будильник B; сбрасывается записью 0.
- ALRAF (бит 8) — Сработал будильник A; сбрасывается записью 0.
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PREDIV_A | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 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 |
| WUT | |||||||||||||||
- WUT (биты 15:0) — Период таймера пробуждения: WUT + 1 тактов выбранной частоты.
RTC_ALRMAR — будильник A
Смещение 0x1C, адрес 0x4000 281C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMAR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| MSK4 | WDSEL | DT | DU | MSK3 | PM | HT | HU | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MSK2 | MNT | MNU | MSK1 | ST | SU | ||||||||||
- 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_ALRMBR — будильник B
Смещение 0x20, адрес 0x4000 2820, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMBR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| MSK4 | WDSEL | DT | DU | MSK3 | PM | HT | HU | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MSK2 | MNT | MNU | MSK1 | ST | SU | ||||||||||
- 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_WPR — защита от записи
Смещение 0x24, адрес 0x4000 2824, 32 бит, после сброса 0x0000 0000. В коде: RTC->WPR.
| 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 |
| — | KEY | ||||||||||||||
- KEY (биты 7:0) — Ключ защиты записи: 0xCA, затем 0x53.
RTC_SSR — доли секунды
Смещение 0x28, адрес 0x4000 2828, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1). В коде: RTC->SSR.
| 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 |
| SS | |||||||||||||||
- SS (биты 15:0) — Подсекунды: текущее значение синхронного делителя.
RTC_SHIFTR — сдвиг на доли секунды
Смещение 0x2C, адрес 0x4000 282C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->SHIFTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ADD1S | — | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUBFS | ||||||||||||||
- ADD1S (бит 31) — Прибавить секунду.
- SUBFS (биты 14:0) — Отнять долю секунды: SUBFS / (PREDIV_S + 1).
RTC_TSTR — метка времени: время
Смещение 0x30, адрес 0x4000 2830, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->TSTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PM | HT | HU | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | MNT | MNU | — | ST | SU | ||||||||||
- 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.
| 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 |
| WDU | MT | MU | — | DT | DU | ||||||||||
- 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.
| 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 |
| SS | |||||||||||||||
- SS (биты 15:0) — Подсекунды метки времени.
RTC_CALR — точная калибровка хода
Смещение 0x3C, адрес 0x4000 283C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->CALR.
| 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 |
| CALP | CALW8 | CALW16 | — | CALM | |||||||||||
- CALP (бит 15) — Ускорение календаря на 488,5 ppm.
- CALW8 (бит 14) — Период калибровки 8 секунд.
- CALW16 (бит 13) — Период калибровки 16 секунд.
- CALM (биты 8:0) — Точная калибровка: импульсы, пропускаемые за 32 секунды, шаг 0,95 ppm.
RTC_TAMPCR — входы вмешательства и метка времени по ним
Смещение 0x40, адрес 0x4000 2840, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->TAMPCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TAMP3MF | TAMP3NOERASE | TAMP3IE | TAMP2MF | TAMP2NOERASE | TAMP2IE | TAMP1MF | TAMP1NOERASE | TAMP1IE | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TAMPPUDIS | TAMPPRCH | TAMPFLT | TAMPFREQ | TAMPTS | TAMP3TRG | TAMP3E | TAMP2TRG | TAMP2E | TAMPIE | TAMP1TRG | TAMP1E | ||||
- TAMP3MF (бит 24) — Маскирование TAMP3: событие только по уровню, флаг сбрасывается вместе с уровнем.
- TAMP3NOERASE (бит 23) — Не стирать резервные регистры при срабатывании TAMP3.
- TAMP3IE (бит 22) — Прерывание от входа TAMP3.
- TAMP2MF (бит 21) — Маскирование TAMP2: событие только по уровню, флаг сбрасывается вместе с уровнем.
- TAMP2NOERASE (бит 20) — Не стирать резервные регистры при срабатывании TAMP2.
- TAMP2IE (бит 19) — Прерывание от входа TAMP2.
- TAMP1MF (бит 18) — Маскирование TAMP1: событие только по уровню, флаг сбрасывается вместе с уровнем.
- TAMP1NOERASE (бит 17) — Не стирать резервные регистры при срабатывании TAMP1.
- TAMP1IE (бит 16) — Прерывание от входа TAMP1.
- TAMPPUDIS (бит 15) — Отключение подтяжки входов TAMPER перед выборкой.
- TAMPPRCH (биты 14:13) — Длительность подтяжки перед выборкой.
- TAMPFLT (биты 12:11) — Фильтр TAMPER: число одинаковых выборок.
- TAMPFREQ (биты 10:8) — Частота опроса входов TAMPER.
- TAMPTS (бит 7) — Метка времени по событию TAMPER.
- TAMP3TRG (бит 6) — Активный уровень или фронт входа TAMPER3.
- TAMP3E (бит 5) — Включение входа TAMPER3.
- TAMP2TRG (бит 4) — Активный уровень или фронт входа TAMPER2.
- TAMP2E (бит 3) — Включение входа TAMPER2.
- TAMPIE (бит 2) — Прерывание по событию TAMPER.
- TAMP1TRG (бит 1) — Активный уровень или фронт входа TAMPER1.
- TAMP1E (бит 0) — Включение входа TAMPER1.
RTC_ALRMASSR — будильник A: доли секунды
Смещение 0x44, адрес 0x4000 2844, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMASSR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MASKSS | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SS | ||||||||||||||
- MASKSS (биты 27:24) — Сколько младших битов подсекунд сравнивать: 0 — не сравнивать.
- SS (биты 14:0) — Подсекунды для сравнения с будильником.
RTC_ALRMBSSR — будильник B: доли секунды
Смещение 0x48, адрес 0x4000 2848, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->ALRMBSSR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MASKSS | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SS | ||||||||||||||
- MASKSS (биты 27:24) — Сколько младших битов подсекунд сравнивать: 0 — не сравнивать.
- SS (биты 14:0) — Подсекунды для сравнения с будильником.
RTC_OR — выход будильника и источник метки времени
Смещение 0x4C, адрес 0x4000 284C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->OR.
| 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 |
| — | ALARMOUTTYPE | TSINSEL | — | ||||||||||||
- ALARMOUTTYPE (бит 3) — Тип выхода RTC_ALARM: открытый сток или двухтактный.
- TSINSEL (биты 2:1) — Вывод входа TIMESTAMP.
RTC_BKP0R — резервный регистр данных 0
Смещение 0x50, адрес 0x4000 2850, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP0R.
Регистр данных: значение занимает его целиком.
RTC_BKP1R — резервный регистр данных 1
Смещение 0x54, адрес 0x4000 2854, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP1R.
Регистр данных: значение занимает его целиком.
RTC_BKP2R — резервный регистр данных 2
Смещение 0x58, адрес 0x4000 2858, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP2R.
Регистр данных: значение занимает его целиком.
RTC_BKP3R — резервный регистр данных 3
Смещение 0x5C, адрес 0x4000 285C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP3R.
Регистр данных: значение занимает его целиком.
RTC_BKP4R — резервный регистр данных 4
Смещение 0x60, адрес 0x4000 2860, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP4R.
Регистр данных: значение занимает его целиком.
RTC_BKP5R — резервный регистр данных 5
Смещение 0x64, адрес 0x4000 2864, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP5R.
Регистр данных: значение занимает его целиком.
RTC_BKP6R — резервный регистр данных 6
Смещение 0x68, адрес 0x4000 2868, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP6R.
Регистр данных: значение занимает его целиком.
RTC_BKP7R — резервный регистр данных 7
Смещение 0x6C, адрес 0x4000 286C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP7R.
Регистр данных: значение занимает его целиком.
RTC_BKP8R — резервный регистр данных 8
Смещение 0x70, адрес 0x4000 2870, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP8R.
Регистр данных: значение занимает его целиком.
RTC_BKP9R — резервный регистр данных 9
Смещение 0x74, адрес 0x4000 2874, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP9R.
Регистр данных: значение занимает его целиком.
RTC_BKP10R — резервный регистр данных 10
Смещение 0x78, адрес 0x4000 2878, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP10R.
Регистр данных: значение занимает его целиком.
RTC_BKP11R — резервный регистр данных 11
Смещение 0x7C, адрес 0x4000 287C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP11R.
Регистр данных: значение занимает его целиком.
RTC_BKP12R — резервный регистр данных 12
Смещение 0x80, адрес 0x4000 2880, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP12R.
Регистр данных: значение занимает его целиком.
RTC_BKP13R — резервный регистр данных 13
Смещение 0x84, адрес 0x4000 2884, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP13R.
Регистр данных: значение занимает его целиком.
RTC_BKP14R — резервный регистр данных 14
Смещение 0x88, адрес 0x4000 2888, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP14R.
Регистр данных: значение занимает его целиком.
RTC_BKP15R — резервный регистр данных 15
Смещение 0x8C, адрес 0x4000 288C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP15R.
Регистр данных: значение занимает его целиком.
RTC_BKP16R — резервный регистр данных 16
Смещение 0x90, адрес 0x4000 2890, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP16R.
Регистр данных: значение занимает его целиком.
RTC_BKP17R — резервный регистр данных 17
Смещение 0x94, адрес 0x4000 2894, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP17R.
Регистр данных: значение занимает его целиком.
RTC_BKP18R — резервный регистр данных 18
Смещение 0x98, адрес 0x4000 2898, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP18R.
Регистр данных: значение занимает его целиком.
RTC_BKP19R — резервный регистр данных 19
Смещение 0x9C, адрес 0x4000 289C, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP19R.
Регистр данных: значение занимает его целиком.
RTC_BKP20R — резервный регистр данных 20
Смещение 0xA0, адрес 0x4000 28A0, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP20R.
Регистр данных: значение занимает его целиком.
RTC_BKP21R — резервный регистр данных 21
Смещение 0xA4, адрес 0x4000 28A4, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP21R.
Регистр данных: значение занимает его целиком.
RTC_BKP22R — резервный регистр данных 22
Смещение 0xA8, адрес 0x4000 28A8, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP22R.
Регистр данных: значение занимает его целиком.
RTC_BKP23R — резервный регистр данных 23
Смещение 0xAC, адрес 0x4000 28AC, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP23R.
Регистр данных: значение занимает его целиком.
RTC_BKP24R — резервный регистр данных 24
Смещение 0xB0, адрес 0x4000 28B0, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP24R.
Регистр данных: значение занимает его целиком.
RTC_BKP25R — резервный регистр данных 25
Смещение 0xB4, адрес 0x4000 28B4, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP25R.
Регистр данных: значение занимает его целиком.
RTC_BKP26R — резервный регистр данных 26
Смещение 0xB8, адрес 0x4000 28B8, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP26R.
Регистр данных: значение занимает его целиком.
RTC_BKP27R — резервный регистр данных 27
Смещение 0xBC, адрес 0x4000 28BC, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP27R.
Регистр данных: значение занимает его целиком.
RTC_BKP28R — резервный регистр данных 28
Смещение 0xC0, адрес 0x4000 28C0, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP28R.
Регистр данных: значение занимает его целиком.
RTC_BKP29R — резервный регистр данных 29
Смещение 0xC4, адрес 0x4000 28C4, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP29R.
Регистр данных: значение занимает его целиком.
RTC_BKP30R — резервный регистр данных 30
Смещение 0xC8, адрес 0x4000 28C8, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP30R.
Регистр данных: значение занимает его целиком.
RTC_BKP31R — резервный регистр данных 31
Смещение 0xCC, адрес 0x4000 28CC, 32 бит, после сброса 0x0000 0000 (при сбросе резервного домена; системный сброс регистр не меняет). В коде: RTC->BKP31R.
Регистр данных: значение занимает его целиком.
Частые вопросы
Почему RTC STM32F7 сбрасывается после перепрошивки?
Скорее всего, программа при старте вызывает сброс резервного домена (BDRST) или заново выбирает источник RTC. Проверяйте флаг INITS или резервный регистр с меткой и настраивайте RTC только при первом запуске.
Источники
- STMicroelectronics. RM0385: Reference manual (Rev 9) — раздел 29.6: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-f7 v1.2.10: заголовки CMSIS stm32f745xx.h, stm32f746xx.h, stm32f750xx.h, stm32f756xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32F7
- Все регистры STM32F7Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_PLLCFGR, RCC_CFGR, RCC_CIR, RCC_AHB1RSTR, RCC_AHB2RSTR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_MEMRMP, SYSCFG_PMC, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USART и UARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- 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_LISR, DMA_HISR, DMA_LIFCR, DMA_HIFCR, DMA_SxCR, DMA_SxNDT
- АЦП — аналого-цифровые преобразователиADC_SR, ADC_CR1, ADC_CR2, ADC_SMPR1, ADC_SMPR2, ADC_JOFR1
- 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_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR1, PWR_CSR1, PWR_CR2, PWR_CSR2
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_OPTCR
- ЦАП — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2
- CAN — контроллеры bxCANCAN_MCR, CAN_MSR, CAN_TSR, CAN_RF0R, CAN_RF1R, CAN_IER