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

Вопрос Прошивка Atmega через ESP (http)

Тема в разделе "Общие вопросы по esp8266", создана пользователем Anvil, 16 янв 2017.

Метки:
  1. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте. Есть устройство atmega+esp. Хотелось бы организовать обновление прошивок по сети. Скажем я выложил файлик .hex на сервер, а оно обновилось.
    На atmega можно поставить bootloader и прошивать по uart. Как бы научить esp скачивать .hex и отправлять его в uart. Не нашел нечего подобного. И заодно обновлять сам esp.
    Буду признателен за любую наводку и информацию.
     
  2. sboganov

    sboganov Читатель

    Сообщения:
    20
    Симпатии:
    5
  3. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    Эти ссылки видел. Не то, но может натолкнет на мысль как сделать то что я запланировал.
    Мне надо чтоб оно само стянуло и прошило. А не прошивать с компа.
    Теоретически все просто
    1) Скачать файл и положить в память ESP.
    2) Инициализировать Atmega для прошивки.
    3) Слать данные из hex файла в UART.
    4) Перезагрузить.

    ESP вроде тоже может сама себя обновить.
     
  4. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    982
    Симпатии:
    151
    Для этого нужно знать протокол обмена загрузчика который будет в вашей AVR. Дальше все просто.
     
  5. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    Для кого просто, а для кого не очень :)
    Загрузчик наверно не имеет значение. Надо отправить hex по uart.
    Пока остановился на "Martin Thomas’a «AVRPROG compatible boot-loader»"
    Опсаны:
    _Bootloader для ATmega32 | Skab in Sky
    _AVR. Учебный Курс. Использование Bootloader’а | Электроника для всех

    Суть в том что посылаем определенные символ в UART , а следом hex. Который предварительно скачали.
     
  6. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    982
    Симпатии:
    151
    Так вот как там на самом деле идет обмен. Какой символ туда послать. После того как символ послали будет ли ответ из UART? Hex файл посылать какими порциями. Что будет отвечать при этом AVR? Как AVR узнает что загрузка завершена и можно сделать рестарт. Ответы на эти вопросы и есть описание протокола обмена Bootloader.
    И без него никак. Либо найти описание в англоязычном интернет. Либо ковырять код загрузчика либо ловить реальный обмен по UART между портами UART - COM. На русском языке мне найти не удалось.
    Это самое сложное. Все остальное действительно просто.
     
  7. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    @tretyakov_sa
    Посылаем символ S (это как пример)
    А потом шлем hex в UART. (Для меня вот это пона не понятно и самое сложное)
    Все что он принял он запишет.
    Есть примеры как:
    Скачать файл с сети положить в память.
    Отправить этот файл по UART.
    ?
     
  8. 086dx66

    086dx66 Новичок

    Сообщения:
    140
    Симпатии:
    4
    Esp-link заливает ведь нормально. Смотри его исходники
     
  9. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    Как он заливает? я нашел там заливку с компа. Если правильно понял, то идет проброс UARTа. Это немного не то что мне надо.
    Вроде есть упоминание заливки через браузер. Но явно в доках не увидел. Надо ставить на плату и смотреть.
     
  10. 086dx66

    086dx66 Новичок

    Сообщения:
    140
    Симпатии:
    4
    Ota смотри
    Или #105 Free Download of IOT Apps: Public Launch:
     
  11. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    @086dx66 Что то я тут не увидел того что поможет. На какой минуте и что из того что меня интересует.
    Вижу у него Ардуино IDE, вижу подключенную по USB плату.
    Не увидел ответа на вопрос как сделать так чтоб ESP скачала прошивку и обновили Atmega, а за одно и себя.
     
  12. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    А что вы уже сами написали ну или что нашли, или хотите чтобы кто то за вас написал?
    ESP самопрошивается при помощи Ota.
    В Atmega заливаете загрузчик ( который тоже надо написать или найти) и при его помощи, через UART загружаете прошивку.
    Как загрузить файл в ESP есть в примере FSWebServer ( который найдете в примерах для ESP8266 -> ESP8266WebServer).
     
  13. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    @CodeNameHawk
    Я не хочу чтобы за меня написали. Я спросил есть ли какие примеры по тому что мне требуется. Расписал конкретно что не могу сделать и чего не нашел как делать.
    Вот конкретно ваш ответ наверно самый полезный для меня.
    Arduino/WebUpdate.ino at master · esp8266/Arduino · GitHub
    Вроде не сложно выглядит. Попробую сразу с arduino.
    Update.write(upload.buf, upload.currentSize)
    Тут пример что берем из буфера.
    Нашел там еще ESP8266HTTPUpdateServer
    Получается можно сделать что то типа Serial.write(myFileAtmegaHex.read()); для обновления Atmega и Update.write(myFileESPHex.read(), upload.currentSize)

    Спасибо огромное. Уже есть с чего начать. Взгляну в сторону Arduino для ESP, может и на атмеге тоже заюзаю. Раньше как то обходил ее стороной, на C++ с родной SDK возился.
     
  14. 086dx66

    086dx66 Новичок

    Сообщения:
    140
    Симпатии:
    4
    Ну вот как доделаешь -выкладывай
    Я через esp-link шью меня пока устраивает
     
  15. Anvil

    Anvil Новичок

    Сообщения:
    13
    Симпатии:
    0
    @086dx66
    Ок, выложу куски как доделаю. у нас разные подходы. Как вы выше написали, вы шьете, а мне надо чтоб не я, а ESP. Все обновились увидев новую прошивку
     
  16. vovksextra

    vovksextra Новичок

    Сообщения:
    2
    Симпатии:
    2
    Если актуально. Тоже понадобилось обновлять Atmeg-у по воздуху. Прошил ESP01 прошивкой ESP-LINK. К меге подключил только TX и RX. Не смог подобрать хороший загрузчик и софт. По воздуху терялись пакеты. Пришлось сделать свой загрузчик и написать утилитку. Работает очень стабильно. Могу подготовить полную статью. Подскажите где лучше все сделать? Загрузчик писал на Eclipse + последний тулчейн от атмела, проверял на тулчейне от WINAVR, тоже собирается все без ошибок. Утилитку сделал консольную под WIN. У меня в проекте используется ATmega32, но можно легко пересобрать под любую мегу. Размер загрузчика <1к.

     
    Последнее редактирование: 20 июл 2017
    andrik_zp и Andy Korg нравится это.
  17. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    413
    Симпатии:
    74
    Код на gitHab, статью в ресурсы и на гиктаймс:)
     
  18. vovksextra

    vovksextra Новичок

    Сообщения:
    2
    Симпатии:
    2
    Спасибо. Будет свободная минутка распишу детали.Разложу все куда надо)
     
  19. ivanpost67

    ivanpost67 Новичок

    Сообщения:
    23
    Симпатии:
    0
    Кто нибудь реализовал прошивку Атмеги не через виртуальный Uart + Esp-Link, а через заявленный HTTP-POST метод? В больших прошивках, когда далеко - очень много сбоев при передаче... Конечно, предложенный здесь метод с бутлоадером еще круче, но что-то тишина в теме...
     
  20. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    982
    Симпатии:
    151

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