Миландр
https://forum.milandr.ru/

Режимы низкого энергопотребления К1986ВЕ92QI
https://forum.milandr.ru/viewtopic.php?f=22&t=1740
Страница 1 из 1

Автор:  _TsM_ [ 2014-янв-23 12:56 ]
Заголовок сообщения:  Режимы низкого энергопотребления К1986ВЕ92QI

Здравствуйте!
Есть задача использования К1986ВЕ92QI с питанием от батарей (в основном).
Начал делать замеры потребления тока в разных режимах.
Питание 3.1 В, частота CPU_CLK 4 000 000, ALL_PORTS_CLK DISABLE.
Получилось:
- динамический режим 3.3 мА;

- Sleep 1.5 мА;
MDR_BKP->REG_0F &= ~(1 << 30);
SCB->SCR |= (1 << 4); //SEVONPEND
SCB->SCR &= ~(1 << 2); // 1 - SLEEPDEEP / 0 - SLEEP
__WFI();

- SleepDeep 1.3 мА;
MDR_BKP->REG_0F &= ~(1 << 30);
SCB->SCR |= (1 << 4); //SEVONPEND
SCB->SCR |= (1 << 2); // 1 - SLEEPDEEP / 0 - SLEEP
__WFI();

- STANDBY ~ мкА
MDR_BKP->REG_0F |= (1 << 30);
__WFI();


Режим STANDBY не очень подходит из-за того, что не сохраняется состояние ядра, после выхода выполнение кода начинается сначала.
Sleep, SleepDeep - большое потребление.
Возможно ли настроить данный контроллер на потребление порядка десятков мкА с сохранением ОЗУ и регистров (наподобие режима STOP у STM)?
Или я что-то не так делаю с настройкой SleepDeep/Sleep?
Внутренний преобразователь может быть только включенным или выключенным, режима пониженного энергопотребления у него нет?

Автор:  -=Sergei=- [ 2014-янв-23 13:10 ]
Заголовок сообщения:  Re: Режимы низкого энергопотребления К1986ВЕ92QI

_TsM_ писал(а):
Здравствуйте!
Есть задача использования К1986ВЕ92QI с питанием от батарей (в основном).
Начал делать замеры потребления тока в разных режимах.
Питание 3.1 В, частота CPU_CLK 4 000 000, ALL_PORTS_CLK DISABLE.
Получилось:
- динамический режим 3.3 мА;

- Sleep 1.5 мА;
MDR_BKP->REG_0F &= ~(1 << 30);
SCB->SCR |= (1 << 4); //SEVONPEND
SCB->SCR &= ~(1 << 2); // 1 - SLEEPDEEP / 0 - SLEEP
__WFI();

- SleepDeep 1.3 мА;
MDR_BKP->REG_0F &= ~(1 << 30);
SCB->SCR |= (1 << 4); //SEVONPEND
SCB->SCR |= (1 << 2); // 1 - SLEEPDEEP / 0 - SLEEP
__WFI();

- STANDBY ~ мкА
MDR_BKP->REG_0F |= (1 << 30);
__WFI();


Режим STANDBY не очень подходит из-за того, что не сохраняется состояние ядра, после выхода выполнение кода начинается сначала.
Sleep, SleepDeep - большое потребление.
Возможно ли настроить данный контроллер на потребление порядка десятков мкА с сохранением ОЗУ и регистров (наподобие режима STOP у STM)?
Или я что-то не так делаю с настройкой SleepDeep/Sleep?
Внутренний преобразователь может быть только включенным или выключенным, режима пониженного энергопотребления у него нет?
Десятков мкА врятли, но до 100-400 мкА при 25С можно добиться.

Перед уходом в SLEEP или SLEEPDEEP.
1. Переключиться все тактирование на LSI.
2. Выключить HSI (через батарейный домен) и HSE.
3. В батарейном домене задать SELECTRI и LOW 011 (80 мкА) или 100 (2 мкА)
4. Уйти в режим

....
При пробуждении повторить в обратном порядке
5. Увеличить SELECTRI и LOW до нужного значения
6. Включить HSI
7. Перейти на нужную частоту

продолжить программу.

Но опять таки это пройдет для нормальных условий (25 град С), при 125С потребление вырастет до 1-2 мА (утечки)

Страница 1 из 1 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/