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

 
 
> stm32l100 discovery, standby mode, не могу добиться заявленного токопотребления
dima311043
сообщение May 31 2017, 11:59
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 31-05-17
Пользователь №: 97 409



Всем привет.

Работаю с отладочной платой STM32L100 Discovery. Хочу добиться заявленного потребления ~0.3 uA в режиме standby. Делаю все как в примере для библиотеки Standard Peripheral Library с сайта ST, пример Current consumption из папки PWR для замера потребляемого тока. В итоге получаю потребление в этом режиме ~275uA. Ток меряю на выводах Idd на плате. Бьюсь уже довольно давно, много чего перепробовал, но меньшего значения, чем в том коде что идет ниже, добиться не удалось. Что я могу делать не так? Помогите, кто сталкивался. На всякий случай прилагаю еще принципиалку платы и библиотечный пример.
CODE

GPIO_InitTypeDef GPIO_InitStructure;

int main(void)
{
/* Enable PWR APB1 Clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

/* Allow access to RTC */
PWR_RTCAccessCmd(ENABLE);

/* Reset RTC Domain */
RCC_RTCResetCmd(ENABLE);
RCC_RTCResetCmd(DISABLE);

/* Configure Key Button*/
/* Enable the BUTTON Clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);

/* Configure Button pin as input */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Wait Until Key button pressed */
while((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) == RESET)
{
}
/* Wait Until Key button pressed */
while((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) != RESET)
{
}

/* Enable Ultra low power mode */
PWR_UltraLowPowerCmd(ENABLE);

/* Clear PWR WakeUp flag */
PWR_ClearFlag(PWR_FLAG_WU);

/* Enable WKUP pin 1 */
PWR_WakeUpPinCmd(PWR_WakeUpPin_1, ENABLE);

/* Request to enter STANDBY mode */
PWR_EnterSTANDBYMode();
while(1){}
}

Прикрепленный файл  CurrentConsumption.rar ( 20.88 килобайт ) Кол-во скачиваний: 25

Прикрепленный файл  disco.pdf ( 793.14 килобайт ) Кол-во скачиваний: 47
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dima311043
сообщение May 31 2017, 17:09
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 31-05-17
Пользователь №: 97 409



Цитата

Нет. На дискавери, правда, не JTAG, а SWD. Пробовал полностью отключать интерфейс программирования от целевого контроллера: на токопотребление это не оказывает влияния, либо оказывает незначительно.

Цитата
Неиспользуемые выводы нужно или перевести в режим выхода и вывести ноль (ноль - для уменьшения утечек на землю, если вокруг ноги с высоким потенциалом - лучше вывести единицу), либо включить соответствующую подтяжку.

В библиотечных примерах все пины переводятся в режим аналогового входа, про конфигурирование их как выход нигде не читал. Вообще в режиме standby все выводы переходят в третье состояние и становятся недоступны. Завтра попробую ваш вариант и отпишусь о результатах. Хорошо, что у вас есть опыт работы с этими камнями, я тоже хочу выжать из мк все возможноеsm.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 31 2017, 18:44
Сообщение #3


Гуру
******

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



QUOTE (dima311043 @ May 31 2017, 20:09) *
В библиотечных примерах все пины переводятся в режим аналогового входа, про конфигурирование их как выход нигде не читал.
Нельзя верить всему, что пишут в интернете sm.gif
QUOTE (dima311043 @ May 31 2017, 20:09) *
Вообще в режиме standby все выводы переходят в третье состояние и становятся недоступны.
Да, в самом деле, у этого процессора так (но не для всех выводов, поэтому мы с входом кварца и боролись). Может мой совет когда-нибудь пригодится вам в режиме stop. У LPC11xx порты свое состояние сохраняли. Или я его тоже в stop ронял...


--------------------
На любой вопрос даю любой ответ
"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
ohmjke
сообщение Jun 1 2017, 09:10
Сообщение #4


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

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Цитата(Сергей Борщ @ May 31 2017, 21:44) *
Нельзя верить всему, что пишут в интернете sm.gif

Это пишут не просто в интернете, а в документации на контроллеры - http://www.st.com/content/ccc/resource/tec....DM00033348.pdf
Цитата
To set the device in the lowest possible power mode, all pins should be configured as analog
input (AIN), because in analog configuration the Schmitt trigger input is deactivated,
providing zero consumption for each I/O pin

Дока на STM32F2, но предположу, что это актуально и для STM32L1, по крайней мере у меня в проекте сконфигурировано именно так и потребление соответствует заявленному.
Go to the top of the page
 
+Quote Post



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

 


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


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