Регистры 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.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| PWR | 0x4000 7000 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| PWR_CR1 | 0x00 | Масштаб напряжения, Over-drive, Under-drive, Stop и PVD | 0x0000 C000 (сбрасывается при выходе из режима Standby) |
| PWR_CSR1 | 0x04 | Флаги питания, Over-drive и резервного стабилизатора | 0x0000 0000 (не сбрасывается при выходе из режима Standby) |
| PWR_CR2 | 0x08 | Полярность выводов пробуждения и сброс их флагов | 0x0000 0000 (не сбрасывается при выходе из режима Standby) |
| PWR_CSR2 | 0x0C | Включение и флаги выводов пробуждения WKUP1–WKUP6 | 0x0000 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | UDEN | ODSWEN | ODEN | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VOS | ADCDC1 | — | MRUDS | LPUDS | FPDS | DBP | PLS | PVDE | CSBF | — | PDDS | LPDS | |||
- UDEN (биты 19:18) — Режим Under-drive в Stop: пониженное напряжение ядра (11 — включён).
UDEN Значение 00 Under-drive выключен 11 Under-drive включён - ODSWEN (бит 17) — Переключение ядра на питание Over-drive (после ODRDY).
- ODEN (бит 16) — Включение генератора Over-drive: частота до 216 МГц.
- VOS (биты 15:14) — Масштаб напряжения ядра: Scale 1…3, задаёт наибольшую частоту.
VOS Значение 01 Scale 3: до 144 МГц 10 Scale 2: до 168 МГц, с Over-drive — 180 11 Scale 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 000 2,0 В PWR_CR1_PLS_LEV0 001 2,1 В PWR_CR1_PLS_LEV1 010 2,3 В PWR_CR1_PLS_LEV2 011 2,5 В PWR_CR1_PLS_LEV3 100 2,6 В PWR_CR1_PLS_LEV4 101 2,7 В PWR_CR1_PLS_LEV5 110 2,8 В PWR_CR1_PLS_LEV6 111 2,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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | UDRDY | ODSWRDY | ODRDY | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | VOSRDY | — | BRE | EIWUP | — | BRR | PVDO | SBF | WUIF | ||||||
- 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.
| 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 |
| — | WUPP6 | WUPP5 | WUPP4 | WUPP3 | WUPP2 | WUPP1 | — | CWUPF6 | CWUPF5 | CWUPF4 | CWUPF3 | CWUPF2 | CWUPF1 | ||
- 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.
| 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 |
| — | EWUP6 | EWUP5 | EWUP4 | EWUP3 | EWUP2 | EWUP1 | — | WUPF6 | WUPF5 | WUPF4 | WUPF3 | WUPF2 | WUPF1 | ||
- 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 МГц.
Источники
- STMicroelectronics. RM0385: Reference manual (Rev 9) — раздел 4.4: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-f7 v1.2.10: заголовки CMSIS stm32f745xx.h, stm32f746xx.h, stm32f750xx.h, stm32f756xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32F7
- Все регистры STM32F7Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_PLLCFGR, RCC_CFGR, RCC_CIR, RCC_AHB1RSTR, RCC_AHB2RSTR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_MEMRMP, SYSCFG_PMC, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USART и UARTUSART_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_LISR, DMA_HISR, DMA_LIFCR, DMA_HIFCR, DMA_SxCR, DMA_SxNDT
- АЦП — аналого-цифровые преобразователиADC_SR, ADC_CR1, ADC_CR2, ADC_SMPR1, ADC_SMPR2, ADC_JOFR1
- 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_APB1_FZ, DBGMCU_APB2_FZ
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_OPTCR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- ЦАП — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2
- CAN — контроллеры bxCANCAN_MCR, CAN_MSR, CAN_TSR, CAN_RF0R, CAN_RF1R, CAN_IER