pvvx
Активный участник сообщества
Исследование потребления в режиме sleep у RTL8710BN.
Для наглядности попытаемся измерить как изменяется потребление от частоты активаций (просыпаний в секунду) с выполнением простейшей задачи.
Для этого предположим, что надо считать импульсы со счетчика воды и передавать их каждые 30 минут. В инструкции к первым попавшимся счетчикам “Счетчики воды универсальные «ПУЛЬС»” значится, что они дают импульс на 0.01 м3, при пределе потока к 3 м3/час. Это означает предельную частоту следования импульсов в 3/0.001/60/60 = 0.833333 Гц
Что плохо подходит для теста… Возьмем предел в 100 импульсов в сек, остальное в задаче оставим.
В PDF для режима sleep у RTL8710 значится:
Так-же нам потребуется какой-то счет времени. Пусть это будет блок RTC, по значению с которого, мы будем передавать данные каждые 30 минут. Включение RTC видимо незначительно увеличивает потребляемый ток в режиме sleep. Но пусть работает, т.к. при активации RTC Alarm мы получим дополнительный выход из sleep каждые 60 секунд (это не документировано в SDK), а не предельные 8 секунд при использовании таймера.
При включении sleep и ожидании перехода PA_5 в нуль, получаем значение потребления модулем 166 мкА (из них по докам 120 мкА на сам чип + активный RTC + flash + всё остальное...)
При входной частоте в 500 Гц на PA_5, средний ток возрастает до 7.2..7.5 мА.
[inline]while(1) { sleep_ex(SLEEP_WAKEUP_BY_GPIO_INT, 0); pulse_count++; };[/inline]
При большей скорости уже получаем пропуски… Из чего можно заключить, что примерное время обработки входа и выхода из sleep менее 2 мс.
Соответственно при 200 Гц имеем измеренных 2.85..3.11 мА и если исходить из замера на 500, то 0.166+200*(7.35-0.166)/500 должен быть 3.0396 мА.
При 100 Гц – замер показывает ~1.55 +- 0.1 мА.
Т.е. потребление на вход/выход в sleep подсчитали правильно.
* Замер специально сделан простым тестером типа UT71B, от этого существуют "+-", т.к. простой тестер не умеет считать средний ток за назначенный период, но и этого достаточно для выведенных значений.
В тесте участвовал приложенный к сообщению код.
Для наглядности попытаемся измерить как изменяется потребление от частоты активаций (просыпаний в секунду) с выполнением простейшей задачи.
Для этого предположим, что надо считать импульсы со счетчика воды и передавать их каждые 30 минут. В инструкции к первым попавшимся счетчикам “Счетчики воды универсальные «ПУЛЬС»” значится, что они дают импульс на 0.01 м3, при пределе потока к 3 м3/час. Это означает предельную частоту следования импульсов в 3/0.001/60/60 = 0.833333 Гц
Что плохо подходит для теста… Возьмем предел в 100 импульсов в сек, остальное в задаче оставим.
В PDF для режима sleep у RTL8710 значится:
Так-же нам потребуется какой-то счет времени. Пусть это будет блок RTC, по значению с которого, мы будем передавать данные каждые 30 минут. Включение RTC видимо незначительно увеличивает потребляемый ток в режиме sleep. Но пусть работает, т.к. при активации RTC Alarm мы получим дополнительный выход из sleep каждые 60 секунд (это не документировано в SDK), а не предельные 8 секунд при использовании таймера.
При включении sleep и ожидании перехода PA_5 в нуль, получаем значение потребления модулем 166 мкА (из них по докам 120 мкА на сам чип + активный RTC + flash + всё остальное...)
При входной частоте в 500 Гц на PA_5, средний ток возрастает до 7.2..7.5 мА.
[inline]while(1) { sleep_ex(SLEEP_WAKEUP_BY_GPIO_INT, 0); pulse_count++; };[/inline]
Код:
RTC time: 1510433610, Count = 28989
RTC time: 1510433670, Count = 58985 // (58985-28989)/60 = 499.933333
RTC time: 1510433730, Count = 88977 // (88977-58985)/60 = 499.866667
RTC time: 1510433790, Count = 118974 // (118974-88977)/60 = 499.95
RTC time: 1510433850, Count = 148984 // (148984-118974)/60 = 500.166667
Соответственно при 200 Гц имеем измеренных 2.85..3.11 мА и если исходить из замера на 500, то 0.166+200*(7.35-0.166)/500 должен быть 3.0396 мА.
При 100 Гц – замер показывает ~1.55 +- 0.1 мА.
Т.е. потребление на вход/выход в sleep подсчитали правильно.
* Замер специально сделан простым тестером типа UT71B, от этого существуют "+-", т.к. простой тестер не умеет считать средний ток за назначенный период, но и этого достаточно для выведенных значений.
В тесте участвовал приложенный к сообщению код.
Вложения
-
1.9 KB Просмотры: 13
Последнее редактирование: