Перейти к содержанию

Регистры RCC STM32G4

Регистры RCC STM32G4: генераторы HSI16, HSE, HSI48, LSE и LSI, PLL с выходами P, Q и R, делители шин AHB, APB1 и APB2, выход MCO, источники тактирования периферии, включение, сброс и тактирование блоков в Sleep и Stop, причина сброса.

После сброса 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 их сбрасывает.

ЭкземплярБазовый адресЕсть у
RCC0x4002 1000всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
RCC_CR0x00Тактовые генераторы HSI16, HSE и PLL0x0000 0500 (бит HSEBYP сбросом не меняется)
RCC_ICSCR0x04Калибровка и подстройка HSI160x40XX 00XX (X — заводская калибровка)
RCC_CFGR0x08Источник SYSCLK, делители шин и вывод MCO0x0000 0005
RCC_PLLCFGR0x0CНастройка PLL: источник, M, N, P, Q, R0x0000 1000
RCC_CIER0x18Разрешение прерываний готовности генераторов0x0000 0000
RCC_CIFR0x1CФлаги прерываний генераторов0x0000 0000
RCC_CICR0x20Сброс флагов прерываний генераторов0x0000 0000
RCC_AHB1RSTR0x28Сброс блоков на шине AHB10x0000 0000
RCC_AHB2RSTR0x2CСброс блоков на шине AHB20x0000 0000
RCC_AHB3RSTR0x30Сброс блоков на шине AHB30x0000 0000
RCC_APB1RSTR10x38Сброс блоков на шине APB1, регистр 10x0000 0000
RCC_APB1RSTR20x3CСброс блоков на шине APB1, регистр 20x0000 0000
RCC_APB2RSTR0x40Сброс блоков на шине APB20x0000 0000
RCC_AHB1ENR0x48Тактирование блоков на шине AHB10x0000 0100
RCC_AHB2ENR0x4CТактирование блоков на шине AHB20x0000 0000
RCC_AHB3ENR0x50Тактирование блоков на шине AHB30x0000 0000
RCC_APB1ENR10x58Тактирование блоков на шине APB1, регистр 10x0000 0400
RCC_APB1ENR20x5CТактирование блоков на шине APB1, регистр 20x0000 0000
RCC_APB2ENR0x60Тактирование блоков на шине APB20x0000 0000
RCC_AHB1SMENR0x68Тактирование блоков в режимах Sleep и Stop на шине AHB10x0000 131F
RCC_AHB2SMENR0x6CТактирование блоков в режимах Sleep и Stop на шине AHB20x050F 667F
RCC_AHB3SMENR0x70Тактирование блоков в режимах Sleep и Stop на шине AHB30x0000 0101
RCC_APB1SMENR10x78Тактирование блоков в режимах Sleep и Stop на шине APB1, регистр 10xD2FE CD3F
RCC_APB1SMENR20x7CТактирование блоков в режимах Sleep и Stop на шине APB1, регистр 20x0000 0103
RCC_APB2SMENR0x80Тактирование блоков в режимах Sleep и Stop на шине APB20x0437 F801
RCC_CCIPR0x88Источники тактирования периферии0x0000 0000
RCC_BDCR0x90Домен RTC: LSE, тактирование часов и вывод LSCO0x0000 0000
RCC_CSR0x94Генератор LSI и флаги причины сброса0x0C00 0000 (сбрасывается системным сбросом, флаги сброса — только при включении питания)
RCC_CRRCR0x98Генератор HSI48 и его калибровка0x0000 XXX0 (X — заводская калибровка)
RCC_CCIPR20x9CИсточники тактирования периферии, регистр 20x0000 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.

31302928272625242322212019181716
—PLLRDYPLLON—CSSONHSEBYPHSERDYHSEON
1514131211109876543210
—HSIRDYHSIKERONHSION—
  • 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.

31302928272625242322212019181716
—HSITRIMHSICAL
1514131211109876543210
—
  • HSITRIM (биты 30:24) — Подстройка частоты HSI16 поверх заводской калибровки HSICAL.
  • HSICAL (биты 23:16) — Заводская калибровка HSI16 (только чтение).

RCC_CFGR — источник SYSCLK, делители шин и вывод MCO

Смещение 0x08, адрес 0x4002 1008, 32 бит, после сброса 0x0000 0005. В коде: RCC->CFGR.

