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

 
 
> TM32F091 - StopMode
toweroff
сообщение Jan 24 2017, 08:12
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день

Есть устройство, работает под CMSIS_RTOS. Нужно засыпать и просыпаться от изменения состояния на 2х пинах и один раз в час
Правильны ли мои мысли в реализации этого хозяйства:

1. Само "засыпание" - у Кейла в примерах это делается в задаче Idle, так и оставим
2. Тактирование GPIO - я так понимаю, без этого никак. Единственное, наверное, перевести на тактирование от внутреннего RC, кварц и PLL отключаем перед засыпанием
3. RTC настраиваем на тактирование от LSE и пусть от батарейки тикает
4. Настраиваем EXTI для пинов и RTC

При пробуждении от пинов необходимо только зафиксировать факт изменения состояния пина, увеличить счетчик и снова заснуть
Пробуждение от RTC вызовет работу в течение минуты-полторы и снова в сон.

Также есть ADC, хотелось бы как-то и его приплести для просыпания, там делитель с +5в примерно до 1в. Получается, его также нужно тактировать?

Теперь интересен сам процесс просыпания, например, от пинов. Прерывание настроено, получается, я "очнусь" в обработчике? Точнее, после __WFE() и сразу влечу в прерывание

И самый важный момент - оставляя тактирование периферии, я ведь не получу заветный 1мкА потребления? laughing.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение Jan 25 2017, 10:09
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



На сколько я понимаю USART и I2C не будут работать. EXTI line это ж вроде просто нога проца. Т.е. нога дернулась, проц проснулся.

На техасовском DSP я когда-то делал немного грязный хак. Перед сном переводил RX ногу USART в режим внешнего прерывания и когда данные прилетали то прерывание срабатывало от stop битов USARTa. Да, именно эти данные мы проспали, но проц просыпался, перенастраивал ногу на RX и следующий пакет уже принимал. Конкретно как там оно в ARM я не знаю, но думается мне, что пробуждение от внешнего прерывания примерно одинаково у всех реализовано.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 11:01
Рейтинг@Mail.ru


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