Отладил устройство на ардуине уно, сделал печатную плату и впаял атмегу328р с небольшой обвязкой для стабильной работы, такт от внешнего 16мгц кварца. Подключил все необходимое, прошил загрузчик от уно и основную программу через юсбасп программатор. Программа и все работает как надо. Подключил сериал к юсб-уарт переходнику(к ардуине с прижатым к земле сбросом). Пробовал шить - не получается. Ресет в ручную тыкал, так ни разу и не прошил. Делал так: нажимаю залить в ардуино иде, пока идет компиляция прижимаю ресет на устройстве на землю, начинается загрузка - отпускаю. Когда начинается загрузка, тх юсб-уарт, если держать ресет прижатым, моргает 3 раза. Если за эти 3 моргания не отпустить ресет, иде призадумывается, а потом говорит что програматор занят. Если ресет отпустить после первого моргания, еще дважды с той же частотой вспыхнет и рх и тх переходника и иде быстро выдает ошибку синхронизации. Если отпустить ресет после второго моргания, и рх и тх вспыхнет вместе только 1 раз и иде так же быстро скажет ошибка синхронизации. Если успеть отпустить ресет до того, как тх успеет вспыхнуть хоть раз, то видимо бут отрабатывает, а данные еще не успевают поступить и начинается основная программа. Что может быть не так?
бутлодер из ардуиноИДЕ? в смысле точно ли он подходит именно для этой платы. можно припаять провод непосредственно к резетному выходу юсб-адаптера и к нему через конденсатор подключить резет атмеги. тогда оно будет автоматически нажимать резет в нужное время. ну и фото монтажа желательно предъявить, вдруг там дикая паутина из соплей
если ардуина вот эта то провод надо припаять к левому концу С5, а затем через конденсатор 100n на резет атмеги. короче так же как на этой схеме, только продублировать эту цепочку. и таки бутлодер то откуда взят? из ардуино ИДЕ? кстати может быть просто плохой контакт - провода толстые и неудобные. с этим блютус-модулем или что это работает все?
там, если судить по фото. может быть все. что угодно. Половина дорожек на плате отслоилась от текстолита, другие порваны, огромные толстые провода припаяны прямо к тоненьким дорожкам и к пинам разъемов. и до кучи это все обмотано полосатой лентой для склеивания бумаги Автору стоит травить дорожки на плате пошире - места же вокруг полно! Ну и неплохо было бы открыть для себя разъемы типа BLS и PLS
не, это вроде обычная изолента. у меня такая же точно есть. но монтаж плохой это да, и пайка наверно некачественная. сам такой принцип типа поверхностно-навесной конечно имеет право на жизнь, но аккуратнее надо. лучше тогда уж сразу на СМД всё делать.
да причем здесь принцип - вы увеличьте картинку в районе чипа МК - там же ни одной нормальной дорожки - справа от чипа 4 или 5 штук вздыбились, ниже чипа - две или три порваны... С такой платой можно ловить глюки долго, да и потом, в работе, она будет подкидывать "сюрпризы" каждый день. Не умеешь работать с СМД - ну возьми Атмегу в ДИП и сделай все на перемычках. Тем более когда на плате куча места и вопрос размера явно не стоит.
там мутновато, может и не вздыбились, а просто капли припоя там торчат. По идее если с блютус-модулем работает что-то, то должен и бутлодер работать. Но глючить может где угодно это да.
лол. Какие порванные дорожки, все ок там, просто свет так падает. Провода великоваты, да. Но они там не для того, чтобы их дергать или многократно перепаивать. Соберу все платы вместе, запаяю все концы один раз и размещу в корпусе. Лоадер с ардуино ИДЕ для ардуино уно. Я думаю, ребзятки с ардуино нано при прошивке как то без проблем успевают сбросить МК для заливки скетча. Если я физически не могу этого сделать, значит 99.95% что дело в чем-то другом. Блютуз там висит не зря. Изначально все началось с него, во всех моих любительских проектах я шью свои поделки по воздуху. В сериал через блютуз. Оригинальная ардуина и китаец на 12МГц прекрасно шьются именно этим модулем(снял его с другой поделки чтобы сузить круг подозреваемых). Сброс автоматический транзистором. Код как в примере: Код (C++): for( int i=0; i<100; i++ ) // повторить проверку { if( Serial.read()=='0' && Serial.read()==' ' ) { Serial.write(0x14); // ответить avrdude.exe Serial.write(0x10); // для синхронизации digitalWrite(uploadpin,HIGH); // подтянуть ресет к земле } delay(10); // небольшая задержка } Выполняется программа с условием что нет кодового слова в сериале. Появляется кодовое слово - основная програма тормозит и в лупе крутится этот код из примера. И все работает на ура. Но только не здесь. И код я пробовал заливать в обычную ардуину, прошивается нормально. Один человек навел меня на мысль, что надо проверить сам интерфейс, поэтому я убрал блютуз и подрубился непосредственно к компу через юсб-уарт сделанный из ардуинки. Ща проверю окончательно вероятность 0.05% что все таки невовремя ресетаю и двинемся искать дальше.
а фьюзы правильные? я один раз когда прошивал просто забыл в программе галочку поставить, кнопку ткнул и думал всё, а они не прошились в итоге, два дня голову ломал.
Как и думал, проблема не в правильном\неправильном ресетании. Вас не смутило, что ответ оказался в моем сообщении.
многие догадались, но моё мнение - бутлоадер нафиг выкинуть, целых 2кб флеша сэкономите для программы.