RCC clock control register (RCC_CR)
Регистр управления тактированием
Смещение (Address offset): 0x00
Reset value: 0x0000'XX83
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | PLLSAIRDY | PLLSAION | PLLI2SRDY | PLLI2SON | PLLRDY | PLLON | |
--- | --- | r | rw | r | rw | r | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Reserved | CSSON | HSEBYP | HSERDY | HSEON | |||
--- | --- | --- | --- | rw | rw | r | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
HSICAL[7:0] | |||||||
r | r | r | r | r | r | r | r |
x | x | x | x | x | x | x | x |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
HSITRIM[4:0] | Reserved | HSIRDY | HSION | ||||
rw | rw | rw | rw | rw | --- | r | rw |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 : тактовая частота нестабильна.
1 : тактовая частота PLLSAI на выходе блока умножения стабильна и её можно использовать.
Управляется программно. Также сбрасывается аппаратно при переходе в режимы Stop и Standby.
0 : умножитель PLLSAI выключен
1 : умножитель PLLSAI включен
0 : тактовая частота нестабильна.
1 : тактовая частота PLLI2S на выходе блока умножения стабильна и её можно использовать.
Управляется программно. Также сбрасывается аппаратно при переходе в режимы Stop и Standby.
0 : умножитель PLLI2S выключен
1 : умножитель PLLI2S включен
Устанавливается аппаратно. Сигнализирует о стабильности тактовой частоты на выходе главного блока PLL.
0 : тактовая частота нестабильна.
1 : тактовая частота PLLCLK на выходе блока PLL стабильна и её можно использовать как системную тактовую частоту SYSCLK.
Управляется программно. Также сбрасывается аппаратно при переходе микроконтроллера в режимы Stop и Standby.
Бит не может быть сброшен, если блок PLL используется для формирования системной тактовой частоты SYSCLK.
0 : блок PLL выключен.
1 : блок PLL включен.
0 : контроль отключен.
1 : контроль включен. При обнаружении ошибки частоты внешнего генератора HSE, система автоматически переключается на тактирование от встроенного генератора HSI.
Для изменения бита необходимо программно отключать внешний генератор HSE.
0 : работа от внешнего кварцевого разонатора.
1 : работа от внешнего источника тактовых импульсов без использования кварцевого резонатора. При этом бит HSEON тоже должен быть установлен.
Устанавливается аппаратно и сигнализирует что частота внешнего генератора HSE стабильна.
0 : HSE генератор не готов.
1 : HSE генератор готов. Частота тактового сигнала на выходе HSE стабильна.
Сбрасывается аппаратно при переходе микроконтроллера в режимы Stop и Standby.
Бит не может быть сброшен, если HSE генератор используется прямо или косвенно для формирования системной тактовой частоты SYSCLK.
0 : HSE генератор отключен.
1 : HSE генератор включен.
Устанавливается системой автоматически после включения. Только для чтения.
Является дополнением к аппаратно устанавливаемому калибровочному значению генератора HSI. По умолчанию имеет значение 0x10, которое складывается с HSICAL[7:0] и приближает частоту HSI к значению 8 МГц ± 1%. Шаг подстройки составляет около 40 кГц.
Устанавливается аппаратно и сигнализирует что частота встроенного генератора HSI стабильна.
0 : HSI генератор не готов.
1 : HSI генератор готов. Частота тактового сигнала на выходе 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