• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Замер потребления RTL00 V1.0

pvvx

Активный участник сообщества
С помощью ESP8266 c INA219, замерил потребление модулем RTL00 V1.0 c sdk-ameba1-v3.4b3_without_NDA.
Ток замерен до стабилизатора 3.3V -> из графиков надо вычитать ~5.9 mA (!).
Старт модуля с ножки 'Enable Chip' и сразу соединение с роутером:
PowST.gif(опрос INA219 идет через WebSoscet (запрос/ответ по каждой точке)- примерно от 200 до 600 точек в сек - зависит от производительности javascript связанной с прорисовкой осциллограммы (>10 кадров/сек), время клетки указано как Scale: xx ms, U:x V и I:x mA текущие, ничего не усредняется, т.к. это пример из web-свалки)
Код:
=========================================================

ROM Version: 0.3

Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)

=========================================================
Check boot type form eFuse
SPI Initial
Image1 length: 0x36e8, Image Addr: 0x10000bc8
Image1 Validate OK, Going jump to Image1
===== Enter Image 1 ====

load NEW fw 0
Flash Image2:Addr 0xb000, Len 262524, Load to SRAM 0x10006000
No Image3
Img2 Sign: RTKWin, InfaStart @ 0x10006079
===== Enter Image 2 ====
#
Initializing WIFI ...
Start LOG SERVICE MODE

# [ATW0]: _AT_WLAN_SET_SSID_ [ASUSRTN56U]
[ATW1]: _AT_WLAN_SET_PASSPHRASE_ [0123456789]
[ATWC]: _AT_WLAN_JOIN_NET_

Joining BSS by SSID mns.ru-6446...

RTL8195A[Driver]: set ssid [mns.ru-6446]

RTL8195A[Driver]: start auth to bc:ae:c5:eb:09:90

RTL8195A[Driver]: auth success, start assoc

RTL8195A[Driver]: association success(res=3)

RTL8195A[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)

RTL8195A[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2

Connected after 370ms.

IP address : 192.168.1.20

Got IP after 897ms.


WIFI initialized

init_thread(50), Available heap 0xad50
Переключение в режим AP+ST:
ST_APST.gif
Снова включение с авто-соединением к роутеру и команда отключения ST ("ATWD"), затем включение AP+ST:
PowST_Off_APST.gif
Режимов энергосбережения не включал. Всё по умолчанию.
----
В режиме ST наблюдаются падения тока от уровня 63 к 22.5 mA (надо вычесть 5.9 mA на кривой стабилизатор):
22_63.gif
PS: См. добавку о Deep-Sleep и Sleep режимы в RTL серии “A”.
 
Последнее редактирование:

sharikov

Active member
С помощью ESP8266 c INA219, замерил потребление модулем RTL00 V1.0 c sdk-ameba1-v3.4b3_without_NDA.
Измерьте еще раз пиковые токи по амплитуде и длительности потому что на графиках не хватает разрешения. В режиме AP+ST судя по иголкам на графике пики вроде бы до 230ма. Еще интересует потребление при включении питания например у esp при старте в момент калибровки wifi потребление максимально возможное.
 

Atom

Member
С помощью ESP8266 c INA219, замерил потребление модулем RTL00 V1.0 c sdk-ameba1-v3.4b3_without_NDA.
Ток замерен до стабилизатора 3.3V -> из графиков надо вычитать ~5.9 mA (!).
Старт модуля с ножки 'Enable Chip' и сразу соединение с роутером:
А кто нибудь подобные замеры с ЕСП делал?
 

pvvx

Активный участник сообщества
А кто нибудь подобные замеры с ЕСП делал?
Да, я и делал:
Измеренные ТТХ по питанию модуля:
Потребление при передаче на скорости к 1 мегабайт в секунду - пример два графика в конце
Потребление модулем в разных режимах WiFi-sleep модуля и стартовые примеры
Потребление по питанию часов (по ноге RTC_VDD)
Потребление при прошивке модуля с помощью esptool.py
Закорачивание I/O выхода вызывает увеличение тока на 50 мА: http://esp8266.ru/forum/attachments/esp-01-gpio15-out-gif.885/
Потребление с фирменной фичей в режиме ST, при поиске внешней AP.
Скорость реакции ножки RESET по просыпанию от ноги GPIO16 (deep-sleep).
Время от старта модуля до исполнения кода из flash при использовании специального загрузчика = 30 ms.
...
И т.д. в теме http://esp8266.ru/forum/threads/razrabotka-biblioteki-malogo-webservera-na-esp8266.56/
Позже перемерю RTL более подробно, с усреднениями и переключениями разных режимов.
Общее впечатление пока - потребление меньше, чем у ESP.
Во всяком случае скорость соединения к AP у RTL (при базовой прошивке) составляет 300..400 ms, что недостижимо у штатной ESP.
Измерьте еще раз пиковые токи по амплитуде и длительности потому что на графиках не хватает разрешения. В режиме AP+ST судя по иголкам на графике пики вроде бы до 230ма. Еще интересует потребление при включении питания например у esp при старте в момент калибровки wifi потребление максимально возможное.
Пики совершенно не интересны. Они сглаживаются доп. электролитом, т.к. совсем кратковременные и редкие. Так-же смысла их измерения нет: полная зависимость от установленных емкостей в самом модуле (жадность китайцев).
 
Последнее редактирование:
  • Like
Реакции: ave

pvvx

Активный участник сообщества
Приступим к более точному измерению :) Буду добавлять пост по мере замеров, с "перекурами" на другие дела... пока модуль на "стенде", можно задавать вопросы/запросы в следующих постах...

