Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

ESP32DEVKIT V1

Тема в разделе "NodeMCU-32S", создана пользователем pvvx, 20 янв 2017.

  1. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Спустя более полугода заказов, потери пару тысч.руб (продавец на али смысля, проходить все процедуры из-за такой суммы лень), наконец пришел модуль за ~1400 руб:
    EPS32DEVKIT V1 a.jpg EPS32DEVKIT V1 b.jpg
    log_esp32.gif
    Модуль просто-так не работает. Драйвер USB включается и выключается - перегрузка по току потребления:
    Снимок1183.gif
    Как я понимаю это исправлению не подлежит?
    Если держать кнопку RESET, то потребление вписывается в заявленный план и комп не выключает данное устройство. Но если отжать RESET - драйвер отключается. Выходит мигалка двумя светодиодами (комп отключает питание для пересброса драйвера и красненький светодиод тоже моргает).
    Можно нажать кнопку BOOT - тогда процесс включения/выключения питания на данное устройство USB заканчивается - вписывается в заявленные 100 mA.
    Комп, куда я вставляю данный модуль способен выдать и 5A на USB. Но это надо разрешить в заголовке USB устройства... Опасное это дело - при замыкании питания на обычных шнурах USB и разрешении выдачи такого тока они дымяться, не отключаясь - хилые жилы :)
     
    Последнее редактирование: 20 янв 2017
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Измеряем ток потребления модуля.
    Соединяем GND и на VIN подаем 5V от модуля USB с FTDI3232, через INA219 с Web-сервером на ESP8266 (такой измеритель у меня с поторазвязкой по WiFi :)):
    Снимок1184.gif
    Получаем, что модуль ESP32DEVKIT жрет 158 mA ничего не делая. :( Больше чем Orange Pi Zero (но ESP32DEVKIT и стоит больше! :) )
    Крышка модуля WiFi - теплая. (это он рассеивает 0.5Вт просто так)
    Т.е. без дополнительного БП его в USB не включить или надо как-то перешивать CP2102...
    ----
    Перешил на 250 mA. Теперь работает:
    Снимок1186.gif
    Греется хорошо вся плата...
     
    Последнее редактирование: 20 янв 2017
    Scorpio нравится это.
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Считал прошивку командой
    C:\Python27\python.exe esptool.py --chip esp32 --port COM7 --baud 230400 --before esp32r0 read_flash 0 0x400000 fullflash.bin
    с которой пришел модуль:
     

    Вложения:

    • fullflash.zip
      Размер файла:
      305,3 КБ
      Просмотров:
      30
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Теперь вопрос - что ему написать в COM порт, чтобы он включил WiFi или ещё что... Типа проверить работоспособность...
    Пока по этому вопросу данных на нормальном русском языке не найдено. Всё узко-специализировано на заграничную тарабарщину, хотя ПО вроде пишет Ivan Grokhotkov.
    GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for ESP32.
    А писать какую-то прошивку в модуль буду позже..
    Итак пытался поставить Arduino по данной инструкции:
    arduino-esp32/windows.md at master · espressif/arduino-esp32 · GitHub
    Скачалось всё успешно, но не работает - плат ESP32 в Arduino 1.8.1 не появляется.
    Перекинул каталоги как положено, а не как указано в том документе.
    Появился выбор плат.
    Из либ имеем только SPI, WiFi, Wire. А это все примеры:
    Снимок1193.gif
    и чем закончилась трансляция одного из них - не лезет в плату, не хочет, хотя опции загрузки вроде правильные...
    Сейчас буду забивать сапогом... :)
    ---
    Утрамбовал. Беда оказалась от умельцев в Espressif. При программировании надо тапком держать кнопку BOOT. Автомат не работает - покупайте новую глюк версию платы :)
     
    Последнее редактирование: 20 янв 2017
  5. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Тест времени соединения и потребления ESP32 на примере WiFiClient.ino.
    Снимок1194.gif
    Соединение с роутером занимает более 4-х секунд. (По хлебным крошкам в логе "." - их 8 шт, шаг 500 ms)
    Питание ~170 mA, с повышениями при выводе в UART. :confused:
    Лог (раскрыть)
    Код (Text):
    1. ts Jun  8 2016 00:22:57
    2.  
    3. rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    4. ets Jun  8 2016 00:22:57
    5.  
    6. rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    7. configsip: 0, SPIWP:0x00
    8. clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    9. mode:DIO, clock div:1
    10. load:0x3fff0008,len:8
    11. load:0x3fff0010,len:1760
    12. load:0x40078000,len:6668
    13. load:0x40080000,len:252
    14. entry 0x40080034
    15.  
    16.  
    17. Connecting to ********
    18. ........
    19. WiFi connected
    20. IP address:
    21. 192.168.1.73
    22. connecting to data.sparkfun.com
    23. Requesting URL: /input/....................?private_key=....................&value=1
    24. HTTP/1.1 400 Bad Request
    25.                         Access-Control-Allow-Origin: *
    26.                                                       Access-Control-Allow-Methods: GET,POST,DELETE
    27.                                                                                                    Access-Control-Allow-Headers: X-Requested-With, Phant-Private-Key
    28.                                                                                                                                                                     Content-Type: text/plain
    29.             Date: Fri, 20 Jan 2017 18:49:41 GMT
    30.                                                Connection: close
    31.                                                                 Transfer-Encoding: chunked
    32.                                                                                           Set-Cookie: SERVERID=; Expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
    33.  
    34.                                                                                                                                                               13
    35.                                                                                                                                                                 0 stream not found
    36.  
    37.   0
    38.  
    39.  
    40. closing connection

    При удержании кнопки RESET потребление 21.79 mA.
    При старте с нажатой кнопкой BOOT потребление сходит к 37.92 mA.
    При удержании кнопки RESET и BOOT потребление 24.19 mA.
    При запитке по цепи 3.3V напряжением 3.22V* картина сильно не меняется:
    Снимок1196.gif
    *3.22V - чтобы не ограничивал стабилизатор на плате.
    При 3.22 перестает грется стабилизатор и USB-UART. Но модуль греется так-же - от 3.22*0.154= 0.49588 Вт

    PDF CP2102: Supply Current—Normal: 20 mA, Suspended: 80uA.
    + Светодиод питания - он включен через 1к в 3.3V - ну пусть 1.5 mA.
    Жручий ESP32 :(
    А вот заявка Espressif на модуль:
    Снимок1198.gif
    Опять врут.

     
    Последнее редактирование: 21 янв 2017
    Scorpio нравится это.
  6. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Что-то я совсем не понимаю. Спека на сам чип:
    Снимок1199.gif
    В ней указаны значения больше, чем на полный модуль (с SPI Flash чипом с которого на 80 MHz DIO прет программа).
    Средняя Flash:
    Current Read Data / Dual Output Read/Quad Output Read 80MHz 10/11/12 15/16.5/18 mA
    Т.е. 85+11 = 96 mA (Typical), а у Espressif выходит в PDF на модуль (esp_wroom_32_datasheet_en.pdf): Operating current Average: 80 mA (!)
    Из этого выходит один единственный вывод - и там и там враньё.
    Скорее всего это замер только RF части чипа по питанию - это типа такой BLE :)
    Одной из особенностью модуля является сверхнизкое потребление.
     
    Последнее редактирование: 20 янв 2017
  7. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Так, теперь скорость приема по WiFi. На чип писано - 150Mbit/s (?).
    Скетч теста приема по UDP:
    Скетч (раскрыть)
    Код (C):
    1. /*
    2.    Test UDP read
    3. */
    4. #include <WiFi.h>
    5. #include <WiFiUdp.h>
    6. #include <myAP.h>
    7. #include <stdio.h>
    8. #include <stdlib.h>
    9. #include <string.h>
    10. #include <sys/socket.h>
    11. #include <arpa/inet.h>
    12. #include <sys/time.h>
    13.  
    14. #define BUFSIZE 2048
    15. #define PORT 5001
    16.  
    17. //char ssid[] = "mynetwork"; //  your network SSID (name)
    18. //char pass[] = "mypassword";    // your network password (use for WPA, or use as key for WEP)
    19. int status = WL_IDLE_STATUS;
    20.  
    21. WiFiUDP Udp;
    22. char server[] = "192.168.1.2";
    23. int port = 5001;
    24. uint8_t buf[BUFSIZE];
    25. int sockfd, optval;
    26.  
    27. struct sockaddr_in serveraddr, clientaddr;
    28. int clientaddr_len = sizeof(clientaddr);
    29.  
    30. struct hostent *hostp;
    31. char *hostaddrp;
    32.  
    33. long datacount = 0;
    34.  
    35. uint32_t delta_time_ms, tik;
    36.  
    37. void setup() {
    38.   Serial.begin(115200);
    39.   delay(10);
    40.  
    41.   // We start by connecting to a WiFi network
    42.  
    43.   Serial.println();
    44.   Serial.println("WiFi Connect...");
    45.   delta_time_ms = millis();
    46.   WiFi.begin(ssid, password);
    47.   while (WiFi.status() != WL_CONNECTED) {
    48.     delay(100);
    49.     Serial.print(".");
    50.   }
    51.   delta_time_ms = millis() - delta_time_ms;
    52.   Serial.println("WiFi connected");
    53.   Serial.println("IP address: ");
    54.   Serial.println(WiFi.localIP());
    55.   Serial.print("Time connect = ");
    56.   Serial.print(delta_time_ms);
    57.   Serial.println(" ms");
    58.  
    59.   Serial.println("Wait UDP...");
    60.   sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    61.   if (sockfd < 0) {
    62.     Serial.println("ERROR opening socket");
    63.     while (1);
    64.   }
    65.  
    66.   optval = 1;
    67.   setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&optval , sizeof(int));
    68.  
    69.   memset(&serveraddr, 0, sizeof(serveraddr));
    70.   serveraddr.sin_family = AF_INET;
    71.   serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
    72.   serveraddr.sin_port = htons(PORT);
    73.   if (bind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0) {
    74.     Serial.println("ERROR on binding");
    75.     while (1);
    76.   }
    77.   delta_time_ms = millis();
    78. }
    79.  
    80. void loop() {
    81.   int n = recvfrom(sockfd, buf, BUFSIZE, 0, (struct sockaddr *) &clientaddr, (socklen_t*)&clientaddr_len);
    82.   if (n < 0) {
    83.     Serial.println("ERROR in recvfrom");
    84.   }
    85.   else datacount += n;
    86.  
    87.   if (millis() - delta_time_ms >= 1000) {
    88.     Serial.print("Average: ");
    89.     if (datacount < 8192) {
    90.       Serial.print(datacount);
    91.       Serial.println(" bytes/sec");
    92.     }
    93.     else {
    94.       Serial.print(datacount / 1024);
    95.       Serial.println(" kbytes/sec");
    96.     }
    97.     datacount = 0;
    98.     delta_time_ms = millis();
    99.   }
    100. }

    Заливаем и ищем предел равномерного потока приема, меняя iperf.exe baud rate...
    54Mbit/s
    Снимок1202.gif
    Далее чип пошел на большее но вроде перегрелся (при приеме :)).... Начал соединяться к AP роутера более минуты :eek:
    Но потом опять воспрял (это наверно опять проделки Espressif по поводу бажного алго автоподстройки частоты WiFi для режима station перекинутое из ESP8266)
    Итого - пик 7621 килобайта в секунду (безусловно с потерей к 10..20% пакетов):
    70Mbit/s на него:
    Снимок1204.gif
    7600 кило = 7.4Mбайта в сек (UDP).
    В принципе норма для 54Mbit :) (AP роутера на >300 Mbit/s, MIMO и фазирование...)
    Но работает не устойчиво. Раз на раз не приходится - на скринах даны лучшие варианты. Кто выдавит (т.е. вдавит в модуль :)) больше на каком Cisco?
    Переключения прием/передача в данном тесте нет. Только прием. А переключение должно занимать время и передача должна синхронизоваться арбитражем AP роутера...
     
    Последнее редактирование: 21 янв 2017
  8. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Ну вот и прием по TCP.
    Скетч (раскрыть)
    Код (C):
    1. /*
    2.    Test TCP read
    3. */
    4.  
    5. #include <WiFi.h>
    6. #include <WiFiUdp.h>
    7. #include <myAP.h>
    8. #include <stdio.h>
    9. #include <stdlib.h>
    10. #include <string.h>
    11. #include <sys/socket.h>
    12. #include <arpa/inet.h>
    13. #include <sys/time.h>
    14.  
    15. #define BUFSIZE 5840
    16. #define PORT 5001
    17.  
    18. //char ssid[] = "mynetwork"; //  your network SSID (name)
    19. //char pass[] = "mypassword";    // your network password (use for WPA, or use as key for WEP)
    20. int status = WL_IDLE_STATUS;
    21.  
    22. WiFiUDP Udp;
    23. char server[] = "192.168.1.2";
    24. int port = 5001;
    25. uint8_t buf[BUFSIZE];
    26. int sockfd, optval;
    27.  
    28. struct sockaddr_in serveraddr, clientaddr;
    29. int clientaddr_len = sizeof(clientaddr);
    30.  
    31. struct hostent *hostp;
    32. char *hostaddrp;
    33.  
    34. long datacount = 0;
    35.  
    36. uint32_t delta_time_ms, tik;
    37.  
    38. void setup() {
    39.   Serial.begin(115200);
    40.   delay(10);
    41.  
    42.   // We start by connecting to a WiFi network
    43.  
    44.   Serial.println();
    45.   Serial.println("WiFi Connect...");
    46.   delta_time_ms = millis();
    47.   WiFi.begin(ssid, password);
    48.   while (WiFi.status() != WL_CONNECTED) {
    49.     delay(100);
    50.     Serial.print(".");
    51.   }
    52.   delta_time_ms = millis() - delta_time_ms;
    53.   Serial.println("WiFi connected");
    54.   Serial.println("IP address: ");
    55.   Serial.println(WiFi.localIP());
    56.   Serial.print("Time connect = ");
    57.   Serial.print(delta_time_ms);
    58.   Serial.println(" ms");
    59.  
    60.   Serial.println("Wait data...");
    61.   sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); // SOCK_STREAM, SOCK_DGRAM
    62.   if (sockfd < 0) {
    63.     Serial.println("ERROR opening socket");
    64.     while (1);
    65.   }
    66.  
    67.   optval = 1;
    68.   setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&optval , sizeof(int));
    69.  
    70.   memset(&serveraddr, 0, sizeof(serveraddr));
    71.   serveraddr.sin_family = PF_INET;
    72.   serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
    73.   serveraddr.sin_port = htons(PORT);
    74.   if (bind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0) {
    75.     Serial.println("ERROR on binding");
    76.     while (1);
    77.   }
    78.   delta_time_ms = millis();
    79.   if (listen(sockfd, 1) < 0) {
    80.     Serial.println("ERROR listen");
    81.     while (1);
    82.   }
    83. }
    84.  
    85. void loop() {
    86.   int x = accept(sockfd, 0, 0);
    87.   while(x > 0) {
    88.     int n = read(x, buf, BUFSIZE);
    89.     //  int n = recvfrom(sockfd, buf, BUFSIZE, 0, (struct sockaddr *) &clientaddr, (socklen_t*)&clientaddr_len);
    90.  
    91.     if (n < 0) {
    92.       Serial.println("ERROR in recvfrom");
    93.     }
    94.     else datacount += n;
    95.  
    96.     if (millis() - delta_time_ms >= 1000) {
    97.       Serial.print("Average: ");
    98.       if (datacount < 8192) {
    99.         Serial.print(datacount);
    100.         Serial.println(" bytes/sec");
    101.       }
    102.       else {
    103.         Serial.print(datacount / 1024);
    104.         Serial.println(" kbytes/sec");
    105.       }
    106.       datacount = 0;
    107.       delta_time_ms = millis();
    108.     }
    109.   }
    110. }

    При оптимизации на (окно приема стека TCP) WIN в 5840 байт у ESP-32S:
    Снимок1205.gif
    Пик - 1.5 Мегабайт в секунду.
    Где обещанные в 1a-esp32_datasheet_en-v0.1.pdf (?):
    Снимок1206.gif
    :)
    Не может переплюнуть RTL8710AF в модуле RTL00 по цене 120 руб и имеющий 512 килобайт RAM, но не рассчитанный на сверх высокие показатели - у Realtek расчет на дешевый IoT с массой аппаратных интерфейсов (их там больше чем у ESP32S и + NFC).

    Потребление при данном тесте ~200 mA - тут уже есть передача ACK пакетов.
    На всякий случай лог из модуля
    лог (раскрыть)
    Код (Text):
    1.  
    2. rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    3. configsip: 0, SPIWP:0x00
    4. clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    5. mode:DIO, clock div:1
    6. load:0x3fff0008,len:8
    7. load:0x3fff0010,len:1760
    8. load:0x40078000,len:6668
    9. load:0x40080000,len:252
    10. entry 0x40080034
    11.  
    12. WiFi Connect...
    13. ........................................WiFi connected
    14. IP address:
    15. 192.168.1.73
    16. Time connect = 4002 ms
    17. Wait data...
    18. Average: 24 bytes/sec
    19. Average: 1552 kbytes/sec
    20. Average: 653 kbytes/sec
    21. Average: 1314 kbytes/sec
    22. Average: 1564 kbytes/sec
    23. Average: 1331 kbytes/sec
    24. Average: 1625 kbytes/sec
    25. Average: 1455 kbytes/sec
    26. Average: 1574 kbytes/sec
    27. Average: 1450 kbytes/sec
    28. Average: 1529 kbytes/sec
    29. Average: 1498 kbytes/sec
    30. Average: 1385 kbytes/sec
    31. Average: 1358 kbytes/sec
    32. Average: 1230 kbytes/sec
    33. Average: 1572 kbytes/sec
    34. Average: 1591 kbytes/sec
    35. Average: 1354 kbytes/sec
    36. Average: 1126 kbytes/sec
    37. Average: 1351 kbytes/sec
    38. Average: 711 kbytes/sec
    39. Average: 1767 kbytes/sec
    40. Average: 1635 kbytes/sec
    41. Average: 1149 kbytes/sec
    42. Average: 1009 kbytes/sec
    43. Average: 141 kbytes/sec
    44. Average: 8170 bytes/sec
    45. Average: 0 bytes/sec

    Соединение с AP всегда от 4002 ms и до нескольких минут (наверно сырое ПО в том месте).
    ESP32 не стартует (хоть по RESET кнопке), если БП не способен выдать 400 mA без провала в течении процедуры инициализации модуля... Вываливается на "протектед".
    Это уточнение для желающих использовать модуль в режиме BLE.
    Стандарт BLE гласит:
    Bluetooth с низким энергопотреблением - Максимально потребляемый ток < 15 мА

    На этом тестирование можно закончить. Остальное ПО к ESP32 находится в незавершенном виде, далее Espressif обещает новые "облегченные" чипы c одним ядром, но наверно ещё дороже и хуже. Хваленый мат. сопроцессор там тоже не удался - время исполнения простых мат.команд составляет десятки us из-за латентности памятей и работы "кэшей". Половина аппаратных устройств ESP-32S (dual Core) ещё не протестирована программно-аппаратно и находится в экспериментальной альфа стадии...

    Итоговый расклад по TTX + пользовательские плющки к средне-оптовая цена на момент тестов:
    ESP-32S->ESP8266->CC3200->RTL8710AF-> RTL8711AF-> RTL8711AM->MINI 3G WIFI-> RTL8195A->OrangePiZero
     
    Последнее редактирование: 21 янв 2017
  9. uc3a

    uc3a Новичок

    Сообщения:
    25
    Симпатии:
    3
    ESP32-DevKitC работает стабильно, драйвер CP210x установился без проблем. Подключаю к USB3. Плата выдаёт это:

    Terminal log (раскрыть)

    Terminal log file
    Date: 19.01.2017 - 20:35:43
    -----------------------------------------------
    ets Jun 8 2016 00:22:57

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    ets Jun 8 2016 00:22:57

    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0x00
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:2
    load:0x3ffc0000,len:0
    load:0x3ffc0000,len:2304
    load:0x40078000,len:3788
    ho 0 tail 12 room 4
    load:0x40098000,len:532
    entry 0x4009813c
    [1;36m

    [0m[1;36m**************************************
    [0m[1;36m* hello espressif ESP32! *
    [0m[1;36m* 2nd boot is running! *
    [0m[1;36m* version (V0.1) *
    [0m[1;36m**************************************
    [0m[0;36mcompile time 18:16:58

    [0m[0;36m SPI Speed : 40MHz
    [0m[0;36m SPI Mode : DIO
    [0m[0;36m SPI Flash Size : 4MB
    [0m[1;36mPartition Table:
    [0m[1;36m## Label Usage Type ST Offset Length
    [0m[1;36m 0 factory factory app 00 00 00010000 00100000
    [0m[1;36m 1 rfdata RF data 01 01 00110000 00040000
    [0m[1;36m 2 wifidata WiFi data 01 02 00150000 00040000
    [0m[1;36mEnd of partition table
    [0m[1;36mLoading app partition at offset 00010000
    [0m[0;36msection 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512)
    [0m[0;36msection 1: paddr=0x00010010 vaddr=0x3f400010 size=0x05b64 ( 23396) map
    [0m[0;36msection 2: paddr=0x00015b7c vaddr=0x3ffba720 size=0x01378 ( 4984) load
    [0m[0;36msection 3: paddr=0x00016efc vaddr=0x40080000 size=0x00400 ( 1024) load
    [0m[0;36msection 4: paddr=0x00017304 vaddr=0x40080400 size=0x126ac ( 75436) load
    [0m[0;36msection 5: paddr=0x000299b8 vaddr=0x00000000 size=0x06658 ( 26200)
    [0m[0;36msection 6: paddr=0x00030018 vaddr=0x400d0018 size=0x325b4 (206260) map
    [0m[0;36mstart: 0x400807ac

    [0mInitializing heap allocator:
    Region 19: 3FFBBA98 len 00024568 tag 0
    Region 25: 3FFE8000 len 00018000 tag 1
    Pro cpu up.
    Pro cpu start user code
    nvs_flash_init
    frc2_timer_task_hdl:3ffbc564, prio:22, stack:2048
    tcpip_task_hdlxxx : 3ffbeca8, prio:20,stack:2048
    phy_version: 80, Aug 26 2016, 13:04:06, 0
    pp_task_hdl : 3ffc34f0, prio:23, stack:8192

    :>enter uart init
    uart init wait fifo succeed
    exit uart init

    IDF version : master(db93bceb)

    WIFI LIB version : master(934d079b)

    ssc version : master(r283 4d376412)

    !!!ready!!!
    mode : softAP(xx:xx:xx:xx:xx:xx)
    dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)

    +WIFI:AP_START
     
    Последнее редактирование: 22 янв 2017
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    У вас какая-то другая прошивка и видимо комп не умеет измерять ток потребления (сравнивать с указанным чипом в USB).
    USB 3.0 по умолчанию дает больше ток. Но у меня все разъемы USB3.0 заняты. Потом попробую...
    Если USB 2.0 не говорит предел тока, например при включении Orange Pi Zero, то у меня с компа туда идет более 500 mA. Т.е. если более, то питание отключается. А если устройство объявляет ток, то выдает по заявке до 5A. Черные наконечки-разъемчики на проводках типа как используют на платках для отладки при таком токе часто плавятся :) Китайцы там наверно ужасное железо используют с большим сопротивлением контакта...

    Посмотрите что дает CP210x в профиле. Некоторые мамки компов умеют и показывать текущий ток устройства в драйвере...

    Сейчас в плату прошит пример из Arduino и стартовый лог такой:
    Код (Text):
    1. ets Jun  8 2016 00:22:57
    2.  
    3. rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    4. ets Jun  8 2016 00:22:57
    5.  
    6. rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    7. configsip: 0, SPIWP:0x00
    8. clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    9. mode:DIO, clock div:1
    10. load:0x3fff0008,len:8
    11. load:0x3fff0010,len:1760
    12. load:0x40078000,len:6668
    13. load:0x40080000,len:252
    14. entry 0x40080034
    15.  
    16. WiFi Connect...
    17. ................................................................
    18. WiFi connected
    19. IP address:
    20. 192.168.1.73
    21. Time connect = 32002 ms
    22. Wait data...
    Модуль соединяется с AP более 32-х секунд в среднем. Иногда вообще не дождаться (более 5 минут), потом, когда "прогреется" - часто 4002 ms, но выпадает и больше. Систему по чему так не уловить.
    На AP стоит такой режим:
    Снимок1210.gif
    Кусок скетча старта:
    Код (C):
    1. void setup() {
    2.   Serial.begin(115200);
    3.   delay(10);
    4.  
    5.   Serial.println();
    6.   Serial.println("WiFi Connect...");
    7.   delta_time_ms = millis();
    8.   WiFi.begin(ssid, password);
    9.   while (WiFi.status() != WL_CONNECTED) {
    10.     delay(500);
    11.     Serial.print(".");
    12.   }
    13.   delta_time_ms = millis() - delta_time_ms;
    14.   Serial.println();
    15.   Serial.println("WiFi connected");
    16.   Serial.println("IP address: ");
    17.   Serial.println(WiFi.localIP());
    18.   Serial.print("Time connect = ");
    19.   Serial.print(delta_time_ms);
    20.   Serial.println(" ms");[code]
    При этих-же параметрах и том-же роутере (время до выдачи IP):
    ESP8266 - от 1.8 до 4-х секунд
    RTL871x - от 1.8 до 3.7 секунд
    Это если всё делать по стандарту и установках по умолчанию: объявление о выходе на WiFi модуля, поиск и опрос AP по WiFi, соединение с AP, переговор с DHCP о выдачи IP.
    Сокращенный вариант с фиксированным IP быстрее - порядок до 1.2 сек у других модулей.
    Сравнивать с ESP-32S нет смысла - ПО у него слишком сырое. Через пару лет доделают. :)

    А вот на счет потребления ситуация неисправимая. Варианты только занижать и зажимать частоты ядер процессора и отключать все контроллеры – т.е. модуль становится не функционален. По стартовому потреблению явно видно, что работа обоих ядер и активное использование памятей и частей данного SoC– это потребление на уровне более 400 mA. Нафиг такое г., если та-же Orange Pi Zero при таком уровне потребления (выключен sleep и прочие ограничения) превышает производительность и функциональность ESP-32S в десятки или сотни раз, а стоит дешевле.

    Придется ждать другой редакции чипа, возможно со сменой тех.норм в nm. Но на это уйдут годы у Espressif. То-то они и зашевелились с рекламой для обывателей. Видимо девать чипы некуда, а затраты на разработку не окупаются. Теперь пытаются втюхать это г. на рынок для обывателей.
     
    Последнее редактирование: 23 янв 2017
  11. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Потребление тока модулем детальнее:
    ESP32SPower5V.gif
    Читать не mV, а mA :)
    Это теперь называется "малопотребляющий модуль". :)
     
  12. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    601
    Симпатии:
    52
    Вы приводите примеры такой экзотики которую абсолютное большинство юзеров никогда не видело и не увидит.
    В 99% писюков на питание усб тупо запаяна перемычка. Даже предохранителя нет - выдаст ток пока шнурок не расплавится. На таких портах все работает потому что ток в дескрипторе устройств ничего не значит.

    Потребление 570ма в течение 8мс - это жостко.

    Попробуйте мангуста прошить - Cesanta хвалили esp32.
     
  13. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Извините, но я такими компами не пользуюсь. Это небезопасно.
    Там есть и больше - когда по два-три таких непрерывно. К 20 ms встречается. Это всего работает station и никакой передачи. Зашит пример из сообщений выше - ждет приема по UDP.

    При передаче в режиме AP будет ещё больше. Пока не могу проверить что будет со включенными контроллерами, по типу MP3 проигрывателя. Можно делать только ставки - перевалит или нет за 400 mA постоянных...
    Может мне такой модуль попался? Тогда ещё хуже - значит гонят брак и покупать вообще за такие цены брак не стоит.
    Но там не зря стоит 1117M3 стабилизатор... Было бы меньше - поставили бы поменьше.
    -----
    Примеров в Arduino для ESP32S просто дофига - 7 шт :) :
    Снимок1217.gif
    Стандартные примеры с WiFi не работают:
    Снимок1218.gif
    Пишут - ошибки нема ничего такого что надо.
    С другими модулями (хоть RTL) все эти стандартные примеры работают.
     
    Последнее редактирование: 23 янв 2017
  14. uc3a

    uc3a Новичок

    Сообщения:
    25
    Симпатии:
    3

    Вложения:

    • 4.png
      4.png
      Размер файла:
      141,5 КБ
      Просмотров:
      137
    • 9.PNG
      9.PNG
      Размер файла:
      257,5 КБ
      Просмотров:
      136
  15. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Там написано Tested on 32 and 64 bit Windows 10 machines
    У меня Windows 7 64 т.к. нужный софт под 10 не работает. Есть и Win 10 на другом компе, но ставил на котором 7.
    Из директории C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32 Arduino не видит. [YOUR_USER_NAME] безусловно заменено на правильный. Там-же и находиться каталог /Documents/Arduino/.
    В инструкциях к Arduino для разработчиков не написано, что что-то будет работать из C:/Users/[YOUR_USER_NAME]/Documents/Arduino. Так оно и выходит в реале :p
     
    Последнее редактирование: 23 янв 2017
  16. uc3a

    uc3a Новичок

    Сообщения:
    25
    Симпатии:
    3
  17. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Ну это и так понятно. Фрики всегда идут другим путем – обязательно выдумают что-то не стандартное. :)
    Вы лучше расскажите как нашли этот документ :) Объясните как искать обычному российскому обывателю какую либо информацию, если он купит ESP32S :)
    ----
    Arduino для ESP32S жрет немерянно ресурсов:
    Снимок1219.gif
    190 килобайт на пустой код, и памяти в ESP32S доступно всего 294912 байт, а не 500 кило. Из них на скетчи всего до 270 кило, но не написано одиночным непрерывным блоком или кусками... Надо проверить...
    Для теста можно выбрать проект типа загрузки PNG изображения с любого сайта HTTPS и отображения на SVGA TFT дисплей. Буфер для дисплея как раз потребуется к 128 кило непрерывному куску... В общем обычная Web-рамка...
     
    Последнее редактирование: 23 янв 2017
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Нда... Чего-то я размечтался:
    Available Heap: 111904
    Уже при включении обычной WiFi station :(
    Скетч (раскрыть)
    Код (C):
    1.  
    2. #include <WiFi.h>
    3. const char* ssid     = "your-ssid";
    4. const char* password = "your-password";
    5. void setup()
    6. {
    7.     Serial.begin(115200);
    8.     delay(10);
    9.  
    10.     // We start by connecting to a WiFi network
    11.  
    12.     Serial.println();
    13.     Serial.println();
    14.     Serial.print("Connecting to ");
    15.     Serial.println(ssid);
    16.  
    17.     WiFi.begin(ssid, password);
    18.  
    19.     while (WiFi.status() != WL_CONNECTED) {
    20.         delay(500);
    21.         Serial.print(".");
    22.     }
    23.  
    24.     Serial.println("");
    25.     Serial.println("WiFi connected");
    26.     Serial.print("IP address: ");
    27.     Serial.println(WiFi.localIP());
    28.     Serial.print("Available Heap: ");Serial.println(ESP.getFreeHeap());
    29. }
    30.  
    31. void loop()
    32. {
    33. }

    Лог (раскрыть)
    Код (Text):
    1.  
    2. ets Jun  8 2016 00:22:57
    3.  
    4. rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    5. ets Jun  8 2016 00:22:57
    6.  
    7. rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    8. configsip: 0, SPIWP:0x00
    9. clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    10. mode:DIO, clock div:1
    11. load:0x3fff0008,len:8
    12. load:0x3fff0010,len:1760
    13. load:0x40078000,len:6668
    14. load:0x40080000,len:252
    15. entry 0x40080034
    16.  
    17.  
    18. Connecting to *********
    19. ........
    20. WiFi connected
    21. IP address: 192.168.1.73
    22. Available Heap: 111904

    -------
    HTTPS тоже не нашел. Либа из mbed вроде уже давно, но HTTPS в Arduino для ESP-32S нет?
     
    Последнее редактирование: 23 янв 2017
  19. A_D

    A_D Авторитетный участник сообщества

    Сообщения:
    349
    Симпатии:
    56
    Мимо-проходил, немного юмора. Ради интереса в док 2a-esp32_getting_started_guide_en-v0.1.pdf заглянул и прифигел от пункта 6:
    123.PNG
    Нифига ж себе!!..... лоу-повер чип и столько LDO линейников..... питание для ESP32 требуется добротное :D
    зы. А если без юмора - на деле же там видно, что это все для разной периферии сделали - что бы выставить какое хочешь напряжение на выбранных кусках IO и т.д.
     
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.147
    Симпатии:
    1.311
    Ну вот дописал передачу TCP в iperf.exe.
    ESP-32S итого:
    TstTCPWR_ESP32-S.gif
    Теперь понятно, о чем писали на сайте Espressif - типа с LwIP у них тама беда... (но возможно это просто отговорка и в чипе срабатывает тепловая защита)
    Можно сравнить с RTL8710AF (скетч тот-же и условия теста те-же самые):
    TstTCPWR_RTL8710.gif
    Оптимизация по 2*MSS в обоих тестах.
    У ESP32S буфер на передачу в LwIP #define TCP_SND_BUF_DEFAULT (2*TCP_MSS)
    у RTL8710AF #define TCP_SND_BUF (5*TCP_MSS)
    Т.е. у RTL8710AF в RtlDuino я задал почти все буфера LwIP больше, чтобы былО лучше. Память и так есть, а основные задачи модулей - коммуникация по сети...

    Для данного скетча "heap" (можно посмотреть на скринах, но выпишу):
    У ESP32 - 108392 байта
    У RTL8710AF - 150232 + 27920 байт (общий 178152)

    Замер по питанию ESP32S в данном тесте сложен - он выдает кусками и не постоянно, питание 5В через 0.1 Ом просаживает до "протектед" (включать к лабораторному источнику лень), но выходит примерно это:
    Снимок1224.gif

    Espressif ещё работать, работать, работать, и работать. Солнце ещё высоко. (Солнце = RTL8195, т.к. стоит одинаково в опте и на борту уже USB host/device и 2.5Мег RAM)
     
    Последнее редактирование: 24 янв 2017

Поделиться этой страницей