razrab83 21 24 июля, 2018 Опубликовано 24 июля, 2018 (изменено) · Жалоба Собрал девайс на 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 мА Что не так? Как получить микропотребление? Изменено 24 июля, 2018 пользователем razrab83 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 24 июля, 2018 Опубликовано 24 июля, 2018 · Жалоба Отключить SWD/SWC после прошивки и сделать RESET. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vovanse 0 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Все неиспользуемые порты - на выход и на "0", плату отмыть, отладчик не подключать.. Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Отключить SWD/SWC после прошивки и сделать RESET. Естественно отключаю. Ресет не делаю, отключаю питание, отключаю отладчик, включаю питание, измеряю ток потребления. плату отмыть... и протереть педали. Плата чистая. Заливаю рабочую прошивку - потребление 50мкА, заливаю тестовую (полный код в первом посте) - 900 мкА. Все неиспользуемые порты - на выход и на "0"Это можно проверить.... но как на них подать 0, если порты не используются? Т.е. нет даже клоков на порт. Или нужно на все порты подать клок и все порты проинитить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Вот плата. Куда тут может утекать? Добавил в код deepsleep - не помогло. #include "stm32l1xx.h" int main() { pause(); SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; PWR->CR |= PWR_CR_LPSDSR; __WFI(); } Может питание аналоговое отрезать? или VLCD? Но эта периферия отключена (после сброса) - не должно быть потребления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Осциллографом смотрели ток потребления, который 50мкА? Это случаем не периодические пробуждения устройства? Подтяжку на reset поменяйте на 100к, на всякий случай Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Пожалуйста, не обижайтесь, но... Измерятор-то правильный? Что если дать вольт через мегаомный резюк - увидит прибор микроампер? А то может у него шкала 50 мкА, т.е. наврал производитель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 25 июля, 2018 Опубликовано 25 июля, 2018 (изменено) · Жалоба Осциллографом смотрели ток потребления, который 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 без клоков жрут токи? Изменено 25 июля, 2018 пользователем razrab83 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба А если совсем ничего не записать в МК, сколько потребляет? :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба ... но как на них подать 0, если порты не используются? Т.е. нет даже клоков на порт. Или нужно на все порты подать клок и все порты проинитить? Да, подать тактирование на GPIO, проинитить - выходы, в "0", отключить пулл-апы-дауны, отключить тактирование. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*Leks* 0 27 июля, 2018 Опубликовано 27 июля, 2018 · Жалоба А если совсем ничего не записать в МК, сколько потребляет? :rolleyes: На днях запаял в новую плату чистый stm32f303 и включил. Так он грелся, зараза. Я думал, что что в топологии напутал чего, но заливка прошивки прошла штатно и греться перестало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться