Сразу признаюсь, что заголовок призван привлекать внимание — конечно, за $3 полноценную Arduino-плату не собрать, но минимальное решение вполне можно.
Платы проекта Arduino идеальны для макетирования и сборки прототипов, а для законченных устройств хотелось найти что-то более дешевое и доступное. В этой заметке будет описана минимальная Arduino-совместимая конструкция.
Дополнение от 25.11.2011: По последним сообщениям свежие версии bootloader'а Optiboot работают и на ATmega8, этот бутлоадер занимает всего 512байт и обеспечивает ещё большую скорость загрузки прошивки.
В качестве отправной точки использовались статьи Minimal Arduino with ATmega8 (внимание: в этой статье есть ошибка, значения fuse-битов неверны) и страница об ArduinoISP из официальной wiki. К сожалению, ни одна из этих статей в своё время не ответила на все мои вопросы, кроме того появилось желание немного «подкрутить» стандартный bootloader, но об этом ниже.
Внимание! Автор не несёт никакой ответственности за возможные последствия следования инструкциям в этой статье.
Что будет нужно:
- Arduino-совместимая плата (я использовал китайский клон Arduino Duemilanove, на момент написания заметки новая Arduino Uno не поддерживается скетчем ArduinoISP. Обновление: по сообщениям пользователей ArduinoISP из Arduino 023 поддерживает Arduino Uno). Плата будет использоваться в качестве программатора для прошивки bootloader'а и в дальнейшем как USB-TTL конвертер;
- Arduino IDE версии 0022 (последняя на момент написаний статьи);
- Микроконтроллер в корпусе DIP-28 ATmega8 или ATmega8A (функционально они идентичны, версия с буквой «A» имеет более низкое энергопотребление). Для тактирования будет использоваться внутренний RC-осциллятор с максимальнй для него частотой 8Mhz.
- Провода для соединения всего этого на время прошивки bootloader'a (я использовал беспаечную макетную плату и набор зачищенных проводов к ней)
- 1 светодиод и токоограничительный резистор на 220-500 Ом (подключается к пину №19 (PB5), это тот же выход Digital pin 13, к которому на большинстве Arduino-совместимых плат подключен светодиод L);
- 1 резистор на 10 кОм (подключается от RESET'а микроконтроллера к +5V для предотвращения произвольного сброса);
- 1 конденсатор 100 нФ (подключается между плюсом и минусом питания для фильтрации помех).
Пригодится также распечатанная схема соответствия пинов контроллера и их Arduino-названий:
Подготовка IDEВыбор именно ATmega8(A) объясняется очень просто: в местных магазинах радиотоваров не было никаких других контроллеров, поддерживаемых средой Arduino. С одной стороны, это сильно ограничило меня в объёме кода, с другой — именно благодаря тому, что код моего проекта на Arduino не поместился в память контроллера, я был вынужден разобраться с WinAVR и переписать проект под AVR-GCC. Времени на вспоминание C и чтение datasheet'ов ушло довольно много, но код получился раз в пять компактнее и, пожалуй, к программированию в среде Arduino я врядли вернусь :).
Скачайте архив с настройками и bootloader'ом и разархивировать его в папку Sketchbook (путь можно посмотреть в пункте меню File -> Preferences Arduino IDE). После перезапуска Arduino IDE в меню Tools -> Board должен появиться новый пункт ATmega8A (8MHz int. RC osc, short bootloader delay, 38400 baud rate).
В архиве находится следующее:
- Модифицированный bootloader для ATmega8 от проекта Arduino. Оригинальный исходный код можно найти в папке hardware\arduino\bootloaders\atmega8. Этот bootloader занимает всего 1 Кб (512 слов) в памяти контроллера, в отличие от более нового hardware\arduino\bootloaders\atmega, который используется для плат на основе ATmega168 и ATmega328. Отличия от оригинальной версии заключаются в следующем: уменьшено время ожидания скетча при сбросе микроконтроллера, скорость загрузки поднята до 38400;
- Файл boards.txt, в котором описана конфигурация нового типа платы (с более высокой скоростью загрузки и fuse-битами для работы от внутреннего RC-осциллятора на частоте 8Mhz).
В Arduino нужно загрузить скетч ArduinoISP (File -> Examples -> ArduinoISP), после этого Arduino может играть роль ISP-программатора практически для любых AVR чипов (я проверял на ATmega8 и ATtiny45).
Подключение «программатора» к контроллеру
Схема подключения описана на странице об ArduinoISP из официальной wiki, будет использоваться такой вариант подключения (без внешнего осциллятора):
Схема продублирована в тексте скетча ArduinoISP:
// this sketch turns the Arduino into a AVRISP
// using the following pins:
// 10: slave reset
// 11: MOSI
// 12: MISO
// 13: SCK
Обновление от 30.10.2011: Для Arduino Mega назначение выводов другое:
// 50 (MISO)
// 51 (MOSI)
// 52 (SCK)
// 53 (slave reset)
Дополнительно можно подключить светодиоды, которые будут перемигиваться при прошивке (их наличие или отсутствие на функциональность не влияет):
// Put an LED (with resistor) on the following pins:
// 9: Heartbeat - shows the programmer is running
// 8: Error - Lights up if something goes wrong (use red if that makes sense)
// 7: Programming - In communication with the slave
Проверка подключения
Arduino использует для компиляции скетчей avr-gcc, штатной утилитой для прошивки в котором является программа avrdude (расположен в этой папке: \hardware\tools\avr\bin\). Прежде чем предпринимать что-либо дальше необходимо проверить, правильно ли мы подключили контроллер с помощью следующей команды:
avrdude -v -patmega8 -cstk500v1 -PCOM10 -b19200
Назначение параметров:
- -v — выводить больше информации
- -patmega8 — тип контроллера (для ATmega8A нужно всё равно указывать atmega8)
- -cstk500v1 — тип программатора (ArduinoISP эмулирует STK500)
- -PCOM10 — номер COM-порта (можно посмотреть в меню Tools -> Serial Port в Arduino IDE)
- -b19200 — скорость обмена, скетч ArduinoISP работат на этой скорости
AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude: Device signature = 0x1e9307
avrdude: safemode: lfuse reads as E1
avrdude: safemode: hfuse reads as D9
avrdude: safemode: lfuse reads as E1
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Важно! Если всё подключено правильно, а всё равно не работает, возможно, проблема в версии avrdude. На одной из моих тестовых плат возникла следующая ситуация: avrdude из ArduinoIDE плату-«программатор» с ArduinoISP не видит, а avrdude из WinAVR работает отлично. Решение этого непонятного бага довольно простое — на время прошивки bootloader'a заменить файл \hardware\tools\avr\bin\avrdude.exe на более новую версию из WinAVR. Bootloader может прошиться не с первого раза, а со второго — жалоб о таком поведении на форумах тоже хватает. После прошивки bootloader'а можно восстановить оригинальную версию avrdude.
Прошивка bootloader'a
Самая простая часть. Нужно запустить Arduino IDE, выбрать в пункте меню Tools -> Board следующую плату: ATmega8A (8MHz int. RC osc, short bootloader delay, 38400 baud rate). Здесь указывается целевая плата, поэтому нужно выбрать именно этот пункт, а не модель Arduino-совместимой-платы, которая работает ISP-программатором.
После этого нужно запустить процесс прошивки bootloader'а командой Tools -> Burn Bootloader -> w/ Arduino as ISP. Процесс прошивки занимает 1–2 минуты.
Что же получилось в итоге
После прошивки bootloader'а и установки fuse-битов новая ATmega8A будет работать от встроенного RC-осциллятора на частоте 8Mhz. Программы в флеш-памяти контроллера ещё нет, поэтому bootloader будет запускаться снова и снова, о чём будет свидетельствовать постоянное помигивание светодиода L.
Bootloader ждет команд по UART около половины секунды после сброса микроконтроллера. Для заливки прошивки в контроллер можно использовать:
- USB-TTL конвертер (его можно собрать или купить);
- Arduino-совместимая плата со снятым контроллером.
- использование bootloader'a обеспечивает совместимость и с Arduino IDE, и с AVR Studio;
- меньше проводов для подключения (вместо линий ISP только UART). При этом UART часто используется для отладки, поэтому его все равно приходится подключать.
Архив с bootloader'ом и настройками (9 Кб)


в приложеном zip-архиве присутствует неоднозначность в вопросе "правильных" фузов. Так, в файле boards.txt указано:
ОтветитьУдалитьatmega8noxtalfast.bootloader.low_fuses=0xe4
atmega8noxtalfast.bootloader.high_fuses=0xc2
при этом в Makefile указаны
FUSE_L = 0xdf
FUSE_H = 0xca
Вопрос к автору: какие значения fuse-битов правильные? (и в чём их неправильность в исходной статье)
Фьюзы из Makefile'а будут использоваться, если вы будете прошивать бутлоадер через make program (или как там настроено в makefile'е), при прошивке bootloader'а через Arduino используется boards.txt.
ОтветитьУдалитьВ оригинальной статье:
atmega8noxtal.bootloader.low_fuses=0xe4
atmega8noxtal.bootloader.high_fuses=0xc4
У меня:
atmega8noxtalfast.bootloader.low_fuses=0xe4
atmega8noxtalfast.bootloader.high_fuses=0xc2
Разницу можно увидеть с помощью калькулятора:
http://www.engbedded.com/fusecalc/
С4 = 256 слов на бутлоадер (512 байт)
С2 = 512 слов на бутлоадер (1024 байт)
Bootloader занимает ~900Кб, поэтому нужно С2. При неправильных фьзах бутлоадер прошьётся, но не будет работать. Можно посмотреть мой и другие комментарии под статьёй
http://todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/
-> Bootloader занимает ~900Кб
ОтветитьУдалитьнаверное 900б... а то 1Мб это круто.
Неправильно указаны параметры avrdude (нужны пробелы).
ОтветитьУдалитьПрошил таким образом Mega8L.
ОтветитьУдалитьПочему-то прошивка загрузчика прошла очень быстро (секунд 5-10). Но не ясно что дальше делать: вставил прошитую микруху в arduino плату, но при попытке что-то залить в IDE пишется:
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Как посмотреть эту сигнатуру и какая она должна быть?
Сообразил посмотреть в Avrdude:
ОтветитьУдалитьProgrammer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.10s
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude.exe done. Thank you.
Т.е. выходит у микрухи стерлась сигнатура и теперь я с ней ничего не смогу сделать?
> наверное 900б... а то 1Мб это круто.
ОтветитьУдалитьДа, конечно, 900б, а не кб.
> Неправильно указаны параметры avrdude (нужны пробелы).
работает и так, кроме того среда Arduino запускает именно без пробелов (можно включить детальный вывод вот так:
http://snippets.crisp-studio.com/view/109/vklyuchenie-detalnyx-soobshhenij-kompilyatora-i-avrdude-v-arduino-ide
Разобрался почему не работала плата с прошитой микрухой.
ОтветитьУдалитьОказывается avrdude который идет с Arduino IDE не просто старая версия, а патченная версия, которая игнорирует сигнатуру чипа.
Т.е. не забудьте вернуть родной avrdude после того как будет зашит загрузчик.
> Т.е. не забудьте вернуть родной avrdude после того как будет зашит загрузчик.
ОтветитьУдалитьСтранно, я использую WinAVR с родным avrdude для прошивки через ардуиновский бутлоадер и через ArduinoISP -- работает нормально, сигнатуру говорит. Да, фьюзы будут показаны нулевыми, если прошивать через бутлоадер. А где можно почитать про то, что именно там пропатчено?
Кстати, Mega8L на 8Mhz работает от встроенного RC-осциллятора?
Что-то про reset function.
ОтветитьУдалитьДа, от внутреннего осциллятора, все по инструкции с этой страницы.
На Windows использую avrdude 5.10 из WinAVR 20100110 -- ресетит вроде бы нормально, если указать "-c arduino" нужно будет как-нибудь покопаться...
ОтветитьУдалитьСобрал, попробовал - все отлично работает.
ОтветитьУдалитьЕсть пара проблем.
Шью через RS232-TTL преобразователь на MAX232.
1. Если использовать RX, TX, GND, то момент для "старта" загрузки скетча выбрать крайне тяжело - приходится давить ресет и БЫСТРО нажимать кнопку загрузки
2.Если подать еще сигнал DTR на Reset через емкость - все шьется, но для старта скетча нужно пнуть Reset (вроде как на Freeduino все само стартовало) - может так и должно быть ? Ресет дернуть не трудно, но хотелось бы разъяснений =)
И еще - раз уж такое устройство "позиционируется" как основа для реальной "железки", не могли бы Вы опубликовать статью, как шить Arduino-скетчи без бутлоадера. Чтобы не было задержки после подачи питания - в случае с минимальным ардуино задержка маленькая, но все равно.
Заранее спасибо!
Adruino-скетчи без bootloader-а? Тут потребуется программатор... Какой программатор Вы предпочитаете? ;)
ОтветитьУдалить> 1. Если использовать RX, TX, GND, то момент для "старта" загрузки скетча выбрать крайне тяжело - приходится давить ресет и БЫСТРО нажимать кнопку загрузки
ОтветитьУдалитьВ моём случае я подключал RESET целевой ATmega8 к RESET'у на Arduino Duemilanove с вытащенным контроллером, таким образом за RESET в нужный момент отвечал конденсатор на одной из линий FT232 (как на обычной Duemilanove). Всего соединялось 4-мя проводами: RESET, GND, RX, TX.
> И еще - раз уж такое устройство "позиционируется" как основа для реальной "железки", не могли бы Вы опубликовать статью, как шить Arduino-скетчи без бутлоадера. Чтобы не было задержки после подачи питания - в случае с минимальным ардуино задержка маленькая, но все равно.
Без программатора тут не получится. В качестве программатора можно использовать ArduinoISP (который в этой статье использовался для прошивки бутлоадера). Скомилированный скетч (hex для прошивки) придётся выковыривать откуда-то из временных файлов (зависит от версии IDE).
Скомпилированный скетч обычно лежит hex-файлом в подкаталоге applet, в папке скетча.
ОтветитьУдалить> Скомпилированный скетч обычно лежит hex-файлом в подкаталоге applet, в папке скетча.
ОтветитьУдалитьНа Windows насколько помню ничего не создаётся в папке скетча, точно на 0022?
Да понятно, что придется использовать программатор. Скетчи, кстати, складываются на Linux/MacOS в /tmp. Тут весь вопрос с fuses (нужно ли их менять) и командах avrdude правильных.
ОтветитьУдалитьВедь, насколько я понимаю, fuse-бит еще и задает размер бутлоадера. А тут, если бутлоадера нет, то и fuse должен быть другой ? Вроде на arduino.cc была статья, но я лично мало что понял из нее.
> Ведь, насколько я понимаю, fuse-бит еще и задает размер бутлоадера. А тут, если бутлоадера нет, то и fuse должен быть другой ? Вроде на arduino.cc была статья, но я лично мало что понял из нее.
ОтветитьУдалитьНасколько помню, секция бутлоадера размещается в конце памяти контроллера, поэтому если прошить контроллер прошивкой, меньшей по размеру чем "размер флеша минус установленный размер бутлоадера", то при ресете контроллер стартанёт с адреса бутлоадера (там будет пусто) и не найдя его начнёт с начала прошивки.
Насколько помню, пробовал шить программатором не меняя фьюзы будтлоадера, работало.
Правильнее конечно будет поменять фьюзы и заодно lock-биты для красоты. :)
Илья, поправьте если я не прав...
P.S. Ещё один вариант, чтобы не выковыривать скетчи -- использовать другую IDE, но используя Arduino'вские библиотеки:
Eclipse:
http://habrahabr.ru/blogs/arduino/111908/
Visual Studio:
http://habrahabr.ru/blogs/arduino/111321/
Ну и тут уже один шаг остаётся до программирования на чистом AVR-GCC :)
http://snippets.crisp-studio.com/view/114/ispolzovanie-netbeans-s-winavr
Коллеги! Я правильно понимаю, что алгоритм такой примерно:
ОтветитьУдалить1. Выковыриваем hex
2. Даем программатору команду "стирать флеш" - фузы не трогаем
3. Даем программатору команду "писать флеш" - фузы не трогаем.
4. В идеале, после подачи питания, стартовать должна прошивка сразу.
Если размер прошивки для ATmega8 меньше чем 7168 байт (или сколько там получается), то всё вроде бы верно.
ОтветитьУдалитьп.2 и 3. делаются одновременно обычно (вернее, avrdude сам выполнит стирание перед прошивкой, если не указано обратное).
Спасибо, буду пробовать в скором времени...
ОтветитьУдалитьВсе получилось!
ОтветитьУдалитьСпасибо за поддержку...
Еще бы ликбез по fuses бы =)
Классно, что получилось :)
ОтветитьУдалитьПо фьюзам у DI HALT'а есть:
http://easyelectronics.ru/avr-uchebnyj-kurs-konfiguraciya-fuse-bit.html
Для конкретного контроллера можно проверить этим калькулятором:
http://www.engbedded.com/fusecalc/
Ну вот, собственно финальное (почти) описание устройства. http://a320.emulate.su/2011/02/24/dingoo-a320-arduino-%d1%87%d0%b0%d1%81%d1%82%d1%8c-%d0%b2%d1%82%d0%be%d1%80%d0%b0%d1%8f/
ОтветитьУдалитьФотки готового изделия будут позднее - допиливаю.
Привет!
ОтветитьУдалитьДай знать, когда фотки будут :) Я правильно помню, что у Dingoo есть ТВ-выход и в итоге проекта может получиться полноценный аркадный автомат? :)
Да, и многие так и делают, но я сделал нано-вариант - используется сам экран, а тв-аут выведен на тюльпаны сзади, впрочем покажу
ОтветитьУдалитьЕсли бы не эта статья, ничего бы не получилось.
ОтветитьУдалитьhttp://a320.emulate.su/2011/02/27/fallout-mod/
Да, штука зачётная и стильная получилась :)
ОтветитьУдалитьУважаемые, а можно чайнику небольшое пояснение?
ОтветитьУдалитьВыковырили HEX, а как будет выглядеть команда заливки оного в атмегу8 через ArduinoISP?
Максим, правильно ли я понял, имеется в виду как использовать ArduinoISP чтобы залить произвольный HEX-файл в произвольный контроллер подключенный ISP-проводаками?
ОтветитьУдалитьЕсли я всё понял правильно, то чтобы прошить, например attiny45, подключенный к ArduinoISP нужно следующее
avrdude -v -p attiny45 -c stk500v1 -P COM10 -b19200 -U flash:w:my_hex_file_here.hex
Целевым контроллером в данном случае является то, что подключено к ArduinoISP.
Спасибо, Артем!
ОтветитьУдалитьВ принципе уже дошло, но я лучше переспрошу :)
Все получилось! Спасибо автору статьи и за развернутые комментарии.
ОтветитьУдалитьblink.hex прекрасно залился и сразу заработал.
Классно, что всё получилось, а какой был целевой контроллер?
ОтветитьУдалитьatmega8A-PU
ОтветитьУдалитьЯ в небольшом сметении...
ОтветитьУдалитьПодскажите, а что никакой особой обвязки ненужно??? Ну разве что кроме двух резистора и двух перемычек? (я смотрю по схеме товарища ZNO http://a320.emulate.su/wp-content/uploads/2011/02/board.png)
Зачем тогда так много всего на самой ардуине?
Я так понимаю это остальное все USB, и внутрисхемный программатор.
Если все так, то получается отличный девайс - так сказать простой старт.
И еще вопрос: можно ли так прошивать те же atmega168, atmega328?
ОтветитьУдалитьПодскажите, а что никакой особой обвязки ненужно???
ОтветитьУдалить> Ну разве что кроме двух резистора и двух перемычек?
По хорошему нужно поставить пару конденсаторов на питание, чтобы сгладить помехи, но по минимуму запустится и так. Подробнее тут: http://easyelectronics.ru/podklyuchenie-mikrokontrollera-likbez.html
> Зачем тогда так много всего на самой ардуине?
На arduino стоит USB-TTL преобразователь, регулятор на 5В, схема выбора питания (от DC-джека или от USB)
> Я так понимаю это остальное все USB, и внутрисхемный программатор.
Программатора на Arduino нет, только USB-TTL преобразователь, предварительно зашитый внутрь контроллера бутлоадер прикидывается программатором и принимает прошивку.
> И еще вопрос: можно ли так прошивать те же atmega168, atmega328?
Да, можно. Кроме этого ArduinoISP прошивает любые другие контроллеры ATmel, которые программируются по ISP. Из популярных (кроме названных): ATtiny13, ATtiny2313. Единственное "но" программатор USBtinyISP, например, делает это раза в два быстрее (10с против 2-3с :)).
Подскажите в чем проблема:
ОтветитьУдалитьavrdude -v -patmega8 -cstk500v1 -PCOM4 -b19200
В ответ получаю:
avrdude: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
System wide configuration file is ""
avrdude: can't open config file "": Invalid argument
avrdude: error reading system wide configuration file ""
Спасибо! Все отлично получилось! В команде не хватает пробелов:
ОтветитьУдалитьavrdude -v -p atmega8 -c stk500v1 -P COM4 -b 19200
Странно, должно и так понимать, правда я использовал avrdude из WinAVR, а вы судя по этому "Version 5.4-arduino" из Arduino?
ОтветитьУдалитьу меня версия из ардуино не работала совсем :-(.
ОтветитьУдалитьзабыл написать, что для этого я заменил из winavr.
И то даже она почему-то обнаружила со второго запуска той же самой комманды
Этот комментарий был удален автором.
ОтветитьУдалитьВсе оказалось на много проще и не понятнее. Достаточно из во фридуино воткнуть USB в два этапа, т.е. сначала немного, потом еще чуть дальше и все скетча нет.
ОтветитьУдалитьНа макетке собрал девайс. Когда питаю всю схему от Freduino - работает хорошо. Как только запитал от зарядки с мобильного (5.2В, 0,7А) - все скетч пропал.
Исходя из этих двух наблюдений я так понимаю налицо проблемы с питанием, как решать?
И самый главный вопрос - как может питание (может действительно не правильное...) лишать меня залитого скетча????
> у меня версия из ардуино не работала совсем :-(.
ОтветитьУдалитьСудя по куску вывода запускается именно Arduino'воская версия. Не напутал с путями?
> И то даже она почему-то обнаружила со второго запуска той же самой комманды
Это глюк ArduinoISP, о нём на форумах писали и я его пару раз ловил. Обычно ничего страшного, вторая прошивка или ресет Arduino-программатора помогает.
> Теперь дело дошло до сбора уже прошитой Atmega8A-PU на макетной плате. Собираю - не работает,
>вставляю в FreeDuino - работает. Заново собираю схему - не работает.
Как сконфигурированы фьюзы на этой ATmega8? Возможно, сконфигурировано на работу с внешним кварцем, на макетке его нет, а на FreeDuino -- есть?
> Повторная заливка скеча - опять работает. Пока не поместишь на макетную плату.
> С чем связаны такие приключения? как решать?
Можно глянуть на фотку макетки и на фьюзы меги (они выводятся при прошивке).
И ещё: почему бы не оставить мегу на макетке и там же её и шить, не вынимая?
>Судя по куску вывода запускается именно Arduino'воская версия. Не напутал с путями?
ОтветитьУдалитьНет это я после комментария пробовал
Как выяснилось проблема вовсе не в моей макетной плате.
Проблема вот в чем. Скетчь теряется даже в самой Freeduino если не правильно вставить USB. А именно: вставлять в два этапа сначала немного без усилия, потом до конца. В результате скетч потерян. На сколько я помню такого небыло 328 чипом. Может я над ним не так издевался..
Возможно, дело в маленькой задержке у модифицированного бутлоадера -- он успевает "схавать" какой-то мусор во время инициализации USB-TTL и запрограммировать его в себя.
ОтветитьУдалитьНа Freeduino какой USB-TTL чип?
Во фридуино FT232RL
ОтветитьУдалитьВ том то и дело если вставить до конца сразу резким движением, то такого сброса не происходит.
Тоже самое наблюдалось когда подключал питание не от платы а от зарядного с мобилки. Но когда обвесил конденсаторами - на макетке баг пропал.
Если баг пропадает в том случае, если к TX\RX ничего не подключено -- скорее всего бутлоадер. Эта версия по описанию не так устойчива к мусору во время загрузки.
ОтветитьУдалитьТут у меня еще один неудобный момент обнаружился. А можно ли как-то сделать так, чтобы скетч в atmega8 заливать без постоянного перемещения в саму arduino. Может можно вывести какие пины и соеденить непосредственно с платой. Может ещ какие варианты. т.е. что-то вроде внутрисхемног опрограмматора
ОтветитьУдалить> А можно ли как-то сделать так, чтобы скетч в atmega8 заливать без постоянного перемещения в саму arduino.
ОтветитьУдалить1. Нужно выдернуть чип из Arduino
2. Соединить GND, RESET, TX, RX от Arduino с соотв. пинами на ATmega8.
3. Заливаться будет так, как будто Atmega8 вставлена в ардуину.
P.S. Питание ATmega8 желательно, чтобы совпадало с ардуино, т.е. 5В и там и там.
> 1. Нужно выдернуть чип из Arduino
ОтветитьУдалитьУточнени:
Имеется в виду вытащить штатный для твоей Arduino контроллер (ATmega328 скорее всего) и отложить в сторону, чтобы в раъёме DIP-28 ничего не было. После этого Arduino-плата превращается в переходник USB-TTL с автоматическим передёргиванием линии RESET при заливке скетча.
по уарту сам не работает.. не заливает..
ОтветитьУдалитьподскажите про кварц. у меня на 8мгц. не хочет работать... а на програматоре на 12 мгц от него работает нормально... вывод. поставить на 12
А что именно не работает и как собрано\подключено? Если цель сделать как в статье -- то кварц не нужен (вообще на 8 заработает, но если фьюзы поменять, а для 12 нужно как минимум бутлоадер пересобирать).
ОтветитьУдалитьКоллеги, в чем может быть проблема?
ОтветитьУдалитьИмею:
- Arduino MEGA2560 (оригинальный)
- IDE Arduino 0022
- ATmega 8A-PU
Выполняю:
- Подключил все по указанной здесь схеме.
- Прошил Arduino скетчем ArduinoISP (очевидно прошилось успешно, т.к. стал плавно помигивать диод Heartbeat на 9-й ноге).
- Далее выбираю Tools->Board->ATmega8A и Tools->Burn Bootloader->w/ Arduino as ISP
Через несклько секунд 2 раза мигает Error диод и появляется сообщение об ошибке: avrdude: stk500_getsync(): not in sync: resp=0x00
- Проверяю avrdude -v -patmega8 -cstk500v1 -PCOM3 -b19200
avrdude: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
System wide configuration file is "D:\arduino-0022\hardware\tools\avr\bin\avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
- Проверяю с самой последной версий avrdude -v -patmega8 -cstk500v1 -PCOM3 -b19200
avrdudenew: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "D:\arduino-0022\hardware\tools\avr\bin\avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATMEGA8
Chip Erase delay : 10000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 20 128 0 no 512 0 0 9000 9000 0xff 0xff
flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdudenew: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdudenew: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdudenew: stk500_disable(): protocol error, expect=0x14, resp=0x51
avrdudenew done. Thank you.
Alex.
ОтветитьУдалитьЭта ошибка означает, что программатору не удалось перевести прошиваемый мк в режим программирования. Тут может быть что угодно - неправильное соединение прошиваемого мк к программатору, неисправность мк или неисправность выводов программатора.
У меня часто бывает, что устройства не могут подключиться друг к другу, если питание на прошиваемый контроллер идет от другого источника. Тогда я перед прошивкой отключают программатор и питание, потом подключаю программатор и питание и запускаю прошивку. Т.е. нужно чтоб и программатор и питание были "свежевключенными". Почему так происходит - я так и не понял.
Но первые разы, когда я пробовал прошивать этим программатором, то ошибался в неправильном или некачественном соединении программатора и программируемого мк. Прозвони соединения между ними, попутно сверяясь с даташитами на устройства.
build_your_web,
ОтветитьУдалитьРазводка по схеме - ОК
Скетч/проц пины - ОК
Работоспособность выводов на Arduino - ОК
Пробовал с тестить ATmega88, та же ситуация.
Ума не приложу в чем дело, как-то можно проверить микруху?
Попробуйте использовать avrdude напрямую.
ОтветитьУдалитьAvrdude есть в одной из подпапок Program Files/arduino.
Если не заработает, скачайте свежую версию с официального сайта, установите в отдельную папку, попробуйте подключится используя новую версию.
Судя по ответу на команду:
ОтветитьУдалитьavrdude -v -patmega8 -cstk500v1 -PCOM3 -b19200
Программатор из Ардуины отзывается, целевой контроллер -- нет. Наиболее частая причина -- неправильное подключение. Можно фотографию подключения? Кстати, земли программатора и целевого контроллера соединены? От чего питается целевой контроллер?
Автору респект!
ОтветитьУдалитьСделал все как описано в статье, FUSE не менял, оставил как в прошивке.
Все работает.
Artem Volk.
ОтветитьУдалитьArduino отзывается, но по прежнему прошивать отказывается, ошибка - avrdude: stk500_getsync(): not in sync: resp=0x00
Arduino питается от USB компа с которого прошиваю.
Фотки тут: http://c64-alex.blogspot.com/2011/10/arduino.html
P.S. Для чистоты эксперимента купил новый чип ATmega8A, а результат остался старый. Очевидно делаю что-то не так...(
Смотри, для программирования используется SPI интерфейс, номера его пинов в скетче ArduinoISP показаны для плат на Atmega328. На твоей судя по всему нужно использовать вместо 10,11,12,13 вот эти:
ОтветитьУдалитьSPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication using the SPI library.
Взял тут:
http://arduino.cc/en/Main/ArduinoBoardMega2560
Отпиши плз, получится или нет.
Artem Volk - мой респект!
ОтветитьУдалитьДля решения вопроса с Arduino Mega нужно:
1. Перекинуть пины:
10 -> 50 (MISO)
11 -> 51 (MOSI)
12 -> 52 (SCK)
13 -> 53 (SS)
2. Скачать последнюю версию ArvDude
3. Прошивать avrdude -v -c stk500v1 -P com3 -p atmega8 -b 19200 -U flash:w:ATmegaBOOT.hex
Спасибо, добавил примечание в статью выше.
ОтветитьУдалитьПри попытке запустить загрузчик на Atmege8 выдает ошибку
ОтветитьУдалитьarduino-0023\hardware/tools/avr/etc/avrdude.conf:383 unrecognized character: "u"
> При попытке запустить загрузчик на Atmege8 выдает ошибку
ОтветитьУдалитьВ ответ на какую команду такое отвечает?
Arduino Uno не поддерживается скетчем ArduinoISP, нажаль у меня Arduino Uno. Не заметил этот момент в статье сразу.
ОтветитьУдалитьУстановите ArduinoIDE 0023
ОтветитьУдалитьArduino Uno поддерживается скетчем ArduinoISP
не вводите читателей в заблуждение.
Экспериментировал с 8A-PU и 8L-8PU, "reset" вручную. Использовал Arduino Uno
isaak, спасибо за информацию! Автор никого специально не вводит в заблуждение, просто статье уже скоро как год, а arduino 0023 вышла всего-то неделю назад ;)
ОтветитьУдалитьАвтор даже отмазался на этот счёт "на момент написания заметки новая Arduino Uno не поддерживается скетчем ArduinoISP".
ОтветитьУдалитьЕсли серьезно, то добавил в статью примечание + упомянул о том, что новый optiboot можно тоже попробовать.
Приношу свои извинения автору, но я имел ввиду комментарий Rodot
ОтветитьУдалитьАвтор не обижается и даже рад, что кто-то проверил на Arduino Uno! :)
ОтветитьУдалитьДля того чтобы создать hex файл Arduino IDE во время Upload скетча, зажмите Shift, файл в Windows 7 находится путь c:\Users\rodot\AppData\Local\Temp\....
ОтветитьУдалитьВзято с http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1287332515
простите я совсем новичок, расскажите как можно подробнее как сделать чтобы скетчи можно было заливать с первой попытки не подгадывая каких-то особых моментов? я так понимаю подключить к компьютеру не 3-мя проводами а 4-мя включая DTS? Я пытаюсь сделать автономное устройство, так чтобы его можно было использовать отдельно от "настоящей" arduino.
ОтветитьУдалитьЕсли есть "настощая" Arduino плата и отдельно контроллер с бутлоадером (дальше буду называть "цель"), то достаточно сделать следующее:
ОтветитьУдалить1. Вытащить (физически, пальцами) контроллер из настоящей Arduino.
2. Подключить от Arduino к цели следующее:
Arduino <-> Цель
GND <-> GND
RX <-> TX
TX <-> RX
RESET <-> RESET
Подключение RESET'а цели к выводу RESET на Arduino задействует механизм сброса.
Позразумеваю, что:
- У цели есть своё питание 5В (если цель питается от 3.3В (например, пары АА батареек), нужно согласование уровней).
- В цель уже прошит бутлоадер с помощью программатора или описанного в этой статье способа
ардуино то у меня есть но МЕГА, и контроллер в нее впаян ) я использую преобразователь уровней ST232BN, но с резетом как-то не все понятно из 10 попыток удалось залить скетч только один раз.
ОтветитьУдалитьМожешь кинуть ссылку -- какая именно Мега у тебя, чтобы я чего-попало не насоветовал.
ОтветитьУдалитья, конечно, не совсем мега-нуб, но кто мне объяснит: почему такое простое дело - прошить бут-лоадер в атмега8 - это такая огромная проблема для начинающего???
ОтветитьУдалитьпочему сам прощивальщик бутов а пакете Ардуино не может это всё за нубов сделать грамотно, с нужными фьюзами
сам не ожидал, что меня остановят в самом начале фьюзы...
хе-хе вроде как разобрался сам)
ОтветитьУдалитьнужно сигнал DTR из COM порта компьютера завести на ножку RESET, НО только не напрямую конечно же, а вначале через преобразователь уровней ST232BN (например нога 8 -> нога 9) а потом через конденсатор 0,1 мкф. И все заработало как часики!!!!!
фьюзы определяют конфигурацию кварца, необходимую для старта.
ОтветитьУдалитьардуина не может знать какой кварц используется в вашей схеме.
установил в программатор USBasp читую Atmega8a;
ОтветитьУдалитьзапустил оболочку Ардуино;
указал, что буду работать с Atmega8 в разделе Board;
указал, что программировать буду через USBasp;
нажал "прошить бутлоадер";
прошило!
закрыл оболочку Ардуино;
открыл программу USBASP_AVRDUDE_PROG;
решил её там прочесть, прощупать;
откликалось и читалось "на ура";
потом решил поумничать и выставить с её помощью фьюзы;
всё! после этого Atmega8 перестала откликаться;...
Все и есть просто для тех конфигураций, которые идут в стандартной поставке (например, ATmega8 + внешний кварц на 16МГц). Если нужно что-то нестандартное (например, как в этой статье), то нужно добавлять записи в boards.txt и все сразу опять становится просто -- все можно делать из среды arduino.
ОтветитьУдалить> потом решил поумничать и выставить с её помощью фьюзы;
ОтветитьУдалить> всё! после этого Atmega8 перестала откликаться;...
А причём тут среда Arduino, если фьюзы были выставлены вручную в неправильные значения? :)
т.е. не нужно было умничать, а только прошить бутлоадер из среды Ардуино?
ОтветитьУдалитьне трогая фьюзы вообще?
ArduinoIDE в процессе прошивки бутлоадера шьет и фьюзы тоже.
ОтветитьУдалить> А причём тут среда Arduino, если фьюзы были выставлены вручную в неправильные значения? :)
ОтветитьУдалитьесли всё сама грамотно ставит среда Ардуино при прошивке бутлоадер, откуда тогда в Сети так много шума и болтовни по поводу грамотной установки фьюзов???
Лучшее - враг хорошего.
УдалитьОтдельно шить фьюзы не нужно, если бутлоадер шьется из среды Arduino. При прошивке из среды снача снимаются лок-биты, затем шьются фьюзы, потом прошивка с бутлоадером, потом опять прошиваются лок-биты, насколько помню.
ОтветитьУдалитьа будут тут добрые подсказки: как теперь Атмегу оживить обратно?..
ОтветитьУдалитьА кто-нибудь знает как теперь залить скетч из новой IDE версии 1?
ОтветитьУдалитьу меня сначала была ошибка In file included from Blink.cpp:8:
D:\arduino-1.0\hardware\arduino\cores\arduino/Arduino.h:212:26: error: pins_arduino.h: No such file or directory
потом я подсунул ей этот файл - pins_arduino.h
НО теперь стала подновляться другая ошибка и я уже не знаю что с ней делать:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
> а будут тут добрые подсказки: как теперь Атмегу оживить обратно?..
ОтветитьУдалитьПроблемы с неправильными фьюзами могут быть двух видов :
1) Заперещено программирование по SPI, тогда нужен высоковольтный (HV) программатор, чтобы заново прошить фьюзы с такими значениями, при которых прошивка по SPI включена.
2) Установлен "неправильный" источник тактовой частоты -- например, внешний генератор.
Детальнее вот: http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/
По поводу проблемы со сборкой проекта на 1.0. Верни pins_arduino.h где был и попробуй вот такой boards.txt вместо того, что в архиве (основной трогать не нужно!)
##############################################################
atmega8noxtalfast.name=ATmega8A (8MHz int. RC osc, short bootloader delay, 38400 baud rate)
atmega8noxtalfast.upload.protocol=stk500
atmega8noxtalfast.upload.maximum_size=7168
atmega8noxtalfast.upload.speed=38400
atmega8noxtalfast.bootloader.low_fuses=0xe4
atmega8noxtalfast.bootloader.high_fuses=0xc2
atmega8noxtalfast.bootloader.path=atmega8a
atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex
atmega8noxtalfast.bootloader.unlock_bits=0x3F
atmega8noxtalfast.bootloader.lock_bits=0x0F
atmega8noxtalfast.build.mcu=atmega8
atmega8noxtalfast.build.f_cpu=8000000L
atmega8noxtalfast.build.core=arduino
atmega8noxtalfast.build.variant=standard
После этого скетчи должны собираться.
Илья, я подготовлю обновлённый для 1.0 архив, обновишь?
>1) Заперещено программирование по SPI, тогда нужен высоковольтный (HV) программатор, чтобы заново прошить фьюзы с такими значениями, при которых прошивка по SPI включена.
Удалить> 2) Установлен "неправильный" источник тактовой частоты -- например, внешний генератор.
спасибо за подсказки; надеюсь на 2-й пункт :)
хороший у вас форум
Да, разумеется обновлю! ;)
УдалитьА по поводу запрещения программирования SPI: фьюз SPIEN можно переключать только в высоковольтном режиме, т.е. дело не в нем. Чаще всего люди попадаются на RSTDISBL - разрешение использования пина, назначенного RESET в качестве обычного DIO. Увы, программирование в режиме ISP начинается именно со сброса :(. Чтобы его восстановить, нужен программатор с поддержкой режима параллельного программирования (в случае с ATmega8).
Ну и по факту - лезть без особого понимания во фьюзы не очень разумно, но если уж пришлось - сначала их надо прочесть, выписать на бумажку, сравнить с новыми значениями и ТРИ раза подумать о правильности изменений (я сам всегда так делаю ;)
К сожалению стало еще хуже - теперь даже не компилируется и в старой и в новой 1.0 версии IDE, на каждое ключевое слово ругается, а вывод примерно такой:
ОтветитьУдалитьwaterMachine003_Alpha_Small.cpp:21:22: error: Arduino.h: No such file or directory
waterMachine003_Alpha_Small.cpp: In function 'void setup()':
waterMachine003_Alpha_Small.pde:-1: error: 'OUTPUT' was not declared in this scope
waterMachine003_Alpha_Small.pde:-1: error: 'pinMode' was not declared in this scope
- Какая выбрана плата в настройках?
Удалить- Куда положен boards.txt из архива?
Плата выбрана: ATmega8A (8MHz int. RC osc, short bootloader delay, 38400 baud rate)
УдалитьФайл лежит в C:\Users\Например Андрей\Documents\Arduino\hardware\arduino-addons\ но только не из архива с содержанием как в Вашем посте выше.
Если выбрать любую другую плату, скетч собирается?
Удалитьда
УдалитьЕсли убрать всё из "C:\Users\Например Андрей\Documents\Arduino\" и добавить вот это прямо в boards.txt в инсталляции Arduino IDE:
ОтветитьУдалить##############################################################
atmega8noxtalfast.name=ATmega8A for test
atmega8noxtalfast.upload.protocol=stk500
atmega8noxtalfast.upload.maximum_size=7168
atmega8noxtalfast.upload.speed=38400
atmega8noxtalfast.bootloader.low_fuses=0xe4
atmega8noxtalfast.bootloader.high_fuses=0xc2
atmega8noxtalfast.bootloader.path=atmega8a
atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex
atmega8noxtalfast.bootloader.unlock_bits=0x3F
atmega8noxtalfast.bootloader.lock_bits=0x0F
atmega8noxtalfast.build.mcu=atmega8
atmega8noxtalfast.build.f_cpu=8000000L
atmega8noxtalfast.build.core=arduino
atmega8noxtalfast.build.variant=standard
собирается?
Компилируется, но все равно не заливается:
Удалитьavrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude: Send: Q [51] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude done. Thank you.
Ок, значит это уже другая (следующая) проблема. Судя по сообшению -- либо неправильно подключена целевая плата, либо бутлоадера в ней нет. Начнём с подключения. Что и как подключено?
УдалитьЭтаже плата прекрасно работает с версией 0.22, в неё даже залит скетч и прекрасно работает! А скетч общается через COM1 с встроенным сериал монитором. У меня одновременно на комьютере лежат две папки с IDE версии 0.22 и 1.0 и в из старой заливается скетч а из новой - нет (
УдалитьА попробуй вот такие настройки в boards.txt (старые нужно удалить), есть одно подозрение...
Удалить##############################################################
atmega8noxtalfast.name=ATmega8A for test
atmega8noxtalfast.upload.protocol=arduino
atmega8noxtalfast.upload.maximum_size=7168
atmega8noxtalfast.upload.speed=38400
atmega8noxtalfast.bootloader.low_fuses=0xe4
atmega8noxtalfast.bootloader.high_fuses=0xc2
atmega8noxtalfast.bootloader.path=atmega8a
atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex
atmega8noxtalfast.bootloader.unlock_bits=0x3F
atmega8noxtalfast.bootloader.lock_bits=0x0F
atmega8noxtalfast.build.mcu=atmega8
atmega8noxtalfast.build.f_cpu=8000000L
atmega8noxtalfast.build.core=arduino
atmega8noxtalfast.build.variant=standard
Этот последний вариант хорошо заработал и компилируется и заливается, но ТОЛЬКО если эта конфигурация записана в ОСНОВНОМ файле ардуины.
УдалитьКак вариант:
Удалить- "C:\Users\Например Андрей\Documents\Arduino\" -- имя пользователя тут на русском? Если указать File -> Preferences Arduino IDE -> Sketchbook на какую-то другую папку, поближе к корню диска и без русских символов в названии.
- Какая структура папок внутри папки Sketchbook?
тут ещё вопрос назрел по ходу моих изысканий;
ОтветитьУдалитьдело в том, что решил быстро сам спать Ардуино-совместимую плату;
если прошить и установить Atmega8L, то можно без кварца? т.е. на 8 Мгц?
будет работать сама и с Ардуино?
Судя по этому: http://www.atmel.com/Images/doc2486.pdf
Удалитьбез кварца на 8МГц работают и оригинальные 8 и 8L, смысл ATmega8L в том, что она может работать при более низком напряжении питания, а обычная ATmega8 -- нет. Более новая ATmega8A является заменой обоих в "модельном ряду". У нас (Украина) продаются только ATmega8A, остальных уже давно нет.
тоже из Украины;
ОтветитьУдалитькупил тут Atmega8a, но запорол, похоже; писал про это выше;
Atmega8L-8UI вытянул из платы сигнализации; стояла там без кварца;
потестил её на живучесть в программаторе; прошил в неё штатный бутлоадер;
мой вопрос был больше про 8 Мгц и работу без кварца в моей самодельной Ардуино;
в оригинальной же стоит 16 Мгц;
в моём варианте 8 и без кварца тоже всё будет фурычить?
Штатные бутлоадеры, насколько помню все на 16Мгц, т.е. их прошить можно и они прошьются, но работать не будут. Собственно по этой же причине и писал этот пост -- ATmega8A на 8МГц.
УдалитьЕщё неплохой вариант -- поставить таки кварц на 16МГц, тогда можно будет прошить новый optiboot, который всего 512 байт занимает и поддерживает высокий битрейт при заливке. Все необходимое уже есть в комплекте Arduino IDE, нужно только boards.txt подправить, вот тут я писал: http://snippets.crisp-studio.com/view/160/nastrojki-arduino-ide-dlya-atmega8a-s-optiboot
привет!
ОтветитьУдалитьотличная подсказка таки на 16Мгц его!
собрал Ардуино своими руками на Атмега8;
подключил его через КОМ-порт (обычная схема на 2-х транзисторах)
а теперь не могу понять как Ардуино настроить;
установка КОМ-порта есть; а какой программатор выбрать чтобы Ардуино заливала откомпилированные скетчи?...
Если у тебя схема согласования уровней RS232 -> TTL, то скорее всего тебе нужно будет ещё подтянуть ресет к DTR (не уверен, нужно по схеме проверить). Либо выбрать бутлоадер с большей задержкой при старте и ресетить вручную.
Удалитьну вот такую я собрал на макетной плате
ОтветитьУдалитьавтосброс не подпаял
это важно?
при попытке UPLOAD, в самом конце выдаёт "avrdude: stk500_getsync(): not in sync: resp=0x00"
Если ресет ни к чему не подключен, то нужно ресетить вручную в нужный момент.
Удалить