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

Регистры RCC STM32L1

Регистры RCC STM32L1: генераторы MSI, HSI 16 МГц, HSE, LSI и LSE, PLL с множителем и делителем, делители AHB, APB1 и APB2, выход MCO, тактирование RTC и ЖК-индикатора, включение и сброс периферии, причина сброса.

После сброса STM32L1 работает от MSI около 2,097 МГц. До 32 МГц частоту поднимает PLL: на вход идёт HSI или HSE, частота ГУН = вход × PLLMUL (3…48), выход = ГУН / PLLDIV. Для USB ГУН должен давать ровно 96 МГц — USB тактируется от PLLVCO / 2 (RM0038, раздел 6.3).

Порты тактируются через RCC_AHBENR, как у STM32F4, остальная периферия — через RCC_AHBENR, RCC_APB2ENR и RCC_APB1ENR; регистры ...LPENR задают, что работает в режиме Sleep. RTC и ЖК-индикатор тактируются от одного источника, выбранного в RCC_CSR (LSE, LSI или HSE через RTCPRE); запись в RCC_CSR разрешает бит DBP регистра PWR_CR.

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

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

РегистрСмещениеНазначениеПосле сброса
RCC_CR0x00Тактовые генераторы HSI, MSI, HSE и PLL0b0XX0 0000 0000 0X00 0000 0011 0000 0000 (X — не определено)
RCC_ICSCR0x04Калибровка и подстройка HSI и MSI, диапазон MSI0x00XX B0XX (X — не определено)
RCC_CFGR0x08Источник SYSCLK, делители шин, PLL и вывод MCO0x0000 0000
RCC_CIR0x0CПрерывания готовности генераторов0x0000 0000
RCC_AHBRSTR0x10Сброс блоков на шине AHB0x0000 0000
RCC_APB2RSTR0x14Сброс блоков на шине APB20x0000 0000 (в описании регистра напечатано 0x00000 0000; значение — по карте регистров на с. 169)
RCC_APB1RSTR0x18Сброс блоков на шине APB10x0000 0000
RCC_AHBENR0x1CТактирование блоков на шине AHB0x0000 8000
RCC_APB2ENR0x20Тактирование блоков на шине APB20x0000 0000
RCC_APB1ENR0x24Тактирование блоков на шине APB10x0000 0000
RCC_AHBLPENR0x28Тактирование в режиме Sleep блоков на шине AHB0x0101 903F
RCC_APB2LPENR0x2CТактирование в режиме Sleep блоков на шине APB20x0000 521D
RCC_APB1LPENR0x30Тактирование в режиме Sleep блоков на шине APB10xB0E6 4A37
RCC_CSR0x34LSI, LSE, тактирование RTC и флаги причины сброса0x0C00 0000 (при включении питания)

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

RCC->CR = 0x00000000;

RCC_CR — тактовые генераторы HSI, MSI, HSE и PLL

Смещение 0x00, адрес 0x4002 3800, 32 бит, после сброса 0b0XX0 0000 0000 0X00 0000 0011 0000 0000 (X — не определено). В коде: RCC->CR.

31302928272625242322212019181716
—RTCPRECSSON—PLLRDYPLLON—HSEBYPHSERDYHSEON
1514131211109876543210
—MSIRDYMSION—HSIRDYHSION
  • RTCPRE (биты 30:29) — Делитель HSE для RTC и ЖК-индикатора: 2, 4, 8 или 16 (нужно около 1 МГц); меняется только при выключенном HSE.
    RTCPREЗначение
    00HSE / 2
    01HSE / 4
    10HSE / 8
    11HSE / 16
  • CSSON (бит 28) — Система защиты тактирования HSE: при отказе кварца SYSCLK переходит на MSI, возникает NMI; бит сбрасывается только системным сбросом.
  • PLLRDY (бит 25) — PLL захватила частоту (только чтение).
  • PLLON (бит 24) — Включение PLL; сбрасывается при входе в Stop и Standby.
  • HSEBYP (бит 18) — Обход генератора HSE: внешний тактовый сигнал вместо кварца.
  • HSERDY (бит 17) — Генератор HSE готов (только чтение).
  • HSEON (бит 16) — Включение генератора HSE; сбрасывается при входе в Stop и Standby.
  • MSIRDY (бит 9) — Генератор MSI готов (только чтение).
  • MSION (бит 8) — Включение генератора MSI (после сброса — 2,097 МГц).
  • HSIRDY (бит 1) — Генератор HSI готов (только чтение).
  • HSION (бит 0) — Включение генератора HSI 16 МГц.

