заливка прошивки через сеть на Arduino
- Войдите на сайт для отправки комментариев
Ср, 14/09/2016 - 11:52
привет.
есть два компа, на одном среда разработки с кодом программы, к второму подключена arduino через USB-FTDI адаптер.
компы доступны друг другу через сеть - есть пинг и все порты открыты.
каким образом можно залить прошивку с первого компа на arduino ?
может можно както пробросить COM порты через сеть, чтобы на первом был доступен тот COM порт с Arduino который создался на втором компе при подключении адаптера?
неужели такая сложная или редкая задача, что никто не знает как быть? )
RDP Вам в помощь. На втором ставите среду, перебрасываете программу и льете, зайдя по рдп с первого.
увы, не пойдет такой вариант.
Тот же вопрос, но про avr-etherboot. Как собрать это чудище, если я вижу makefile впервые, если я понятия не имею что с ним делать, если я вообще нахожусь очень далеко от мира Linux? Умею пользоваться только средой, чтобы поменять fuses на 8 МГц, на 16 МГц - жму Burn bootloader, чтобы нидайбох ничего там с командной строки не закосячить.
в таком случае и "навскидку" в некотором роде эзернет-программатор.
имеем боевой контроллер, подключенный к железу, в тч и к W5100, например мега 2560.
имеем вспомогательный контроллер, например промини, который можно активировать нажатием пумпочки в вэбморде основного, основной при этом подвешивается ресетом, выставленным вспомогательным контроллером. вспомогательный контроллер также подключен к W5100.
вспомогательный контроллер через свою простую вэбморду запрашивает новую прошивку для меги и грузит ея в I2C память, затем блокирует W5100 (освобождая при этом SPI) м начинает по SPI шить мегу. После прошивки он отпускает мегу, которая тутже блокирует его по ресету.
короче , если бы мне надо было заморочиться (на имеющихся железках), я бы копнул в эту сторону.
Не могу сказать с уверенностью, не получится ли гонок с ресетами , но по ощущениям должно получиться... самый эротичный момент - отпускание ресета меги и начало прошивки по SPI с промини.
наверно можно вообще все реализовать на одной меге , написав новый бутлоадер (не из USB , а из W5100). Надо гдетто почитать про то, как атмелы стартуют...
блин.. я думал это распространенная задача и у нее есть простое решение..
все софтины, что позволяют редиректить COM порт через TCP или платные или дико платные.
есть com0com - но он похоже не работает с COM портами которые создаются USB адаптерами.
так если это всё равно сторонняя софтина, напиши свою, чтобы ожидала какой-то пакет и вызывала команду на программирование.
блин.. я думал это распространенная задача и у нее есть простое решение..
ага. Так её и решают через удаленній доступ тем или другим путем. Тимвюер например. Иногда так делают настолько серезные и небезопасные штуки, что лучше даже не думать что может быть....
решают задачу так, как удобно.
переносить настроенный IDE и код с сорцами и всеми либами - это та еще задача в моем случае..
так что решил с помощью проброса COM порта по TCP протоколу - теперь прошиваю МК находящийся в другом городе)
а описать что и как ставили и настраивали?
не вопрос..
тулы качаем тут:
https://sourceforge.net/projects/com0com/files/com0com/2.2.2.0/
нам нужно два зипа:
com0com-2.2.2.0-x64-fre-signed.zip и hub4com-2.1.0.0-386.zip
пример схемы работы:
комп А (ip:192.168.0.1)(remote arduino) <- tcp сеть (vpn, lan) -> комп B (ip:192.168.0.2)(IDE + source code)
из второго нам интересен батник com2tcp-rfc2217.bat - открываем отдельное cmd окно для него и не закрываем до окончания всего процесса прошивки МК.
комп А - к примеру ардуина при подключении повесилась на COM порт COM1 (проверить в device manager после подключения МК)
в cmd окне выполнить такую команду в каталоге с распакованными файлами:
\com2tcp-rfc2217 COM1 7000
или иногда бывает надо COM порт указать в другом виде:
\com2tcp-rfc2217 \\.\COM1 7000
это откроет на компе А порт 7000 в режиме LISTEN - он будет слушать все что приходит на 7000 порт и редиректить на COM1
комп B:
\com2tcp-rfc2217.bat \\.\CNCB0 192.168.0.1 7000
это заставит все, что приходит на виртуальный COM порт COM50 перенаправлять на комп А на порт 7000
теперь можно в IDE выбрать COM50 и заливать прошивку.
работает OK, проверено неоднократно.