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

Регистры PWR STM32F7

Регистры PWR STM32F74x/F75x: масштаб напряжения ядра, Over-drive для 216 МГц, Under-drive в Stop, выбор Stop или Standby, детектор PVD, резервный стабилизатор и шесть выводов пробуждения.

Наибольшую частоту STM32F7 задаёт поле VOS: Scale 3 — до 144 МГц, Scale 2 — до 168 МГц, Scale 1 — до 180 МГц; режим Over-drive поднимает Scale 2 до 180 и Scale 1 до 216 МГц. Over-drive включают битом ODEN, ждут ODRDY, затем ODSWEN и ODSWRDY (RM0385, раздел 4.4).

Глубокий сон ядра становится Stop или Standby по биту PDDS; в Stop стабилизатор можно перевести в экономичный (LPDS) и пониженный (Under-drive) режимы. Выводы WKUP1–WKUP6 с выбором полярности настраиваются в PWR_CR2 и PWR_CSR2.

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

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

РегистрСмещениеНазначениеПосле сброса
PWR_CR10x00Масштаб напряжения, Over-drive, Under-drive, Stop и PVD0x0000 C000 (сбрасывается при выходе из режима Standby)
PWR_CSR10x04Флаги питания, Over-drive и резервного стабилизатора0x0000 0000 (не сбрасывается при выходе из режима Standby)
PWR_CR20x08Полярность выводов пробуждения и сброс их флагов0x0000 0000 (не сбрасывается при выходе из режима Standby)
PWR_CSR20x0CВключение и флаги выводов пробуждения WKUP1–WKUP60x0000 0000 (сбрасывается при выходе из режима Standby)

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

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

Значение: 0x0000C000

0000 0000 0000 0000 1100 0000 0000 0000

PWR->CR1 = 0x0000C000;

PWR_CR1 — масштаб напряжения, Over-drive, Under-drive, Stop и PVD

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

31302928272625242322212019181716
—UDENODSWENODEN
1514131211109876543210
VOSADCDC1—MRUDSLPUDSFPDSDBPPLSPVDECSBF—PDDSLPDS
  • UDEN (биты 19:18) — Режим Under-drive в Stop: пониженное напряжение ядра (11 — включён).
    UDENЗначение
    00Under-drive выключен
    11Under-drive включён
  • ODSWEN (бит 17) — Переключение ядра на питание Over-drive (после ODRDY).
  • ODEN (бит 16) — Включение генератора Over-drive: частота до 216 МГц.
  • VOS (биты 15:14) — Масштаб напряжения ядра: Scale 1…3, задаёт наибольшую частоту.
    VOSЗначение
    01Scale 3: до 144 МГц
    10Scale 2: до 168 МГц, с Over-drive — 180
    11Scale 1: до 180 МГц, с Over-drive — 216 (после сброса)
  • ADCDC1 (бит 13) — Режим АЦП при пониженном питании (см. AN4073).
  • MRUDS (бит 11) — Основной стабилизатор в режиме Under-drive в Stop.
  • LPUDS (бит 10) — Экономичный стабилизатор в режиме Under-drive в Stop.
  • FPDS (бит 9) — Флеш-память в режиме power-down в Stop.
  • DBP (бит 8) — Снятие защиты записи RTC, резервных регистров и резервной SRAM.
  • PLS (биты 7:5) — Порог детектора напряжения PVD.
    PLSЗначениеМакрос CMSIS
    0002,0 ВPWR_CR1_PLS_LEV0
    0012,1 ВPWR_CR1_PLS_LEV1
    0102,3 ВPWR_CR1_PLS_LEV2
    0112,5 ВPWR_CR1_PLS_LEV3
    1002,6 ВPWR_CR1_PLS_LEV4
    1012,7 ВPWR_CR1_PLS_LEV5
    1102,8 ВPWR_CR1_PLS_LEV6
    1112,9 ВPWR_CR1_PLS_LEV7
  • PVDE (бит 4) — Включение детектора напряжения PVD.
  • CSBF (бит 3) — Запись 1 сбрасывает флаг SBF.
  • PDDS (бит 1) — Режим глубокого сна: 0 — Stop, 1 — Standby.
  • LPDS (бит 0) — Экономичный стабилизатор в режиме Stop.

PWR_CSR1 — флаги питания, Over-drive и резервного стабилизатора

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

31302928272625242322212019181716
—UDRDYODSWRDYODRDY
1514131211109876543210
—VOSRDY—BREEIWUP—BRRPVDOSBFWUIF
  • UDRDY (биты 19:18) — Режим Under-drive действует в Stop; сбрасывается записью 11.
  • ODSWRDY (бит 17) — Ядро питается в режиме Over-drive (только чтение).
  • ODRDY (бит 16) — Генератор Over-drive готов (только чтение).
  • VOSRDY (бит 14) — Напряжение ядра установилось по VOS (только чтение).
  • BRE (бит 9) — Резервный стабилизатор резервной SRAM (сохраняет её в Standby и от VBAT).
  • EIWUP (бит 8) — Внутренние источники пробуждения (события RTC) в Standby.
  • BRR (бит 3) — Резервный стабилизатор готов (только чтение).
  • PVDO (бит 2) — Выход PVD: 1 — VDD ниже порога PLS (только чтение).
  • SBF (бит 1) — Микроконтроллер побывал в режиме Standby.
  • WUIF (бит 0) — Пробуждение от внутреннего источника (RTC).

PWR_CR2 — полярность выводов пробуждения и сброс их флагов

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

31302928272625242322212019181716
—
1514131211109876543210
—WUPP6WUPP5WUPP4WUPP3WUPP2WUPP1—CWUPF6CWUPF5CWUPF4CWUPF3CWUPF2CWUPF1
  • WUPP2–WUPP6 (по биту на каждый y, положение — на карте битов) — Полярность вывода пробуждения WKUPy: нарастающий (0) или спадающий (1) фронт.
  • WUPP1 (бит 8) — Полярность вывода пробуждения WKUP1: нарастающий (0) или спадающий (1) фронт.
  • CWUPF2–CWUPF6 (по биту на каждый y, положение — на карте битов) — Запись 1 сбрасывает флаг WUPFy.
  • CWUPF1 (бит 0) — Запись 1 сбрасывает флаг WUPF1.

PWR_CSR2 — включение и флаги выводов пробуждения WKUP1–WKUP6

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

31302928272625242322212019181716
—
1514131211109876543210
—EWUP6EWUP5EWUP4EWUP3EWUP2EWUP1—WUPF6WUPF5WUPF4WUPF3WUPF2WUPF1
  • EWUP1–EWUP6 (по биту на каждый y, положение — на карте битов) — Вывод WKUPy пробуждает из Standby.
  • WUPF1–WUPF6 (по биту на каждый y, положение — на карте битов) — Флаг пробуждения от вывода WKUPy.

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

В каком порядке включать Over-drive на STM32F7?

При работе от HSI или HSE: PWR_CR1.ODEN = 1 и ожидание ODRDY, затем ODSWEN = 1 и ожидание ODSWRDY. Только после этого задавайте такты ожидания флеш-памяти и переключайте SYSCLK на PLL с частотой выше 180 МГц.

Источники

  1. STMicroelectronics. RM0385: Reference manual (Rev 9) — раздел 4.4: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f7 v1.2.10: заголовки CMSIS stm32f745xx.h, stm32f746xx.h, stm32f750xx.h, stm32f756xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

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

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

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