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

 
 
> 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
 
Start new topic
Ответов (1 - 1)
SasaVitebsk
сообщение Jun 1 2016, 09:31
Сообщение #2


Гуру
******

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



Отвечаю сам. Разобрался. ))
Короче PVD работает не совсем как ожидаешь интуитивно... )) Это конечно описано...
Сначала питание попадает на PVD. По результату обработки формируется цифровой выходной сигнал. Он инверсный.
Вот этот инверсный сигнал попадает на EXTI.
Таким образом чтобы детектировать спадающий фронт питания, надо обрабатывать нарастающий фронт EXTI. ))
Go to the top of the page
 
+Quote Post

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

 


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


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