mega 2560 Стирается загрузчик

lexa217
Offline
Зарегистрирован: 08.12.2012

В общем, купил несколько дуин и не проверил. пролежали месяца три.

на одной из них проблема: загрузчик кривой. китайцам уже не вернуть - поздно.

ну да ладно, не беда. залил новый загрузчик.  заливаю код - все работает.

пробую залить второй раз - загрузчик не отвечает

и код стартует подозрительно быстро (меньше, чем 0,5 сек). подозреваю, что загрузчик стерся.

загрузчик можно залить новый, не проблема. но после этого код можно обновить только один раз. на любом компе. проблема точно не в компе. загрузчик не отвечает.

в чем может быть проблема?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а заливаешь код не через программатор? а то мало ли на автомате

faraddin
Offline
Зарегистрирован: 11.08.2013

Вы как загрузчик заливаете?

lexa217
Offline
Зарегистрирован: 08.12.2012

код через юсб заливаю) не через загрузчик.

загрузчик заливал и через среду ардуину, и просто через командную строку аврдьюд. причем даже разные фьюзы пробовал ставить

lexa217
Offline
Зарегистрирован: 08.12.2012

ни с того ни с сего код загрузился. но потом снова перестал. значит, загрузчик на месте. но не отвечает. ком-порт работает в обе стороны. непропая нет.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

странно. по usb имеется в виду что? обычная ардуина это usb-uart переходник-мега с бутлоадером

где uart переходник не суть, обычно уже на плате

а через программатор это isp разъем или пины на плате 11-13 и так далее

lexa217
Offline
Зарегистрирован: 08.12.2012

через юсб - это штатно. через среду.

через программатор - это через usbasp.

разницу между загрузкой через программатор и штатной загрузкой понимаю отлично)

проблема только с этой платой. вообще странное поведение.. ни разу такого не видел...

lexa217
Offline
Зарегистрирован: 08.12.2012

похоже, атмегу менять придется

AndreyL19
Offline
Зарегистрирован: 20.01.2016

Если на Arduino MEGA загрузка скетча возможна только 1 раз, после прописки загрузчика программатором, то скорее всего сигнал RESET, который поступает с м/с ch340G (pin13) не может обнулить ATMega 2560. Слишком маленькая емкость C4 (должно быть C4 = 200н, у меня, например было C4 = 95). Я поставил С4 = 0.68мкФ, теперь все работает.

lexa217
Offline
Зарегистрирован: 08.12.2012

интересный вариант. а почему тогда один раз шьется?

AndreyL19
Offline
Зарегистрирован: 20.01.2016

А почему только 1 раз шьется для меня до конца не понятно. Возможно, когда в памяти только один загрузчик, Arduino работает только с ним и обнаруживает запрос от ПК на загрузку скетча. В качестве "обнаружителя" импульса обнуления я использовал Arduino UNO. В ней прошит скетч, использующий прерывание INT0 (pin2). Прерывание происходит если импульс достигает уровня лог.0. Так вот в исходном состоянии этот импульс не обнаруживался, а после перепайки C4, импульс появился и плата заработала. Кстати было 3 платы с точно такой же неисправностью, теперь все 3 работают.