pvvx
Активный участник сообщества
В SDK имеем более пяти методов для обеспечения экономии энергии.
Сам чип имеет 3 аппаратных расширенных конфигурации для разных режимов – work, sleep и dsleep.
Испытания и сравнения произведем на SDK4.0, модуле RTL00 (RTL8710AF) c частотой 83MHz.
Для начала посмотрим, что предлагается пользователю в качестве драйвера PMU в wakelock.
После старта имеем потребление примерно до 13 мА, включение release_wakelock(WAKELOCK_OS) или pmu_release_wakelock(PMU_OS) понижает его до средних к 1.2 мА с “просыпанием” на обработку всех событий:
Ввод в RX LogUART при этом отключается. Он будет активирован при активности. Видим обработку прерывания таймера RTOS...
Теперь сравним со sleep без отключения внутреннего питания.
В данном режиме активация возможна по GPIO, IRQ (разным таймерам и от разных устройств).
[inline]HalDeinitLogUart();
sleep_ex_selective(wakeup_event, sleep_ms, clk_source_en, 0);
HalInitLogUart();
[/inline]
Понижает ток потребления примерно на уровень до 1 мА (SPI Flash не переключена в режим sleep).
Ну и deep-sleep, как вариант отключения с полной перезагрузкой при просыпании, к примеру, по заданному уровню на PA_5:
[inline]standby_wakeup_event_add(STANDBY_WAKEUP_BY_PA5, 0, level);
deepstandby_ex();
[/inline]
Понижает ток потребления примерно на уровень до утечек схемы включения модуля. (на диаграмме рестарт производится с активацией WiFi и соединением в внешней AP).
Итого: в принципе, для пользовательских устройств с малым потреблением, ожидающих какое-то событие, типа нажатия кнопок, вполне достаточно использование переключения pmu wakelock. При этом уровень потребления будет не сильно отличаться от активации sleep режимов, но программно это реализуется сложнее и необходимо учитывать множество фактов... А в режимах работы с процедурами pmu думать не требуется, кроме как о их активации
Есть ещё множественные модификации sleep/dsleep с перезагрузкой прошивки и без. Флагов, как и аппаратных регистров в чипе для этого делу, очень много, а если ещё дописывать самим примеры, то вариантов уже не счесть... По этому, если есть вопросы или ещё чаго, то уточняем конкретику.
Сам чип имеет 3 аппаратных расширенных конфигурации для разных режимов – work, sleep и dsleep.
Испытания и сравнения произведем на SDK4.0, модуле RTL00 (RTL8710AF) c частотой 83MHz.
Для начала посмотрим, что предлагается пользователю в качестве драйвера PMU в wakelock.
После старта имеем потребление примерно до 13 мА, включение release_wakelock(WAKELOCK_OS) или pmu_release_wakelock(PMU_OS) понижает его до средних к 1.2 мА с “просыпанием” на обработку всех событий:
Ввод в RX LogUART при этом отключается. Он будет активирован при активности. Видим обработку прерывания таймера RTOS...
Теперь сравним со sleep без отключения внутреннего питания.
В данном режиме активация возможна по GPIO, IRQ (разным таймерам и от разных устройств).
[inline]HalDeinitLogUart();
sleep_ex_selective(wakeup_event, sleep_ms, clk_source_en, 0);
HalInitLogUart();
[/inline]
Понижает ток потребления примерно на уровень до 1 мА (SPI Flash не переключена в режим sleep).
Ну и deep-sleep, как вариант отключения с полной перезагрузкой при просыпании, к примеру, по заданному уровню на PA_5:
[inline]standby_wakeup_event_add(STANDBY_WAKEUP_BY_PA5, 0, level);
deepstandby_ex();
[/inline]
Понижает ток потребления примерно на уровень до утечек схемы включения модуля. (на диаграмме рестарт производится с активацией WiFi и соединением в внешней AP).
Итого: в принципе, для пользовательских устройств с малым потреблением, ожидающих какое-то событие, типа нажатия кнопок, вполне достаточно использование переключения pmu wakelock. При этом уровень потребления будет не сильно отличаться от активации sleep режимов, но программно это реализуется сложнее и необходимо учитывать множество фактов... А в режимах работы с процедурами pmu думать не требуется, кроме как о их активации
Есть ещё множественные модификации sleep/dsleep с перезагрузкой прошивки и без. Флагов, как и аппаратных регистров в чипе для этого делу, очень много, а если ещё дописывать самим примеры, то вариантов уже не счесть... По этому, если есть вопросы или ещё чаго, то уточняем конкретику.
Последнее редактирование: