Sign in to follow this  
COKPOWEHEU

минимизация потребления stm32l151rct6

8 posts in this topic

COKPOWEHEU    270

Захотелось сделать устройство с минимальным потреблением. Первоначально хотел попробовать на f103, но глянул в даташит и ужаснулся: в любом режиме сна у него потребление больше, чем у AVR-ок. Ну хорошо, в standby сравнимо, но этот режим мне не подходит. Поискал аналоги, вроде бы серия L1 больше подходит для автономных устройств. Да еще там есть вкусности вроде сенсорных кнопок и управления ЖКИ (не то чтобы необходимо, но поиграться стоит).

Собрал макетную плату с высокочастотным (8 МГц) и низкочастотным (32768) кварцами, стабилизатором, кнопками и светодиодами (из кода понятно что где висит). Запускаю RTC с пробуждением раз в секунду (в финальном устройстве просыпаться будет еще чаще) и пытаюсь увести в режим stop. Но вместо потребления в единицы микроампер получаю пол-миллиампера. Либо я какую-то периферию не отключил (да я их и не включал вроде...), либо как-то неправильно увожу в сон (вроде все по даташиту...), либо лыжи не едут.

Вот ключевые моменты кода (остальное во вложении):

void enable_btn(){
  RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
  GPIO_config(JBTN); //настройка на вход с минимальной скоростью, без подтяжке
}

void disable_all(){
  GPIOA->MODER = 0xFFFFFFFF; //all to analog in
  GPIOB->MODER = 0xFFFFFFFF; //all to analog in
  GPIOC->MODER = 0xFFFFFFFF; //all to analog in
  GPIOD->MODER = 0xFFFFFFFF; //all to analog in
  
  GPIOA->OSPEEDR = 0; //all to low speed (наверное, неважно)
  GPIOB->OSPEEDR = 0; //all to low speed (наверное, неважно)
  GPIOC->OSPEEDR = 0; //all to low speed (наверное, неважно)
  GPIOD->OSPEEDR = 0; //all to low speed (наверное, неважно)
  
  GPIOA->OTYPER &=~ 0x0000FFFF;
  GPIOB->OTYPER &=~ 0x0000FFFF;
  GPIOC->OTYPER &=~ 0x0000FFFF;
  GPIOD->OTYPER &=~ 0x0000FFFF;
  
  RCC->AHBENR &=~ (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIODEN);
  clock_MS();
}

void go_sleep(){
  RCC->APB1ENR |= RCC_APB1ENR_PWREN;//вкл тактирование PWR
  SCB->SCR |= SCB_SCR_SLEEPDEEP; //для M3 разрешаем sleepdeep
  PWR->CR &=~PWR_CR_PDDS;//выбираем режим Power Down Deepsleep
  PWR->CR &=~PWR_CR_CWUF ; //очищаем wakeup flag
  PWR->CR |= PWR_CR_LPSDSR; //уменьшаем voltage regulator
  __WFI();
}
...
//когда нужно заснуть
disable_all();
go_sleep();
enable_btn();

Пробовал совсем не переключаться с MSI на HSE, это влияет только на рабочий режим, во сне как было 500 мкА так и остается.

L1_sleep.rar

Share this post


Link to post
Share on other sites
Yurkin2015    351
21 минуту назад, COKPOWEHEU сказал:

стабилизатором

Это стабилизатор жрёт 500мкА.

Share this post


Link to post
Share on other sites
COKPOWEHEU    270
56 минут назад, Yurkin2015 сказал:

Это стабилизатор жрёт 500мкА.

Если бы все было так просто. Ток-то я меряю после него

Share this post


Link to post
Share on other sites

Бюджетные Wi-Fi-/ Bluetooth-решения для IoT-применения

Обзор основной линейки поставок и новинок Espressif Systems – экономически выгодных SoC Wi-Fi-/ Bluetooth-чипов и модулей для IoT-применений: от простых портативных устройств до промышленных решений.