31302928272625242322212019181716
—MCOPREMCOSEL—
1514131211109876543210
—PPRE2PPRE1HPRESWSSW
  • MCOPRE (биты 30:28) — Делитель сигнала на выходе MCO.
    MCOPREЗначениеМакрос CMSIS
    000Без деленияRCC_CFGR_MCOPRE_DIV1
    001Деление на 2RCC_CFGR_MCOPRE_DIV2
    010Деление на 4RCC_CFGR_MCOPRE_DIV4
    011Деление на 8RCC_CFGR_MCOPRE_DIV8
    100Деление на 16RCC_CFGR_MCOPRE_DIV16
  • MCOSEL (биты 27:24) — Источник сигнала на выходе MCO.
  • PPRE2 (биты 13:11) — Делитель шины APB2: PCLK2 = HCLK / 1…16.
    PPRE2ЗначениеМакрос CMSIS
    000Без деленияRCC_CFGR_PPRE2_DIV1
    100Деление на 2RCC_CFGR_PPRE2_DIV2
    101Деление на 4RCC_CFGR_PPRE2_DIV4
    110Деление на 8RCC_CFGR_PPRE2_DIV8
    111Деление на 16RCC_CFGR_PPRE2_DIV16
  • PPRE1 (биты 10:8) — Делитель шины APB1: PCLK1 = HCLK / 1…16.
    PPRE1ЗначениеМакрос CMSIS
    000Без деленияRCC_CFGR_PPRE1_DIV1
    100Деление на 2RCC_CFGR_PPRE1_DIV2
    101Деление на 4RCC_CFGR_PPRE1_DIV4
    110Деление на 8RCC_CFGR_PPRE1_DIV8
    111Деление на 16RCC_CFGR_PPRE1_DIV16
  • HPRE (биты 7:4) — Делитель шины AHB: HCLK = SYSCLK / 1…512.
    HPREЗначениеМакрос CMSIS
    0000Без деленияRCC_CFGR_HPRE_DIV1
    1000Деление на 2RCC_CFGR_HPRE_DIV2
    1001Деление на 4RCC_CFGR_HPRE_DIV4
    1010Деление на 8RCC_CFGR_HPRE_DIV8
    1011Деление на 16RCC_CFGR_HPRE_DIV16
    1100Деление на 64RCC_CFGR_HPRE_DIV64
    1101Деление на 128RCC_CFGR_HPRE_DIV128
    1110Деление на 256RCC_CFGR_HPRE_DIV256
    1111Деление на 512RCC_CFGR_HPRE_DIV512
  • SWS (биты 3:2) — Текущий источник SYSCLK (только чтение).
    SWSЗначениеМакрос CMSIS
    01HSI16RCC_CFGR_SWS_HSI
    10HSERCC_CFGR_SWS_HSE
    11PLLRCC_CFGR_SWS_PLL
  • SW (биты 1:0) — Выбор источника SYSCLK.
    SWЗначениеМакрос CMSIS
    01HSI16RCC_CFGR_SW_HSI
    10HSERCC_CFGR_SW_HSE
    11PLL × 2 (до 144 МГц)RCC_CFGR_SW_PLL

RCC_PLLCFGR — настройка PLL: источник, M, N, P, Q, R

Смещение 0x0C, адрес 0x4002 100C, 32 бит, после сброса 0x0000 1000. В коде: RCC->PLLCFGR.

31302928272625242322212019181716
PLLPDIVPLLRPLLREN—PLLQPLLQEN—PLLPPLLPEN
1514131211109876543210
—PLLNPLLM—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
    10HSI16RCC_PLLCFGR_PLLSRC_HSI
    11HSERCC_PLLCFGR_PLLSRC_HSE

RCC_CIER — разрешение прерываний готовности генераторов

Смещение 0x18, адрес 0x4002 1018, 32 бит, после сброса 0x0000 0000. В коде: RCC->CIER.

31302928272625242322212019181716
—
1514131211109876543210
—HSI48RDYIELSECSSIE—PLLRDYIEHSERDYIEHSIRDYIE—LSERDYIELSIRDYIE
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—HSI48RDYFLSECSSFCSSF—PLLRDYFHSERDYFHSIRDYF—LSERDYFLSIRDYF
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—HSI48RDYCLSECSSCCSSC—PLLRDYCHSERDYCHSIRDYC—LSERDYCLSIRDYC
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—CRCRST—FLASHRST—FMACRSTCORDICRSTDMAMUX1RSTDMA2RSTDMA1RST
  • 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.

31302928272625242322212019181716
—RNGRST—AESRST—DAC4RSTDAC3RSTDAC2RSTDAC1RST
1514131211109876543210
—ADC345RSTADC12RST—GPIOGRSTGPIOFRSTGPIOERSTGPIODRSTGPIOCRSTGPIOBRSTGPIOARST
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—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.

