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

Прошивка TCP2UART переходника с настройкой по Web

Тема в разделе "SDK и создание собственных прошивок", создана пользователем pvvx, 13 мар 2015.

  1. LineAir

    LineAir Новичок

    Сообщения:
    4
    Симпатии:
    1
    Добрый день! А о какой полноценной замене идет речь?
     
  2. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Последнее редактирование: 20 апр 2017
    LineAir нравится это.
  3. Avasil

    Avasil Новичок

    Сообщения:
    4
    Симпатии:
    0
    здравствуйте, прочитал бегло все 30 с лишним страниц данной темы. Может повторюсь, заранее извиняюсь. Алгоритм передачи TCP2UART понятен - все что приходит на ESP по WiFi тут же "транслируется" в UART. А что будет если отправить данные на ESP по UART? Есть возможность в этой прошивке отправлять данные на ESP по UART, а он тут же отправлял их через TCP подключенному к нему клиенту (так называемый мост UART2TCP)?

    Решается задача - ESP выступается в качестве TCP-сервера; к нему коннекчусь по WiFi с ноутбука при помощи написанного ПО. ESP по UART соединен с другим МК. Необходимо по запросу от компьютера получать данные, хранящиеся на МК (4 пакета по 8 байт). Проблема в той самой задержке в 200 мс. Эти 4 пакета нужна получать хотя бы раз 5 в секунду, но на деле 1 раз в секунду (при помощи AT команды "AT+CIPSEND", нужно делать паузу между командами) с горем пополам - все время вылетает "busy s...".
     
  4. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Да. Только при дуплексе могут быть ограничены скорости на прядке 1.5..3 мегабита UART. Связано с полосой WiFi и производительностью ESP8266.
    4-ре пакета, даже с паузой в 200 мс выходит 800 мс+ пинги.
    Если в момент передачи с ESP, на него посылаете байтики, к примеру с паузой в 50 мс, то любой алгоритм TCP стека пошлет с ними подтверждение приема, не ожидая паузы. На данной реализации, даже если приемник имеет кривой алгоритм с 200 мс ожидания, то посылка в UART ESP 2-х подряд байт/блоков с паузой более 2.5 символа вызовет передачу 2-х пакетов и ожидания у приемника не будет.
    А пока не понято - с чем боритесь - ожидание на стороне приемника ("ноутбука при помощи написанного ПО")?
     
    Avasil нравится это.
  5. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Вот для примера:
    Замыкаем на модуле RX-TX и шлем на него "123" с паузой в 50 мс. Он принимает, выводит в TX UART и принимает это-же (для теста) на RX UART и отсылает обратно:
    Снимок1441.gif
    Поток на стороне компа или роутера (это без разницы):
    Снимок1439.gif
    Выходит, что каждые 47.4 + 2.6 мс (~50 мс) передается блок на UART модуля и принимается с него в комп.

    То-же самое, если сократить паузу до 3-х мс:
    Снимок1442.gif
    Во втором столбце время в сек между пакетами.
     
    Последнее редактирование: 30 апр 2017
    Avasil нравится это.
  6. Avasil

    Avasil Новичок

    Сообщения:
    4
    Симпатии:
    0
    pvvx,@pvvx спасибо за развернутый ответ!
    я правильно понял, в вашей прошивке для того чтобы отправить сообщение с ESP не нужно ему предварительно слать AT+CIPSEND? а просто отправить сообщение на RX UART ESP? o_O


    мне необходимо с МК через модуль ESP на ноутбук отправить 4 пакета друг за другом (AT+CIPSEND = 8 > пакет №1, ..., AT+CIPSEND = 8 > пакет №4), и если не делать большую паузу между отправками команд на ESP, то модуль отправляет только пакет №1, при отправке следом №2, №3, №4 пишет три раза "busy s...", затем "SEND OK". На ноутбук приходит естественно только пакет №1. Делая большую паузу между командами AT+CIPSEND отправить полный набор пакетов удается только 1 раз в секунду, а нужно хотя бы раз 5.

    p.s. Знаете, пока писал это сообщение и осмысляя ваше сказанное ко мне в голову пришла очевидное решение "а почему эти 4 пакета по 8 байт не накопить на стороне МК и не выдать как 1 пакет в 32 байта на ESP" почему то раньше и в голову не приходило. :oops:o_O
     
  7. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Нету никаких "AT" команд. UART работает и с RTS/CTS сигналами, говорящими что соединение открыто и работает.
    Отправка отличается от "AT" прошивок - нет ожиданий в 200 мс.
     
    Avasil нравится это.
  8. Avasil

    Avasil Новичок

    Сообщения:
    4
    Симпатии:
    0
    @pvvx, спасибо тебе огромное! Твоя прошивка - это просто супер, то что я искал! Все работает на ура - как часы! :D:);):p:cool: Никаких АТ команд, просто пишу в UART и сразу летит по TCP))
     
  9. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    Всех с праздниками! Напомните, пожалуйста, как скомпилировать прошивку в 1 файл, давно не пользовался 8266, а тут хочу опять поиспользовать, из Эклипса шьется все отлично, но он делать кучу файлов для разных областей памяти, когда-то был 1 файл и его можно было шить через TCP2UARTFlasher с нулевого адреса и он прошивал всю память целиком разом.
    Или скажите все адреса, а то в описании нет адресов веб морды и рапид чего-то.

    Как шить.png

    0.bin и rapid_loader_40m шить вообще не нужно? это чисто для ускоренной загрузки через эклипс? А WEBFiles можно сразу прошить, чтобы отдельно не загружать?

    Вроде WEBFiles нужно заливать по адресу 0x3E000, но это работает только если памяти 512кбайт, если больше то только через WEBFS22. Все верно? Но когда нет морды, невозможно настроить свою точку доступа(кроме того чтобы в прошивке свою указать что не гуд), придется только временно точку доступа на роутере переименовывать?
     
    Последнее редактирование: 7 май 2017
  10. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Она сама после прошивки работает в режиме AP с именем ESP8266 и без пароля.
    И в Releases · pvvx/esp8266web · GitHub даны прошивки одним файлом, хотя и старые, но имеют всего одну глобальную ошибку - в функции запросов по установке подтяжек портов (если их не использовать, то вроде всё ok).
     
  11. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    Я использую esp8266web-0.6.1_SDK_1.5.4, самый новый виснет в эклипсе на 98%, причем он пересобирает проект бесконечно. Из глюков, на скорости уарта 6666666 иногда зависает и скорость падает, переподключаешься и норм, не тянет видимо, на скорости 3 мегабита стабильнее. В принципе ничего страшного, точку доступа в роутере переименовать можно и все, автоподключение только в коде включить. Про то, что она работает как точка доступа AP с именем ESP8266 и без пароля это понятно, просто с роутера я к ней не подключусь, а с телефона не залью WEBFiles.bin, можно с ноутбука, но это уже так, экзотика для меня, проще роутер перенастроить. А не страшно шит по адресу 0x3E000 WEBFiles.bin, если памяти больше 512кбайт, ничего я там не затираю?, хотя все работает. И если памяти 512кбайт, то адрес правильный?, просто на ESP8266 V07 не проверял.
     
  12. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Там надо всё правильно выставить... и используется Eclipse уже версии Neon
     
  13. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    Как только я добавляю этот проект в Эклипс Марс, так он сразу начинает собирать его, и виснет на 98%, прошлые сборки он сам не начинал собирать, но раз Эклипс более новый, может из-за этого, скачаю, проверю. По адресам дважды спросил и ничего, ну буду считать молчание - знак согласия.

    Обновил Эклипс, все точно также, бесконечно пересобирает проект, но нашел галочку автоматической сборки и отпустило, хотя на прошлых этого не было. Из заметного, собирался проект 11 секунд , теперь 4, не зря свой хлеб Эклипс едят.
     
    Последнее редактирование: 8 май 2017
  14. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    В теме по сборке web-свалки описано, что надо после экспорта проекта отключить Build Automatically и заодно проверить какая конфигурация для трансляции выбрана активной...
     
  15. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    Вот нашел наконец "Можно записать WEBFiles.bin и программатором по адресу 0x80000." А самое прикольное, что это и в readme.txt было написано, просто не заметил, единственное, что не сходится - это адрес, если 512 кбайт, - 0x39000 или 0x3E000?
     
    Последнее редактирование: 8 май 2017
  16. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    Проверил битрейт уарта 13333333, работает. Правда от этого толку нет, прирост 14% относительно скорости 6666666 (должно быть 50%). А вот 6666666 относительно 3076923 дает прирост 42%.
     
    Последнее редактирование: 8 май 2017
  17. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Там не хватает производительности ESP8266, т.к. у него нет DMA для UART. Все ресурсы сжирает ковыряние в регистрах UART по медленной внутренней системной шине работающей с тактированием от кварца (до 26 МГц - > от 12 тактов на операцию обращения к внутренней периферии при 160 МГц CPU, хотя чип и ROM-BIOS разрабатывался на 40 МГц кварц, но видимо не пошел или жрет много...всё как всегда у горе Espressif...).
    По тому у ESP8266 теоретический предел* примерно на 5 Мбит/сек UART + прием/передача по WiFi.
    По SPI примерно те-же проблемы, но итого немного более...
    У дешевых переходников USB-UART предел к 3 Мбит/сек и более не требуется, т.к. при этом у них уже работает RTS/CTS на каждый блок передачи FIFO по USB Full-Speed. Т.е. они уже не способны принимать непрерывный поток в 3 Мбит/сек.

    * по теории, при максимуме оптимизации.
     
    Последнее редактирование: 8 май 2017
  18. pvvx

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

    Сообщения:
    9.095
    Симпатии:
    1.303
    Снимок1467.gif
     
  19. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    там у вас флеш то не 512 кбайт, про те модули, что более 512кбайт я понял адрес какой и проверил, все заливается, все в порядке, а вот модули с 512 кбайт на борту- точно не 0x80000.
     
  20. FGX

    FGX Читатель

    Сообщения:
    100
    Симпатии:
    9
    в моем случае, с моей стороны ограничения нет, четко 13Мбит выдаю по ДМА, проц в это время спит, чтобы не мешать. Хотя 3Мбита самое то для 8266, на 6.6 он уже сбоит, если вайфай загружен или еще что, начинает скорость плавать, дергать, как-то не ахти и выбраться сам он уже не может из такого, переподключать соединение нужно, а на 3Мегабита работает стабильно, можно и мощность на 1 выставить, какая-никакая экономия.
     

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