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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> STM32L151 потребление в спящем режиме, с часами и кнопкой. Keil.
MiklPolikov
сообщение May 26 2012, 14:10
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(spasbyspas @ May 22 2012, 16:44) *
Стадии разработке JTAG контакты должны бы не следует менять и специально в токой режиме.
В общем, то есть проблема с программированием новой версии программа через JTAG и в частности SWD в "STANDBY mode".

Эти два предложения совсем не понял...

В общем, делаю вот так, сразу после запуска , т.е. периферия выключена.
__WFI(); можно и не в цикле , т.к. никаких прерываний нет , проверял.
На двух подтягивающих резисторах 10К jtag обнаружил напряжение 0.17в и отпаял их. Без резисторов напряжение стало 0.54.

При делителе AHB=1
С __WFI(); получаю ток 19мкА
Если __WFI(); вообще нет , и программа крутится в while(1){}, получаю ток 32мкА

При делителе AHB=512
С __WFI(); 19мкА
Без __WFI(); 25мкА

При этом всём нога VDDA потребляет ~1 мкА

Вопрос : как ещё снизить ток ? Чего я ещё забыл выключить ?



Код
RCC->CFGR &=~RCC_CFGR_SW;  //Выбрали System clock  MSI
     RCC->CR &= ~RCC_CR_HSION;      //вЫключили генератор HSI

     RCC->ICSCR&=~RCC_ICSCR_MSIRANGE;    
     RCC->ICSCR|=RCC_ICSCR_MSIRANGE_64KHz;    //частота MSI 64 KHZ
    
    RCC->CR &=~RCC_CR_HSEON;   //выключили генератор  HSE , сразу после включения МК он почеу-то портебляет 1.5мА
                  
    PWR->CR |= PWR_CR_LPSDSR;       //при входе в спящий режим переводим встроеный стабилизатор в режим малого портебления
    PWR->CR |= PWR_CR_LPRUN;      //Voltage regulator in low power mode in Low power run mode
    PWR->CR |= PWR_CR_ULP;      //Внутренний источник опорного напряжения отключен в спящем режиме
    
   /////////////// RCC->CFGR |=RCC_CFGR_HPRE_DIV512;    //делитель AHB 512    

   SCB->SCR&=~SCB_SCR_SLEEPONEXIT; // не дожидаемся окончания выхода из прерывания перед входом в спящий режим
  
  
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN |RCC_AHBENR_GPIOHEN; //включили тактирование портов
  
    GPIOA->PUPDR=0;
    GPIOB->PUPDR=0;
    GPIOC->PUPDR=0;
    GPIOH->PUPDR=0;     //выключили подтягивающие резисторы
  
    GPIOA->MODER=0xFFFFFFFF;
    GPIOB->MODER=0xFFFFFFFF;
    GPIOC->MODER=0xFFFFFFFF;
    GPIOH->MODER=0xFFFFFFFF;  //сделали все порты аналоговыми

    RCC->AHBENR &= ~(RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN |RCC_AHBENR_GPIOHEN); //вЫключили тактирование портов
      

   while(1)
    {
      __WFI();   //заснули
    }


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
spasbyspas
сообщение May 26 2012, 19:12
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 31-08-08
Пользователь №: 39 908



У вас с код все в порядке!
Но.. с __WFI(); получаю ток около 15мкА,
с while(1){}, получаю ток 23мкА.
без никаких периферийных устройств на пинах.
Т.е. это связано с утечки светодиода или другие периферийные устройства при конфигурации "all GPIO as analog".

Обычно ток в этом режиме - около 18мкА - STM32L151xx, STM32L152xx User Manual "Electrical characteristics"
Table 17. Current consumption in Low power sleep mode
MSI clock, 65 kHz, fHCLK= 64 kHz, Flash ON.

Сообщение отредактировал spasbyspas - May 26 2012, 19:14
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Aug 29 2012, 11:31
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Хочу перейти в режим STOP с RTC , в которм потребление судя по документации 1.6мкА

Следующий вопрос :
Где почитать про переход в STOP и выход из него ?
При выходе программа начинает выполнятся с того места где остановилась, или с начала ?
Если с начала, то как понять что это был выход из STOP а не reset ?
Как войти в STOP , если я не пользуюсь чужими библиотеками, а пользуюсь только тем что поставляется вместе с KEIL ?

Спасибо !


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
ZiB
сообщение Aug 30 2012, 15:12
Сообщение #19


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Цитата
Где почитать про переход в STOP и выход из него ?

В документации на микроконтроллер, в данном случае смотрите
RM0038: STM32L151xx, STM32L152xx and STM32L162xx advanced ARM-based 32-bit MCUs
AN3193: STM32L15x ultralow power features overview
и рекомендую глянуть стандартную либу STM32L1xx standard peripherals library

Цитата
При выходе программа начинает выполнятся с того места где остановилась, или с начала ?

Выход эквивалентен программному сбросу мк,

Цитата
Если с начала, то как понять что это был выход из STOP а не reset ?

проконтролировать можно анализируя регистр статуса PWR_CSR, там есть битик SBF

Цитата
Как войти в STOP , если я не пользуюсь чужими библиотеками, а пользуюсь только тем что поставляется вместе с KEIL ?

