Доигрался я со своей Ардуинкой, и сжёг несколько пинов у чипа =))
Но так как они мне все были нужны, сгонял в магазин за заменой, взял чип Atmega 328P но и программатора у меня под рукой не оказалось да и паять было лень.
Благо на Ардуинке присутствует микросхема от ftdi (ft232rl) благодаря которой Ардуинку можно подключать через usb, а в системе появляется виртуальный com-порт,
но у неё есть ещё один режим работы так называемый Bit-Bang т.е. можно напрямую дёргать её ножки. Этим мы и воспользуемся.
Чип Atmega 328 а так же 168 и большинство других прошиваются через протокол SPI, на самой ардуинке присутствует разъём для этого под названием SPI или ICSP
так же выведен разьём микросхемы ft232rl (под названием x3 или как то так с четырьмя ножками)
Всё, что нам нужно для заливки прошивки, это их соединить по схеме:
Если чип прошивается на самой плате, то подключать питающую линию не нужно. (да, можно прошивать чип ардуинки с другой ардуинки)
Выглядит примерно так:
Фото честно спёрты с robocraft.ru =)
Вот впринципе и всё =)
Дальше устанавливаем avrdude командой:
sudo apt-get install avrdude
Потом открываем консольку и переходим в каталог установленной Arduino IDE:
cd /opt/Arduino/hardware/arduino/avr/bootloaders/atmega
Узнаем как там чип:
sudo avrdude -c arduino-ft232r -p m328p -P ft0 -U hfuse:r:-:h -B 4800
Если вывод показывает что всё прошло успешно, то заливаем прошивку:
sudo avrdude -q -C /etc/avrdude.conf -p m328p -c arduino-ft232r -P ft0 -B 4800 -e -U flash:w:ATmegaBOOT_168_atmega328.hex
Ну и на последок прошиваем фьюзы:
sudo avrdude -C /etc/avrdude.conf -p m328p -c arduino-ft232r -B 4800 -u -U lock:w:0x3f:m -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m
Вот и всё =) Отсоединяем провода, перетыкаем usb и можно залить простенький скетч.
За что какие параметры отвечают можно прочитать вызвав «avrdude -?»
[warning]
Для чипа Atmega168 прошивка будет ATmegaBOOT_168_diecimila.hex
фьюзы:-Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m -Ulock:w:0x0F:m
чип: m168
Для Atmega8 прошивка будет в папке atmega8 файл ATmegaBOOT.hex
фьюзы: -Ulfuse:w:0xdf:m -Uhfuse:w:0xCA:m
чип: m8
В Arduino IDE выбираете плату Arduino NG or older и чип Atmega8