Регистры RCC STM32G4
Регистры RCC STM32G4: генераторы HSI16, HSE, HSI48, LSE и LSI, PLL с выходами P, Q и R, делители шин AHB, APB1 и APB2, выход MCO, источники тактирования периферии, включение, сброс и тактирование блоков в Sleep и Stop, причина сброса.
Содержание
- Регистры блока
- Конструктор
- RCC_CR
- RCC_ICSCR
- RCC_CFGR
- RCC_PLLCFGR
- RCC_CIER
- RCC_CIFR
- RCC_CICR
- RCC_AHB1RSTR
- RCC_AHB2RSTR
- RCC_AHB3RSTR
- RCC_APB1RSTR1
- RCC_APB1RSTR2
- RCC_APB2RSTR
- RCC_AHB1ENR
- RCC_AHB2ENR
- RCC_AHB3ENR
- RCC_APB1ENR1
- RCC_APB1ENR2
- RCC_APB2ENR
- RCC_AHB1SMENR
- RCC_AHB2SMENR
- RCC_AHB3SMENR
- RCC_APB1SMENR1
- RCC_APB1SMENR2
- RCC_APB2SMENR
- RCC_CCIPR
- RCC_BDCR
- RCC_CSR
- RCC_CRRCR
- RCC_CCIPR2
После сброса STM32G4 работает от HSI16. До 170 МГц частоту поднимает PLL: вход — HSI16 или HSE, делитель M от 1 до 16, множитель N от 8 до 127, системная частота берётся с выхода R (делитель 2, 4, 6 или 8). Выходы P и Q тактируют АЦП, FDCAN, USB, I2S и SAI — источники выбираются в RCC_CCIPR и CCIPR2 (RM0440, раздел 7.4).
Выше 150 МГц ядру нужен режим Range 1 boost (бит R1MODE = 0 в PWR_CR5) и четыре такта ожидания флеш-памяти. При переключении на PLL с HCLK выше 80 МГц и обратно руководство советует промежуточный шаг: сначала делитель AHB / 2, через 1 мкс — нужный делитель (раздел 7.2.7).
Тактирование каждого блока включается в RCC_AHBxENR и RCC_APBxENRy, а в RCC_xxSMENR — его работа в режимах Sleep и Stop: после сброса там почти всё включено. Причину сброса показывают флаги RCC_CSR, бит RMVF их сбрасывает.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| RCC | 0x4002 1000 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| RCC_CR | 0x00 | Тактовые генераторы HSI16, HSE и PLL | 0x0000 0500 (бит HSEBYP сбросом не меняется) |
| RCC_ICSCR | 0x04 | Калибровка и подстройка HSI16 | 0x40XX 00XX (X — заводская калибровка) |
| RCC_CFGR | 0x08 | Источник SYSCLK, делители шин и вывод MCO | 0x0000 0005 |
| RCC_PLLCFGR | 0x0C | Настройка PLL: источник, M, N, P, Q, R | 0x0000 1000 |
| RCC_CIER | 0x18 | Разрешение прерываний готовности генераторов | 0x0000 0000 |
| RCC_CIFR | 0x1C | Флаги прерываний генераторов | 0x0000 0000 |
| RCC_CICR | 0x20 | Сброс флагов прерываний генераторов | 0x0000 0000 |
| RCC_AHB1RSTR | 0x28 | Сброс блоков на шине AHB1 | 0x0000 0000 |
| RCC_AHB2RSTR | 0x2C | Сброс блоков на шине AHB2 | 0x0000 0000 |
| RCC_AHB3RSTR | 0x30 | Сброс блоков на шине AHB3 | 0x0000 0000 |
| RCC_APB1RSTR1 | 0x38 | Сброс блоков на шине APB1, регистр 1 | 0x0000 0000 |
| RCC_APB1RSTR2 | 0x3C | Сброс блоков на шине APB1, регистр 2 | 0x0000 0000 |
| RCC_APB2RSTR | 0x40 | Сброс блоков на шине APB2 | 0x0000 0000 |
| RCC_AHB1ENR | 0x48 | Тактирование блоков на шине AHB1 | 0x0000 0100 |
| RCC_AHB2ENR | 0x4C | Тактирование блоков на шине AHB2 | 0x0000 0000 |
| RCC_AHB3ENR | 0x50 | Тактирование блоков на шине AHB3 | 0x0000 0000 |
| RCC_APB1ENR1 | 0x58 | Тактирование блоков на шине APB1, регистр 1 | 0x0000 0400 |
| RCC_APB1ENR2 | 0x5C | Тактирование блоков на шине APB1, регистр 2 | 0x0000 0000 |
| RCC_APB2ENR | 0x60 | Тактирование блоков на шине APB2 | 0x0000 0000 |
| RCC_AHB1SMENR | 0x68 | Тактирование блоков в режимах Sleep и Stop на шине AHB1 | 0x0000 131F |
| RCC_AHB2SMENR | 0x6C | Тактирование блоков в режимах Sleep и Stop на шине AHB2 | 0x050F 667F |
| RCC_AHB3SMENR | 0x70 | Тактирование блоков в режимах Sleep и Stop на шине AHB3 | 0x0000 0101 |
| RCC_APB1SMENR1 | 0x78 | Тактирование блоков в режимах Sleep и Stop на шине APB1, регистр 1 | 0xD2FE CD3F |
| RCC_APB1SMENR2 | 0x7C | Тактирование блоков в режимах Sleep и Stop на шине APB1, регистр 2 | 0x0000 0103 |
| RCC_APB2SMENR | 0x80 | Тактирование блоков в режимах Sleep и Stop на шине APB2 | 0x0437 F801 |
| RCC_CCIPR | 0x88 | Источники тактирования периферии | 0x0000 0000 |
| RCC_BDCR | 0x90 | Домен RTC: LSE, тактирование часов и вывод LSCO | 0x0000 0000 |
| RCC_CSR | 0x94 | Генератор LSI и флаги причины сброса | 0x0C00 0000 (сбрасывается системным сбросом, флаги сброса — только при включении питания) |
| RCC_CRRCR | 0x98 | Генератор HSI48 и его калибровка | 0x0000 XXX0 (X — заводская калибровка) |
| RCC_CCIPR2 | 0x9C | Источники тактирования периферии, регистр 2 | 0x0000 0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000500
0000 0000 0000 0000 0000 0101 0000 0000
RCC->CR = 0x00000500;RCC_CR — тактовые генераторы HSI16, HSE и PLL
Смещение 0x00, адрес 0x4002 1000, 32 бит, после сброса 0x0000 0500 (бит HSEBYP сбросом не меняется). В коде: RCC->CR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PLLRDY | PLLON | — | CSSON | HSEBYP | HSERDY | HSEON | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | HSIRDY | HSIKERON | HSION | — | |||||||||||
- PLLRDY (бит 25) — PLL захватила частоту (только чтение).
- PLLON (бит 24) — Включение PLL; сбрасывается при входе в Stop, Standby и Shutdown.
- CSSON (бит 19) — Система защиты тактирования: при отказе HSE — переход на HSI16, прерывание NMI и сигнал аварийного останова таймеров.
- HSEBYP (бит 18) — Обход генератора HSE: внешний тактовый сигнал вместо кварца.
- HSERDY (бит 17) — Генератор HSE готов (только чтение).
- HSEON (бит 16) — Включение генератора HSE.
- HSIRDY (бит 10) — Генератор HSI16 готов (только чтение).
- HSIKERON (бит 9) — HSI16 работает в режиме Stop для периферии, которая от него тактируется.
- HSION (бит 8) — Включение генератора HSI16.
RCC_ICSCR — калибровка и подстройка HSI16
Смещение 0x04, адрес 0x4002 1004, 32 бит, после сброса 0x40XX 00XX (X — заводская калибровка). В коде: RCC->ICSCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | HSITRIM | HSICAL | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
- HSITRIM (биты 30:24) — Подстройка частоты HSI16 поверх заводской калибровки HSICAL.
- HSICAL (биты 23:16) — Заводская калибровка HSI16 (только чтение).
RCC_CFGR — источник SYSCLK, делители шин и вывод MCO
Смещение 0x08, адрес 0x4002 1008, 32 бит, после сброса 0x0000 0005. В коде: RCC->CFGR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MCOPRE | MCOSEL | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PPRE2 | PPRE1 | HPRE | SWS | SW | ||||||||||
- MCOPRE (биты 30:28) — Делитель сигнала на выходе MCO.
MCOPRE Значение Макрос CMSIS 000 Без деления RCC_CFGR_MCOPRE_DIV1 001 Деление на 2 RCC_CFGR_MCOPRE_DIV2 010 Деление на 4 RCC_CFGR_MCOPRE_DIV4 011 Деление на 8 RCC_CFGR_MCOPRE_DIV8 100 Деление на 16 RCC_CFGR_MCOPRE_DIV16 - MCOSEL (биты 27:24) — Источник сигнала на выходе MCO.
- PPRE2 (биты 13:11) — Делитель шины APB2: PCLK2 = HCLK / 1…16.
PPRE2 Значение Макрос CMSIS 000 Без деления RCC_CFGR_PPRE2_DIV1 100 Деление на 2 RCC_CFGR_PPRE2_DIV2 101 Деление на 4 RCC_CFGR_PPRE2_DIV4 110 Деление на 8 RCC_CFGR_PPRE2_DIV8 111 Деление на 16 RCC_CFGR_PPRE2_DIV16 - PPRE1 (биты 10:8) — Делитель шины APB1: PCLK1 = HCLK / 1…16.
PPRE1 Значение Макрос CMSIS 000 Без деления RCC_CFGR_PPRE1_DIV1 100 Деление на 2 RCC_CFGR_PPRE1_DIV2 101 Деление на 4 RCC_CFGR_PPRE1_DIV4 110 Деление на 8 RCC_CFGR_PPRE1_DIV8 111 Деление на 16 RCC_CFGR_PPRE1_DIV16 - HPRE (биты 7:4) — Делитель шины AHB: HCLK = SYSCLK / 1…512.
HPRE Значение Макрос CMSIS 0000 Без деления RCC_CFGR_HPRE_DIV1 1000 Деление на 2 RCC_CFGR_HPRE_DIV2 1001 Деление на 4 RCC_CFGR_HPRE_DIV4 1010 Деление на 8 RCC_CFGR_HPRE_DIV8 1011 Деление на 16 RCC_CFGR_HPRE_DIV16 1100 Деление на 64 RCC_CFGR_HPRE_DIV64 1101 Деление на 128 RCC_CFGR_HPRE_DIV128 1110 Деление на 256 RCC_CFGR_HPRE_DIV256 1111 Деление на 512 RCC_CFGR_HPRE_DIV512 - SWS (биты 3:2) — Текущий источник SYSCLK (только чтение).
SWS Значение Макрос CMSIS 01 HSI16 RCC_CFGR_SWS_HSI 10 HSE RCC_CFGR_SWS_HSE 11 PLL RCC_CFGR_SWS_PLL - SW (биты 1:0) — Выбор источника SYSCLK.
SW Значение Макрос CMSIS 01 HSI16 RCC_CFGR_SW_HSI 10 HSE RCC_CFGR_SW_HSE 11 PLL × 2 (до 144 МГц) RCC_CFGR_SW_PLL
RCC_PLLCFGR — настройка PLL: источник, M, N, P, Q, R
Смещение 0x0C, адрес 0x4002 100C, 32 бит, после сброса 0x0000 1000. В коде: RCC->PLLCFGR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PLLPDIV | PLLR | PLLREN | — | PLLQ | PLLQEN | — | PLLP | PLLPEN | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PLLN | PLLM | — | PLLSRC | |||||||||||
- PLLPDIV (биты 31:27) — Делитель выхода P: 2…31; при 0 делитель задаёт бит PLLP.
- PLLR (биты 26:25) — Делитель выхода R (PLLRCLK — системная частота): 2, 4, 6 или 8.
- PLLREN (бит 24) — Включение выхода R PLL.
- PLLQ (биты 22:21) — Делитель выхода Q PLL: 2, 4, 6 или 8.
- PLLQEN (бит 20) — Включение выхода Q PLL.
- PLLP (бит 17) — Делитель выхода P PLL: 7 или 17 (при PDIV = 0).
- PLLPEN (бит 16) — Включение выхода P PLL.
- PLLN (биты 14:8) — Множитель N частоты ГУН PLL: 8…127.
- PLLM (биты 7:4) — Делитель M на входе PLL: 1…16.
- PLLSRC (биты 1:0) — Источник тактирования PLL.
PLLSRC Значение Макрос CMSIS 10 HSI16 RCC_PLLCFGR_PLLSRC_HSI 11 HSE RCC_PLLCFGR_PLLSRC_HSE
RCC_CIER — разрешение прерываний готовности генераторов
Смещение 0x18, адрес 0x4002 1018, 32 бит, после сброса 0x0000 0000. В коде: RCC->CIER.
| 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 |
| — | HSI48RDYIE | LSECSSIE | — | PLLRDYIE | HSERDYIE | HSIRDYIE | — | LSERDYIE | LSIRDYIE | ||||||
- HSI48RDYIE (бит 10) — Прерывание по готовности HSI48.
- LSECSSIE (бит 9) — Прерывание по отказу LSE.
- PLLRDYIE (бит 5) — Прерывание по готовности PLL.
- HSERDYIE (бит 4) — Прерывание по готовности HSE.
- HSIRDYIE (бит 3) — Прерывание по готовности HSI.
- LSERDYIE (бит 1) — Прерывание по готовности LSE.
- LSIRDYIE (бит 0) — Прерывание по готовности LSI.
RCC_CIFR — флаги прерываний генераторов
Смещение 0x1C, адрес 0x4002 101C, 32 бит, после сброса 0x0000 0000. В коде: RCC->CIFR.
| 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 |
| — | HSI48RDYF | LSECSSF | CSSF | — | PLLRDYF | HSERDYF | HSIRDYF | — | LSERDYF | LSIRDYF | |||||
- HSI48RDYF (бит 10) — Флаг прерывания по готовности HSI48.
- LSECSSF (бит 9) — Флаг отказа LSE.
- CSSF (бит 8) — Флаг отказа HSE (система защиты тактирования).
- PLLRDYF (бит 5) — Флаг прерывания по готовности PLL.
- HSERDYF (бит 4) — Флаг прерывания по готовности HSE.
- HSIRDYF (бит 3) — Флаг прерывания по готовности HSI.
- LSERDYF (бит 1) — Флаг прерывания по готовности LSE.
- LSIRDYF (бит 0) — Флаг прерывания по готовности LSI.
RCC_CICR — сброс флагов прерываний генераторов
Смещение 0x20, адрес 0x4002 1020, 32 бит, после сброса 0x0000 0000. В коде: RCC->CICR.
| 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 |
| — | HSI48RDYC | LSECSSC | CSSC | — | PLLRDYC | HSERDYC | HSIRDYC | — | LSERDYC | LSIRDYC | |||||
- HSI48RDYC (бит 10) — Сброс флага готовности HSI48 записью 1.
- LSECSSC (бит 9) — Сброс флага LSECSSF записью 1.
- CSSC (бит 8) — Сброс флага CSSF записью 1.
- PLLRDYC (бит 5) — Сброс флага готовности PLL записью 1.
- HSERDYC (бит 4) — Сброс флага готовности HSE записью 1.
- HSIRDYC (бит 3) — Сброс флага готовности HSI записью 1.
- LSERDYC (бит 1) — Сброс флага готовности LSE записью 1.
- LSIRDYC (бит 0) — Сброс флага готовности LSI записью 1.
RCC_AHB1RSTR — сброс блоков на шине AHB1
Смещение 0x28, адрес 0x4002 1028, 32 бит, после сброса 0x0000 0000. В коде: RCC->AHB1RSTR.
| 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 |
| — | CRCRST | — | FLASHRST | — | FMACRST | CORDICRST | DMAMUX1RST | DMA2RST | DMA1RST | ||||||
- CRCRST (бит 12) — Сброс блока CRC.
- FLASHRST (бит 8) — Сброс интерфейса флеш-памяти.
- FMACRST (бит 4) — Сброс фильтрового ускорителя FMAC.
- CORDICRST (бит 3) — Сброс сопроцессора CORDIC.
- DMAMUX1RST (бит 2) — Сброс мультиплексора запросов DMAMUX.
- DMA2RST (бит 1) — Сброс DMA2.
- DMA1RST (бит 0) — Сброс DMA1.
RCC_AHB2RSTR — сброс блоков на шине AHB2
Смещение 0x2C, адрес 0x4002 102C, 32 бит, после сброса 0x0000 0000. В коде: RCC->AHB2RSTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RNGRST | — | AESRST | — | DAC4RST | DAC3RST | DAC2RST | DAC1RST | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ADC345RST | ADC12RST | — | GPIOGRST | GPIOFRST | GPIOERST | GPIODRST | GPIOCRST | GPIOBRST | GPIOARST | |||||
- RNGRST (бит 26) — Сброс генератора случайных чисел RNG.
- AESRST (бит 24) — Сброс блока шифрования AES (только у STM32G441, STM32G483, STM32G484, STM32G4A1).
- DAC4RST (бит 19) — Сброс ЦАП DAC4 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC3RST (бит 18) — Сброс ЦАП DAC3.
- DAC2RST (бит 17) — Сброс ЦАП DAC2 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC1RST (бит 16) — Сброс ЦАП DAC1.
- ADC345RST (бит 14) — Сброс АЦП ADC3, ADC4 и ADC5 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- ADC12RST (бит 13) — Сброс АЦП ADC1 и ADC2.
- GPIOGRST (бит 6) — Сброс порта G.
- GPIOFRST (бит 5) — Сброс порта F.
- GPIOERST (бит 4) — Сброс порта E.
- GPIODRST (бит 3) — Сброс порта D.
- GPIOCRST (бит 2) — Сброс порта C.
- GPIOBRST (бит 1) — Сброс порта B.
- GPIOARST (бит 0) — Сброс порта A.
RCC_AHB3RSTR — сброс блоков на шине AHB3
Смещение 0x30, адрес 0x4002 1030, 32 бит, после сброса 0x0000 0000. В коде: RCC->AHB3RSTR.
| 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 |
| — | QSPIRST | — | FMCRST | ||||||||||||
- QSPIRST (бит 8) — Сброс интерфейса Quad-SPI (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- FMCRST (бит 0) — Сброс контроллера внешней памяти FMC (только у STM32G473, STM32G474, STM32G483, STM32G484).
RCC_APB1RSTR1 — сброс блоков на шине APB1, регистр 1
Смещение 0x38, адрес 0x4002 1038, 32 бит, после сброса 0x0000 0000. В коде: RCC->APB1RSTR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LPTIM1RST | I2C3RST | — | PWRRST | — | FDCANRST | — | USBRST | I2C2RST | I2C1RST | UART5RST | UART4RST | USART3RST | USART2RST | — | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI3RST | SPI2RST | — | CRSRST | — | TIM7RST | TIM6RST | TIM5RST | TIM4RST | TIM3RST | TIM2RST | |||||
- LPTIM1RST (бит 31) — Сброс таймера LPTIM1.
- I2C3RST (бит 30) — Сброс I2C3.
- PWRRST (бит 28) — Сброс интерфейса управления питанием PWR.
- FDCANRST (бит 25) — Сброс FDCAN.
- USBRST (бит 23) — Сброс USB.
- I2C2RST (бит 22) — Сброс I2C2.
- I2C1RST (бит 21) — Сброс I2C1.
- UART5RST (бит 20) — Сброс UART5 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- UART4RST (бит 19) — Сброс UART4.
- USART3RST (бит 18) — Сброс USART3.
- USART2RST (бит 17) — Сброс USART2.
- SPI3RST (бит 15) — Сброс SPI3.
- SPI2RST (бит 14) — Сброс SPI2.
- CRSRST (бит 8) — Сброс блока подстройки HSI48 (CRS).
- TIM7RST (бит 5) — Сброс таймера TIM7.
- TIM6RST (бит 4) — Сброс таймера TIM6.
- TIM5RST (бит 3) — Сброс таймера TIM5 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- TIM4RST (бит 2) — Сброс таймера TIM4.
- TIM3RST (бит 1) — Сброс таймера TIM3.
- TIM2RST (бит 0) — Сброс таймера TIM2.
RCC_APB1RSTR2 — сброс блоков на шине APB1, регистр 2
Смещение 0x3C, адрес 0x4002 103C, 32 бит, после сброса 0x0000 0000. В коде: RCC->APB1RSTR2.
| 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 |
| — | UCPD1RST | — | I2C4RST | LPUART1RST | |||||||||||
- UCPD1RST (бит 8) — Сброс контроллера USB Type-C UCPD1.
- I2C4RST (бит 1) — Сброс I2C4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- LPUART1RST (бит 0) — Сброс LPUART1.
RCC_APB2RSTR — сброс блоков на шине APB2
Смещение 0x40, адрес 0x4002 1040, 32 бит, после сброса 0x0000 0000. В коде: RCC->APB2RSTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | HRTIM1RST | — | SAI1RST | TIM20RST | — | TIM17RST | TIM16RST | TIM15RST | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI4RST | USART1RST | TIM8RST | SPI1RST | TIM1RST | — | SYSCFGRST | |||||||||
- HRTIM1RST (бит 26) — Сброс таймера высокого разрешения HRTIM (только у STM32G474, STM32G484).
- SAI1RST (бит 21) — Сброс аудиоинтерфейса SAI1.
- TIM20RST (бит 20) — Сброс таймера TIM20 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- TIM17RST (бит 18) — Сброс таймера TIM17.
- TIM16RST (бит 17) — Сброс таймера TIM16.
- TIM15RST (бит 16) — Сброс таймера TIM15.
- SPI4RST (бит 15) — Сброс SPI4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- USART1RST (бит 14) — Сброс USART1.
- TIM8RST (бит 13) — Сброс таймера TIM8.
- SPI1RST (бит 12) — Сброс SPI1.
- TIM1RST (бит 11) — Сброс таймера TIM1.
- SYSCFGRST (бит 0) — Сброс SYSCFG и компараторов.
RCC_AHB1ENR — тактирование блоков на шине AHB1
Смещение 0x48, адрес 0x4002 1048, 32 бит, после сброса 0x0000 0100. В коде: RCC->AHB1ENR.
| 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 |
| — | CRCEN | — | FLASHEN | — | FMACEN | CORDICEN | DMAMUX1EN | DMA2EN | DMA1EN | ||||||
- CRCEN (бит 12) — Тактирование блока CRC.
- FLASHEN (бит 8) — Тактирование интерфейса флеш-памяти.
- FMACEN (бит 4) — Тактирование фильтрового ускорителя FMAC.
- CORDICEN (бит 3) — Тактирование сопроцессора CORDIC.
- DMAMUX1EN (бит 2) — Тактирование мультиплексора запросов DMAMUX.
- DMA2EN (бит 1) — Тактирование DMA2.
- DMA1EN (бит 0) — Тактирование DMA1.
RCC_AHB2ENR — тактирование блоков на шине AHB2
Смещение 0x4C, адрес 0x4002 104C, 32 бит, после сброса 0x0000 0000. В коде: RCC->AHB2ENR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RNGEN | — | AESEN | — | DAC4EN | DAC3EN | DAC2EN | DAC1EN | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ADC345EN | ADC12EN | — | GPIOGEN | GPIOFEN | GPIOEEN | GPIODEN | GPIOCEN | GPIOBEN | GPIOAEN | |||||
- RNGEN (бит 26) — Тактирование генератора случайных чисел RNG.
- AESEN (бит 24) — Тактирование блока шифрования AES (только у STM32G441, STM32G483, STM32G484, STM32G4A1).
- DAC4EN (бит 19) — Тактирование ЦАП DAC4 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC3EN (бит 18) — Тактирование ЦАП DAC3.
- DAC2EN (бит 17) — Тактирование ЦАП DAC2 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC1EN (бит 16) — Тактирование ЦАП DAC1.
- ADC345EN (бит 14) — Тактирование АЦП ADC3, ADC4 и ADC5 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- ADC12EN (бит 13) — Тактирование АЦП ADC1 и ADC2.
- GPIOGEN (бит 6) — Тактирование порта G.
- GPIOFEN (бит 5) — Тактирование порта F.
- GPIOEEN (бит 4) — Тактирование порта E.
- GPIODEN (бит 3) — Тактирование порта D.
- GPIOCEN (бит 2) — Тактирование порта C.
- GPIOBEN (бит 1) — Тактирование порта B.
- GPIOAEN (бит 0) — Тактирование порта A.
RCC_AHB3ENR — тактирование блоков на шине AHB3
Смещение 0x50, адрес 0x4002 1050, 32 бит, после сброса 0x0000 0000. В коде: RCC->AHB3ENR.
| 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 |
| — | QSPIEN | — | FMCEN | ||||||||||||
- QSPIEN (бит 8) — Тактирование интерфейса Quad-SPI (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- FMCEN (бит 0) — Тактирование контроллера внешней памяти FMC (только у STM32G473, STM32G474, STM32G483, STM32G484).
RCC_APB1ENR1 — тактирование блоков на шине APB1, регистр 1
Смещение 0x58, адрес 0x4002 1058, 32 бит, после сброса 0x0000 0400. В коде: RCC->APB1ENR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LPTIM1EN | I2C3EN | — | PWREN | — | FDCANEN | — | USBEN | I2C2EN | I2C1EN | UART5EN | UART4EN | USART3EN | USART2EN | — | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI3EN | SPI2EN | — | WWDGEN | RTCAPBEN | — | CRSEN | — | TIM7EN | TIM6EN | TIM5EN | TIM4EN | TIM3EN | TIM2EN | ||
- LPTIM1EN (бит 31) — Тактирование таймера LPTIM1.
- I2C3EN (бит 30) — Тактирование I2C3.
- PWREN (бит 28) — Тактирование интерфейса управления питанием PWR.
- FDCANEN (бит 25) — Тактирование FDCAN.
- USBEN (бит 23) — Тактирование USB.
- I2C2EN (бит 22) — Тактирование I2C2.
- I2C1EN (бит 21) — Тактирование I2C1.
- UART5EN (бит 20) — Тактирование UART5 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- UART4EN (бит 19) — Тактирование UART4.
- USART3EN (бит 18) — Тактирование USART3.
- USART2EN (бит 17) — Тактирование USART2.
- SPI3EN (бит 15) — Тактирование SPI3.
- SPI2EN (бит 14) — Тактирование SPI2.
- WWDGEN (бит 11) — Тактирование оконного сторожевого таймера WWDG.
- RTCAPBEN (бит 10) — Тактирование интерфейса RTC на шине APB.
- CRSEN (бит 8) — Тактирование блока подстройки HSI48 (CRS).
- TIM7EN (бит 5) — Тактирование таймера TIM7.
- TIM6EN (бит 4) — Тактирование таймера TIM6.
- TIM5EN (бит 3) — Тактирование таймера TIM5 (только у STM32G473, STM32G474, STM32G483, STM32G484).
- TIM4EN (бит 2) — Тактирование таймера TIM4.
- TIM3EN (бит 1) — Тактирование таймера TIM3.
- TIM2EN (бит 0) — Тактирование таймера TIM2.
RCC_APB1ENR2 — тактирование блоков на шине APB1, регистр 2
Смещение 0x5C, адрес 0x4002 105C, 32 бит, после сброса 0x0000 0000. В коде: RCC->APB1ENR2.
| 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 |
| — | UCPD1EN | — | I2C4EN | LPUART1EN | |||||||||||
- UCPD1EN (бит 8) — Тактирование контроллера USB Type-C UCPD1.
- I2C4EN (бит 1) — Тактирование I2C4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- LPUART1EN (бит 0) — Тактирование LPUART1.
RCC_APB2ENR — тактирование блоков на шине APB2
Смещение 0x60, адрес 0x4002 1060, 32 бит, после сброса 0x0000 0000. В коде: RCC->APB2ENR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | HRTIM1EN | — | SAI1EN | TIM20EN | — | TIM17EN | TIM16EN | TIM15EN | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI4EN | USART1EN | TIM8EN | SPI1EN | TIM1EN | — | SYSCFGEN | |||||||||
- HRTIM1EN (бит 26) — Тактирование таймера высокого разрешения HRTIM (только у STM32G474, STM32G484).
- SAI1EN (бит 21) — Тактирование аудиоинтерфейса SAI1.
- TIM20EN (бит 20) — Тактирование таймера TIM20 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- TIM17EN (бит 18) — Тактирование таймера TIM17.
- TIM16EN (бит 17) — Тактирование таймера TIM16.
- TIM15EN (бит 16) — Тактирование таймера TIM15.
- SPI4EN (бит 15) — Тактирование SPI4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- USART1EN (бит 14) — Тактирование USART1.
- TIM8EN (бит 13) — Тактирование таймера TIM8.
- SPI1EN (бит 12) — Тактирование SPI1.
- TIM1EN (бит 11) — Тактирование таймера TIM1.
- SYSCFGEN (бит 0) — Тактирование SYSCFG и компараторов.
RCC_AHB1SMENR — тактирование блоков в режимах Sleep и Stop на шине AHB1
Смещение 0x68, адрес 0x4002 1068, 32 бит, после сброса 0x0000 131F. В коде: RCC->AHB1SMENR.
| 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 |
| — | CRCSMEN | — | SRAM1SMEN | FLASHSMEN | — | FMACSMEN | CORDICSMEN | DMAMUX1SMEN | DMA2SMEN | DMA1SMEN | |||||
- CRCSMEN (бит 12) — Тактирование блока CRC в режимах Sleep и Stop.
- SRAM1SMEN (бит 9) — Тактирование SRAM1 в режимах Sleep и Stop.
- FLASHSMEN (бит 8) — Тактирование интерфейса флеш-памяти в режимах Sleep и Stop.
- FMACSMEN (бит 4) — Тактирование фильтрового ускорителя FMAC в режимах Sleep и Stop.
- CORDICSMEN (бит 3) — Тактирование сопроцессора CORDIC в режимах Sleep и Stop.
- DMAMUX1SMEN (бит 2) — Тактирование мультиплексора запросов DMAMUX в режимах Sleep и Stop.
- DMA2SMEN (бит 1) — Тактирование DMA2 в режимах Sleep и Stop.
- DMA1SMEN (бит 0) — Тактирование DMA1 в режимах Sleep и Stop.
RCC_AHB2SMENR — тактирование блоков в режимах Sleep и Stop на шине AHB2
Смещение 0x6C, адрес 0x4002 106C, 32 бит, после сброса 0x050F 667F. В коде: RCC->AHB2SMENR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RNGSMEN | — | AESSMEN | — | DAC4SMEN | DAC3SMEN | DAC2SMEN | DAC1SMEN | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ADC345SMEN | ADC12SMEN | — | SRAM2SMEN | CCMSRAMSMEN | — | GPIOGSMEN | GPIOFSMEN | GPIOESMEN | GPIODSMEN | GPIOCSMEN | GPIOBSMEN | GPIOASMEN | ||
- RNGSMEN (бит 26) — Тактирование генератора случайных чисел RNG в режимах Sleep и Stop.
- AESSMEN (бит 24) — Тактирование блока шифрования AES в режимах Sleep и Stop (только у STM32G441, STM32G483, STM32G484, STM32G4A1).
- DAC4SMEN (бит 19) — Тактирование ЦАП DAC4 в режимах Sleep и Stop (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC3SMEN (бит 18) — Тактирование ЦАП DAC3 в режимах Sleep и Stop.
- DAC2SMEN (бит 17) — Тактирование ЦАП DAC2 в режимах Sleep и Stop (только у STM32G473, STM32G474, STM32G483, STM32G484).
- DAC1SMEN (бит 16) — Тактирование ЦАП DAC1 в режимах Sleep и Stop.
- ADC345SMEN (бит 14) — Тактирование АЦП ADC3, ADC4 и ADC5 в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- ADC12SMEN (бит 13) — Тактирование АЦП ADC1 и ADC2 в режимах Sleep и Stop.
- SRAM2SMEN (бит 10) — Тактирование SRAM2 в режимах Sleep и Stop.
- CCMSRAMSMEN (бит 9) — Тактирование CCM SRAM в режимах Sleep и Stop.
- GPIOGSMEN (бит 6) — Тактирование порта G в режимах Sleep и Stop.
- GPIOFSMEN (бит 5) — Тактирование порта F в режимах Sleep и Stop.
- GPIOESMEN (бит 4) — Тактирование порта E в режимах Sleep и Stop.
- GPIODSMEN (бит 3) — Тактирование порта D в режимах Sleep и Stop.
- GPIOCSMEN (бит 2) — Тактирование порта C в режимах Sleep и Stop.
- GPIOBSMEN (бит 1) — Тактирование порта B в режимах Sleep и Stop.
- GPIOASMEN (бит 0) — Тактирование порта A в режимах Sleep и Stop.
RCC_AHB3SMENR — тактирование блоков в режимах Sleep и Stop на шине AHB3
Смещение 0x70, адрес 0x4002 1070, 32 бит, после сброса 0x0000 0101. В коде: RCC->AHB3SMENR.
| 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 |
| — | QSPISMEN | — | FMCSMEN | ||||||||||||
- QSPISMEN (бит 8) — Тактирование интерфейса Quad-SPI в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- FMCSMEN (бит 0) — Тактирование контроллера внешней памяти FMC в режимах Sleep и Stop (только у STM32G473, STM32G474, STM32G483, STM32G484).
RCC_APB1SMENR1 — тактирование блоков в режимах Sleep и Stop на шине APB1, регистр 1
Смещение 0x78, адрес 0x4002 1078, 32 бит, после сброса 0xD2FE CD3F. В коде: RCC->APB1SMENR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LPTIM1SMEN | I2C3SMEN | — | PWRSMEN | — | FDCANSMEN | — | USBSMEN | I2C2SMEN | I2C1SMEN | UART5SMEN | UART4SMEN | USART3SMEN | USART2SMEN | — | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI3SMEN | SPI2SMEN | — | WWDGSMEN | RTCAPBSMEN | — | CRSSMEN | — | TIM7SMEN | TIM6SMEN | TIM5SMEN | TIM4SMEN | TIM3SMEN | TIM2SMEN | ||
- LPTIM1SMEN (бит 31) — Тактирование таймера LPTIM1 в режимах Sleep и Stop.
- I2C3SMEN (бит 30) — Тактирование I2C3 в режимах Sleep и Stop.
- PWRSMEN (бит 28) — Тактирование интерфейса управления питанием PWR в режимах Sleep и Stop.
- FDCANSMEN (бит 25) — Тактирование FDCAN в режимах Sleep и Stop.
- USBSMEN (бит 23) — Тактирование USB в режимах Sleep и Stop.
- I2C2SMEN (бит 22) — Тактирование I2C2 в режимах Sleep и Stop.
- I2C1SMEN (бит 21) — Тактирование I2C1 в режимах Sleep и Stop.
- UART5SMEN (бит 20) — Тактирование UART5 в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- UART4SMEN (бит 19) — Тактирование UART4 в режимах Sleep и Stop.
- USART3SMEN (бит 18) — Тактирование USART3 в режимах Sleep и Stop.
- USART2SMEN (бит 17) — Тактирование USART2 в режимах Sleep и Stop.
- SPI3SMEN (бит 15) — Тактирование SPI3 в режимах Sleep и Stop.
- SPI2SMEN (бит 14) — Тактирование SPI2 в режимах Sleep и Stop.
- WWDGSMEN (бит 11) — Тактирование оконного сторожевого таймера WWDG в режимах Sleep и Stop.
- RTCAPBSMEN (бит 10) — Тактирование интерфейса RTC на шине APB в режимах Sleep и Stop.
- CRSSMEN (бит 8) — Тактирование блока подстройки HSI48 (CRS) в режимах Sleep и Stop.
- TIM7SMEN (бит 5) — Тактирование таймера TIM7 в режимах Sleep и Stop.
- TIM6SMEN (бит 4) — Тактирование таймера TIM6 в режимах Sleep и Stop.
- TIM5SMEN (бит 3) — Тактирование таймера TIM5 в режимах Sleep и Stop (только у STM32G473, STM32G474, STM32G483, STM32G484).
- TIM4SMEN (бит 2) — Тактирование таймера TIM4 в режимах Sleep и Stop.
- TIM3SMEN (бит 1) — Тактирование таймера TIM3 в режимах Sleep и Stop.
- TIM2SMEN (бит 0) — Тактирование таймера TIM2 в режимах Sleep и Stop.
RCC_APB1SMENR2 — тактирование блоков в режимах Sleep и Stop на шине APB1, регистр 2
Смещение 0x7C, адрес 0x4002 107C, 32 бит, после сброса 0x0000 0103. В коде: RCC->APB1SMENR2.
| 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 |
| — | UCPD1SMEN | — | I2C4SMEN | LPUART1SMEN | |||||||||||
- UCPD1SMEN (бит 8) — Тактирование контроллера USB Type-C UCPD1 в режимах Sleep и Stop.
- I2C4SMEN (бит 1) — Тактирование I2C4 в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- LPUART1SMEN (бит 0) — Тактирование LPUART1 в режимах Sleep и Stop.
RCC_APB2SMENR — тактирование блоков в режимах Sleep и Stop на шине APB2
Смещение 0x80, адрес 0x4002 1080, 32 бит, после сброса 0x0437 F801. В коде: RCC->APB2SMENR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | HRTIM1SMEN | — | SAI1SMEN | TIM20SMEN | — | TIM17SMEN | TIM16SMEN | TIM15SMEN | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI4SMEN | USART1SMEN | TIM8SMEN | SPI1SMEN | TIM1SMEN | — | SYSCFGSMEN | |||||||||
- HRTIM1SMEN (бит 26) — Тактирование таймера высокого разрешения HRTIM в режимах Sleep и Stop (только у STM32G474, STM32G484).
- SAI1SMEN (бит 21) — Тактирование аудиоинтерфейса SAI1 в режимах Sleep и Stop.
- TIM20SMEN (бит 20) — Тактирование таймера TIM20 в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- TIM17SMEN (бит 18) — Тактирование таймера TIM17 в режимах Sleep и Stop.
- TIM16SMEN (бит 17) — Тактирование таймера TIM16 в режимах Sleep и Stop.
- TIM15SMEN (бит 16) — Тактирование таймера TIM15 в режимах Sleep и Stop.
- SPI4SMEN (бит 15) — Тактирование SPI4 в режимах Sleep и Stop (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
- USART1SMEN (бит 14) — Тактирование USART1 в режимах Sleep и Stop.
- TIM8SMEN (бит 13) — Тактирование таймера TIM8 в режимах Sleep и Stop.
- SPI1SMEN (бит 12) — Тактирование SPI1 в режимах Sleep и Stop.
- TIM1SMEN (бит 11) — Тактирование таймера TIM1 в режимах Sleep и Stop.
- SYSCFGSMEN (бит 0) — Тактирование SYSCFG и компараторов в режимах Sleep и Stop.
RCC_CCIPR — источники тактирования периферии
Смещение 0x88, адрес 0x4002 1088, 32 бит, после сброса 0x0000 0000. В коде: RCC->CCIPR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ADC345SEL | ADC12SEL | CLK48SEL | FDCANSEL | I2S23SEL | SAI1SEL | LPTIM1SEL | I2C3SEL | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| I2C2SEL | I2C1SEL | LPUART1SEL | UART5SEL | UART4SEL | USART3SEL | USART2SEL | USART1SEL | ||||||||
- ADC345SEL (биты 31:30) — Источник тактирования ADC345 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- ADC12SEL (биты 29:28) — Источник тактирования ADC12.
- CLK48SEL (биты 27:26) — Источник частоты 48 МГц для USB и RNG.
- FDCANSEL (биты 25:24) — Источник тактирования FDCAN.
- I2S23SEL (биты 23:22) — Источник тактирования I2S2 и I2S3.
- SAI1SEL (биты 21:20) — Источник тактирования SAI1.
- LPTIM1SEL (биты 19:18) — Источник тактирования LPTIM1.
- I2C3SEL (биты 17:16) — Источник тактирования I2C3.
- I2C2SEL (биты 15:14) — Источник тактирования I2C2.
- I2C1SEL (биты 13:12) — Источник тактирования I2C1.
- LPUART1SEL (биты 11:10) — Источник тактирования LPUART1.
- UART5SEL (биты 9:8) — Источник тактирования UART5 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- UART4SEL (биты 7:6) — Источник тактирования UART4.
- USART3SEL (биты 5:4) — Источник тактирования USART3.
- USART2SEL (биты 3:2) — Источник тактирования USART2.
- USART1SEL (биты 1:0) — Источник тактирования USART1.
RCC_BDCR — домен RTC: LSE, тактирование часов и вывод LSCO
Смещение 0x90, адрес 0x4002 1090, 32 бит, после сброса 0x0000 0000. В коде: RCC->BDCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | LSCOSEL | LSCOEN | — | BDRST | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RTCEN | — | RTCSEL | — | LSECSSD | LSECSSON | LSEDRV | LSEBYP | LSERDY | LSEON | ||||||
- LSCOSEL (бит 25) — Источник сигнала на выходе LSCO: LSI или LSE.
- LSCOEN (бит 24) — Включение выхода низкочастотного сигнала LSCO.
- BDRST (бит 16) — Программный сброс домена RTC.
- RTCEN (бит 15) — Тактирование RTC.
- RTCSEL (биты 9:8) — Источник тактирования RTC; меняется только сбросом домена RTC.
- LSECSSD (бит 6) — Обнаружен отказ LSE (только чтение).
- LSECSSON (бит 5) — Система защиты тактирования LSE.
- LSEDRV (биты 4:3) — Сила возбуждения кварца LSE.
- LSEBYP (бит 2) — Обход генератора LSE: внешний сигнал 32,768 кГц.
- LSERDY (бит 1) — Генератор LSE готов (только чтение).
- LSEON (бит 0) — Включение генератора LSE.
RCC_CSR — генератор LSI и флаги причины сброса
Смещение 0x94, адрес 0x4002 1094, 32 бит, после сброса 0x0C00 0000 (сбрасывается системным сбросом, флаги сброса — только при включении питания). В коде: RCC->CSR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LPWRRSTF | WWDGRSTF | IWDGRSTF | SFTRSTF | BORRSTF | PINRSTF | OBLRSTF | — | RMVF | — | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | LSIRDY | LSION | |||||||||||||
- LPWRRSTF (бит 31) — Причина сброса: вход в режим пониженного потребления запрещён байтом опций (nRST_STOP, nRST_STDBY, nRST_SHDW).
- WWDGRSTF (бит 30) — Причина сброса: оконный сторожевой таймер WWDG.
- IWDGRSTF (бит 29) — Причина сброса: независимый сторожевой таймер IWDG.
- SFTRSTF (бит 28) — Причина сброса: программный (SYSRESETREQ).
- BORRSTF (бит 27) — Причина сброса: снижение напряжения (BOR) или включение питания.
- PINRSTF (бит 26) — Причина сброса: вывод NRST.
- OBLRSTF (бит 25) — Причина сброса: загрузка байтов опций (OBL_LAUNCH).
- RMVF (бит 23) — Запись 1 сбрасывает все флаги причины сброса.
- LSIRDY (бит 1) — Генератор LSI готов (только чтение).
- LSION (бит 0) — Включение генератора LSI (около 32 кГц).
RCC_CRRCR — генератор HSI48 и его калибровка
Смещение 0x98, адрес 0x4002 1098, 32 бит, после сброса 0x0000 XXX0 (X — заводская калибровка). В коде: RCC->CRRCR.
| 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 |
| HSI48CAL | — | HSI48RDY | HSI48ON | ||||||||||||
- HSI48CAL (биты 15:7) — Заводская калибровка HSI48 (только чтение).
- HSI48RDY (бит 1) — Генератор HSI48 готов (только чтение).
- HSI48ON (бит 0) — Включение генератора HSI48 (USB, RNG).
RCC_CCIPR2 — источники тактирования периферии, регистр 2
Смещение 0x9C, адрес 0x4002 109C, 32 бит, после сброса 0x0000 0000. В коде: RCC->CCIPR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | QSPISEL | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | I2C4SEL | ||||||||||||||
- QSPISEL (биты 21:20) — Источник тактирования QSPI (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484, STM32G491, STM32G4A1).
- I2C4SEL (биты 1:0) — Источник тактирования I2C4 (только у STM32G471, STM32G473, STM32G474, STM32G483, STM32G484).
Частые вопросы
Как получить 170 МГц на STM32G474 от кварца 8 МГц?
Включите HSE, дождитесь HSERDY. PLLCFGR: PLLSRC = HSE, PLLM = 2 (код 1), PLLN = 85, PLLR = 2 (код 0), PLLREN = 1. Сбросьте R1MODE в PWR_CR5, FLASH_ACR.LATENCY = 4, включите PLL, переключите SW на PLL с HPRE = /2, через 1 мкс верните HPRE = /1.
От чего тактируется USB STM32G4 без кварца?
От HSI48: CLK48SEL = 00 в RCC_CCIPR и блок CRS, который подстраивает HSI48 по пакетам SOF. Генератор включается битом HSI48ON в RCC_CRRCR.
Источники
- STMicroelectronics. RM0440: Reference manual (Rev 9) — раздел 7.4: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-g4 v1.2.6: заголовки CMSIS stm32g431xx.h, stm32g441xx.h, stm32g471xx.h, stm32g473xx.h, stm32g474xx.h, stm32g483xx.h, stm32g484xx.h, stm32g491xx.h, stm32g4a1xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32G4
- Все регистры STM32G4Блоки периферии и заголовки CMSIS
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_MEMRMP, SYSCFG_CFGR1, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4
- EXTI — внешние прерыванияEXTI_IMR1, EXTI_EMR1, EXTI_RTSR1, EXTI_FTSR1, EXTI_SWIER1, EXTI_PR1
- USART — последовательные порты USART и LPUARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR
- TIM — таймерыTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR
- LPTIM — маломощный таймерLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP
- DMA — прямой доступ к памятиDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR
- АЦП — аналого-цифровые преобразователиADC_ISR, ADC_IER, ADC_CR, ADC_CFGR, ADC_CFGR2, ADC_SMPR1
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — вычислитель CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBGMCU — отладкаDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1FZR1, DBGMCU_APB1FZR2, DBGMCU_APB2FZR
- PWR — управление питаниемPWR_CR1, PWR_CR2, PWR_CR3, PWR_CR4, PWR_SR1, PWR_SR2
- FLASH — флеш-памятьFLASH_ACR, FLASH_PDKEYR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR
- RTC — часы реального времени и вмешательствоRTC_TR, RTC_DR, RTC_SSR, RTC_ICSR, RTC_PRER, RTC_WUTR
- ЦАП — цифро-аналоговые преобразователиDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2
- CORDIC — сопроцессор тригонометрии CORDICCORDIC_CSR, CORDIC_WDATA, CORDIC_RDATA
- FMAC — фильтровый ускоритель FMACFMAC_X1BUFCFG, FMAC_X2BUFCFG, FMAC_YBUFCFG, FMAC_PARAM, FMAC_CR, FMAC_SR