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