Backup domain control register (RCC_BDCR)

Регистр управления доменом резервного копирования Backup

Смещение (Address offset): 0x20

Reset value: 0x0000'0000 - после сброса резервного домена

3130292827262524
Reserved
------------------------
00000000
2322212019181716
Reserved BDRST
---------------------rw
00000000


15141312111098
RTCEN Reserved RTCSEL[1:0]
rw---------------rwrw
00000000
76543210
Reserved LSEBYP LSERDY LSEON
---------------rwrrw
00000000


Биты LSEON, LSEBYP, RTCSEL и RTCEN регистра управления доменом резервного копирования RCC_BDCR находятся в резервном домене питания микроконтроллера. После сброса эти биты защищены от записи, и перед их изменением необходимо установить бит DBP в регистре управления питанием PWR_CR.

Биты LSEON, LSEBYP, RTCSEL и RTCEN сбрасываются только после сброса резервного домена. Любой внутренний или внешний сброс не окажет никакого влияния на эти биты.

При последовательном обращении к регистру RCC_BDCR необходимо вводить до 3-х тактов ожидания.

Bits 31:17
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 16
BDRST
Backup domain software reset
Программный сброс домена резервного копирования Backup

 0 : сброс неактивен.

 1 : сброс всего домена резервного копирования Backup.

Bit 15
RTCEN
RTC clock enable
Включает часы реального времени RTC

 0 : часы реального времени RTC отключены.

 1 : часы реального времени RTC включены.

Bits 14:10
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 9:8
RTCSEL[1:0]
RTC clock source selection
Выбор источника тактирования часов реального времени RTC

Устанавливается программно. После установки нельзя изменить, пока не будет сброшен домен резервного копирования Backup. Для сброса можно использовать бит BDRST.

 00 : тактирование отключено.

 01 : для тактирования RTC используется внешний генератор LSE.

 10 : для тактирования RTC используется внутренний генератор LSI.

 11 : для тактирования RTC используется внешний генератор HSE с делением частоты на 128.

Bits 7:3
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 2
LSEBYP
External low-speed oscillator bypass
Обход внешнего низкочастотного генератора LSE

 0 : внешний генератор LSE работает от кварцевого резонатора 32 кГц.

 1 : кварцевый резонатор отключен, микроконтроллер тактируется от внешнего источника (частотой до 1 МГц, скважностью близкой к 2, прямоугольной, треугольной или синусоидальной формой сигнала). Внешний тактовый сигнал подключается к выводу OSC32_IN. Вывод OSC32_OUT не используется.

Bit 1
LSERDY
External low-speed oscillator ready
Флаг стабильности частоты внешнего низкочастотного генератора LSE

Устанавливается и сбрасывается аппаратно. При отключении LSE требуется 6 тактов генерации для сброса флага LSERDY.

 0 : частота нестабильна, LSE генератор не готов.

 1 : частота стабилизировалась, сигнал генератора LSE можно использовать для тактирования.

Bit 0
LSEON
External low-speed oscillator enable
Включает внешний низкочастотный генератор LSE

 0 : генератор LSE отключен.

 1 : генератор LSE включен.



/*******************  Bit definition for RCC_BDCR register  *******************/

#define  RCC_BDCR_LSEON                      ((uint32_t)0x00000001)        /* External Low Speed oscillator enable */
#define  RCC_BDCR_LSERDY                     ((uint32_t)0x00000002)        /* External Low Speed oscillator Ready */
#define  RCC_BDCR_LSEBYP                     ((uint32_t)0x00000004)        /* External Low Speed oscillator Bypass */

#define  RCC_BDCR_RTCSEL                     ((uint32_t)0x00000300)        /* RTCSEL[1:0] bits (RTC clock source selection) */
#define  RCC_BDCR_RTCSEL_0                   ((uint32_t)0x00000100)        /* Bit 0 */
#define  RCC_BDCR_RTCSEL_1                   ((uint32_t)0x00000200)        /* Bit 1 */

/* RTC congiguration */
#define  RCC_BDCR_RTCSEL_NOCLOCK             ((uint32_t)0x00000000)        /* No clock */
#define  RCC_BDCR_RTCSEL_LSE                 ((uint32_t)0x00000100)        /* LSE oscillator clock used as RTC clock */
#define  RCC_BDCR_RTCSEL_LSI                 ((uint32_t)0x00000200)        /* LSI oscillator clock used as RTC clock */
#define  RCC_BDCR_RTCSEL_HSE                 ((uint32_t)0x00000300)        /* HSE oscillator clock divided by 128 used as RTC clock */

#define  RCC_BDCR_RTCEN                      ((uint32_t)0x00008000)        /* RTC clock enable */
#define  RCC_BDCR_BDRST                      ((uint32_t)0x00010000)        /* Backup domain software reset  */