Подробнее...

COKPOWEHEU    270

Код я привел. Все выводы настраиваются как аналоговые входы, даже те, что под JTAG используются. Внешней обвязки тоже нет, максимум проводки сантиметров по 5 от силы.

Share this post


Link to post
Share on other sites

Управляемый свет интернета вещей: Philips и протокол DALI 2.0

Полностью программируемые драйверы Philips Xitanium поддерживают все варианты регулировки яркости света и силы тока. Надежность системы значительно повышается при интеллектуальном мониторинге температуры светодиодного источника света. Разнообразие моделей в семействе обеспечивает максимальную гибкость в настройке рабочих параметров.

Подробнее...

mail_robot    1501

F-ки никак не подходят для малопотребляющих устройств. В сторону L-ек мысль была совершенно правильная

Share this post


Link to post
Share on other sites
COKPOWEHEU    270

Читал и раньше.

Попробовал еще несколько комбинаций:

- переключение выводов в Digital input + pull-up вместо analog input: потребление растет

- запуск часов от LSI вместо LSE: потребление практически не меняется. Возможно, только на фоне общего потребления в пол-миллиампера, а в абсолютных величинах будет заметнее.

- бит PWR_CR_ULP (внутренняя опора для аналоговых блоков?) : потребление немного снижается.

Последняя надежда что недостаточно очистил плату и идут утечки по налипшей гадости. Я ее, конечно, отмывал в спирте, но мало ли. Попробую еще в керосине, ацетоне и прочих растворителях.

