RCC clock control register (RCC_CR)

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

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

Reset value: 0x0000'XX83

3130292827262524
Reserved PLLSAIRDY PLLSAION PLLI2SRDY PLLI2SON PLLRDY PLLON
------rrwrrwrrw
00000000
2322212019181716
Reserved CSSON HSEBYP HSERDY HSEON
------------rwrwrrw
00000000


15141312111098
HSICAL[7:0]
rrrrrrrr
xxxxxxxx
76543210
HSITRIM[4:0] Reserved HSIRDY HSION
rwrwrwrwrw---rrw
10000011


Bits 31:30
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 29
PLLSAIRDY
PLLSAI clock ready flag
Флаг стабильности тактовой частоты PLLSAI. Устанавливается аппаратно.

 0 :  тактовая частота нестабильна.

 1 :  тактовая частота PLLSAI на выходе блока умножения стабильна и её можно использовать.

Bit 28
PLLSAION
PLLSAI enable
Включает умножитель частоты PLLSAI.

Управляется программно. Также сбрасывается аппаратно при переходе в режимы Stop и Standby.

 0 :  умножитель PLLSAI выключен

 1 :  умножитель PLLSAI включен

Bit 27
PLLI2SRDY
PLLI2S clock ready flag
Флаг стабильности тактовой частоты PLLI2S. Устанавливается аппаратно.

 0 :  тактовая частота нестабильна.

 1 :  тактовая частота PLLI2S на выходе блока умножения стабильна и её можно использовать.

Bit 26
PLLI2SON
PPLLI2S enable
Включает умножитель частоты PLLI2S.

Управляется программно. Также сбрасывается аппаратно при переходе в режимы Stop и Standby.

 0 :  умножитель PLLI2S выключен

 1 :  умножитель PLLI2S включен

Bit 25
PLLRDY
Main PLL (PLL) clock ready flag
Флаг стабильности тактовой частоты PLLCLK главного блока PLL

Устанавливается аппаратно. Сигнализирует о стабильности тактовой частоты на выходе главного блока PLL.

 0 :  тактовая частота нестабильна.

 1 :  тактовая частота PLLCLK на выходе блока PLL стабильна и её можно использовать как системную тактовую частоту SYSCLK.

Bit 24
PLLON
Main PLL (PLL) enable
Включает главный блок PLL

Управляется программно. Также сбрасывается аппаратно при переходе микроконтроллера в режимы Stop и Standby.

Бит не может быть сброшен, если блок PLL используется для формирования системной тактовой частоты SYSCLK.

 0 :  блок PLL выключен.

 1 :  блок PLL включен.

Bits 23:20
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 19
CSSON
Clock security system enable
Включает блок CSS контроля стабильности частоты внешнего генератора HSE

 0 :  контроль отключен.

 1 :  контроль включен. При обнаружении ошибки частоты внешнего генератора HSE, система автоматически переключается на тактирование от встроенного генератора HSI.

Bit 18
HSEBYP
HSE clock bypass
Включает тактирование от внешнего источника тактовых импульсов вместо кварцевого резонатора.

Для изменения бита необходимо программно отключать внешний генератор HSE.

 0 :  работа от внешнего кварцевого разонатора.

 1 :  работа от внешнего источника тактовых импульсов без использования кварцевого резонатора. При этом бит HSEON тоже должен быть установлен.

Bit 17
HSERDY
HSE clock ready flag
Флаг стабильности частоты внешнего генератора HSE

Устанавливается аппаратно и сигнализирует что частота внешнего генератора HSE стабильна.

 0 :  HSE генератор не готов.

 1 :  HSE генератор готов. Частота тактового сигнала на выходе HSE стабильна.

Bit 16
HSEON
HSE clock enable
Включает внешний генератор HSE

Сбрасывается аппаратно при переходе микроконтроллера в режимы Stop и Standby.

Бит не может быть сброшен, если HSE генератор используется прямо или косвенно для формирования системной тактовой частоты SYSCLK.

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

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