RCC_ICSCR — калибровка и подстройка HSI и MSI, диапазон MSI

Смещение 0x04, адрес 0x4002 3804, 32 бит, после сброса 0x00XX B0XX (X — не определено). В коде: RCC->ICSCR.

31302928272625242322212019181716
MSITRIMMSICAL
1514131211109876543210
MSIRANGEHSITRIMHSICAL
  • MSITRIM (биты 31:24) — Подстройка частоты MSI поверх заводской калибровки.
  • MSICAL (биты 23:16) — Заводская калибровка MSI (только чтение).
  • MSIRANGE (биты 15:13) — Частота MSI: от 65,536 кГц до 4,194 МГц.
    MSIRANGEЗначение
    000Диапазон 0: около 65,536 кГц
    001Диапазон 1: около 131,072 кГц
    010Диапазон 2: около 262,144 кГц
    011Диапазон 3: около 524,288 кГц
    100Диапазон 4: около 1,048 МГц
    101Диапазон 5: около 2,097 МГц (после сброса)
    110Диапазон 6: около 4,194 МГц
  • HSITRIM (биты 12:8) — Подстройка частоты HSI поверх заводской калибровки HSICAL.
  • HSICAL (биты 7:0) — Заводская калибровка HSI (только чтение).

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

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

31302928272625242322212019181716
—MCOPRE—MCOSELPLLDIVPLLMUL—PLLSRC
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 (биты 26:24) — Источник сигнала на выходе MCO.
    MCOSELЗначениеМакрос CMSIS
    000Нет сигналаRCC_CFGR_MCOSEL_NOCLOCK
    001SYSCLKRCC_CFGR_MCOSEL_SYSCLK
    010HSIRCC_CFGR_MCOSEL_HSI
    011MSIRCC_CFGR_MCOSEL_MSI
    100HSERCC_CFGR_MCOSEL_HSE
    101PLLRCC_CFGR_MCOSEL_PLL
    110LSIRCC_CFGR_MCOSEL_LSI
    111LSERCC_CFGR_MCOSEL_LSE
  • PLLDIV (биты 23:22) — Делитель выхода PLL: частота ГУН / 2, / 3 или / 4.
    PLLDIVЗначениеМакрос CMSIS
    01Частота ГУН / 2RCC_CFGR_PLLDIV2
    10Частота ГУН / 3RCC_CFGR_PLLDIV3
    11Частота ГУН / 4RCC_CFGR_PLLDIV4
  • PLLMUL (биты 21:18) — Множитель PLL: ×3…×48; частота ГУН — не больше 96 МГц в диапазоне 1.
    PLLMULЗначениеМакрос CMSIS
    0000×3RCC_CFGR_PLLMUL3
    0001×4RCC_CFGR_PLLMUL4
    0010×6RCC_CFGR_PLLMUL6
    0011×8RCC_CFGR_PLLMUL8
    0100×12RCC_CFGR_PLLMUL12
    0101×16RCC_CFGR_PLLMUL16
    0110×24RCC_CFGR_PLLMUL24
    0111×32RCC_CFGR_PLLMUL32
    1000×48RCC_CFGR_PLLMUL48
  • PLLSRC (бит 16) — Источник тактирования PLL: HSI или HSE.
    PLLSRCЗначениеМакрос CMSIS
    0HSIRCC_CFGR_PLLSRC_HSI
    1HSERCC_CFGR_PLLSRC_HSE
  • 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
    00MSIRCC_CFGR_SWS_MSI
    01HSIRCC_CFGR_SWS_HSI
    10HSERCC_CFGR_SWS_HSE
    11PLLRCC_CFGR_SWS_PLL
  • SW (биты 1:0) — Выбор источника SYSCLK.
    SWЗначениеМакрос CMSIS
    00MSIRCC_CFGR_SW_MSI
    01HSIRCC_CFGR_SW_HSI
    10HSERCC_CFGR_SW_HSE
    11PLLRCC_CFGR_SW_PLL