31302928272625242322212019181716
LPTIM1RSTI2C3RST—PWRRST—FDCANRST—USBRSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RST—
1514131211109876543210
SPI3RSTSPI2RST—CRSRST—TIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2RST
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—UCPD1RST—I2C4RSTLPUART1RST
  • 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.

31302928272625242322212019181716
—HRTIM1RST—SAI1RSTTIM20RST—TIM17RSTTIM16RSTTIM15RST
1514131211109876543210
SPI4RSTUSART1RSTTIM8RSTSPI1RSTTIM1RST—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.

31302928272625242322212019181716
—
1514131211109876543210
—CRCEN—FLASHEN—FMACENCORDICENDMAMUX1ENDMA2ENDMA1EN
  • 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.

31302928272625242322212019181716
—RNGEN—AESEN—DAC4ENDAC3ENDAC2ENDAC1EN
1514131211109876543210
—ADC345ENADC12EN—GPIOGENGPIOFENGPIOEENGPIODENGPIOCENGPIOBENGPIOAEN
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—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.

31302928272625242322212019181716
LPTIM1ENI2C3EN—PWREN—FDCANEN—USBENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2EN—
1514131211109876543210
SPI3ENSPI2EN—WWDGENRTCAPBEN—CRSEN—TIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—UCPD1EN—I2C4ENLPUART1EN
  • 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.

31302928272625242322212019181716
—HRTIM1EN—SAI1ENTIM20EN—TIM17ENTIM16ENTIM15EN
1514131211109876543210
SPI4ENUSART1ENTIM8ENSPI1ENTIM1EN—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.

31302928272625242322212019181716
—
1514131211109876543210
—CRCSMEN—SRAM1SMENFLASHSMEN—FMACSMENCORDICSMENDMAMUX1SMENDMA2SMENDMA1SMEN
  • 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.

31302928272625242322212019181716
—RNGSMEN—AESSMEN—DAC4SMENDAC3SMENDAC2SMENDAC1SMEN
1514131211109876543210
—ADC345SMENADC12SMEN—SRAM2SMENCCMSRAMSMEN—GPIOGSMENGPIOFSMENGPIOESMENGPIODSMENGPIOCSMENGPIOBSMENGPIOASMEN
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—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.

31302928272625242322212019181716
LPTIM1SMENI2C3SMEN—PWRSMEN—FDCANSMEN—USBSMENI2C2SMENI2C1SMENUART5SMENUART4SMENUSART3SMENUSART2SMEN—
1514131211109876543210
SPI3SMENSPI2SMEN—WWDGSMENRTCAPBSMEN—CRSSMEN—TIM7SMENTIM6SMENTIM5SMENTIM4SMENTIM3SMENTIM2SMEN
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
—UCPD1SMEN—I2C4SMENLPUART1SMEN
  • 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.

31302928272625242322212019181716
—HRTIM1SMEN—SAI1SMENTIM20SMEN—TIM17SMENTIM16SMENTIM15SMEN
1514131211109876543210
SPI4SMENUSART1SMENTIM8SMENSPI1SMENTIM1SMEN—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.

31302928272625242322212019181716
ADC345SELADC12SELCLK48SELFDCANSELI2S23SELSAI1SELLPTIM1SELI2C3SEL
1514131211109876543210
I2C2SELI2C1SELLPUART1SELUART5SELUART4SELUSART3SELUSART2SELUSART1SEL
  • 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.

31302928272625242322212019181716
—LSCOSELLSCOEN—BDRST
1514131211109876543210
RTCEN—RTCSEL—LSECSSDLSECSSONLSEDRVLSEBYPLSERDYLSEON
  • 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.

31302928272625242322212019181716
LPWRRSTFWWDGRSTFIWDGRSTFSFTRSTFBORRSTFPINRSTFOBLRSTF—RMVF—
1514131211109876543210
—LSIRDYLSION
  • 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.

31302928272625242322212019181716
—
1514131211109876543210
HSI48CAL—HSI48RDYHSI48ON
  • HSI48CAL (биты 15:7) — Заводская калибровка HSI48 (только чтение).
  • HSI48RDY (бит 1) — Генератор HSI48 готов (только чтение).
  • HSI48ON (бит 0) — Включение генератора HSI48 (USB, RNG).

RCC_CCIPR2 — источники тактирования периферии, регистр 2

Смещение 0x9C, адрес 0x4002 109C, 32 бит, после сброса 0x0000 0000. В коде: RCC->CCIPR2.

31302928272625242322212019181716
—QSPISEL—
1514131211109876543210
—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.

Источники

  1. STMicroelectronics. RM0440: Reference manual (Rev 9) — раздел 7.4: описание регистров, назначение полей и значения после сброса
  2. 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

Калькуляторы и статьи