Перейти к содержанию
    

STM32L152CB Режимы пониженного энергопотребления

Да нет, почему же дезинформировали? Я глянул ваш код ещё тогда. Я вслепую прям так не заливал. Увидел, что там инициализируется внешний кварц. Поэтому его и припаял тоже. В разводке он у меня предусмотрен. Ну и в проекте предполагалось считать время для пробуждения с помощью него в режиме пониженного потребления. Так что всё нормас! Спасибо, что предупредили!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Короче, я уже ничего не понимаю. Все контроллеры потребляют всегда по-разному. Мало того, один и тот же контроллер в разное время с одной и той же программой может потреблять по-разному. Вот почти голая платка сейчас потребляет в нормальном режиме 8 мА, в режиме Standby 7 мА. Старая платка в нормальном режиме 2 мА, в Standby 1 мА.

Я вспомнил что год назад кажется у меня было иногда потребление в районе 10 мкА. Я тогда не сразу входил в режим Standby, а после некоторых настроек контроллера (Тактирование периферии, настройка прерываний).

Вообще, складывается ощущение, что контроллер как-то запоминает какую в него программу зашивали до этого:). Звучит по-нубски и я не понимаю как такое может быть, но тем не менее:). Потому что вот со старой платкой начал ковыряться, настраивать по-разному ножки (на вход там, на выход) и после этого он стал меньше потреблять, хоть я и вернулся к самому изначальному коду, в котором потребление было в несколько раз больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По опыту работы с другими контроллерами могу сказать - неотключенный интерфейс отладки (не важно jtag или swd) может вносить очень существенную лепту в общее энергопотребление чипа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По опыту работы с другими контроллерами могу сказать - неотключенный интерфейс отладки (не важно jtag или swd) может вносить очень существенную лепту в общее энергопотребление чипа.

Это уже обсуждалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашёл заметки самому себе годичной давности:

 

"Когда включаешь PB7 (PVD_IN) как аналоговый вход с подтяжкой к земле, то всё работает, но потребление 500 мкА

Если включить PB7 на выход с подтяжкой к земле, то потребление ~3мкА, но не работает (после выхода из спящего режима и двух минут реле не размыкается)"

 

 

Походу потребление действительно у меня было маленьким. Но как я этого тогда добился я в душе не ебу не помню:):). Вроде ничего особенного не делал. Единственное, вроде, как я уже говорил, всё работало, когда входил в режим пониженного энергопотребления не прям сразу, а после каких-то настроек. Может всю периферию потыркать посмотреть что будет.

 

Короче варианта два:

 

1. Это какие-то проблемы с платой. Может не так развёл. Может где-то что-то коротит немного. Кстати, толщина платы 0.5мм.

Есть вариант купить отладочную платку с почти таким же контроллером чтобы возможно убедиться что проблема в плате

 

2. Проблема в самом контроллере. Нужно как-то его по-особенному настроить. Проверить всю периферию (Хотя я это уже неоднократно делал), настроить порты правильно (хотя много вариантов уже попробовал).

 

Я склонялся, что проблема в первом варианте. Но вспомнил, что год назад потребление настраивалось нормально. Поэтому пока в замешательстве

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Взял новую плату, новый контроллер.

В программе настроил:

 

- Все ножки на аналоговый вход, кроме одной - PB7 (её настроил на выход с подтяжкой к питанию). Тот самый пресловутый детектор напряжения. Который почему-то выдаёт на ножку напряжения питания

- Выключил HSE генератор

 

В таком режиме потребление примерно 100 мкА. Хотя амперметры кривоватые. Когда ставишь на шкалу миллиампер, показывает примерно 100 мкА. В позиции микроампер показывает вообще потребление 5 мкА. Я сначала обрадовался, мол 5 мкА это уже очень хорошо. Потом проверил амперметры, оказалось что просто в позиции микроампер занижает показания. В общем, пока так