RCC_CIR — прерывания готовности генераторов

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

31302928272625242322212019181716
—CSSCLSECSSCMSIRDYCPLLRDYCHSERDYCHSIRDYCLSERDYCLSIRDYC
1514131211109876543210
—LSECSSIEMSIRDYIEPLLRDYIEHSERDYIEHSIRDYIELSERDYIELSIRDYIECSSFLSECSSFMSIRDYFPLLRDYFHSERDYFHSIRDYFLSERDYFLSIRDYF
  • CSSC (бит 23) — Сброс флага CSSF записью 1.
  • LSECSSC (бит 22) — Сброс флага отказа LSE записью 1 (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • MSIRDYC (бит 21) — Сброс флага готовности MSI записью 1.
  • PLLRDYC (бит 20) — Сброс флага готовности PLL записью 1.
  • HSERDYC (бит 19) — Сброс флага готовности HSE записью 1.
  • HSIRDYC (бит 18) — Сброс флага готовности HSI записью 1.
  • LSERDYC (бит 17) — Сброс флага готовности LSE записью 1.
  • LSIRDYC (бит 16) — Сброс флага готовности LSI записью 1.
  • LSECSSIE (бит 14) — Прерывание по отказу LSE (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • MSIRDYIE (бит 13) — Прерывание по готовности MSI.
  • PLLRDYIE (бит 12) — Прерывание по готовности PLL.
  • HSERDYIE (бит 11) — Прерывание по готовности HSE.
  • HSIRDYIE (бит 10) — Прерывание по готовности HSI.
  • LSERDYIE (бит 9) — Прерывание по готовности LSE.
  • LSIRDYIE (бит 8) — Прерывание по готовности LSI.
  • CSSF (бит 7) — Флаг отказа HSE (система защиты тактирования).
  • LSECSSF (бит 6) — Флаг отказа LSE (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • MSIRDYF (бит 5) — Флаг прерывания по готовности MSI.
  • PLLRDYF (бит 4) — Флаг прерывания по готовности PLL.
  • HSERDYF (бит 3) — Флаг прерывания по готовности HSE.
  • HSIRDYF (бит 2) — Флаг прерывания по готовности HSI.
  • LSERDYF (бит 1) — Флаг прерывания по готовности LSE.
  • LSIRDYF (бит 0) — Флаг прерывания по готовности LSI.

RCC_AHBRSTR — сброс блоков на шине AHB

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

31302928272625242322212019181716
—FSMCRST—AESRST—DMA2RSTDMA1RST—
1514131211109876543210
FLITFRST—CRCRST—GPIOGRSTGPIOFRSTGPIOHRSTGPIOERSTGPIODRSTGPIOCRSTGPIOBRSTGPIOARST
  • FSMCRST (бит 30) — Сброс контроллера внешней памяти FSMC (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • AESRST (бит 27) — Сброс блока шифрования AES (только у STM32L162).
  • DMA2RST (бит 25) — Сброс DMA2 (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • DMA1RST (бит 24) — Сброс DMA1.
  • FLITFRST (бит 15) — Сброс интерфейса флеш-памяти.
  • CRCRST (бит 12) — Сброс блока CRC.
  • GPIOGRST (бит 7) — Сброс порта G (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOFRST (бит 6) — Сброс порта F (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOHRST (бит 5) — Сброс порта H.
  • GPIOERST (бит 4) — Сброс порта E (только у STM32L151, STM32L152, STM32L162).
  • GPIODRST (бит 3) — Сброс порта D.
  • GPIOCRST (бит 2) — Сброс порта C.
  • GPIOBRST (бит 1) — Сброс порта B.
  • GPIOARST (бит 0) — Сброс порта A.

RCC_APB2RSTR — сброс блоков на шине APB2

Смещение 0x14, адрес 0x4002 3814, 32 бит, после сброса 0x0000 0000 (в описании регистра напечатано 0x00000 0000; значение — по карте регистров на с. 169). В коде: RCC->APB2RSTR.

31302928272625242322212019181716
—
1514131211109876543210
—USART1RST—SPI1RSTSDIORST—ADC1RST—TIM11RSTTIM10RSTTIM9RST—SYSCFGRST
  • USART1RST (бит 14) — Сброс USART1.
  • SPI1RST (бит 12) — Сброс SPI1.
  • SDIORST (бит 11) — Сброс интерфейса карт SDIO (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • ADC1RST (бит 9) — Сброс АЦП.
  • TIM11RST (бит 4) — Сброс таймера TIM11.
  • TIM10RST (бит 3) — Сброс таймера TIM10.
  • TIM9RST (бит 2) — Сброс таймера TIM9.
  • SYSCFGRST (бит 0) — Сброс SYSCFG и компараторов.

RCC_APB1RSTR — сброс блоков на шине APB1

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

31302928272625242322212019181716
COMPRST—DACRSTPWRRST—USBRSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RST—
1514131211109876543210
SPI3RSTSPI2RST—WWDGRST—LCDRST—TIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2RST
  • COMPRST (бит 31) — Сброс компараторов и RI.
  • DACRST (бит 29) — Сброс ЦАП.
  • PWRRST (бит 28) — Сброс интерфейса управления питанием PWR.
  • USBRST (бит 23) — Сброс USB.
  • I2C2RST (бит 22) — Сброс I2C2.
  • I2C1RST (бит 21) — Сброс I2C1.
  • UART5RST (бит 20) — Сброс UART5 (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • UART4RST (бит 19) — Сброс UART4 (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • USART3RST (бит 18) — Сброс USART3.
  • USART2RST (бит 17) — Сброс USART2.
  • SPI3RST (бит 15) — Сброс SPI3 (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • SPI2RST (бит 14) — Сброс SPI2.
  • WWDGRST (бит 11) — Сброс оконного сторожевого таймера WWDG.
  • LCDRST (бит 9) — Сброс контроллера ЖК-индикатора (только у STM32L100, STM32L152, STM32L162).
  • TIM7RST (бит 5) — Сброс таймера TIM7.
  • TIM6RST (бит 4) — Сброс таймера TIM6.
  • TIM5RST (бит 3) — Сброс таймера TIM5 (только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • TIM4RST (бит 2) — Сброс таймера TIM4.
  • TIM3RST (бит 1) — Сброс таймера TIM3.
  • TIM2RST (бит 0) — Сброс таймера TIM2.

RCC_AHBENR — тактирование блоков на шине AHB

Смещение 0x1C, адрес 0x4002 381C, 32 бит, после сброса 0x0000 8000. В коде: RCC->AHBENR.

31302928272625242322212019181716
—FSMCEN—AESEN—DMA2ENDMA1EN—
1514131211109876543210
—CRCEN—GPIOGENGPIOFENGPIOHENGPIOEENGPIODENGPIOCENGPIOBENGPIOAEN
  • FSMCEN (бит 30) — Тактирование контроллера внешней памяти FSMC (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • AESEN (бит 27) — Тактирование блока шифрования AES (только у STM32L162).
  • DMA2EN (бит 25) — Тактирование DMA2 (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • DMA1EN (бит 24) — Тактирование DMA1.
  • CRCEN (бит 12) — Тактирование блока CRC.
  • GPIOGEN (бит 7) — Тактирование порта G (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOFEN (бит 6) — Тактирование порта F (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOHEN (бит 5) — Тактирование порта H.
  • GPIOEEN (бит 4) — Тактирование порта E (только у STM32L151, STM32L152, STM32L162).
  • GPIODEN (бит 3) — Тактирование порта D.
  • GPIOCEN (бит 2) — Тактирование порта C.
  • GPIOBEN (бит 1) — Тактирование порта B.
  • GPIOAEN (бит 0) — Тактирование порта A.

RCC_APB2ENR — тактирование блоков на шине APB2

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

31302928272625242322212019181716
—
1514131211109876543210
—USART1EN—SPI1ENSDIOEN—ADC1EN—TIM11ENTIM10ENTIM9EN—SYSCFGEN
  • USART1EN (бит 14) — Тактирование USART1.
  • SPI1EN (бит 12) — Тактирование SPI1.
  • SDIOEN (бит 11) — Тактирование интерфейса карт SDIO (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • ADC1EN (бит 9) — Тактирование АЦП.
  • TIM11EN (бит 4) — Тактирование таймера TIM11.
  • TIM10EN (бит 3) — Тактирование таймера TIM10.
  • TIM9EN (бит 2) — Тактирование таймера TIM9.
  • SYSCFGEN (бит 0) — Тактирование SYSCFG и компараторов.

RCC_APB1ENR — тактирование блоков на шине APB1

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

31302928272625242322212019181716
COMPEN—DACENPWREN—USBENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2EN—
1514131211109876543210
SPI3ENSPI2EN—WWDGEN—LCDEN—TIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
  • COMPEN (бит 31) — Тактирование компараторов и RI.
  • DACEN (бит 29) — Тактирование ЦАП.
  • PWREN (бит 28) — Тактирование интерфейса управления питанием PWR.
  • USBEN (бит 23) — Тактирование USB.
  • I2C2EN (бит 22) — Тактирование I2C2.
  • I2C1EN (бит 21) — Тактирование I2C1.
  • UART5EN (бит 20) — Тактирование UART5 (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • UART4EN (бит 19) — Тактирование UART4 (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • USART3EN (бит 18) — Тактирование USART3.
  • USART2EN (бит 17) — Тактирование USART2.
  • SPI3EN (бит 15) — Тактирование SPI3 (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • SPI2EN (бит 14) — Тактирование SPI2.
  • WWDGEN (бит 11) — Тактирование оконного сторожевого таймера WWDG.
  • LCDEN (бит 9) — Тактирование контроллера ЖК-индикатора (только у STM32L100, STM32L152, STM32L162).
  • TIM7EN (бит 5) — Тактирование таймера TIM7.
  • TIM6EN (бит 4) — Тактирование таймера TIM6.
  • TIM5EN (бит 3) — Тактирование таймера TIM5 (только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • TIM4EN (бит 2) — Тактирование таймера TIM4.
  • TIM3EN (бит 1) — Тактирование таймера TIM3.
  • TIM2EN (бит 0) — Тактирование таймера TIM2.

RCC_AHBLPENR — тактирование в режиме Sleep блоков на шине AHB

Смещение 0x28, адрес 0x4002 3828, 32 бит, после сброса 0x0101 903F. В коде: RCC->AHBLPENR.

31302928272625242322212019181716
—FSMCLPEN—AESLPEN—DMA2LPENDMA1LPEN—SRAMLPEN
1514131211109876543210
—CRCLPEN—GPIOGLPENGPIOFLPENGPIOHLPENGPIOELPENGPIODLPENGPIOCLPENGPIOBLPENGPIOALPEN
  • FSMCLPEN (бит 30) — Тактирование контроллера внешней памяти FSMC в режиме Sleep (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • AESLPEN (бит 27) — Тактирование блока шифрования AES в режиме Sleep (только у STM32L162).
  • DMA2LPEN (бит 25) — Тактирование DMA2 в режиме Sleep (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • DMA1LPEN (бит 24) — Тактирование DMA1 в режиме Sleep.
  • SRAMLPEN (бит 16) — Тактирование SRAM в режиме Sleep.
  • CRCLPEN (бит 12) — Тактирование блока CRC в режиме Sleep.
  • GPIOGLPEN (бит 7) — Тактирование порта G в режиме Sleep (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOFLPEN (бит 6) — Тактирование порта F в режиме Sleep (только у STM32L151xCA/xD/xDX/xE, STM32L152xCA/xD/xDX/xE, STM32L162xCA/xD/xDX/xE).
  • GPIOHLPEN (бит 5) — Тактирование порта H в режиме Sleep.
  • GPIOELPEN (бит 4) — Тактирование порта E в режиме Sleep (только у STM32L151, STM32L152, STM32L162).
  • GPIODLPEN (бит 3) — Тактирование порта D в режиме Sleep.
  • GPIOCLPEN (бит 2) — Тактирование порта C в режиме Sleep.
  • GPIOBLPEN (бит 1) — Тактирование порта B в режиме Sleep.
  • GPIOALPEN (бит 0) — Тактирование порта A в режиме Sleep.

RCC_APB2LPENR — тактирование в режиме Sleep блоков на шине APB2

Смещение 0x2C, адрес 0x4002 382C, 32 бит, после сброса 0x0000 521D. В коде: RCC->APB2LPENR.

31302928272625242322212019181716
—
1514131211109876543210
—USART1LPEN—SPI1LPENSDIOLPEN—ADC1LPEN—TIM11LPENTIM10LPENTIM9LPEN—SYSCFGLPEN
  • USART1LPEN (бит 14) — Тактирование USART1 в режиме Sleep.
  • SPI1LPEN (бит 12) — Тактирование SPI1 в режиме Sleep.
  • SDIOLPEN (бит 11) — Тактирование интерфейса карт SDIO в режиме Sleep (только у STM32L151xD, STM32L152xD, STM32L162xD).
  • ADC1LPEN (бит 9) — Тактирование АЦП в режиме Sleep.
  • TIM11LPEN (бит 4) — Тактирование таймера TIM11 в режиме Sleep.
  • TIM10LPEN (бит 3) — Тактирование таймера TIM10 в режиме Sleep.
  • TIM9LPEN (бит 2) — Тактирование таймера TIM9 в режиме Sleep.
  • SYSCFGLPEN (бит 0) — Тактирование SYSCFG и компараторов в режиме Sleep.

RCC_APB1LPENR — тактирование в режиме Sleep блоков на шине APB1

Смещение 0x30, адрес 0x4002 3830, 32 бит, после сброса 0xB0E6 4A37. В коде: RCC->APB1LPENR.

31302928272625242322212019181716
COMPLPEN—DACLPENPWRLPEN—USBLPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPEN—
1514131211109876543210
SPI3LPENSPI2LPEN—WWDGLPEN—LCDLPEN—TIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
  • COMPLPEN (бит 31) — Тактирование компараторов и RI в режиме Sleep.
  • DACLPEN (бит 29) — Тактирование ЦАП в режиме Sleep.
  • PWRLPEN (бит 28) — Тактирование интерфейса управления питанием PWR в режиме Sleep.
  • USBLPEN (бит 23) — Тактирование USB в режиме Sleep.
  • I2C2LPEN (бит 22) — Тактирование I2C2 в режиме Sleep.
  • I2C1LPEN (бит 21) — Тактирование I2C1 в режиме Sleep.
  • UART5LPEN (бит 20) — Тактирование UART5 в режиме Sleep (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • UART4LPEN (бит 19) — Тактирование UART4 в режиме Sleep (только у STM32L151xD/xDX/xE, STM32L152xD/xDX/xE, STM32L162xD/xDX/xE).
  • USART3LPEN (бит 18) — Тактирование USART3 в режиме Sleep.
  • USART2LPEN (бит 17) — Тактирование USART2 в режиме Sleep.
  • SPI3LPEN (бит 15) — Тактирование SPI3 в режиме Sleep (только у STM32L100xC, STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • SPI2LPEN (бит 14) — Тактирование SPI2 в режиме Sleep.
  • WWDGLPEN (бит 11) — Тактирование оконного сторожевого таймера WWDG в режиме Sleep.
  • LCDLPEN (бит 9) — Тактирование контроллера ЖК-индикатора в режиме Sleep (только у STM32L100, STM32L152, STM32L162).
  • TIM7LPEN (бит 5) — Тактирование таймера TIM7 в режиме Sleep.
  • TIM6LPEN (бит 4) — Тактирование таймера TIM6 в режиме Sleep.
  • TIM5LPEN (бит 3) — Тактирование таймера TIM5 в режиме Sleep (только у STM32L151xC/xCA/xD/xDX/xE, STM32L152xC/xCA/xD/xDX/xE, STM32L162).
  • TIM4LPEN (бит 2) — Тактирование таймера TIM4 в режиме Sleep.
  • TIM3LPEN (бит 1) — Тактирование таймера TIM3 в режиме Sleep.
  • TIM2LPEN (бит 0) — Тактирование таймера TIM2 в режиме Sleep.

RCC_CSR — lSI, LSE, тактирование RTC и флаги причины сброса

Смещение 0x34, адрес 0x4002 3834, 32 бит, после сброса 0x0C00 0000 (при включении питания). В коде: RCC->CSR.

31302928272625242322212019181716
LPWRRSTFWWDGRSTFIWDGRSTFSFTRSTFPORRSTFPINRSTFOBLRSTFRMVFRTCRSTRTCEN—RTCSEL
1514131211109876543210
—LSECSSDLSECSSONLSEBYPLSERDYLSEON—LSIRDYLSION
  • LPWRRSTF (бит 31) — Причина сброса: вход в Stop или Standby запрещён байтом опций (nRST_STOP, nRST_STDBY).
  • WWDGRSTF (бит 30) — Причина сброса: оконный сторожевой таймер WWDG.
  • IWDGRSTF (бит 29) — Причина сброса: независимый сторожевой таймер IWDG.
  • SFTRSTF (бит 28) — Причина сброса: программный (SYSRESETREQ).
  • PORRSTF (бит 27) — Причина сброса: включение или пропадание питания (POR/PDR).
  • PINRSTF (бит 26) — Причина сброса: вывод NRST.
  • OBLRSTF (бит 25) — Причина сброса: загрузка байтов опций (OBL_LAUNCH).
  • RMVF (бит 24) — Запись 1 сбрасывает все флаги причины сброса.
  • RTCRST (бит 23) — Программный сброс RTC, его источника тактирования и резервных регистров (и ЖК-индикатора).
  • RTCEN (бит 22) — Тактирование RTC.
  • RTCSEL (биты 17:16) — Источник тактирования RTC и ЖК-индикатора; меняется только после сброса RTCRST.
    RTCSELЗначениеМакрос CMSIS
    00Нет тактированияRCC_CSR_RTCSEL_NOCLOCK
    01LSERCC_CSR_RTCSEL_LSE
    10LSIRCC_CSR_RTCSEL_LSI
    11HSE через делитель RTCPRERCC_CSR_RTCSEL_HSE
  • LSECSSD (бит 12) — Обнаружен отказ LSE (только чтение) (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • LSECSSON (бит 11) — Система защиты тактирования LSE (только у STM32L100xBA/xC, STM32L151xBA/xC/xCA/xD/xDX/xE, STM32L152xBA/xC/xCA/xD/xDX/xE, STM32L162).
  • LSEBYP (бит 10) — Обход генератора LSE: внешний сигнал 32,768 кГц.
  • LSERDY (бит 9) — Генератор LSE готов (только чтение).
  • LSEON (бит 8) — Включение генератора LSE.
  • LSIRDY (бит 1) — Генератор LSI готов (только чтение).
  • LSION (бит 0) — Включение генератора LSI (около 37 кГц).

Частые вопросы

Как получить 32 МГц на STM32L152 от HSI?

Выберите диапазон 1 (PWR_CR.VOS = 01) и дождитесь VOSF, установите в FLASH_ACR сначала ACC64, затем LATENCY = 1 и PRFTEN. Включите HSI, задайте PLLSRC = HSI, PLLMUL = ×6 и PLLDIV = /3: ГУН — 96 МГц, выход — 32 МГц. Включите PLL и переключите SW.

Почему не меняется источник тактирования RTC?

RTCSEL нельзя переписать, пока RTC не сброшен. Разрешите запись битом DBP в PWR_CR, сбросьте RTC битом RTCRST в RCC_CSR (это стирает и резервные регистры) и только потом выбирайте новый источник.

Источники

  1. STMicroelectronics. RM0038: Reference manual (Rev 18) — раздел 6.3: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-l1 v2.3.4: заголовки CMSIS stm32l100xb.h, stm32l100xba.h, stm32l100xc.h, stm32l151xb.h, stm32l151xba.h, stm32l151xc.h, stm32l151xca.h, stm32l151xd.h, stm32l151xdx.h, stm32l151xe.h, stm32l152xb.h, stm32l152xba.h, stm32l152xc.h, stm32l152xca.h, stm32l152xd.h, stm32l152xdx.h, stm32l152xe.h, stm32l162xc.h, stm32l162xca.h, stm32l162xd.h, stm32l162xdx.h, stm32l162xe.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах? ·

Другие регистры STM32L1

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