Модуль (модуль N1) начинает работать от 1.6 В. При этом выпадает: [inline]Image1 length: 0x0, Image Addr: 0x0[/inline] т.е. Flash не запускается. JTAG/SWD работает - программа в памяти исполняется.
При 2.14 В c Flash стартует, но пишет: [inline]Initializing WIFI ...[/inline] и встает.
При 2.5 В как-то уже работает прошивка от китайцев.
Потребление (модуль N1) при CH_EN = "0" и плавном подъёме и опускании питания:
CH_EN_0_SLW_POWER.gif
Видно переключение в потрохах чипа на 2.1 В. BOR?
Потребление (модуль N1) при CH_EN = "0", нормальный старт питания - сразу 3.6В и опускаю до ~2.0 (к модулю подключены только GND, VCC, CH_EN-GND (!)):
CH_EN_0.gif
Потребление при CH_EN = "0" (модуль N2) (+24C :)) от 3.6 до 2.5 В (к модулю подключены только GND, VCC, CH_EN-GND (!)):
CH_EN_0.gif
Потребление при CH_EN = "1", после старта ROM-BIOS, в Flash метка сбита для входа в bios-console, модуль пишет: "Image1 Validation Incorrect !!!", (частота CPU 41 МГц, к модулю подключены только GND, VCC (!)):
Модуль N1:
CH_EN_1_BAD_FLASH_1.gif
Модуль N2:
CH_EN_1_BAD_FLASH.gif
 
Последнее редактирование:

pvvx

Активный участник сообщества
Тест потребления модуля при разных CLK CPU:
CLK_CPU_POWER.gif
В модуле отключена загрузка из Flash (стерта метка в Flash). Загрузка программы в RAM.
Замер сделан при питании модуля от 3.40 В через измерительный резистор 1 Ом, подключенных RX/TX и SWCLK/SWDIO. Параллельно питанию модуля стоит емкость 10 мкФ.
Код:
int main(void)
{
    int i = 6;
    HalPinCtrlRtl8195A(JTAG, 0, 1);
    HalInitPlatformTimerV02();
    HalInitPlatformLogUartV02();
    HalShowBuildInfoV02();
    printf("Start CPU CLK : %d\r\n", HalGetCpuClk());
    do {
       HalDelayUs(3000000);
       HalCpuClkConfig(--i); // 0 - 166666666 Hz, 1 - 83333333 Hz, 2 - 41666666 Hz, 3 - 20833333 Hz, 4 - 10416666 Hz, 5 - 4000000 Hz
       HalReInitPlatformLogUartV02();
        printf("Hello World : %d\r\n", i);
       printf("CPU CLK : %d\r\n", HalGetCpuClk());
    } while(i);
    printf("End");
    while(1);
}
Код примерно этот RTL00_HelloWorld/main.c at master · pvvx/RTL00_HelloWorld · GitHub

Прошивка "Амёба" sdk-ameba1-v3.4b3_without_NDA, старт модуля и соединение с AP (первые 60 сек):
ST_60SEC.gif
Код:
=========================================================

ROM Version: 0.3

Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)

=========================================================
Check boot type form eFuse
SPI Initial
Image1 length: 0x36e8, Image Addr: 0x10000bc8
Image1 Validate OK, Going jump to Image1
===== Enter Image 1 ====

load NEW fw 0
Flash Image2:Addr 0xb000, Len 262444, Load to SRAM 0x10006000
No Image3
Img2 Sign: RTKWin, InfaStart @ 0x10006079
===== Enter Image 2 ====
#
Initializing WIFI ...
Start LOG SERVICE MODE