Изменено пользователем алексей500

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного времени появилось. Опять экспериментирую.

В общем, заметил такую вещь. Если войти в режим Standby, предварительно настроив RTC, по которому я выхожу из Standby,

то потребление меньше (примерно 150 мкА), чем, если войти в Standy без настройки RTC (примерно 750 мкА).

И я вообще не понимаю как такое может быть.

 

Вот функция настройки RTC. Главное, включаю там LSE, потребление наоборот должно быть больше:

 

void RTC_initialization()
{	
int i;

// Enable clock for PWR
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

//As the LSE is in the RTC domain and write access is denied to this domain after reset, you have to enable write access using 
         PWR_RTCAccessCmd(ENABLE) function before to configure the LSE (to be done once after reset).  
  PWR_RTCAccessCmd(ENABLE);

// This function resets the RTC peripheral, RTC clock source selection (in RCC_CSR) and the backup registers.   ???RCC_BackupResetCmd(ENABLE);???		 
RCC_RTCResetCmd(ENABLE);
RCC_RTCResetCmd(DISABLE);

// Enable LSE
RCC_LSEConfig(RCC_LSE_ON);			   


// Waiting for LSERDY
//while(RCC -> CSR & RCC_CSR_LSERDY );	 //RECOVER!!!
for(i=0; i<100; i++);

// Configure the RTC clock
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);  


// Enable RTC
RCC_RTCCLKCmd(ENABLE);				

// RTC Wakeup Counter Clock = CK_SPRE, 17 bit
//RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_17bits);	//RECOVER!!!


// Wait for RTC APB registers synchronization
 RTC_WaitForSynchro();

// Disable write protection to RTC registers
RTC -> WPR = 0xCA;
for(i=0; i<100; i++);	
RTC -> WPR = 0x53;
for(i=0; i<1000; i++);

// WakeUp timer interrupt enable
//RTC -> CR |= RTC_CR_WUTIE;					 //RECOVER!!!

// Enable WakeUp timer
RTC_WakeUpCmd(DISABLE);
RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);			// RTC_WakeUpClock_CK_SPRE_17bits
RTC_SetWakeUpCounter(0x28);	 
RTC_WakeUpCmd(ENABLE);


// Enable RTC WakeUp interrupt
 RTC_ClearITPendingBit(RTC_IT_WUT);
 RTC_ITConfig(RTC_IT_WUT, ENABLE);

}

 

 

 

Ещё потом вспомнил, что в Standby режиме "In Standby mode, all I/O pins are high impedance...". Не понял, остаётся внутрення ли подтяжка в этом режиме или нет. Попробовал поэкспериментировать с подтяжкой. В обычном режиме потребление гораздо меньше, если всех ножки ставишь на вход и подтягиваешь внутренними резисторами к земле. В режиме Standby разницы в потреблении нет. Сделал вывод, что в этом режиме ножки висят в воздухе. Думаю ладно, тогда врублю режим Stop. Но в нём потребление примерно 800 мкА (С подтянутыми ножками. Если не делать подтяжку, то потребление больше. Сделал вывод, что в этом режиме подтяжка сохраняется, собственно как и должно быть). Я не понимаю, почему у меня такое большое потребление в этих режимах. Ладно Standby, предположим я разведу платку и подтяну все ножки к земле и потребление будет нормальным. Но остальные режимы я не понимаю. Что Sleep, что Stop. При переходе в них потребление сокращается совсем на чуть-чуть (из 1.25 мА в 0.9 мА). А в Sleep должно быть примерно 200мкА На частоте 2МГЦ. Меня вот эта картинка в ступор вводит:

6f0747945b8f4ed65d3b14e8ebd31bef.jpeg

 

Мне бы тех же 10 мкА за глаза хватило. Так в этих режимах у меня потребление огроменное. И только в режиме Standby приближается к нормальному. Хотя какой там приближается - 150000нА/270нА=555 раз:)

 