Bits 15:8
HSICAL[7:0]
Internal high-speed clock calibration
Калибровочное значение встроенного высокоскоростного генератора HSI

Устанавливается системой автоматически после включения. Только для чтения.

Bits 7:3
HSITRIM[4:0]
Internal high-speed clock trimming
Программная подстройка частоты встроенного высокоскоростного генератора HSI

Является дополнением к аппаратно устанавливаемому калибровочному значению генератора HSI. По умолчанию имеет значение 0x10, которое складывается с HSICAL[7:0] и приближает частоту HSI к значению 8 МГц ± 1%. Шаг подстройки составляет около 40 кГц.

Bit 2
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 1
HSIRDY
Internal high-speed clock ready flag
Флаг стабильности частоты встроенного генератора HSI

Устанавливается аппаратно и сигнализирует что частота встроенного генератора HSI стабильна.

 0 :  HSI генератор не готов.

 1 :  HSI генератор готов. Частота тактового сигнала на выходе HSI стабильна.

Bit 0
HSION
Internal high-speed clock enable
Включает встроенный генератор HSI

Устанавливается аппаратно и включает встроенный генератор HSI при выходе микроконтроллера из режимов Stop и Standby.

Устанавливается аппаратно и включает встроенный генератор HSI при сбое внешнего генератора HSE и срабатывании защиты CSS.

Бит не может быть сброшен, если HSI генератор используется прямо или косвенно для формирования системной тактовой частоты SYSCLK.

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

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



//-  stm32f446xx.h

/********************  Bit definition for RCC_CR register  ********************/

#define RCC_CR_HSION_Pos        (0U)                                
#define RCC_CR_HSION_Msk        (0x1UL << RCC_CR_HSION_Pos)          /* 0x00000001 */
#define RCC_CR_HSION            RCC_CR_HSION_Msk                    
#define RCC_CR_HSIRDY_Pos       (1U)                                
#define RCC_CR_HSIRDY_Msk       (0x1UL << RCC_CR_HSIRDY_Pos)         /* 0x00000002 */
#define RCC_CR_HSIRDY           RCC_CR_HSIRDY_Msk                   

#define RCC_CR_HSITRIM_Pos      (3U)                                
#define RCC_CR_HSITRIM_Msk      (0x1FUL << RCC_CR_HSITRIM_Pos)       /* 0x000000F8 */
#define RCC_CR_HSITRIM          RCC_CR_HSITRIM_Msk                  
#define RCC_CR_HSITRIM_0        (0x01UL << RCC_CR_HSITRIM_Pos)       /* 0x00000008 */
#define RCC_CR_HSITRIM_1        (0x02UL << RCC_CR_HSITRIM_Pos)       /* 0x00000010 */
#define RCC_CR_HSITRIM_2        (0x04UL << RCC_CR_HSITRIM_Pos)       /* 0x00000020 */
#define RCC_CR_HSITRIM_3        (0x08UL << RCC_CR_HSITRIM_Pos)       /* 0x00000040 */
#define RCC_CR_HSITRIM_4        (0x10UL << RCC_CR_HSITRIM_Pos)       /* 0x00000080 */

#define RCC_CR_HSICAL_Pos       (8U)                                
#define RCC_CR_HSICAL_Msk       (0xFFUL << RCC_CR_HSICAL_Pos)        /* 0x0000FF00 */
#define RCC_CR_HSICAL           RCC_CR_HSICAL_Msk                   
#define RCC_CR_HSICAL_0         (0x01UL << RCC_CR_HSICAL_Pos)        /* 0x00000100 */
#define RCC_CR_HSICAL_1         (0x02UL << RCC_CR_HSICAL_Pos)        /* 0x00000200 */
#define RCC_CR_HSICAL_2         (0x04UL << RCC_CR_HSICAL_Pos)        /* 0x00000400 */
#define RCC_CR_HSICAL_3         (0x08UL << RCC_CR_HSICAL_Pos)        /* 0x00000800 */
#define RCC_CR_HSICAL_4         (0x10UL << RCC_CR_HSICAL_Pos)        /* 0x00001000 */
#define RCC_CR_HSICAL_5         (0x20UL << RCC_CR_HSICAL_Pos)        /* 0x00002000 */
#define RCC_CR_HSICAL_6         (0x40UL << RCC_CR_HSICAL_Pos)        /* 0x00004000 */
#define RCC_CR_HSICAL_7         (0x80UL << RCC_CR_HSICAL_Pos)        /* 0x00008000 */