# [ATW0]: _AT_WLAN_SET_SSID_ [ASUSRTN56U]
[ATW1]: _AT_WLAN_SET_PASSPHRASE_ [0123456789]
[ATWC]: _AT_WLAN_JOIN_NET_

Joining BSS by SSID ASUSRTN56U...

RTL8195A[Driver]: set ssid [ASUSRTN56U]

RTL8195A[Driver]: start auth to bc:ae:c5:eb:09:90

RTL8195A[Driver]: auth success, start assoc

RTL8195A[Driver]: association success(res=1)

RTL8195A[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)

RTL8195A[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:1

Connected after 505ms.

IP address : 192.168.1.20

Got IP after 1032ms.


WIFI initialized

init_thread(50), Available heap 0xad50

Перевод AT командами из режима ST в AP+ST и соединение к AP модуля:
ST_ST_AP.gif

Прием/передача по TCP:

Режим ST, команда ATWT=[c,192.168.1.2,1460,1000], комп: 'iperf.exe -s -i 1' :
ATWT1.gif
Режим ST, команда ATWT=[-s], комп: 'iperf.exe -c 192.168.1.20 -i 1 -t 10 -w 256k' :
ATWT2.gif
 
Последнее редактирование:

pvvx

Активный участник сообщества
Режим AP, команда ATWT=s, комп: 'iperf.exe -c 192.168.3.1 -i 1 -t 10 -w 256k' :
ATWT3.gif
Режим AP, команда ATWT=[c,192.168.3.2,1460,1000], комп: 'iperf.exe -s -i 1' :
ATWT4.gif
Прошивка тормозит (трансфер должен быть >1 Mbytes/s) , т.к. у меня включены все логи RTOS и т.д.
Код:
# ATW?
[ATW?]: _AT_WLAN_INFO_


WIFI wlan0 Status: Running
==============================
[rltk_wlan_statistic] tx stat: tx_packets=2721, tx_dropped=0, tx_bytes=3250104
[rltk_wlan_statistic] rx stat: rx_packets=1715, rx_dropped=1795, rx_bytes=262774, rx_overflow=0
[rltk_wlan_statistic] min_free_heap_size=45632, current heap free size=48552
[rltk_wlan_statistic] max_skbbuf_used_num=3, skbbuf_used_num=0
[rltk_wlan_statistic] max_skbdata_used_num=3, skbdata_used_num=0
[rltk_wlan_statistic] max_timer_used_num=11

WIFI  wlan0 Setting:
==============================
      MODE => AP
      SSID => RTL8710
   CHANNEL => 1
  SECURITY => AES
  PASSWORD => 0123456789

Interface (wlan0)
==============================
        MAC => 00:e0:4c:87:00:00
        IP  => 192.168.3.1
        GW  => 192.168.3.1

Associated Client List:
==============================
Client Num: 1
Client 1:
        MAC => 00:0f:54:10:6a:b5

Task List:
log_servi               R       5       792     5
IDLE            R       0       42      3
TCP_IP          B       9       676     6
Tmr Svc         B       5       456     4
rtw_xmit_               B       5       220     23
cmd_threa               B       6       350     25
rtw_recv_               B       5       994     22
rtw_littl               B       10      458     26
rtw_inter               B       6       208     24
LOGUART_T               B       9       96      1
rtw_TDMA_               B       7       220     28
rtw_check               B       5       220     27

[MEM] After do cmd, available heap 48552
# ATSS
[ATSS]: _AT_SYSTEM_CPU_STATS_

CPU total run time is 608045
TaskName        DeltaRunTime    percentage
log_servi               0               <1%
IDLE            1000            99%
TCP_IP          0               <1%
Tmr Svc         0               <1%
rtw_xmit_               0               <1%
cmd_threa               0               <1%
rtw_TDMA_               0               <1%
rtw_recv_               0               <1%
rtw_littl               0               <1%
LOGUART_T               0               <1%
rtw_inter               10              <1%
rtw_check               0               <1%


[MEM] After do cmd, available heap 48552

PS: Наверное на этом хватит замеров... :)
 
Последнее редактирование:

sharikov

Active member
PS: Наверное на этом хватит замеров... :)
Опять 100-ма таракашкой не обойдешься. В режиме AP 300ма вынь да положь.
По вашим замерам RTL при питании 3,0V можно использовать ? ESP у меня успешно работает при 3,0
Почему нужно 3,0 а не 3,3: при питании от 1 полуразряженной литиевой банки 3,3 плохо получается даже с ultra low-drop линейным стабилизатором. Если уйти на 3,0 запас по напряжению аккумулятора больше.
 

