Делаю следующее:
Код
PWR->CR |=PWR_CR_LPDS; //В Stop-mode работает low-power regulator
PWR->CR |=PWR_CR_FPDS; //Flash в power-down в Stop режиме
PWR->CR |=PWR_CR_LPUDS; // low-power regulator в режим under-drive;
PWR->CR |=PWR_CR_UDEN; // Включаю собственно сам режим under-drive
while(!(PWR->CSR & PWR_CSR_UDSWRDY)) {}
PWR->CR |=PWR_CR_FPDS; //Flash в power-down в Stop режиме
PWR->CR |=PWR_CR_LPUDS; // low-power regulator в режим under-drive;
PWR->CR |=PWR_CR_UDEN; // Включаю собственно сам режим under-drive
while(!(PWR->CSR & PWR_CSR_UDSWRDY)) {}
Программа зависает на ожидании флага PWR_CSR_UDSWRDY который должен выставиться если режим активируется но этого не происходит.
Сами биты UDEN устанавливаются.
Ток потребления должен снизиться больше чем в 2 раза. Если просто Stop-mode когда флеш не выключена, регулятор выбран основной и режим under-drive не активирован --- 400 мка.
И когда флэш в power down, выбран low-power регулятор и еще активирован режим under-drive ---120 мка.
Получается ни по току ни по флагу режим не активируется. Подскажите кто разобрался с этим!