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

 
 
> STM32L Stop Mode, не могу добиться микропотребления
digital
сообщение Jul 14 2014, 12:04
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 229
Регистрация: 3-02-06
Из: Санкт-Петербург
Пользователь №: 13 974



Уже который день не могу добиться обещанного микропотребления в Stop Mode, устройство есть 160мкА, вместо единиц мкА
в Stanby Mode все нормально


На плате только процессор, и парочка блокирующих конденсаторов, ну и светодиод к земле.

Порты настраивал и на вход и на выход, и с подтяжкой к нулю и просто аналоговый вход, настраивал входа JTAG как положено по даташиту и вообще отключал, но меньше 160мкА ну никак не получить, тактирование всего выключено, сам разъем JTAG отключен физически и плата перезапущена.


помогите , что я забыл выключить ?

Вот вся программа, кроме системных файлов больше ничего нет, генератор MSI, от частоты ничего не зависит.



CODE
void delaynop(int del)
{
while(--del>0) {};

};


int main(void)
{
RCC_ClocksTypeDef RCC_Clocks;
GPIO_InitTypeDef GPIO_InitStructure;

DBGMCU_Config(DBGMCU_SLEEP | DBGMCU_STOP | DBGMCU_STANDBY, DISABLE); // на всякий случай


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //включаем тактирование
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);


GPIO_StructInit(&GPIO_InitStructure); //настраиваем порты светодиода
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = LED1_PIN;
GPIO_Init(LED1_IOPORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = LED2_PIN;
GPIO_Init(LED2_IOPORT, &GPIO_InitStructure);


pinLed1=1;
pinLed2=1;

delaynop(8000000);

pinLed1=0;
pinLed2=0;


GPIO_StructInit(&GPIO_InitStructure); // настраиваем все порты как вход с подтяжкой к нулю
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_400KHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);





RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, DISABLE); //выключаем тактирование портов
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, DISABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, DISABLE);



RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_UltraLowPowerCmd(ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, DISABLE);



PWR_ClearFlag(PWR_FLAG_WU);
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); //засыпаем навсегда
};


Сообщение отредактировал digital - Jul 15 2014, 07:41
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post



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

 


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


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