pvvx

Активный участник сообщества
По вашим замерам RTL при питании 3,0V можно использовать ?
Можно.
Тест при питании модуля от 2.78 В через резистор 1 Ом (убитый аккум), никаких доп. емкостей на питании модуля (!):
Пуск по отпусканию CH_EN, автостарт ST с подключением к роутеру, sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 (default)...
MIN_VCC.gif
Проваливает до 2.67В, но ещё работает...
Если питание до резистора в 1 Ом меньше 2.78В, то при старте пишет, что не проинить WiFi или виснет потом - не принимает AT команды.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Итоговые замеры в режиме энергосбережения.
В прошивке AT SDK3.5 есть команды перехода в режим энергосбережения.
ATSP=r
ATSL=r,f
(Внимание: они отключают и ввод с console. Там остается только вывод, а AT работают на UART2)
При них, если активна только Station, то потребление зависит от активности сети. Если эфир почти чистый, то потребление колеблется от 7 mA.
Если активна AP, то потребление колеблется от 51 mA. Включение Station при активной AP не меняет картины.
В режиме AP, при активности энергосбережения, RTL00 выигрывает у ESP8266 не менее чем в 1.5 раза, чем и обусловлено замеченное другими "холодность модуля" в отличии от ESP8266.
При выключенном WiFi в режиме энергосбережения при активности UART портов и прочего, что работает по прерываниям, модуль потребляет около 7 mA. При возникновении события оно отрабатывается на полной скорости CPU - в стандартном SDK при загрузке с Flash это 83MHz, при загрузке в RAM или если переключили сами - это 166MHz с пиковым увеличением потребления на время отработки команды и т.д....
Расклад примерно такой:
Fcpu: RUN/IDLE/SLP
166MHz: ~63/21/6.4 mA
83MHz: ~55/15/6.4 mA
RUN - полная загрузка CPU,
IDLE - это примерно vTaskDelay(),
SLP - это режим экономии.
 
Последнее редактирование:

sharikov

Active member
Еще один замер:
[inline]IEEE PHY: 802.11b[/inline]
[inline]RF Tx Power: 100%[/inline]
Скорость соединения 11Mbit.
Режим Station+AP, подключен к открытой точке доступа.
5 праллельных запросов статического файла без пауз + ping пакетами 900 байт.

Среднее потребление 165mA
Пиковое 250mA, минимальное 70mA.

Крышка модуля RTL00 горячая, время от времени потребление на 1-2сек уменьшается до единиц мА, сетевой трафик приостанавливается. Потом возобновляется. В консоли тишина. Троттлинг от перегрева ?
 

pvvx

Активный участник сообщества
Крышка модуля RTL00 горячая, время от времени потребление на 1-2сек уменьшается до единиц мА, сетевой трафик приостанавливается. Потом возобновляется. В консоли тишина. Троттлинг от перегрева ?
С AP + Station там какая-то беда. Я вроде уже писал вам про это... У меня троттлинга не было - возможно что при замерах слишком близко находится ответная ST и модуль дует не на полную. Попробую позже навесить какой экран.
165 мА - это ещё мало (3.3*0.165=0.5445 Вт) и площади теплоотвода должно хватать.
Когда одна AP - итого выходит меньше. В этом и есть странность...
 

pvvx

Активный участник сообщества
Вот в режиме ST+AP, качаем с AP:
SoftApPow4.8V.gif
Аналогично в режиме ST+AP, но качаем с ST:
StationPow3.1V.gif
Разница есть, но она мала. Измерил на разных входах питания, того что валялось под рукой :) На первом, с AP, надо ещё вычесть потребление дурным стабилизатором в 5 mA (замер в цепи до него).
Ранее была разница и она сильно наблюдалась в клоне ESPHTТPD... Причины не знаю.