#define RCC_CR_HSEON_Pos        (16U)                               
#define RCC_CR_HSEON_Msk        (0x1UL << RCC_CR_HSEON_Pos)          /* 0x00010000 */
#define RCC_CR_HSEON            RCC_CR_HSEON_Msk                    
#define RCC_CR_HSERDY_Pos       (17U)                               
#define RCC_CR_HSERDY_Msk       (0x1UL << RCC_CR_HSERDY_Pos)         /* 0x00020000 */
#define RCC_CR_HSERDY           RCC_CR_HSERDY_Msk                   
#define RCC_CR_HSEBYP_Pos       (18U)                               
#define RCC_CR_HSEBYP_Msk       (0x1UL << RCC_CR_HSEBYP_Pos)         /* 0x00040000 */
#define RCC_CR_HSEBYP           RCC_CR_HSEBYP_Msk                   
#define RCC_CR_CSSON_Pos        (19U)                               
#define RCC_CR_CSSON_Msk        (0x1UL << RCC_CR_CSSON_Pos)          /* 0x00080000 */
#define RCC_CR_CSSON            RCC_CR_CSSON_Msk                    
#define RCC_CR_PLLON_Pos        (24U)                               
#define RCC_CR_PLLON_Msk        (0x1UL << RCC_CR_PLLON_Pos)          /* 0x01000000 */
#define RCC_CR_PLLON            RCC_CR_PLLON_Msk                    
#define RCC_CR_PLLRDY_Pos       (25U)                               
#define RCC_CR_PLLRDY_Msk       (0x1UL << RCC_CR_PLLRDY_Pos)         /* 0x02000000 */
#define RCC_CR_PLLRDY           RCC_CR_PLLRDY_Msk                   
/*
 * @brief Specific device feature definitions (not present on all devices in the STM32F4 serie)
 */
#define RCC_PLLI2S_SUPPORT                                          /* Support PLLI2S oscillator */

#define RCC_CR_PLLI2SON_Pos     (26U)                               
#define RCC_CR_PLLI2SON_Msk     (0x1UL << RCC_CR_PLLI2SON_Pos)       /* 0x04000000 */
#define RCC_CR_PLLI2SON          RCC_CR_PLLI2SON_Msk                 
#define RCC_CR_PLLI2SRDY_Pos    (27U)                               
#define RCC_CR_PLLI2SRDY_Msk    (0x1UL << RCC_CR_PLLI2SRDY_Pos)      /* 0x08000000 */
#define RCC_CR_PLLI2SRDY        RCC_CR_PLLI2SRDY_Msk                
/*
 * @brief Specific device feature definitions (not present on all devices in the STM32F4 serie)
 */
#define RCC_PLLSAI_SUPPORT                                          /* Support PLLSAI oscillator */

#define RCC_CR_PLLSAION_Pos     (28U)                               
#define RCC_CR_PLLSAION_Msk     (0x1UL << RCC_CR_PLLSAION_Pos)       /* 0x10000000 */
#define RCC_CR_PLLSAION         RCC_CR_PLLSAION_Msk                 
#define RCC_CR_PLLSAIRDY_Pos    (29U)                               
#define RCC_CR_PLLSAIRDY_Msk    (0x1UL << RCC_CR_PLLSAIRDY_Pos)      /* 0x20000000 */
#define RCC_CR_PLLSAIRDY        RCC_CR_PLLSAIRDY_Msk