Что мне ещё проверить? Платка голая. На ней только контроллер. Даже конденсаторов не припаял на всякий случай.

Изменено пользователем Herz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне бы тех же 10 мкА за глаза хватило. Так в этих режимах у меня потребление огроменное. И только в режиме Standby приближается к нормальному. Хотя какой там приближается - 150000нА/270нА=555 раз:)

 

Что мне ещё проверить? Платка голая. На ней только контроллер. Даже конденсаторов не припаял на всякий случай.

разбираться, у меня экспериментальное потребление на полностью распаянной плате добивался 37мкА из них бОльшая часть жрет обвязка. правда это пока экспериментировал, в реальной работе получается порядка 170мкА в режиме LP Run , так как нет возможности использовать standby.

все GPIO обязательно должны быть настроены на выход или куда то подключены/подтянуты. если как аналоговые входы то должны быть либо подключены к источнику сигнала, либо через резистор на землю. обычно еще забывают GPIO которые на кварцы идут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что мне ещё проверить?

Попробуйте входить в Stop режим так:

void PWR_EnterSTOPMode(void)
{
uint32_t RCC_AHBENR_tmp,
		 GPIOA_PUPDR_tmp, GPIOB_PUPDR_tmp, GPIOC_PUPDR_tmp, GPIOH_PUPDR_tmp,
		 GPIOA_MODER_tmp, GPIOB_MODER_tmp, GPIOC_MODER_tmp, GPIOH_MODER_tmp;

RCC_AHBENR_tmp = RCC->AHBENR & (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN |RCC_AHBENR_GPIOHEN);
GPIOA_PUPDR_tmp = GPIOA->PUPDR;
GPIOB_PUPDR_tmp = GPIOB->PUPDR;
GPIOC_PUPDR_tmp = GPIOC->PUPDR;
GPIOH_PUPDR_tmp = GPIOH->PUPDR;
GPIOA_MODER_tmp = GPIOA->MODER;
GPIOB_MODER_tmp = GPIOB->MODER;
GPIOC_MODER_tmp = GPIOC->MODER;
GPIOH_MODER_tmp = GPIOH->MODER;

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); //вЫключили тактирование портов

/* Select the regulator state in Stop mode: Set PDDS and LPSDSR bit according to PWR_Regulator value */
// Additionally disable VREFINT regulator and enable fast wake-up
MODIFY_REG(PWR->CR, (PWR_CR_PDDS), (PWR_CR_CWUF|PWR_CR_LPSDSR|PWR_CR_FWU|PWR_CR_ULP));

// If using PWR_CR_FWU (fast wake-up) function, then wait until internal voltage reference (VREFINT) is ready before enter stop mode or else VREFINT 
       will be enabled in stop mode 	while(READ_BIT(PWR->CSR, PWR_CSR_VREFINTRDYF) == RESET);

/* Set SLEEPDEEP bit of Cortex System Control Register */
SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));

/* Request Wait For Event */
__SEV();
__WFE();
__WFE();	// ERRATA: Debugging Stop mode with WFE entry => If debug is used then you need to add nop and bx lr after wfe

/* Reset SLEEPDEEP bit of Cortex System Control Register */
CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));

RCC->AHBENR |= RCC_AHBENR_tmp;
GPIOA->MODER = GPIOA_MODER_tmp;
GPIOB->MODER = GPIOB_MODER_tmp;
GPIOC->MODER = GPIOC_MODER_tmp;
GPIOH->MODER = GPIOH_MODER_tmp;
GPIOA->PUPDR = GPIOA_PUPDR_tmp;
GPIOB->PUPDR = GPIOB_PUPDR_tmp;
GPIOC->PUPDR = GPIOC_PUPDR_tmp;
GPIOH->PUPDR = GPIOH_PUPDR_tmp;
}

Код для STM32L151, может для STM32L152 нужно будет что-нибудь подправить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

