Каждый день не по разу слетает загрузчик.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Имеется:

Плата  китайская, 2 штуки,  мост CH340G

Сначала вся было хорошо.

Примерно после 20ти раз  заливки скетча  

вылазит avrdude: stk500_getsync(): not in sync:

Причём на обеих платах это происходит.

Пробовал разные платы выбирать и заливать  разные загрузчики.

На плате нет ничего  и ничего не подключено, прорамма-микгалка в  сыводом в терминал,сведений в переменных.

Что  может быть такое ?

 

_kp
Offline
Зарегистрирован: 07.10.2016

Бывает, что на AVR слетает EEPROM и реже прошивка. Впрочем и на других процессорах быват тоже самое. Часто такой сбой происходит при "медленной" подаче напряжения питания, "медленном" снятии напряжения, и очевидно, серии кратковременных подач напряжения питания.

Обычно проблема полностью решается внешним супервизором, подающим сброс на процессор пока напряжения питания вне диапазона, и некотороре время после того как напряжение пришло в норму. И на плате, питающеюся, как Arduino, от внешнего питания, которое постоянно отключается, нужен конденсатор "по питанию" на самой плате, ёмкостью несколько десятков микрофарад.
Более того, ни одно уважаемое устройство, без этих мер не обходится.

Да, в процессоре есть встроенный супервизор питания, активируемый через FUSE биты при программировании. Но в AVR встроенных средств не достаточно для 100% надёдности. Fuse биты BODLEVEL2..BODLEVEL0 задают уровень, когда поставить процесор на сброс, а вот задержка после включения вроде нигде не задаётся.

Из простейших мер, посоветую, поставить конденсатор 22-47 мкФ по питанию процессора (не USB), и конденсатор 0.1 мкФ между "землёй" и входом сброса процессора (для увеличения задержки включения). И если плата грязная, то помыть её спитром.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Благодарю, принял во внимание,буду  искать,решать. Сообщу о результатах если успею найти,одну платку уже продал..Сказал что бы заливали  через USBASP  не мучались :)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

selevo,  после этого глюка само всё проходит, или вам приходится пепрезаписывать бут программатором? Возможно из-за компьютера, попрубуйте на другом. Я пользуюсь таким-же китаем, и никаких проблем. Отсюда вывод - крайне маловероятно,что дело в плате.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Проблема вновь всплыла.

Я думсаю всё дело в трояне интегрированном в ардуино   если виндовс старее win 7 -портить загрузчик.

Сегодня у меня  вновь такое произошло  причём на двух платах:  оригинальной и на китайской.

Чуть позже перезалью загрузчик и в ту и другую.

Проверялось на разных компах с разными ОС, тоесть работая на  WIN XP, троян в ардуино сработал  загрузчик убил и тут уже не важно   на  какой системе пробовать заливать

ошибка та же

Причём загрузчики не слетают в версии ардуино 1.0.4 например.

Троян  запилили   скорее всего в версиях выше 1.6.5

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

selevo пишет:

Троян  запилили   скорее всего в версиях выше 1.6.5

точняк - это всё макаронники замутили, что бы подорвать экономику Сургута и Ямало-Ненецкого округа.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

макаронники   просто марионетки как и почти любые программисты, главное красиво завернуть говнецо, например самаяпопулярная обёртка  для говнеца "безопасность", Наша новая версия более безопасна,а сотая  в  100 раз безапаснее чем первая. :-) ну и конечно  новые фишки должны быть полезные,одной безопасностью   на  новой версии    ,особенно более тормозной,оставить трудно.

Спрашивается с какой целью они  в поставку кладут не оригинальную  дудку  (avrdude)  Она конечно не причём  в данном случае,это просто между прочим.

Logik
Offline
Зарегистрирован: 05.08.2014

Слет загрузчика - вопрос тонкий. Имею десяток проектов стабильных, не имевших ни единого слета, и один регулярно слетающий. Все под ХР,  часть на 1.06,  часть, в т.ч. и слетающий, на 1.6.5. Раз поймал на том, что заагрузчик слетает при попытке динамически выделить много, слишком много памяти. На каждом проходе лупа выделяется и освобождается 512 байт - работает, а 1024 (точней два раза по 512) - уже трабла.  Причем подвисает и слетает не сразу, секунды три работает (а этож сотни раз луп проходит), затем зависает и после ребута загрузчика нет. Так что это не вирус и не троян, это скорей кривые либки ардуиновские.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

По-моему это чисто аппаратная проблема. Много раз на форуме были такие темы, но никто из "пострадавших"  так и не сделал ничего для того, что б найти причину. Я бы просто поочерёдно всё менял пока не заработает как нужно. Снял бы дамп лоадера до и после глюка, что б хоть понять как сильно он повреждается.   Впрочем  вот тут товарищу помогло промыть плату, правда она самодельная, но всех покупных тоже касается: Купил - всё пропаяй как следует, и промой :-)

MHNC
Offline
Зарегистрирован: 02.09.2019

Тоже слетает загрузчик, но картина иная:

Имеется партия из 10 шт Atmega328PU-TH c Aliexpress. Для прошивки загрузчика использую Sima Prog, фьюзы выставлены как в NANO, Lock Bit 3F: (все можно). Заливаю стандартный загрузчик из комплекта ArduinoIde 1.8 с помощью SinaProg, программатор USBbit, после чего стандартными средствами IDE заливаю скетч (например, блинк). Он выполняется, после перезагрузки работает, все норм... НО, при попытке следом залить другой скетч (блинк надоел, хочу Fade) - всё, не грузится. Проблема только с этой партией камней, другая партия (маркировку не посмотрел) работала как положено - загрузчик, потом что хочешь заливай, перезаливай...

Я так полагаю, по какой-то причине на моих "дефектных" камнях основная программа по какой-то причине перетирает загрузчик. Прошу совета, как можно попробовать с этим побороться, и, может, у кого было подобное, расскажете, как решили.

UPD:

Проблема частично решена. Загрузчик не слетает, прошивка по UART возможна, просто по какой-то причине не происходит сброс от сигнала DTR (через конденсатор), приходится при старте загрузки нажимать reset вручную. В то же время, остается непонятным, почему первая заливка скетча после прошивки загрузчика происходит как обычно, а все последующие - только с ручным reset?

 

sadman41
Offline
Зарегистрирован: 19.10.2016

После прошивки загрузчика через ICSP плата отключается от питания и включается уже через USB. А в последующие разы, видимо, не отключается от питания. Может собака тут порылась - что-то не разряжается или наоборот...