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

 
 
> 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
 
Start new topic
Ответов (1 - 5)
digital
сообщение Jul 15 2014, 07:42
Сообщение #2


Местный
***

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




отключил АЦП, ЦАП, д температуры, все бестолку
Go to the top of the page
 
+Quote Post
Aner
сообщение Jul 15 2014, 08:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Как подключен кварц и как иницилизируется, также как часовой кварц, батарейка. Блокировка не Y5V?
Флюс, ...обратные токи светодиода проверяли?
Go to the top of the page
 
+Quote Post
digital
сообщение Jul 15 2014, 08:42
Сообщение #4


Местный
***

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



Цитата(Aner @ Jul 15 2014, 12:03) *
Как подключен кварц и как иницилизируется, также как часовой кварц, батарейка. Блокировка не Y5V?
Флюс, ...обратные токи светодиода проверяли?

кварцы отключены, и никак не инициализируеться программа работает на MSI,
конденсаторы, флюс, утечки это все может быть, но в режиме stanby ток единицы мКа, т.е. не в железе дело
это нечто я нашел, в чем дело wink.gif
процессор STM32L151С6 в корпусе LQFP48, в котором расшиты только три порта A,B,С
если добавить эти строчки
Код
         GPIO_Init(GPIOF, &GPIO_InitStructure);
                  GPIO_Init(GPIOG, &GPIO_InitStructure);

то ток увеличивается до 500мкА
если добавить эти строчки
Код
    
   //       GPIO_Init(GPIOF, &GPIO_InitStructure);
//         GPIO_Init(GPIOG, &GPIO_InitStructure);    
            GPIO_Init(GPIOH, &GPIO_InitStructure);

то ток падает до 8 мкА
порты D и E Ни на что не влияют
любопытно какие порты физически есть в этом камне, и отличаются ли камни в зависимости от корпуса

Сообщение отредактировал IgorKossak - Jul 15 2014, 10:57
Причина редактирования: Не "раздувайте" сообщения пробельными строками!
Go to the top of the page
 
+Quote Post
dac
сообщение Jul 15 2014, 08:50
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



QUOTE (digital @ Jul 15 2014, 14:42) *
если добавить эти строчки
CODE
    
   //       GPIO_Init(GPIOF, &GPIO_InitStructure);
//         GPIO_Init(GPIOG, &GPIO_InitStructure);    
            GPIO_Init(GPIOH, &GPIO_InitStructure);

то ток падает до 8 мкА
GPIOH - ножки на кварц
Go to the top of the page
 
+Quote Post
digital
сообщение Jul 15 2014, 09:03
Сообщение #6


Местный
***

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



Цитата(dac @ Jul 15 2014, 12:50) *
GPIOH - ножки на кварц


точно! моя невнимательность
Go to the top of the page
 
+Quote Post

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

 


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


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