разбираться, у меня экспериментальное потребление на полностью распаянной плате добивался 37мкА из них бОльшая часть жрет обвязка. правда это пока экспериментировал, в реальной работе получается порядка 170мкА в режиме LP Run , так как нет возможности использовать standby.

все GPIO обязательно должны быть настроены на выход или куда то подключены/подтянуты. если как аналоговые входы то должны быть либо подключены к источнику сигнала, либо через резистор на землю. обычно еще забывают GPIO которые на кварцы идут.

 

 

А можете рассказать с чем вам пришлось столкнуться в процессе? Может и у меня похожее что-то будет. Если вы говорите, что добивались 37 мкА, значит как-то постепенно уменьшали потребление. За счёт чего?

Ножки я естественно подтягиваю внутренними резисторами. Причём когда ставлю без подтяжки, на ножках откуда-то висит примерно 0.08 В. Когда подтягиваю к нулю, то на ножках ноль. Когда подтягиваю к питанию, то на ножках примерно 3.07 В (При напряжении питания примерно 3.2 В). Не пойму, куда-то что-то утекает? Опять же, платка почти голая. Утекать там некуда.

Про ножки кварцов да тоже знаю. Ну кварцы отключаю. Эти ножки тоже перевожу на вход и подтягиваю.

Кстати, а какой у вас контроллер?

 

 

Попробуйте входить в Stop режим так:

void PWR_EnterSTOPMode(void)

