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

 
 
> Убийца PICа ( STM32Fxx в режмиме STOP)
vlad_new
сообщение Jul 2 2012, 17:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Была у меня приблуда на PICe. Питалась от солнечной батарейкм от калькулятора. Дай, думаю, передалаю на STM32xxx . Вроде как 15 мкА в режиме STOP более чем достаточно. Быстренько все сваял и полный облом. Оказалось, что пока на STMе прога не запустится, жрет он более 1 мА. А все что может батарейка - 50 мкА.
Решил в оптоин байте, пин nRST запрограммировать в режиме STOP. Дай думаю подержу его в 0 пока кондюк по питанию не подзарядится. И опять облом. Прога то приостанавливается, вот только потребление при запуске меньше не становится. Взял STM с Cortex 0 - та же беда. Так что кто там PICи решил убить - пусть научит как?



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Артём_
сообщение Jul 2 2012, 18:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(vlad_new @ Jul 2 2012, 20:38) *
А все что может батарейка - 50 мкА.

Интересно на какой частоте вы хотите чтобы процессор работал?
Обычное потребление Cortex-ов от 130 µA/MHz и выше + кварц и периферия. А у вас 50 µA.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Jul 2 2012, 20:50
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата(_Артём_ @ Jul 2 2012, 22:56) *
Интересно на какой частоте вы хотите чтобы процессор работал?
Обычное потребление Cortex-ов от 130 µA/MHz и выше + кварц и периферия. А у вас 50 µA.

STM находится в режиме STOP. Нажимаем на кнопку - вызываем EXTI прерывание. Передаем в USART пару байт. Дожидаемся окончания передачи. Уходим опять в STOP. В таких старт-стопных режимах тактовая частота по сути не влияет.

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 3 2012, 06:47
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (vlad_new @ Jul 2 2012, 23:50) *
Нажимаем на кнопку - вызываем EXTI прерывание. Передаем в USART пару байт. Дожидаемся окончания передачи. Уходим опять в STOP
Нажимаем на кнопку - вызываем EXTI прерывание. Настраиваем и запускаем (или запускаем предварительно настроенный) DMA, уходим опять в STOP. в USART байты попадут сами, не трогая спящее ядро.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 3 2012, 07:35
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Jul 3 2012, 12:47) *
Нажимаем на кнопку - вызываем EXTI прерывание. Настраиваем и запускаем (или запускаем предварительно настроенный) DMA, уходим опять в STOP. в USART байты попадут сами, не трогая спящее ядро.

А зачем так сложно (DMA и т.п.)? "Пара байт" вполне себе влезет в фифо UART без доп. затрат микроампер на включённое DMA
Go to the top of the page
 
+Quote Post



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

 


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


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