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

Follow me!