AVR ISP mkIIを使ってArduino IDEからATmega328pにスケッチをアップロードする

環境はWindows 8 64bit(on VMware fusion on Mac OSX)
ここを参考に。ATmega328pの場合。
http://forum.arduino.cc/index.php?topic=118089.0

自分はブレッドボーではなくArduino UNO上のチップに転送した。
AVRへの給電が必要なのでUSBケーブルでArduino UNOをPCと接続しておく。

手順は
1. AVR ISP mkIIにlibusb-win32ドライバをインストール。
(Atmel AVR studioを入れた時に入ったJungoドライバはアンインストール)
libusb-win32ドライバはここにあるものを使った。
http://mightyohm.com/blog/2010/09/avrisp-mkii-libusb-drivers-for-windows-7-vista-x64/

Windows8だとドライバの証明書でエラー(3rd-party unsigned driver)が出るので再起動が必要。
ここを参考にインストールする。
http://www.nextofwindows.com/how-to-install-an-un-signed-3rd-party-driver-in-windows-8/

2. hardware/boards.txtに以下を追加

###############################################

atmega328bb.name=AVRISP mkII w/ ATmega328
atmega328bb.upload.using=arduino:avrispmkii
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
#atmega328bb.build.f_cpu=16000000L #UNO上で使う(外部発振16MHzの時はこっちを使う)
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=standard

###############################################

UNOは16MHzの外部発進なのでビルド設定のbuild.f_cpuで16MHzを指定してみたら
動いてるっぽいけど、Fuse bitも書き換えないといけない気がする。

3. lib/preferences.txtを書き換える
upload.using=bootloader"
の項目を
upload.using=avrispmkii"
に書き換える
普通にArduino UNOを使う場合はlib/preferences.txtは毎回書き換えないといけないのかもしれない。
(→あとで試してみたけど多分そう)

4.Arduino IDEのtool/boardをAVR ISP mk II w/ ATmega328pに指定

5. Arduino IDEのtool/programmerがAVR ISP mkIIになってることを確認

BlinkをアップロードしてみたらLEDが点滅した。
リセットを押してもパイロットLED(13番)が点滅しないのでブートローダが消えたことが分かる。

ブートローダの再書き込みは以下の記事を参照。
http://d.hatena.ne.jp/seinzumtode/20140803/1407035348