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

Регистры PWR STM32L1

Регистры PWR STM32L1: диапазон напряжения ядра, выбор между Stop и Standby, режим стабилизатора, Low-power run, ultra-low-power, детектор напряжения PVD, выводы пробуждения и флаги состояния.

Напряжение ядра STM32L1 задаёт поле VOS: диапазон 1 (1,8 В) — до 32 МГц, диапазон 2 (1,5 В) — до 16 МГц, диапазон 3 (1,2 В) — до 4,2 МГц. После сброса — диапазон 2. Диапазон 1 доступен только при VDD не ниже порога из даташита, а смена диапазона заканчивается сбросом флага VOSF (RM0038, раздел 5.4).

Глубокий сон Cortex-M3 (SLEEPDEEP) превращается в Stop или Standby по биту PDDS; бит LPSDSR переводит стабилизатор в экономичный режим, а LPRUN вместе с ним даёт режим Low-power run при низкой частоте MSI. Бит DBP открывает запись в RTC и RCC_CSR.

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

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

РегистрСмещениеНазначениеПосле сброса
PWR_CR0x00Режимы пониженного потребления, диапазон напряжения ядра и PVD0x0000 1000 (сбрасывается при выходе из режима Standby)
PWR_CSR0x04Флаги питания и выводы пробуждения WKUP0x0000 0008 (не сбрасывается при выходе из режима Standby)

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

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

Значение: 0x00001000

0000 0000 0000 0000 0001 0000 0000 0000

PWR->CR = 0x00001000;

PWR_CR — режимы пониженного потребления, диапазон напряжения ядра и PVD

Смещение 0x00, адрес 0x4000 7000, 32 бит, после сброса 0x0000 1000 (сбрасывается при выходе из режима Standby). В коде: PWR->CR.

31302928272625242322212019181716
—
1514131211109876543210
—LPRUN—VOSFWUULPDBPPLSPVDECSBFCWUFPDDSLPSDSR
  • LPRUN (бит 14) — Режим Low-power run: стабилизатор в режиме пониженного потребления (вместе с LPSDSR).
  • VOS (биты 12:11) — Диапазон напряжения ядра: 1,8 В, 1,5 В или 1,2 В — задаёт наибольшую частоту.
    VOSЗначение
    01Диапазон 1: 1,8 В, до 32 МГц (с тактом ожидания)
    10Диапазон 2: 1,5 В, до 16 МГц
    11Диапазон 3: 1,2 В, до 4,2 МГц
  • FWU (бит 10) — Быстрое пробуждение: не ждать готовности VREFINT при выходе из режимов пониженного потребления.
  • ULP (бит 9) — Режим ultra-low-power: VREFINT выключен в режимах пониженного потребления.
  • DBP (бит 8) — Снятие защиты записи RTC, резервных регистров и RCC_CSR.
  • PLS (биты 7:5) — Порог детектора напряжения PVD.
    PLSЗначениеМакрос CMSIS
    0001,9 ВPWR_CR_PLS_LEV0
    0012,1 ВPWR_CR_PLS_LEV1
    0102,3 ВPWR_CR_PLS_LEV2
    0112,5 ВPWR_CR_PLS_LEV3
    1002,7 ВPWR_CR_PLS_LEV4
    1012,9 ВPWR_CR_PLS_LEV5
    1103,1 ВPWR_CR_PLS_LEV6
    111Внешний вход PVD_IN (сравнивается с VREFINT)PWR_CR_PLS_LEV7
  • PVDE (бит 4) — Включение детектора напряжения PVD.
  • CSBF (бит 3) — Запись 1 сбрасывает флаг SBF.
  • CWUF (бит 2) — Запись 1 сбрасывает флаг WUF.
  • PDDS (бит 1) — Режим глубокого сна: 0 — Stop, 1 — Standby.
  • LPSDSR (бит 0) — Стабилизатор в режиме пониженного потребления в Sleep, Stop и Low-power run.

PWR_CSR — флаги питания и выводы пробуждения WKUP

Смещение 0x04, адрес 0x4000 7004, 32 бит, после сброса 0x0000 0008 (не сбрасывается при выходе из режима Standby). В коде: PWR->CSR.

31302928272625242322212019181716
—
1514131211109876543210
—EWUP3EWUP2EWUP1—REGLPFVOSFVREFINTRDYFPVDOSBFWUF
  • EWUP1–EWUP3 (по биту на каждый y, положение — на карте битов) — Вывод WKUPy пробуждает из Standby (вывод переходит во вход с подтяжкой вниз).
  • REGLPF (бит 5) — Стабилизатор в режиме пониженного потребления (только чтение).
  • VOSF (бит 4) — Напряжение ядра ещё устанавливается после смены VOS (только чтение).
  • VREFINTRDYF (бит 3) — Опорное напряжение VREFINT готово (только чтение).
  • PVDO (бит 2) — Выход PVD: 1 — VDD ниже порога PLS (только чтение).
  • SBF (бит 1) — Микроконтроллер побывал в режиме Standby.
  • WUF (бит 0) — Флаг пробуждения: событие на выводе WKUP или от RTC.

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

Как перейти в диапазон 1 на STM32L152?

Включите тактирование PWR (RCC_APB1ENR.PWREN), дождитесь VOSF = 0, запишите VOS = 01 в PWR_CR и снова дождитесь VOSF = 0. Только после этого поднимайте частоту выше 16 МГц и задавайте такт ожидания флеш-памяти.

Источники

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

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