STM32
Регистры часов реального времени в микроконтроллерах STM32F2xx
Регистры часов реального времени используются для настройки и работы модуля RTC. Для доступа к регистрам необходимо установить бит разрешения записи PWR_CR.DBP и разрешить запись путем последовательного занесения в регистр RTC_WPR чисел 0xCA и 0x53.
Регистр времени RTC_TR
Регистр времени содержит значение текущего времени в BCD-формате. Доступен для записи только в режиме инициализации
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Назв. |
Резерв |
PM |
HT |
HU |
||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
|||||||||
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Назв. |
Рез |
MNT |
MNU |
Рез |
ST |
SU |
||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Бит 22. PM: AM/PM – значение (0: AM или 24-часовой формат, 1:PM)
Биты 21:20 HT[1:0] Десятки часов в BCD формате
Биты 19:16 HU[3:0] Единицы часов в BCD формате
Биты 14:12 MNT[2:0] Десятки минут в BCD формате
Биты 11:8 MNU[3:0] Единицы минут в BCD формате
Биты 6:4 ST[2:0] Десятки секунд в BCD формате
Биты 3:0 SU[3:0] Единицы секунд в BCD формате
Регистр даты RTC_DR
Регистр времени содержит значение текущей даты в BCD-формате. Доступен для записи только в режиме инициализации
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
|||||
Название |
Резерв |
YT |
YU |
||||||||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
|||||||||||||
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||||
Название |
WDU |
MT |
MU |
Резерв |
DT |
DU |
|||||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
|||||||
Биты 23:20 YT[3:0] Десятки лет в BCD формате
Биты 19:16 YU[3:0] Единицы лет в BCD формате
Биты 15:13 WDU[2:0] День недели
- 000: не используется
- 001: понедельник
…
-111: воскресенье
Бит 12 MT Десятки месяца в BCD формате
Биты 11:8 MU[3:0] Единицы месяца в BCD формате
Биты 5:4 DT[1:0] Десятки даты в BCD формате
Биты 3:0 DU[3:0] Единицы даты в BCD формате
Регистр управления часами RTC_CR
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
|
Резерв |
|||||||
Бит |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Название |
COE |
OSE |
POL |
Рез |
BKP |
SUB1H |
ADD1H |
|
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
|
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
Название |
TSIE |
WUTIE |
ALRBIE |
ALRAIE |
TSE |
WUTE |
ALRBIE |
ALRAE |
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Rw |
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Название |
DCE |
FMT |
Резерв |
REFCKON |
TSEDGE |
WUCKSEL |
||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Бит 23 COE Разрешение подачи сигнала калибровки на выход. Данный бит включает выход AFO_CALIB RTC. (0: не разрешено, 1: разрешено)
Биты 22:21 OSEL[1:0] Выбор функции выхода для AFO_CALIB RTC.
00: Отключено
01: Событие A
10: Событие B
11: Сигнал выхода из спящего режима
Бит 20 POL Полярность выхода AFO_CALIB RTC (0: положительная, 1: отрицательная)
Бит 18 BKP Сохранение. При записи единицы сохраняет переход на летнее или зимнее время
Бит 17 SUB1H Вычитание 1 часа. При установке в 1 производится вычитание одного часа для перевода на зимнее время. Если текущий час равен 0, то установка бита не даст результата.
Бит 16 ADD1H Добавление 1 часа. Перевод на летнее время производится при установке бита в 1.
Бит 15 TSIE Разрешение прерывания по внешнему событию. (0: не разрешено, 1: разрешено)
Бит 14 WUTIE Разрешение прерывания по событию выхода из спящего режима. (0: не разрешено, 1: разрешено)
Бит 13 ALRBIE Разрешение прерывания по событию B. (0: не разрешено, 1: разрешено)
Бит 12 ALRAIE Разрешение прерывания по событию A. (0: не разрешено, 1: разрешено)
Бит 11 TSE Разрешение сохранения времени по внешнему событию. (0: не разрешено, 1: разрешено)
Бит 10 WUTE Разрешение выхода из спящего режима по результатам счета. (0: не разрешено, 1: разрешено)
Бит 9 ALRBE Разрешение события B. (0: не разрешено, 1: разрешено)
Бит 8 ALRAE Разрешение события A. (0: не разрешено, 1: разрешено)
Бит 7 DCE Разрешение калибровки. Значение предделителя PREDIV_A должно быть больше 6.
Бит 6 FMT Формат времени (0: 24 часовой, 1: 12 часовой)
Бит 4 REFCKON Разрешение определения опорной частоты. (0: не разрешено, 1: разрешено)
Бит 3 TSEDGE Установка фронта срабатывания для внешнего события. (0: передний, 1: задний). При смене фронта, TSE должен быть сброшен.
Биты 2:0 WUCKSEL[2:0] Источник частоты для счетчика выхода из спящего режима.
000: RTC/16
001: RTC/8
010: RTC/4
011: RTC/2
10x: ck_spre (обычно 1 Гц)
11x: ck_spre (обычно 1 Гц) и добавление одного бита в счетчик WUT
Биты 7,6,4 регистра управления доступны для записи только в режиме инициализации. Биты 2:0 могут быть изменены при RTC_CR WUTE = 0 и RTC_ISR WUTWF = 1
Регистр инициализации и состояния часов RTC_ISR
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
|
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Название |
Резерв |
|||||||
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
Название |
Рез |
TAMP1F |
TSOVF |
TSF |
WUTF |
ALRBF |
ALRAF |
|
Статус |
rc_w0 |
rc_w0 |
rc_w0 |
rc_w0 |
rc_w0 |
rc_w0 |
||
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Название |
INIT |
INITF |
RSF |
INITS |
Рез |
WUTWF |
ALRBF |
ALRAF |
Статус |
rw |
r |
rc_w0 |
r |
r |
r |
r |
Бит 13 TAMP1F Флаг обнаружения несанкционированного доступа
Бит 12 TSOVF Переполнение буфера внешних событий. Флаг устанавливается, когда TSF уже установлен. Рекомендуется проверять и очищать данный флаг одновременно с TSF.
Бит 11 TSF Флаг внешнего события.
Бит 10 WUTF Флаг выхода из спящего режима.
Бит 9 ALRBF Флаг события B. Устанавливается, когда значение счетного регистра совпадает с RTC_ALRMBR
Бит 8 ALRAF Флаг события A. Устанавливается, когда значение счетного регистра совпадает с RTC_ALRMAR
Бит 7 INIT Режим инициализации (0: рабочий режим, 1: режим инициализации). При установке 1, счетчик времени останавливается, доступна запись в счетные регистры и предделитель. Счет возобновляется после сброса данного бита.
Бит 6 INITF Флаг инициализации. (0: рабочий режим, 1: режим инициализации)
Бит 5 RSF Флаг синхронизации. Устанавливается аппаратно, когда счетные регистры копируется в теневые регистры (RTC_TRx и RTC_DRx). (0: регистры не синхронизированы, 1: регистры синхронизированы)
Бит 4 INITS Флаг состояния инициализации. Устанавливается аппаратно, когда происходит инициализация счетного регистра. (0: счетный регистр не инициализирован, 1: счетный регистр инициализирован)
Бит 2 WUTWF Флаг установки значения таймера пробуждения (0: рабочий режим , 1: режим установки)
Бит 1 ALRBWF Флаг установки времени события B (0: рабочий режим, 1: режим установки)
Бит 0 ALRAWF Флаг установки времени события A (0: рабочий режим, 1: режим установки)
Регистр RTC_ISR защищен от записи, за исключением битов 13:8.
Регистр предделителей RTC_PREP
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Название |
Резерв |
PREDIV_A |
||||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
|||||||||
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Название |
Резерв
|
PREDIV_S |
||||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Биты 22:16 PREDIV_A[6:0] Асинхронный предделитель. Для расчета значения используется формула ck_apre frequency = RTCCLK frequency/(PREDIV_A+1)
Биты 12:0 PREDIV_S[12:0] Синхронный предделитель. Для расчета значения используется формула ck_spre frequency = ck_apre frequency/(PREDIV_S+1)
Регистр доступен только в режиме инициализации. Также регистр защищен от записи.
Регистр пробуждения 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 |
|||||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Биты 15:0 WUT[15:0] Значение периода пробуждения
Регистр защищен и доступен для записи, если WUTWF=1
Регистр калибровки RTC_CALIBR
Бит |
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 |
Название |
Рез |
DCS |
Резерв |
DC |
||||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
Бит 7 DCS Знак калибровочной константы (0: положительная константа, 1: отрицательная константа)
Биты 4:0 DC[4:0] Калибровочная константа
DCS=0 (положительная константа)
00000: + 0 ppm
00001: + 4 ppm (Округленное значение)
00010: + 8 ppm (Округленное значение)
...
11111: + 126 ppm (Округленное значение)
DCS = 1 (отрицательная константа)
00000: −0 ppm
00001: −2 ppm (Округленное значение)
00010: −4 ppm (Округленное значение)
...
11111: −63 ppm (Округленное значение)
Регистр доступен только в режиме инициализации. Также регистр защищен от записи.
Регистр задания события A RTC_ALRMAR
Регистр задания события B 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 |
||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Название |
MSK2 |
MNT |
MNU |
MSK1 |
ST |
SU |
||||||||||
Статус |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
rw |
Бит 31 MSK4 – Маска даты (0: дата учитывается, 1:дата не учитывается)
Бит 30 WDSEL – Выбор дня недели (0: используется дата, 1: DU[3:0] определяет день недели, DT[1:0] не используется)
Биты 29:28 DT[1:0] Десятки даты в BCD формате
Биты 27:24 DU[3:0] Единицы даты в BCD формате
Бит 23 MSK3 – Маска часов (0: часы учитывается, 1:часы не учитывается в сравнении)
Бит 22. PM: AM/PM – формат (0: AM или 24-часовой формат, 1:PM)
Биты 21:20 HT[1:0] Десятки часов в BCD формате
Биты 19:16 HU[3:0] Единицы часов в BCD формате
Бит 15 MSK2 – Маска минут (0: минуты учитываются, 1: минуты не учитываются)
Биты 14:12 MNT[2:0] Десятки минут в BCD формате
Биты 11:8 MNU[3:0] Единицы минут в BCD формате
Бит 7 MSK1 – Маска секунд (0: секунды учитываются, 1: секунды не учитываются)
Биты 6:4 ST[2:0] Десятки секунд в BCD формате
Биты 3:0 SU[3:0] Единицы секунд в BCD формате
Регистры доступны для записи когда ALRBWF или ALRAWF установлены, или в режиме инициализации.
Регистр защиты от записи RTC_WPR
Регистр доступен только для записи. Используется для разблокировки доступа к регистрам RTC.
Регистр времени внешнего события RTC_TSTR
Регистр даты внешнего события RTC_TSDR
Пара регистров, доступных только для чтения, в которых сохраняется дата наступления внешних событий. Формат полностью аналогичен соответствующим счетным регистрам RTC_TR, RTC_DR.
Регистр альтернативных функций RTC_TAFCR
Бит |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Название |
Резерв |
ALARMOUT TYPE |
TSIN SEL |
TAMP1 INSEL |
||||||||||||
Статус |
rw |
rw |
rw |
|||||||||||||
Бит |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Название |
Резерв |
TAMPIE |
TAMP1 TRG |
TAMP1E |
||||||||||||
Статус |
rw |
rw |
rw |
Бит 18 ALARMOUTTYPE – Тип выхода AFO_ALARM (0: открытый коллектор, 1: стандартный выход)
Бит 17 TSINSEL – Вход, используемый для TIMESTAMP (0: RTC_AF1, 1: RTC_AF2)
Бит 16 TAMP1INSEL – Вход, используемый для TAMPER1 (0: RTC_AF1, 1: RTC_AF2)
Бит 2 TAMPIE – Разрешение прерывания по событию TAMPER1 (0: запрещено, 1: разрешено)
Бит 1 TAMP1TRG – Активный уровень события TAMPER1(0: передний фронт и высокий уровень, 1: задний фронт и низкий уровень)
Бит 0 TAMP1E – Разрешение обнаружения события TAMPER1(0: запрещено, 1: разрешено)
Регистры резервного хранения RTC_BKPxR
Двенадцать 32-разрядных регистров, работающих от напряжения Vbat, при отключении Vdd. Системный сброс, переход в спящий режим не приводят к обнулению данных регистров.
Еще по теме:
Модуль часов реального времени в STM32Fxx
STM32. Работа с базовыми портами ввода/вывода