USB付きのAVRはDFU-Bootloaderを持っていて,パソコン側からDFUに対応したしたソフトを使いAVRライタ無しでプログラムが読み書きできます。
WindowsであればAtmel社純正のFlipツールをダウンロードして利用できますが,MacやLinuxにはFlipツールが提供されておらず別のソフトを利用します。Macではportsからインストールできますがバージョンが古く新しいデバイスに対応していません。
portsのDFU-Programmerがバージョンアップされ最新のデバイスにも対応しました。
$ sudo port install dfu-programmer
で,インストールすることができます。 以下の自前ビルドは不要です。
DFU-ProgrammerのソースをダウンロードしてきてMac上でビルドすることにします。
DFU-Programmerはlibusbを使いますが,Arduino IDEが入っていればlibusbを新たにインストールする必要は無いようです。
$ ./configure --disable-libusb_1_0
$ make
$ sudo make install
使い方 例:ATmega32U2にtest.hexを書き込む
$ dfu-programmer atmega32u2 flash test.hex
ヘルプの表示を次に掲載します。
$ dfu-programmer --help
Usage: dfu-programmer target[:usb-bus,usb-addr] command [options] [global-options] [file|data]
global-options:
--quiet
--debug level (level is an integer specifying level of detail)
Global options can be used with any command and must come
after the command and before any file or data value
commands:
configure {BSB|SBV|SSB|EB|HSB} [--suppress-validation] data
dump
dump-eeprom
dump-user
erase [--suppress-validation]
flash [--suppress-validation] [--suppress-bootloader-mem]
[--serial=hexdigits:offset] {file|STDIN}
flash-eeprom [--suppress-validation]
[--serial=hexdigits:offset] {file|STDIN}
flash-user [--suppress-validation]
[--serial=hexdigits:offset] {file|STDIN}
get {bootloader-version|ID1|ID2|BSB|SBV|SSB|EB|
manufacturer|family|product-name|
product-revision|HSB}
getfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST|
BODEN|ISP_BOD_EN|ISP_IO_COND_EN|
ISP_FORCE}
setfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST|
BODEN|ISP_BOD_EN|ISP_IO_COND_EN|
ISP_FORCE} data
setsecure
reset
start