реклама на сайте
подробности

 
 
> stm32f407 PVD, что-то не работает
SasaVitebsk
сообщение May 31 2016, 14:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



У меня стоит задача обнаружить свал питания. Первоначально задача выполнялась на внутреннем АЦП. Но подавал я туда не питание процессора, а питание до стабилизатора.
Всё прекрасно работало.
Хочу слегка упростить. Конечно можно опять же воспользоваться АЦП, только анализировать VDD, но я решил воспользоваться PVD из PWR регистра.
И что-то не работает. Вроде бы как всё правильно инициализирую.
Сначала включаю PWR
Код
  // Enable Power Control clock
  __PWR_CLK_ENABLE();
  /* The voltage scaling allows optimizing the power consumption when the device is
     clocked below the maximum system frequency, to update the voltage scaling value
     regarding system frequency refer to product datasheet.  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  __enable_interrupt();
  // Разрешить питание RTC и BackUp
  PWR->CR |= PWR_CR_DBP;

устанавливаю уровень и запускаю PVD:
Код
  // Работа со свалом питания
  PWR->CR |= PWR_CR_PLS_LEV7;
  PWR->CR |= PWR_CR_PVDE;

Потом разрешаю прерывания
Код
  EXTI->FTSR |= EXTI_FTSR_TR16;
  EXTI->IMR |= EXTI_IMR_MR16;
  EXTI->PR = EXTI_IMR_MR16;
  // Прерывание по свалу питания
  HAL_NVIC_SetPriority(PVD_IRQn, 0x6, 0);
  HAL_NVIC_EnableIRQ(PVD_IRQn);


Но что-то прерываний не вижу, при выключении питания.
Кто-нибудь может прокомментировать?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016