Используйте документацию которую я указал выше и настоятельно рекомендую просмотреть примеры.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 3 2012, 03:59
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



ZIB, большое спасибо !

Ещё вопрос :
Когда перехожу в STANDBY, ноги процессора оказываются в 3ем состоянии.
В LOW POWER SLEEP и STOP с ногами всё в порядке , остаются в тех уровнях что и были.

В STANDBY так и должно быть, или это у меня ошибка ?



--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 4 2012, 09:59
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Нашёл ответ сам в RM0038 Reference manual

I/O states in Standby mode
In Standby mode, all I/O pins are high impedance except for:
● Reset pad (still available)
● RTC_AF1 pin (PC13) if configured for Wakeup pin 2 (WKUP2), tamper, time-stamp,
RTC Alarm out, or RTC clock calibration out.
● WKUP pin 1 (PA0) and WKUP pin 3 (PE6), if enabled.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 8 2013, 09:51
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Кто-нибудь знает, почему вот в этой таблице из документа STM32L15x ultralow power features overview
встречаются значения YES NO ON OFF ? Чем YES отличается от ON а NO от OFF ?


Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
spasbyspas
сообщение Feb 8 2013, 23:16
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 31-08-08
Пользователь №: 39 908



Для CPU, когда есть "NO", тогда только такт к CPU выключено, аналогично соответно "YES". А когда "ОFF", тогда питание CPU модуле выключено.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 9 2013, 05:23
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(spasbyspas @ Feb 9 2013, 03:16) *
Для CPU, когда есть "NO", тогда только такт к CPU выключено, аналогично соответно "YES". А когда "ОFF", тогда питание CPU модуле выключено.


Спасибо.
Я так понимаю, что нет никакого режима что бы одновременно:
- Отключить CPU, FLASH
- Оставить включенной Периферию, DMA, HSI для работы АЦП , MSI 4МГц для перифении и DMA ?
В LOW POWER SLEEP выполняются все условия, за исключением того что системная частота не должна превышать 128КГц


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
spasbyspas
сообщение Feb 9 2013, 10:19
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 31-08-08
Пользователь №: 39 908



Действительно нет ситуация, у котороя исключенный из питание только CPU и FLASH.
В режиме "SLEEP" можно оставить включенный все периферии.
В режиме "Low power run" и "Low power sleep" действительно есть ограничение системная частота.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 9 2013, 11:08
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(spasbyspas @ Feb 9 2013, 14:19) *
Действительно нет ситуация, у котороя исключенный из питание только CPU и FLASH.
В режиме "SLEEP" можно оставить включенный все периферии.
В режиме "Low power run" и "Low power sleep" действительно есть ограничение системная частота.


На будующее, у каких аналогичных процессоров такое есть ? Может у каких-то других из этой же серии STM32 ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
spasbyspas
сообщение Feb 9 2013, 11:37
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 31-08-08
Пользователь №: 39 908



Я не уверен, что понял ваш вопрос, но я бы сказал - я не знаю. rolleyes.gif
Go to the top of the page
 
+Quote Post
KiV
сообщение Feb 11 2013, 06:46
Сообщение #28


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

Группа: Свой
Сообщений: 165
Регистрация: 18-06-04
Пользователь №: 56



Цитата(MiklPolikov @ Feb 9 2013, 08:23) *
Я так понимаю, что нет никакого режима что бы одновременно:
- Отключить CPU, FLASH
- Оставить включенной Периферию, ...

Цитата(MiklPolikov @ Feb 9 2013, 14:08) *
На будующее, у каких аналогичных процессоров такое есть ?


Возможно вот (источник):
EFM32 is a mixed-signal microcontroller focusing on supporting ultra low power battery operated solutions. To run from small cell batteries, EFM32 MCUs incorporates low power peripheral technology, fast response time, low latency, and autonomous operation (i.e. the CPU does not run while the peripherals communicate).

Только это совсем не STM32, хотя тоже ARM Cortex.
Go to the top of the page
 
+Quote Post
x893
сообщение Feb 24 2013, 15:13
Сообщение #29


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

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



Цитата(KiV @ Feb 11 2013, 10:46) *
Возможно вот (источник):
EFM32 is a mixed-signal microcontroller focusing on supporting ultra low power battery operated solutions. To run from small cell batteries, EFM32 MCUs incorporates low power peripheral technology, fast response time, low latency, and autonomous operation (i.e. the CPU does not run while the peripherals communicate).

Только это совсем не STM32, хотя тоже ARM Cortex.


На STM32L151CB меньше чем 3uA никак у меня не получается (LSE + MSI)
C EFM32 - с LFXO легко 1uA получается.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Feb 24 2013, 15:38
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(x893 @ Feb 24 2013, 19:13) *
На STM32L151CB меньше чем 3uA никак у меня не получается (LSE + MSI)
C EFM32 - с LFXO легко 1uA получается.

Посмотрел EFM , там вроде бы периферия беднее.
Если у меня сейчас в STM32L151 задействованы 7 DMA каналов, все таймеры , смогу ли я этот алгоритм перетащить на
EFM ? Это вопрос к тем кто использовал и STM32 и EFM32.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post

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

 


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


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