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

 
 
 
Reply to this topicStart new topic
> Микропотребление STM32L100
razrab83
сообщение Jul 24 2018, 19:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Собрал девайс на STM32L100, написал прогу. Всё работает, но не могу получить микропотребление. Хочу в режим Stop+RTC. По даташтиту 1,4 мкА. Я смог получить 50 мкА.

Наверно куда-то на плате утекает. Есть такая же плата, на которой кроме процессора и подтяжки ресета ни чего не запаяно. Залил туда этот-же код - получил в стопе теже 50 мкА.
Собрал в кубе новый проект, в котором только debugwire и RTC использую, клокирую от HSI: итог 500 мкА!!! Ладно, хал в топку.... собрал холоворд в иаре

Код
#include "stm32l1xx.h"
int main()
{
   pause();//сделал нопами паузу в несколько секунд, чтоб можно без болезненно перезаписать/стереть флешь
  PWR->CR |= 1; // Voltage regulator in low-power mode during deepsleep/Sleep/Low-power run mode
  __WFI();
}

получил 0,9 мА.

залил на эту голую плату собранный пример из ...STM32Cube_FW_L1_V1.8.0\Projects\STM32L100C-Discovery\Examples\PWR\PWR_STOP\EWARM - получил тоже что-то около 0,5-1 мА
Что не так? Как получить микропотребление?

Сообщение отредактировал razrab83 - Jul 24 2018, 19:19
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 24 2018, 19:39
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Отключить SWD/SWC после прошивки и сделать RESET.
Go to the top of the page
 
+Quote Post
vovanse
сообщение Jul 25 2018, 00:42
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 14-02-06
Из: Кемерово
Пользователь №: 14 293



Все неиспользуемые порты - на выход и на "0", плату отмыть, отладчик не подключать.. Как-то так.
Go to the top of the page
 
+Quote Post
razrab83
сообщение Jul 25 2018, 02:38
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(x893 @ Jul 24 2018, 19:39) *
Отключить SWD/SWC после прошивки и сделать RESET.

Естественно отключаю. Ресет не делаю, отключаю питание, отключаю отладчик, включаю питание, измеряю ток потребления.

Цитата
плату отмыть
... и протереть педали.

Плата чистая. Заливаю рабочую прошивку - потребление 50мкА, заливаю тестовую (полный код в первом посте) - 900 мкА.

Цитата
Все неиспользуемые порты - на выход и на "0"
Это можно проверить.... но как на них подать 0, если порты не используются? Т.е. нет даже клоков на порт. Или нужно на все порты подать клок и все порты проинитить?
Go to the top of the page
 
+Quote Post
razrab83
сообщение Jul 25 2018, 06:38
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Вот плата. Куда тут может утекать? Добавил в код deepsleep - не помогло.

Код
#include "stm32l1xx.h"
int main()
{
   pause();
  SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
  PWR->CR |= PWR_CR_LPSDSR;
  __WFI();
}
Может питание аналоговое отрезать? или VLCD? Но эта периферия отключена (после сброса) - не должно быть потребления.
Go to the top of the page
 
+Quote Post
segment
сообщение Jul 25 2018, 08:29
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Осциллографом смотрели ток потребления, который 50мкА? Это случаем не периодические пробуждения устройства? Подтяжку на reset поменяйте на 100к, на всякий случай
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 25 2018, 12:10
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Пожалуйста, не обижайтесь, но... Измерятор-то правильный? Что если дать вольт через мегаомный резюк - увидит прибор микроампер? А то может у него шкала 50 мкА, т.е. наврал производитель.


--------------------
Go to the top of the page
 
+Quote Post
razrab83
сообщение Jul 25 2018, 13:40
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(segment @ Jul 25 2018, 08:29) *
Осциллографом смотрели ток потребления, который 50мкА? Это случаем не периодические пробуждения устройства? Подтяжку на reset поменяйте на 100к, на всякий случай

Нет, не пробуждение. Да и причин проснуться нет. Весь код в 3-х строчках. Больше нет ни чего, ни куба, ни spl.... хотя нет... есть ещё startup от st.
На stm8l получал единицы мкА, там ресет подтягивал 10 кОм.

Код
Измерятор-то правильный?
мультиметр.... специально не калибровал, но потребление радиомодуля в слыпрежиме 1 мкА, прибор колеблется 1-2 мкА.... stm8 по даташиту 1 мкА - прибор 1-2 мкА, stm8s по даташиту 10 мкА, прибор показал 10 мкА.

да и если даже он врёт.... с одной прошивкой 50 мкА на 2-х платах, с другой 500 мкА на двух платах.

Что-то st-эмовцы недоговаривают в даташитах... или я найти не могу.... вот в стм8 - там 3 порта, PA, PC, PB. В каждом я использую несколько ножек. Т.е. в начале программы я подаю клоки на все GPIO, потом иничу нужные, потом ненужные иничу в режим минимального потребления. Результат на лицо мультиметр - как по даташиту. Каждая периферия потребляет ток согласно таблицам в даташитах.

Теперь stm32l100 - тут много портов.... использую мало. Те что не использую, какойнить GPIOC, то вообще не подаю на него клоки, ибо он не нужен. Для эксперимента с микропотреблением на голой плате не инитил вообще ни какую периферию.... ни цап-ацп, ни gpio, ни клоки.... делаю всё строго по мануалу: даю sleepdeep, даю PWR_CR_LPSDSR и спать!
Цитата
– Set SLEEPDEEP bit in Cortex ® -M3 System Control register
– Clear PDDS bit in Power Control register (PWR_CR) //это в нуле по сбросу
– Clear WUF bit in Power Control/Status register (PWR_CSR)//это в нуле по сбросу
– Select the voltage regulator mode by configuring LPSDSR bit in PWR_CR

Т.е. останавливаются все клоки, останавливается вся периферия, останавливается ядро, отключается флешь, сохраняется озу и состояние портов. ЖРЁТ милиампер!!! Да как так-то? Или не проиниченные GPIO без клоков жрут токи?

Сообщение отредактировал razrab83 - Jul 25 2018, 13:45
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 25 2018, 13:41
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А если совсем ничего не записать в МК, сколько потребляет? rolleyes.gif
Go to the top of the page
 
+Quote Post
Obam
сообщение Jul 25 2018, 15:05
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(razrab83 @ Jul 25 2018, 05:38) *
... но как на них подать 0, если порты не используются? Т.е. нет даже клоков на порт. Или нужно на все порты подать клок и все порты проинитить?

Да, подать тактирование на GPIO, проинитить - выходы, в "0", отключить пулл-апы-дауны, отключить тактирование.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
*Leks*
сообщение Jul 27 2018, 06:37
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 28-01-06
Из: Москва
Пользователь №: 13 719



Цитата(ViKo @ Jul 25 2018, 16:41) *
А если совсем ничего не записать в МК, сколько потребляет? rolleyes.gif

На днях запаял в новую плату чистый stm32f303 и включил. Так он грелся, зараза. Я думал, что что в топологии напутал чего, но заливка прошивки прошла штатно и греться перестало.
Go to the top of the page
 
+Quote Post

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

 


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


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