{

 

 

Попробовал. Эффекта ожидаемо нет. Просто все исходники, которые я видел, почти одинаковые. Мануал прочитал тоже. Там тоже одна и та же последовательность действий. В любом случае, спасибо за код!

 

 

Ещё заметил такую штуку. Есть контроллер LCD. И есть ножка Vlcd. У меня эта ножка висит в воздухе. Ну, думаю в ней дело. Прочитал, что на этой ножке висит напряжение питания. И чтобы сократить потребление, нужно перевести эту ножку на питание от внешнего источника, тем самым уменьшив потребление. В общем, перевёл. Вроде реакция какая-то есть. Но всё равно потребление почти не изменилось. Пробовал эту ножку подтягивать и к земле и к питанию - реакции никакой. И ещё, когда перевожу эту ножку на на питание от внешнего источника, то блин на неё всё равно откуда-то висит сраный один вольт. Я не понимаю откуда это всё берётся.

В общем, не знаю. Такое ощущение что куда-то что-то утекает. Но куда, непонятно. На ноге NRST тоже кстати. Там стоит внутренний подтягивающий резистор. Ситуация такая же как и с портами. При питании 3.2 В, на ресете висит примерно 3.07 В. Делаю вывод что через резистор подтягивающий течёт ток (3.2 - 3.07)/40000 = 3.25 мкА. Только вот куда он утекает-то??? К ресету у меня больше ничего не припаено. Ну и 32 ножки умножаем на 3.25 мкА получается там те 100 мкА, которые у меня утекают куда-то. Хотя ещё целый полтинник остаётся

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можете рассказать с чем вам пришлось столкнуться в процессе? Может и у меня похожее что-то будет. Если вы говорите, что добивались 37 мкА, значит как-то постепенно уменьшали потребление. За счёт чего?

Ножки я естественно подтягиваю внутренними резисторами. Причём когда ставлю без подтяжки, на ножках откуда-то висит примерно 0.08 В. Когда подтягиваю к нулю, то на ножках ноль. Когда подтягиваю к питанию, то на ножках примерно 3.07 В (При напряжении питания примерно 3.2 В). Не пойму, куда-то что-то утекает? Опять же, платка почти голая. Утекать там некуда.

Про ножки кварцов да тоже знаю. Ну кварцы отключаю. Эти ножки тоже перевожу на вход и подтягиваю.

Кстати, а какой у вас контроллер?

3,07В это нормально, так и должно быть, где то было описание структуры порта ввода-вывода и об этом написано.

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

Проблемы были в основном с GPIO, т.е. если включена подтяжка 50кОм, а вывод снаружи подключен к земле - получаем 60мкА. в общем обвязку смотреть. или еще вариант - включен на выход лог. 0 со включенной подтяжкой вверх - тоже +60мкА.

Ножки на кварцах - они на порту H, не сразу дошло.

Неотключенное тактирование периферии. особенно на ацп внимание обратить - оно питается от hsi, а он тоже за 100мкА жрет. да, и HSI обязательно отключить.

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

stm32L152R

код инициализации генертора:

void RCC_Configuration(void)
{
    unsigned int startDelay = 0;
    DMA_InitTypeDef DMA_InitStructure;


    RCC_DeInit();  //-- RCC system reset(for debug purpose)
    RCC_MSICmd (ENABLE);
    RCC_MSIRangeConfig(RCC_MSIRange_6); //MSI clock is around 4.194 MHz
//     RCC_MSIRange_0: MSI clock is around 65.536 KHz 
//     RCC_MSIRange_1: MSI clock is around 131.072 KHz 
//     RCC_MSIRange_2: MSI clock is around 262.144 KHz 
//     RCC_MSIRange_3: MSI clock is around 524.288 KHz 
//     RCC_MSIRange_4: MSI clock is around 1.048 MHz 
//     RCC_MSIRange_5: MSI clock is around 2.097 MHz (default after Reset or wake-up from STANDBY) 
//     RCC_MSIRange_6: MSI clock is around 4.194 MHz 
    
    
    //         ожидание запуска генератора
    while (SET != RCC_GetFlagStatus(RCC_FLAG_MSIRDY));
    
    // select clock source
    RCC_SYSCLKConfig (RCC_SYSCLKSource_MSI);
    
    // ожидаение переключения источника
    while (0x00 != RCC_GetSYSCLKSource()) startDelay++;
    
    RCC_HSICmd(DISABLE);
    RCC_HSEConfig(RCC_HSE_OFF);
    RCC_PLLCmd  (DISABLE);  

    
    // Prefetch Buffer
    FLASH_PrefetchBufferCmd(DISABLE);
    FLASH_SetLatency(FLASH_Latency_1); 
    
    // 
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
    RCC_PCLK1Config(RCC_HCLK_Div1); 
    RCC_PCLK2Config(RCC_HCLK_Div1); 

    
    //    RCC_ADCCLKConfig(RCC_PCLK2_Div4);
    /* DMA clock enable */

    RCC_AHBPeriphClockCmd(    RCC_AHBPeriph_DMA1//    | RCC_AHBPeriph_DMA2 
//                            | RCC_AHBPeriph_BKPSRAM,
                            ,ENABLE);
    RCC_APB1PeriphClockCmd(    //RCC_APB1Periph_USART3     | RCC_APB1Periph_UART4    |
                               RCC_APB1Periph_PWR     //    | RCC_APB1Periph_SPI1
                            ,
                            ENABLE);
                            
    RCC_AHBPeriphClockLPModeCmd  (       RCC_AHBPeriph_GPIOE | RCC_AHBPeriph_GPIOE
                                    | RCC_AHBPeriph_GPIOE | RCC_AHBPeriph_CRC
                                    //| RCC_AHBPeriph_FLITF 
                                    | RCC_AHBPeriph_DMA2
                                , DISABLE); 
    RCC_APB1PeriphClockLPModeCmd  (   RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3
                                    | RCC_APB1Periph_TIM4 | RCC_APB1Periph_TIM5    
                                    | RCC_APB1Periph_TIM6 | RCC_APB1Periph_TIM7
                                    | RCC_APB1Periph_LCD | RCC_APB1Periph_WWDG
//                                    | RCC_APB1Periph_USART2 | RCC_APB1Periph_USART3
                                    | RCC_APB1Periph_UART4 | RCC_APB1Periph_UART5
                                    | RCC_APB1Periph_I2C1 | RCC_APB1Periph_I2C2
                                    | RCC_APB1Periph_USB 
//                                    | RCC_APB1Periph_PWR
                                    | RCC_APB1Periph_DAC | RCC_APB1Periph_COMP
                                , DISABLE); 
    RCC_APB2PeriphClockLPModeCmd  ( //  RCC_APB2Periph_SYSCFG 
                                    //| 
                                    RCC_APB2Periph_TIM9
                                    | RCC_APB2Periph_TIM10 | RCC_APB2Periph_TIM11    
//                                    | RCC_APB2Periph_ADC1 
                                    | RCC_APB2Periph_SDIO
//                                    | RCC_APB2Periph_SPI1 
                                    | RCC_APB2Periph_USART1
                                , DISABLE); 
                    
    PWR_VoltageScalingConfig(PWR_VoltageScaling_Range3);
    NVIC_SystemLPConfig  ( NVIC_LP_SLEEPONEXIT,  DISABLE ); 
//    FLASH_SLEEPPowerDownCmd(ENABLE);
    DBGMCU_Config  ( DBGMCU_SLEEP, ENABLE );
    DBGMCU_Config  ( DBGMCU_STOP, ENABLE );
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде разобрался. В общем, перевёл все ножки на выход, задал на них нули, начал тыкаться мультиметром. И в этот момент внезапно появилась непоколебимая уверенность в том, что контроллер точно ничего не жрёт. При отладке я питался от блока питания (12 В), через линейный регулятор 3.3 В (сделал навесным монтажом). Решил запитаться от аккумуляторов (3 аккумулятора по 1.2 В), как, в общем-то, и было заложено изначально. Кстати, крутые аккумуляторы Sanyo Eneloop с очень с низким уровнем саморазряда (вдруг кому-то пригодится:) ). Ну и потребление оказалось таким, какое и должно быть примерно. Сделал, чтобы контроллер просыпался каждые 10 секунд на одну секунду (настроил RTC на тактирование от LSE). В обычном режиме потребление примерно 600 мкА (что примерно соответствует даташиту: 214мкА на 1 мегагерц), у меня тактирование от MSI 2.097 МГЦ. В режиме Stop потребление меньше 10 мкА. Точнее не удалось померить. Мультиметры кривые.

Вот схемы как я мерил ток. Причём я раньше неоднократно пробовал питаться от батарейки. Эффекта не замечал. По всей видимости просто на тот момент ещё не всё отключил, что нужно. В частности, HSE.

 

Схема с линейным регулятором

7189271.jpg

 

 

Схема с батарейками

7175959.jpg

 

 

 

Я с самого начала заострял своё внимание на источнике питания. Но не придавал особого значения, потому что мерил ток после него. Почему-то не думал, что под напором 12 В в нагрузку может ещё что-то утекать. Хотя оно может и не только под таким напором утекает:). Нужно разобраться:)

 

В общем, спасибо всем большое! Многие советы помогли разобраться! :beer:

Правда, дело уже ночью было, может я чего опять не так намерил:). Но вроде несколько раз проверил. Да и по логике похоже, что проблема в этом была.

 

Так что по сути, всё, что я сделал, это задал на всех ножках ноль (хотя, платка и так абсолютно голая) и выключил HSE, который по умолчанию у меня был включен

Изменено пользователем алексей500

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла ещё одна проблема. Может кто подскажет.

Контроллер нормально работает только если он спал не более 10 секунд примерно. Если больше, то что-то непонятное творится.

Опишу, как я проверяю. После команды ухода в спящий режим записываю в ПЗУ что-нибудь. Ну и если ставить время спячки больше десяти секунд, то он ничего не записывает. Не пойму в чём дело

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся с такой же проблемой только для процессора STM32L052K8. Выпаял из платы все элементы кроме мк и кондёров.

Взял пример STOP MODE with RTC из куба на серию L0 FW версии 1.5.0

Потребление при RUN 11 мА, Stop mode 6 мА. Потребление не зависит от в отладке или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...