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

Регистры RTC STM32L1

Регистры RTC STM32L1: время и дата в BCD, будильники A и B, таймер пробуждения, грубая и точная калибровка, подсекунды и сдвиг, метка времени, входы тампера и резервные регистры.

RTC STM32L1 устроен как у STM32F4: перед настройкой запишите в RTC_WPR 0xCA и 0x53, для изменения времени войдите в режим инициализации битом INIT. Регистры сбрасываются только при включении питания или сбросом RTCRST; системный сброс их не меняет (RM0038, раздел 20.6).

Резервных регистров 5 у устройств value line, 20 у категорий 1 и 2 и 32 у категорий 3–6; событие тампера их стирает. Подсекунды (RTC_SSR) и точная калибровка (RTC_CALR) есть у всех устройств, кроме STM32L1xxxB.

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

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

РегистрСмещениеНазначениеПосле сброса
RTC_TR0x00Время0x0000 0000 (при включении питания; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_DR0x04Дата0x0000 2101 (при включении питания; системный сброс даёт 0x0000 2101 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_CR0x08Управление: будильники, пробуждение, выходы0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_ISR0x0CИнициализация и флаги0x0000 0007 (при включении питания; системный сброс обнуляет только INIT, INITF и RSF)
RTC_PRER0x10Делители частоты календаря0x007F 00FF (при включении питания; системный сброс регистр не меняет)
RTC_WUTR0x14Период таймера пробуждения0x0000 FFFF (при включении питания; системный сброс регистр не меняет)
RTC_CALIBR0x18Грубая цифровая калибровка0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_ALRMAR0x1CБудильник A0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_ALRMBR0x20Будильник B0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_WPR0x24Защита записи0x0000 0000
RTC_SSR0x28Подсекунды0x0000 0000 (при включении питания; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1)
RTC_SHIFTR0x2CСдвиг на доли секунды0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_TSTR0x30Время метки0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_TSDR0x34Дата метки0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_TSSSR0x38Подсекунды метки0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_CALR0x3CТочная калибровка0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_TAFCR0x40Входы TAMPER, метка времени и выход RTC_ALARM0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_ALRMASSR0x44Подсекунды будильника A0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_ALRMBSSR0x48Подсекунды будильника B0x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP0R0x50Резервный регистр данных 00x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP1R0x54Резервный регистр данных 10x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP2R0x58Резервный регистр данных 20x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP3R0x5CРезервный регистр данных 30x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP4R0x60Резервный регистр данных 40x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP5R0x64Резервный регистр данных 50x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP6R0x68Резервный регистр данных 60x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP7R0x6CРезервный регистр данных 70x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP8R0x70Резервный регистр данных 80x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP9R0x74Резервный регистр данных 90x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP10R0x78Резервный регистр данных 100x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP11R0x7CРезервный регистр данных 110x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP12R0x80Резервный регистр данных 120x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP13R0x84Резервный регистр данных 130x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP14R0x88Резервный регистр данных 140x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP15R0x8CРезервный регистр данных 150x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP16R0x90Резервный регистр данных 160x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP17R0x94Резервный регистр данных 170x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP18R0x98Резервный регистр данных 180x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP19R0x9CРезервный регистр данных 190x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP20R0xA0Резервный регистр данных 200x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP21R0xA4Резервный регистр данных 210x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP22R0xA8Резервный регистр данных 220x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP23R0xACРезервный регистр данных 230x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP24R0xB0Резервный регистр данных 240x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP25R0xB4Резервный регистр данных 250x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP26R0xB8Резервный регистр данных 260x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP27R0xBCРезервный регистр данных 270x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP28R0xC0Резервный регистр данных 280x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP29R0xC4Резервный регистр данных 290x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP30R0xC8Резервный регистр данных 300x0000 0000 (при включении питания; системный сброс регистр не меняет)
RTC_BKP31R0xCCРезервный регистр данных 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.
    PMЗначение
    0AM или 24-часовой формат
    1PM
  • 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 — воскресенье.
    WDUЗначение
    000Запрещено
    001Понедельник
    010Вторник
    011Среда
    100Четверг
    101Пятница
    110Суббота
    111Воскресенье
  • 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.

31302928272625242322212019181716
—COEOSELPOLCOSELBKPSUB1HADD1H
1514131211109876543210
TSIEWUTIEALRBIEALRAIETSEWUTEALRBEALRAEDCEFMTBYPSHADREFCKONTSEDGEWUCKSEL
  • COE (бит 23) — Выход калибровки RTC_CALIB.
  • OSEL (биты 22:21) — Сигнал на выходе RTC_ALARM.
    OSELЗначение
    00Выход выключен
    01Будильник A
    10Будильник B
    11Таймер пробуждения
  • POL (бит 20) — Полярность выхода RTC_ALARM.
    POLЗначение
    0Высокий уровень при срабатывании
    1Низкий уровень при срабатывании
  • COSEL (бит 19) — Частота выхода калибровки (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    COSELЗначение
    0512 Гц
    11 Гц
  • 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.
  • DCE (бит 7) — Грубая цифровая калибровка по RTC_CALIBR.
  • FMT (бит 6) — Формат часов.
    FMTЗначение
    024 часа
    1AM/PM
  • BYPSHAD (бит 5) — Чтение календаря напрямую, минуя теневые регистры (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • REFCKON (бит 4) — Подстройка по опорной частоте сети 50 или 60 Гц.
  • TSEDGE (бит 3) — Фронт события метки времени.
    TSEDGEЗначение
    0Нарастающий фронт
    1Спадающий фронт
  • WUCKSEL (биты 2:0) — Тактирование таймера пробуждения.
    WUCKSELЗначение
    000RTCCLK / 16
    001RTCCLK / 8
    010RTCCLK / 4
    011RTCCLK / 2
    100ck_spre (обычно 1 Гц)
    101ck_spre (обычно 1 Гц)
    110ck_spre, к WUT добавляется 2^16
    111ck_spre, к WUT добавляется 2^16

RTC_ISR — инициализация и флаги

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

31302928272625242322212019181716
—RECALPF
1514131211109876543210
TAMP3FTAMP2FTAMP1FTSOVFTSFWUTFALRBFALRAFINITINITFRSFINITSSHPFWUTWFALRBWFALRAWF
  • RECALPF (бит 16) — Новая калибровка CALR ещё не применена (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMP3F (бит 15) — Сработал вход TAMPER3; сбрасывается записью 0 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMP2F (бит 14) — Сработал вход TAMPER2; сбрасывается записью 0 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • 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 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • 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) (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • PREDIV_S (биты 12:0) — Синхронный делитель: ck_spre = ck_apre / (PREDIV_S + 1) (только у STM32L100xB, STM32L151xB, STM32L152xB).

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

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

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

RTC_CALIBR — грубая цифровая калибровка

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

31302928272625242322212019181716
—
1514131211109876543210
—DCS—DC
  • DCS (бит 7) — Знак грубой калибровки.
    DCSЗначение
    0Положительная: календарь ускоряется
    1Отрицательная: календарь замедляется
  • DC (биты 4:0) — Грубая калибровка: шаг около +4 ppm или −2 ppm.

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

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

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

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

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

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

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

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

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

RTC_SSR — подсекунды

Смещение 0x28, адрес 0x4000 2828, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс даёт 0x0000 0000 при BYPSHAD = 0 и не меняет регистр при BYPSHAD = 1); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->SSR.

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

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

Смещение 0x2C, адрес 0x4000 282C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: 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.
    PMЗначение
    0AM или 24-часовой формат
    1PM
  • 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 — воскресенье.
    WDUЗначение
    000Запрещено
    001Понедельник
    010Вторник
    011Среда
    100Четверг
    101Пятница
    110Суббота
    111Воскресенье
  • MT (бит 12) — Десятки месяца (BCD).
  • MU (биты 11:8) — Единицы месяца (BCD).
  • DT (биты 5:4) — Десятки числа (BCD).
  • DU (биты 3:0) — Единицы числа (BCD).

RTC_TSSSR — подсекунды метки

Смещение 0x38, адрес 0x4000 2838, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->TSSSR.

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

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

Смещение 0x3C, адрес 0x4000 283C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: 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_TAFCR — входы TAMPER, метка времени и выход RTC_ALARM

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

31302928272625242322212019181716
—ALARMOUTTYPE—
1514131211109876543210
TAMPPUDISTAMPPRCHTAMPFLTTAMPFREQTAMPTSTAMP3TRGTAMP3ETAMP2TRGTAMP2ETAMPIETAMP1TRGTAMP1E
  • ALARMOUTTYPE (бит 18) — Тип выхода RTC_ALARM.
    ALARMOUTTYPEЗначение
    0Открытый сток
    1Двухтактный
  • TAMPPUDIS (бит 15) — Отключение подтяжки входов TAMPER перед выборкой (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMPPRCH (биты 14:13) — Длительность подтяжки перед выборкой (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    TAMPPRCHЗначение
    001 такт RTCCLK
    012 такта RTCCLK
    104 такта RTCCLK
    118 тактов RTCCLK
  • TAMPFLT (биты 12:11) — Фильтр TAMPER: число одинаковых выборок (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    TAMPFLTЗначение
    00По фронту, без подтяжки
    012 выборки подряд
    104 выборки подряд
    118 выборок подряд
  • TAMPFREQ (биты 10:8) — Частота опроса входов TAMPER (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    TAMPFREQЗначение
    000RTCCLK / 32768 (1 Гц при 32 768 Гц)
    001RTCCLK / 16384 (2 Гц при 32 768 Гц)
    010RTCCLK / 8192 (4 Гц при 32 768 Гц)
    011RTCCLK / 4096 (8 Гц при 32 768 Гц)
    100RTCCLK / 2048 (16 Гц при 32 768 Гц)
    101RTCCLK / 1024 (32 Гц при 32 768 Гц)
    110RTCCLK / 512 (64 Гц при 32 768 Гц)
    111RTCCLK / 256 (128 Гц при 32 768 Гц)
  • TAMPTS (бит 7) — Метка времени по событию TAMPER (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMP3TRG (бит 6) — Активный уровень или фронт входа TAMPER3 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    TAMP3TRGЗначение
    0С фильтром — низкий уровень, без фильтра — нарастающий фронт
    1С фильтром — высокий уровень, без фильтра — спадающий фронт
  • TAMP3E (бит 5) — Включение входа TAMPER3 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMP2TRG (бит 4) — Активный уровень или фронт входа TAMPER2 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
    TAMP2TRGЗначение
    0С фильтром — низкий уровень, без фильтра — нарастающий фронт
    1С фильтром — высокий уровень, без фильтра — спадающий фронт
  • TAMP2E (бит 3) — Включение входа TAMPER2 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • TAMPIE (бит 2) — Прерывание по событию TAMPER.
  • TAMP1TRG (бит 1) — Активный уровень или фронт входа TAMPER1.
    TAMP1TRGЗначение
    0С фильтром — низкий уровень, без фильтра — нарастающий фронт
    1С фильтром — высокий уровень, без фильтра — спадающий фронт
  • TAMP1E (бит 0) — Включение входа TAMPER1.

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

Смещение 0x44, адрес 0x4000 2844, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->ALRMASSR.

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

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

Смещение 0x48, адрес 0x4000 2848, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->ALRMBSSR.

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

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 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP5R.

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

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

Смещение 0x68, адрес 0x4000 2868, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP6R.

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

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

Смещение 0x6C, адрес 0x4000 286C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP7R.

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

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

Смещение 0x70, адрес 0x4000 2870, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP8R.

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

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

Смещение 0x74, адрес 0x4000 2874, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP9R.

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

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

Смещение 0x78, адрес 0x4000 2878, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP10R.

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

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

Смещение 0x7C, адрес 0x4000 287C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP11R.

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

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

Смещение 0x80, адрес 0x4000 2880, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP12R.

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

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

Смещение 0x84, адрес 0x4000 2884, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP13R.

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

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

Смещение 0x88, адрес 0x4000 2888, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP14R.

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

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

Смещение 0x8C, адрес 0x4000 288C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP15R.

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

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

Смещение 0x90, адрес 0x4000 2890, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP16R.

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

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

Смещение 0x94, адрес 0x4000 2894, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP17R.

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

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

Смещение 0x98, адрес 0x4000 2898, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP18R.

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

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

Смещение 0x9C, адрес 0x4000 289C, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151, STM32L152xB/xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP19R.

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

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

Смещение 0xA0, адрес 0x4000 28A0, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP20R.

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

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

Смещение 0xA4, адрес 0x4000 28A4, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP21R.

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

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

Смещение 0xA8, адрес 0x4000 28A8, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP22R.

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

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

Смещение 0xAC, адрес 0x4000 28AC, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP23R.

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

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

Смещение 0xB0, адрес 0x4000 28B0, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP24R.

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

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

Смещение 0xB4, адрес 0x4000 28B4, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP25R.

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

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

Смещение 0xB8, адрес 0x4000 28B8, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP26R.

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

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

Смещение 0xBC, адрес 0x4000 28BC, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP27R.

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

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

Смещение 0xC0, адрес 0x4000 28C0, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP28R.

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

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

Смещение 0xC4, адрес 0x4000 28C4, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP29R.

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

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

Смещение 0xC8, адрес 0x4000 28C8, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP30R.

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

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

Смещение 0xCC, адрес 0x4000 28CC, 32 бит, после сброса 0x0000 0000 (при включении питания; системный сброс регистр не меняет); регистр есть только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162. В коде: RTC->BKP31R.

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

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

Почему время RTC STM32L1 не обновляется при чтении?

После выхода из Stop или Standby теневые регистры TR и DR обновляются не сразу: сбросьте флаг RSF в RTC_ISR и дождитесь его установки, прежде чем читать время.

Источники

  1. STMicroelectronics. RM0038: Reference manual (Rev 18) — раздел 20.6: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-l1 v2.3.4: заголовки CMSIS stm32l100xb.h, stm32l100xba.h, stm32l100xc.h, stm32l151xb.h, stm32l151xba.h, stm32l151xc.h, stm32l151xca.h, stm32l151xd.h, stm32l151xdx.h, stm32l151xe.h, stm32l152xb.h, stm32l152xba.h, stm32l152xc.h, stm32l152xca.h, stm32l152xd.h, stm32l152xdx.h, stm32l152xe.h, stm32l162xc.h, stm32l162xca.h, stm32l162xd.h, stm32l162xdx.h, stm32l162xe.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

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

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

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