Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-авг-12 01:04

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 2 сообщения ] 
Автор Сообщение
СообщениеДобавлено: 2014-янв-23 12:56 
Не в сети

Зарегистрирован: 2014-янв-23 12:14
Сообщения: 1
Здравствуйте!
Есть задача использования К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?
Внутренний преобразователь может быть только включенным или выключенным, режима пониженного энергопотребления у него нет?


Вернуться к началу
СообщениеДобавлено: 2014-янв-23 13:10 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1304
Откуда: АО "ПКК Миландр"
_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 мА (утечки)


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 2 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB