Есть Mega 2560 с подключенным SD ридером на CH340.
Стоит задача, чтобы был self-update. Вставили флешку с HEX прошивкой, она и обновилась.
Есть решения, но они связаны с прошивкой бутлоадера, а на CH340 бутлоадер не шьется. Поменять на другую Мегу никак, т.к. это pro версия, уменьшенная.
Возникла идея прикрутить ардуино поменьше, например Arduino Nano. К ней прикрутить в свою очередь SD ридер. Связать их обе по RX-TX. На Serial2 каком-нибудь обмен данными для SD карты. То есть получится, что Мега будет общаться с SD через Нано.
Вот, далее попытаться сделать таким образом, что если Нано видит UPDATE.HEX, она его берет в работу и шьет Мегу по RX-TX, на Меге само собой RX-TX для шитья будет на Serial0, где обычно USB висит. Вроде схема рабочая.
Вопрос в следущем, что-то я притупил, не понимаю как разобраться, чтобы вскрыть HEX и данные отправить по сериалу. Это возможно программно сделать? Может есть решения похожие, готовые, библиотеки. Благодарю за любую помощь
Загрузчики есть готовые, но их не прошить из-за CH340, в этом вся проблема. На Mega 2560 REV 3 оригинальной все работает прекрасно, обновляется со своей SD карты. Тут же я описал почему нельзя, — да, правильно, из-за CH340. Читайте внимательно, что написано, без обид.
Раз пять прочел, очень внимательно, прям изо всех сил стараясь, и всё равно не понял, каким же местом надо подключить CH340, чтобы она мешала прошивке загрузчика.
Всё же думается мне, что ТС как собака: всё понимает - только сказать не может. Под загрузчиком он скорее всего имеет ввиду прошивку через Flip саму16u2. Если осутствие на ПРО версии этого чипа единственное, что не устраивает ТС(опять ,блин, догадки, вот нахера приходить ,задавать ОЧЕНЬ важный вопрос и сливаться на сутки?), то могу предложить быстрый и дешёвый вариант. Берёте Мегу на которой у вас всё работает(ну та которая - “Mega 2560 REV 3 оригинальной” ) режете дорожки на обоих мегах и соединяете выход 16U2 с 2560 на PRO. Можно менее варварски: тупо замкнуть ресет на ведущей(она автоматом станет тупо конвертером) и прокинуть на RX/TX ведомой - может прокатит. Если это реально, то что вам надо, то можете ещё и сэкономить - на UNO также бывает чип 16U2. Возможно хватит и 8U2. А можно и самому собрать этот конвертер. Я вот на AT90USB162 делал и оригинальная прошивка для флипа вполне работает.
Я имею ввиду, что никто из ответивших вам так и не понял в чём проблема. Вы либо не понимаете о чём пишете либо либо не можете сформулировать. Если хотите помощи - не надо сокращений и около программистских терминов. Всё должно быть чётко и по шагам. Никто до сих пор не знает как у вас подключена и что и куда прошивается в РАБОЧУЮ “Mega 2560 REV 3 оригинальной” (устал цитировать уже)
Моя думать, что в 16U2 заливается какая то спец. прошивка позволяющая видеть внешние USB устройства (типа SDкарты через ридер). ТС тупо сформулировать не может. Загрузчик тут типа не причём, типа слово модное - бутьлодырь (хотя его по идее тоже надо модифицировать)
Возможно… но тогда придется этот бутерброд из двух разных Мег так и оставить в девайсе. иначе прошивка не будет работать…
По мне так это вряд ли можно назвать приемлемым решением.
Посмотрел две первые ссылки - не нашел ни одного упоминания, что CH340 как-то мешает процессу
Прошивка бутлоадера в Мегу делается через программатор, Сериал (а значит и его драйвер - CH340) - никак в этом процессе не задействован.
@misterd - повторяю вопрос - если с CH340 нельзя перешить бутлоадер - как же это делают на Ардуино Нано. где установлен этот самый CH340 ?
Нет, я без гонора. Возможно криво объясняю. Давайте попробую еще раз. Я сейчас нахожусь на этом этапе.
У меня парк устройств на Mega2560 Pro, на CH340.
Мне нужно обновить там загрузчик на специальный. Ссылки что я давал выше, он имеется. Этот загрузчик нужен, чтобы обновлять прошивку с SD карты. Со штатным загрузчиком такое не работает.
Проблема в том, что если мы просто Мегу 2560 Pro CH340 подключим к Arduino IDE, то загрузчик мы записать не сможем, только скетч.
Да, можно программатор, можно использовать, например УНО.
Я сейчас нашел УНО, зашил туда скетч Arduino as ISP, попробовал загрузить штатный загрузчик через Arduino IDE — вроде получилось. Все подключено через ICSP, 10 контакт на ресет.
У меня кастомный загрузчик есть, вот сейчас пытаюсь прошить его. Пробую dfu-programmer, отпишусь позже получится или нет
Вы удивитесь, но с оригинальной Мегой все то же самое - загрузчик обновляется через программатор. Ничего удивительного в записи загрузчика через ICP нет, это стандартный способ.