Троттлинга нет. Есть другие странности - у измерителя на ESP8266 (которым и сделаны замеры) очень часто падает Station при работе SoftAP на RTL и трафик соединения так-же падает до 70..80 килобайт в сек. Если вырубить ESP8266 - всё восстанавливается. А так, при работе измерителя на ESP8266 всегда трафик меньше, чем должен быть на HT40 (1.2..1.8 MБ/сек). Т.е. на состояние в эфире сильно сказывается работа устаревших микросхем :) При падении часто выходит, что ESP8266 соединен с роутером, как и station RTL (к AP RTL при этом подключен свисток WiFi-USB и там качаем на полную, пока ESP не свихнется) и RTL начинает сильно переговариваться с роутером, ток поднимается за 200 мА, а трафик AP падает до 70 КБ/cек. Наверно ESP истерично орет и глушит канал роутера, а RTL, в 5 см от глушилки, пытается удержать связь своей ST с роутером :)... Телефоны с WiFi и прочие модули такого эффекта не дают... С ними проще - при их активности на канале в передаче появляются дыры с падением трафика. Ну так и положено в WiFi. Может это у вас, а не троттлинг? Ведь ST и AP разделяют один канал и другой участник сети тоже хочет общаться...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ток потребления в паузе аномально низкий.
Может брак какой? Не допаяли чип или что сбито в eFuse?
У меня вот опять наблюдаются нелады с током потребления и скоростью AP в режиме AP+ST. На других модулях ещё не проверял, пока подключен один, а другие убраны. Главное, что не ясна причина и AP изначально плохо заводилась ещё в SDK 3.4 и Ameba Arduino. Изменение частот CPU и масса других опций ситуацию не меняют. Может что в конфигах flash повлияет. Ранее при тестах работало нормально, а теперь опять что-то (типа убрал какие-то задержки при инициализации? На Arduino это влияло + обязательный лишний запрос статуса...)...
Надо бы покрутить либы от SDK 4.0, может там подправили...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ток потребления в паузе аномально низкий.
Нашли?
Вот пример скетча и лога для rtlDuino с работой AP и передачей TCP (см. вложение).
Прямо по данным лога построен график скорости передачи:
Снимок1490.gif
(передано 2.2 Гбайта, средняя скорость 2028 кбайт в сек)
Принимающая программа FBENCH. В ней и найдете, что средняя скорость передачи более 1.8МБ в сек.
Троттлинга нет, а есть забитый эфир WiFi... Сам чип на модуле RTL00 при этом еле теплый.
В режиме Station - среднее выходит примерно тоже самое (потребляемый ток только меньше).
Но вот в режиме AP+ST трафик с AP сильно падает и нелады с потреблением. Такая реализация в SDK и Arduino драйвера WiFi в от Amebа... Пока никак не удалось исправить...
 

Вложения

Последнее редактирование:

sharikov

Active member
...наблюдаются нелады с током потребления и скоростью AP в режиме AP+ST
Похоже в режиме AP+ST настройки из wifi_cfg применяются только к первому интерфейсу а второй куда перемещается AP инициализируется какими-то дефолтными значениями или не инициализируется вовсе.
У меня когда включен режим 802.11b первый интерфейс коннектится как и положено на 11мегабитах а второй где AP - на 72. И мощность у них разная: для первого как задано в wifi_cfg а у второго то ли максимум то ли 50%.
В режимах только AP или только ST когда работает только 1 интерфейс все работает правильно.
Может поменять порядок инициализации при старте wi-fi?
 

pvvx

Активный участник сообщества
Может поменять порядок инициализации при старте wi-fi?
Порядок не меняется. Там и так срабатывает перестановка netif-ов, да по ужасному алгоритму (руки поотрывать надо Амебщикам) ...
Т.е. всегда интерфейсы AP и ST садятся на свои места и поменять это невозможно. Когда работает один - он всегда садится на нулевой номер и на xnetif[0].
От этого не возможно привязать host имя (+ Netbios, mdns, ...) и обращения к драйверу в процедурах. В SDK они намолотили десятки вариантов одинаковых процедур, но с разными номерками, в зависимости что включено...
 

sharikov

Active member
Но вот в режиме AP+ST трафик с AP сильно падает и нелады с потреблением. Такая реализация в SDK и Arduino драйвера WiFi в от Amebа... Пока никак не удалось исправить...
Проверил:
В режиме AP+ST есть нюанс:
  • если ST подключена - AP работает хорошо
  • если ST не подключена и автоподключение отключено или лимит попыток исчерпан - AP работает хорошо.
  • если ST выполняет автоподключение - AP работает плохо. Предположение: поиск / подключение ST блокируют работу AP.
 

pvvx

Активный участник сообщества
У меня это проявляется как "если ST подключена - AP работает ужасно". По этому ваши выводы не верны. Перепроверьте.
В этом режиме (AP+ST) при работе передатчика AP потребление аномально завышено (раза в 2..3 больше чем при одиночном ST или AP, а трансфер в 10 раз меньше!). Такое сложно не заметить. Т.е. это явные косяки в драйвере (закрытой части кодов). При не активности передатчика AP потребление в норме (режим AP+ST = режим просто AP).
Ну а т.к. выужены все хидеры и заголовки процедур, то это возможно починить и самим, но у меня пока нет на это времени...
 
Последнее редактирование:
Сверху Снизу