?

Log in

No account? Create an account
стид

Косенко Данила

Блог писателя и программиста

Entries by category: техника

Решение проблемы "avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15"
стид
kosenko_danila
Итак, вы таки решили воспользоваться ардуино как программатором. У вас есть макетка, ардуинка, микроконтроллер и куча проводов. Больше никаких деталей вы не используете, нет никаких специальных программаторов. Вы всё делаете по инструкциям, не перепутали распиновку, правильно выставили настройки и т.п.
Но при попытке записать в микроконтроллер загрузчик вылезает надпись

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15

Что только не предлагают, когда гуглишь эту ошибку! А ларчик просто открывается.
Вам нужен конденсатор на 10 мкФ. Лично я использовал 10мкФ на 16 вольт для ардуины Нано. И мне хватило.
Цитирую дочти дословно из одной статьи:
---------
Необходимо установить конденсатор на 10 микрофарад между GND и Reset на ардуино, минусом на землю, чтобы избежать перезагрузки нашего ардуино во время заливки скетча в микроконтроллер.
-----------
Только не ставьте конденсатор в момент пришивки ардуины скетчем ArduinoISP, будут ошибки. Конденсатор нужно вставлять прямо перед тем, как запустите прошивку МК. Не перепутайте полярность. И помните, что ставится конденсатор на контакты Ардуино, а не микроконтроллера.

И будет вам прошитый контроллер.

Arduino Nano 3.0 как программатор внешнего микроконтроллера (решено!)
стид
kosenko_danila
Не хотел писать, пока сам не разберусь, да вот - не разобрался.
"Заболел" я новой темой - программирование микроконтроллеров. Аналоговую электронику понять не могу, а хотелось бы таки узнать, почему спаянная кучка деталей вдруг позволяет принимать радио и т.п.
Чисто на Си и прочих ассемблерах со всякими указателями писать не люблю. Выбрал путь "Ардуино". Такая электронная схема, позволяющая работать со впаянным в неё микроконтроллером прямо с компа. Точнее, писать в МК (микроконтроллер) прошивку напрямую с компа, потому что в плате собран программатор.
Как всякий ардуинщик, помигал светодиодом. Подцепил ЖК-экран 1602, сначала на проводках через макетную плату, затем через i2c-модуль, вывел "Hello, world!". Посоздавал свои символы с кириллицей. В общем, вёл себя, как все нормальные ардуинщики.
А потом захотел отвязать МК от платы. Нет ничего проще, утверждает Инет. Берёшь внешний МК за 200 рублей или меньше, соединяешь с платой на макетке проводками (даже без обвязки типа внешнего кварца и кондюков), прошиваешь Ардуино как программатор (через Arduino IDE пишешь скетч "ArduinoISP") и потом программируешь внешний МК при помощи неё в режиме "Arduino as ISP". Роликов и статей вагон. Например

Пробовал несколько дней.
И всё время вылезали ошибки:
Либо
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
Либо
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15

Первая, знаю, программатор не найден. Это я, отчаявшись, на reset на плате нажимал, по советам из инета. Потому что вылезала вторая ошибка.
А вот со второй - уже понял, что я делаю не так?

Дано:
Плата - Arduino Nano c МК Atmega 328
Внешний МК - Atmega8

Операционка: Linux Mint (впрочем, на восьмой винде было тоже самое).

Программы:
Arduino IDE 1.0.5
или
avrdude

Уточню, у меня китайский Arduino Nano 3.0 на CH340G.
Обновлено.
Итак, если при прошивке у вас вылетает такая ошибка:
-----------------
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
-----------------
То надо сделать вот так:
----------
Также необходимо установить конденсатор на 10 микрофарад между GND и Reset на ардуино, минусом на землю, чтобы избежать перезагрузки нашего ардуино во время заливки скетча в микроконтроллер.
----------
И будет вам прошитый микроконтроллер! :)