Кстати, кто-нибудь знает чем можно удалить остатки цианакрилата? В инете пишут что ацетоном, диметилсульфоксидом и теплой водой (wtf?). Пока лучше тонких проволочек и бритвенного лезвия лучшего способа не нашел.

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • By IgnatiusF
      Появилась надобность в микроконтрллере STM32 для проектирования устройства. И вопрос вот в чем - в программировании этих стм-ов. Прочитал несколько статей по их программированию - что вообще для этого нужно. Выяснил, что в них (во всех?) есть вшитый bootloader, который может сам прошить МК.
      То есть для этого необходимо подключить какой-либо ...to UART преобразователь, а именно TX, RX, VCC и gnd к соответсвующим ногам микроконтроллера и все? Или надо еще куда-то подавать управляющий сигнал?
      Еще вопрос по поводу бутлоадера - если он занимает 8 КБ (или по разному?), то МК с 16 КБ памяти, по сути, будет иметь 8 КБ для программ?
      Datasheet я только начинаю читать и пока еще не нашел точной информации, так что за помощь буду очень признателен
    • By oner
      Нужен программист под STM32 из Питера. Задачи: Программирование под STM32 при работе в сетях сотовой и спутниковой связи с серверами.
      Работа проектная, не исключено, что с трудоустройством. Оплата - договорная.
    • By В гостях у Slime
      Здравствуйте, мне нужна помощь с подключением дисплея WG12864 к STM32F103C8T6. А именно? Я не нашёл библиотек для него, лишь только ардуиновские. Может у кого есть своя? С STM32 опыта почти нет. Так мигал светодиодом и всё, но зато ардуину я уже знаю всё. Я перерос её и мне хочется освоить стм.
    • By rmatveev
      Друзья, мне бы хотелось как-то начать "метить" прошивки, которые я заливаю в устройства на этапе разработки.
      Когда-то давно, когда я еще кодил для МК51 и PIC я использовал несколько ячеек в начале памяти программ, куда автоматом записывал закодированную дату. Но это я делал с помощью своей утилиты - при компиляции я запускал свой батник, который во-первых формировал небольшой ассемблерный файлик с кодом даты, он уже линковался к основному коду и получалось у меня что-то типа такого:
                  ORG          0000h
                  goto         Begin
                  include      'date.src'
                  retw         __day
                  retw         __month
                  retw         __year
                  ORG          0004h
                  goto         INTERRUPT
      Файл date.src формировался моим батником, там присваивались значения макросам __day, __month и __year.
      Это ассемблер для PicMicro. Я использовал тот факт, что у него между началом пользовательского кода и единственным вектором прерывания было 4 байта, в первый байт я вставлял команду перехода на начало, а в три оставшихся байта - дату. Она была хорошо видна при считывании кода из чипа. Было очень удобно потом идентифицировать прошивку, т.к. исходники я тоже сохранял по датам. В общем, такая была доморощенная система контроля версий. Было это году в 2000-м.
      Сейчас я пользуюсь Atollic TrueStudio и MBED и тоже задумался о том, как мне помечать прошивки. Может быть есть какие-то штатные способы? Или может по старинке найти в коде место, куда зашивать дату что бы ее легко было видно при считывании прошивки в ST Link Utility?
      Спасибо заранее за любые мысли.
    • By admin
      В ролике проведено сравнение характеристик микроконтроллеров на ядре Cortex-M7 от NXP и STM, а также удобство экосистемы для разработчиков. В тестах участвовали отладочные платы: STM32F723e-Disco и i.MX RT1050 Evaluation Kit. 
      Тестирование STM32F723e-Disco проводилось на основе материалов вебинара "Микроконтроллеры STM32F7/STM32H7 семейства Value Line"
  • Сообщения

    • Я писал выше. 1. 100% падает сигнал шум. Не сказать что намного но падает. 2. При подключении источника, а он включен пусть даже в туже розетку что и УМ. На экране кабеля (сигнальной земле) будет наводка эта наводка с кабеля попадает в сигнальную землю УМ в том числе на холодный конец R1 и катод первой лампы. Ну и всё это дело усилится в 20 с лишним дБ. Хочу добавить падение С/Ш с этим резистором для меня было значительным при Rвх УМ 48кОм по этому пришлось отказаться от него. При более высоком входном сопротивлении думаю шум будет поболее.  
    •        Морской устав Петра статья  116, третьей книги: «Аще кто девицу изнасильничает, да сказнен будет смертию». За этою статьей следует такое толкование: «При суждении о сих делах судья должен поступить с великим рассуждением: где и когда сие учинено, кричала она или не кричала, есть ли у нее ссадины или кровоподтеки, когда она на то жалобу принесла, тотчас же или промедлив день или два... тогда часто по всему видимому видно бывает, что и она к тому немалую охоту имела. Некоторые, правда, полагают, что публичная девка изнасилована быть не может, но сие неправильно, ибо насилие всегда есть насилие и надо на самое дело и обстоятельства смотреть невзирая на персону, над коею учинено». Не юмор, но поучительно.
    • Это если нагрузка  индуктивная
    • вопрос по пушпульному преобразователю. Собран по этой схеме http://cxem.net/sound/amps/amp146.php с чем связана такая осциллограмма на затворе Сток - исток осциллограмма следующая пока нет снаббера по первичке, надо подбирать. На хх потребление 170мА, кольцо 40х24х16, первичка 4+4, частота 42кГц.
    • Он одинаково комфортно варит и на 140А и на 40А ? Я сильно сомневаюсь. 
    • Я так понимаю, мои ролики ни кто не смотрит, тогда может послушаете, всего часовой ролик, который вам всё объяснит.
      Включили, и слушаете, а в другой вкладке браузера форум шарьте.   Уважаемый Марк! Боюсь, нам достаточно просто осознать, кто мы есть. И тогда всякие разговоры про СССР, и прочее- канут в лету.
      По гражданству- безусловно, мы все граждане СССР, и ни кто не сможет этого оспорить.
      А по факту- мы живые люди. И именно для нас РФ подписала Декларацию, о правах человека? Не так ли?
      А она стоит выше всех законов РФ! Посмотрите, она в свободном доступе пока ещё.