小山智史(弘前大学)

AVRライター

 以下、Arduino-1.6.9で確認しています。

1. Arduino UNO / NANO版 ArduinoISPライター

 Arduino開発環境(ArduinoIDE)の[スケッチの例]にあるArduinoISPをArduino UNOまたはNANOに書き込み、ArduinoをISPライタとして使う方法です。

(製作メモ)

部品表
名称入手先等
Arduino UNO R3
Arduino NANO
秋月 2940円
秋月 2780円
(Amazonでは相当品が400円程度)
L型ピンヘッダ 40P 秋月 50円
抵抗 1/4W 100Ω 4個 秋月 100本 100円
電解コンデンサ 10μF 1個 秋月 10円
ICクリップ ITC-20A 秋月 1360円
リボンケーブル 5芯 千石 273円(6芯×1m)
  1. Arduino IDEで[ファイル][スケッチの例][ArduinoISP]をArduino UNO / NANOに書き込む。
  2. 抵抗とICクリップをリボンケーブルで接続する。ICの1番ピンの箇所には●印がついているので、方向を間違えないようにICクリップにも同じ箇所に●印をつけておく。10μFのコンデンサは必ず上記の書き込みをしてから接続する。
  3. ライタソフトはArduinoIDEにあるAvrdudeを使う。
  4. ArduinoIDEで利用する場合は、hardware/arduino/platform.txtに以下を追加する。 tools.arduinoisp.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/avrdude tools.arduinoisp.config.path={runtime.ide.path}/hardware/tools/avr/etc/avrdude.conf tools.arduinoisp.upload.params.verbose=-v tools.arduinoisp.upload.params.quiet=-q -q tools.arduinoisp.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} "-Uflash:w:{build.path}/{build.project_name}.hex:i" -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m tools.arduinoisp.program.params.verbose=-v tools.arduinoisp.program.params.quiet=-q -q tools.arduinoisp.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i" tools.arduinoisp.erase.params.verbose=-v tools.arduinoisp.erase.params.quiet=-q -q tools.arduinoisp.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m tools.arduinoisp.bootloader.params.verbose=-v tools.arduinoisp.bootloader.params.quiet=-q -q tools.arduinoisp.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.file}:i"
  5. ArduinoIDEで利用する場合は、hardware/arduino/boards.txtに以下を追加する。 # target cpu: ATtiny4313 arduinoisp4313.name=ArduinoISP - ATtiny4313(8MHz) arduinoisp4313.upload.tool=arduinoisp arduinoisp4313.upload.maximum_size=4096 arduinoisp4313.upload.maximum_data_size=256 arduinoisp4313.upload.speed=19200 arduinoisp4313.bootloader.tool=arduinoisp arduinoisp4313.bootloader.low_fuses=0xe4 arduinoisp4313.bootloader.high_fuses=0xdf arduinoisp4313.bootloader.extended_fuses=0xff arduinoisp4313.bootloader.file=dummy/blink4313.hex arduinoisp4313.bootloader.unlock_bits= arduinoisp4313.bootloader.lock_bits= arduinoisp4313.build.mcu=attiny4313 arduinoisp4313.build.f_cpu=8000000L arduinoisp4313.build.core=arduino arduinoisp4313.build.variant=attiny4313 arduinoisp4313.build.board=AVR_ARDUINOISP4313 # target cpu: ATmega328P arduinoisp328.name=ArduinoISP - ATmega328(8MHz) arduinoisp328.upload.tool=arduinoisp arduinoisp328.upload.maximum_size=30720 arduinoisp328.upload.maximum_data_size=2048 arduinoisp328.upload.speed=19200 arduinoisp328.bootloader.tool=arduinoisp arduinoisp328.bootloader.low_fuses=0xe2 arduinoisp328.bootloader.high_fuses=0xd9 arduinoisp328.bootloader.extended_fuses=0x07 arduinoisp328.bootloader.file=dummy/blink328.hex arduinoisp328.bootloader.unlock_bits= arduinoisp328.bootloader.lock_bits= arduinoisp328.build.mcu=atmega328p arduinoisp328.build.f_cpu=8000000L arduinoisp328.build.core=arduino arduinoisp328.build.variant=atmega328 arduinoisp328.build.board=AVR_ARDUINOISP328
  6. ArduinoIDEで利用する場合は、[ツール][ボード]で「ArduinoISP - ATtiny4313(8MHz)」や「ArduinoISP - ATmega328(8MHz)」を選択し、[ツール][書込装置]で「Arduino as ISP」を選択する。
  7. 書き込み時には必ず回路の電源(電池)をオン状態にしておく。
  8. Arduino UNOの場合は、8ミリビデオのケースにちょうど収まる。Arduino NANOの場合は、動作が確認できたら抵抗やケーブルを接続したArduinoボードをテープできれいに巻いて完成。テープは「日東電工 アセテート粘着テープ No.5(千石電商 924円)」がお勧め。

2. Da Vinci版 ArduinoISPライター

 Arduino Leonardo互換のDa Vinciを使うとコンパクトなISPライターを作ることができます。ただし、製作過程は少々複雑です。

(製作メモ)

部品表
名称入手先等
Da Vinci 32U ストロベリーリナックス 1300円
抵抗 1/4W 100Ω 4個 秋月 100本 100円
ICクリップ ITC-20A 秋月 1360円
リボンケーブル 5芯 千石 273円(6芯×1m)
  1. まずArduino UNO / NANOでArduinoISPライターを作る。
  2. ArduinoISPライターからISPケーブルで Da VinciのICSP端子に接続する(Da VinciはUSB接続しない)。
  3. boards.txtの278行目付近を以下のように変更する(ブートローダーを使わずに書き込むため)。 6の書き込みが終わったら元に戻す。 #leonardo.upload.protocol=avr109 leonardo.upload.using=arduino:arduinoisp
  4. ArduinoIDEの[ツール][マイコンボード]でArduino Leonardoを選択する。[ツール][書込装置]でArduino as ISPを選択する。
  5. Da Vinci 32U(DFUタイプ)の場合は、[ツール][ブートローダを書き込む]でLeonardoのブートローダーを書き込む。これにより「クロック 1/1」のヒューズ設定となる。(Da Vinci 32U with Arduino Bootloaderの場合はクロック 1/1になっているのでこの操作は不要)
  6. [ファイル][スケッチの例][ArduinoISP]の81行目付近の // #define USE_OLD_STYLE_WIRING のコメント記号「// 」を削除し、書き込む。
  7. 抵抗とICクリップをリボンケーブルで接続する。ICの1番ピンの箇所には●印がついているので、方向を間違えないようにICクリップにも同じ箇所に●印をつけておく。
  8. ライタソフトはArduinoIDEにあるAvrdudeを使う。
  9. ArduinoIDEで利用する場合は、hardware/arduino/programmers.txtの46行目付近 arduinoasisp.protocol=stk500v1 を arduinoasisp.protocol=arduino 48行目付近 arduinoasisp.program.protocol=stk500v1 を arduinoasisp.program.protocol=arduino に変更する。
  10. boards.txtおよびplatform.txtは1と同様。
  11. ArduinoIDEで利用する場合は、[ツール][ボード]で「ArduinoISP - ATtiny4313(8MHz)」や「ArduinoISP - ATmega328(8MHz)」を選択し、[ツール][書込装置]で「Arduino as ISP」を選択する。
  12. 書き込み時には必ず回路の電源(電池)をオン状態にしておく。
  13. 動作が確認できたら抵抗やケーブルを接続したArduinoボードをテープできれいに巻いて完成。テープは「日東電工 アセテート粘着テープ No.5(千石電商 924円)」がお勧め。

3. HIDaspx(ヒダピオ) ISPライター

 HIDaspxは千秋広幸氏が開発したAVRライタです[1]。「ヒダピオ」は浅田寿展氏が開発した制御学習教材で[2]、そのハードウェア部分(HIDaspxそのもの)が(株)トップマンから「ヒダピオ学習回路」として販売されているので[3]、ここではこれを用います。

 インシステムで(マイコンが装置に組み込まれた状態で)書き込むタイプの「ISPライター」としました。マイコンに接続しやすいようにICクリップを用います。

 ライタソフトはHIDspxを用い、ヒダピオの場合は「-php」のオプションをつけます。

(製作メモ)

部品表
名称入手先等
ヒダピオ学習回路 6530-700 トップマン 1950円
細ピンヘッダ 14P 秋月 15円
抵抗 1/4W 100Ω 4個 秋月 100本 100円
ICクリップ ITC-20A(ATtiny2313/4313用) 秋月 1360円
ICクリップ ITC-8A(ATtiny45/85用) 秋月 480円
リボンケーブル 5芯 千石 273円(6芯×1m)

細ピンヘッダに抵抗とケーブルを半田付けし、
リボンケーブル(5芯)でICクリップ(20P)に接続


ヒダピオと接続し、テープで固定

動作中のATtiny2313/4313に
クリップで接続して書き込み

細ピンヘッダに抵抗とケーブルを半田付けし、
リボンケーブル(5芯)でICクリップ(8P)に接続


ヒダピオと接続し、テープで固定

動作中のATtiny25/45/85に
クリップで接続して書き込み
ATtiny2313/4313用ISPライター ATtiny25/45/85用ISPライター

 以下のように、ICクリップを用いずに、しかも半田付けをせずにISPライターを作ることもできます。ただし、ピンの結線を間違えないよう注意が必要です。線の色分けを決め、ブレッドボードの該当箇所に色シールを貼るとよいでしょう。

(製作メモ)

部品表
名称入手先等
ヒダピオ学習回路 6530-700 トップマン 1950円
ブレッドボード EIC-301 秋月 190
ブレッドボード用 ジャンプワイヤ SPP-70 千石 10本 483円
L型ピンヘッダ 40P 秋月 50円
抵抗 1/4W 100Ω 4個 秋月 100本 100円


半田付けせずにライタが完成

ジャンパピンでマイコンと接続
  1. ICの1番ピンの箇所には●印がついているので、方向を間違えないようにICクリップにも同じ箇所に●印をつけておく。
  2. ArduinoIDEで利用する場合は、hardware/arduino/platform.txtに以下を追加する。 tools.hidapio.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/hidspx tools.hidapio.upload.params.verbose= tools.hidapio.upload.params.quiet= tools.hidapio.upload.pattern="{cmd.path}" -php -d6 -fh{bootloader.high_fuses} -fl{bootloader.low_fuses} "{build.path}/{build.project_name}.hex" tools.hidapio.program.params.verbose= tools.hidapio.program.params.quiet= tools.hidapio.program.pattern="{cmd.path}" -php -d6 -fh{bootloader.high_fuses} -fl{bootloader.low_fuses} "{build.path}/{build.project_name}.hex" tools.hidapio.erase.params.verbose= tools.hidapio.erase.params.quiet= tools.hidapio.erase.pattern="{cmd.path}" -php -e tools.hidapio.bootloader.params.verbose= tools.hidapio.bootloader.params.quiet= tools.hidapio.bootloader.pattern="{cmd.path}" -php -d6 -fh{bootloader.high_fuses} -fl{bootloader.low_fuses} "{runtime.platform.path}/bootloaders/{bootloader.file}"
  3. ArduinoIDEで利用する場合は、hardware/arduino/programmers.txtに以下を追加する。 hidapio.name=HIDapio hidapio.communication= hidapio.protocol= hidapio.speed= hidapio.program.protocol= hidapio.program.speed= hidapio.program.tool=hidapio hidapio.program.extra_params=
  4. ArduinoIDEで利用する場合は、hardware/arduino/boards.txtに以下を追加する。 # target cpu: ATtiny4313 hidapio4313.name=HIDapio - ATtiny4313(8MHz) hidapio4313.upload.tool=hidapio hidapio4313.upload.protocol= hidapio4313.upload.maximum_size=4096 hidapio4313.upload.maximum_data_size=256 hidapio4313.upload.speed=19200 hidapio4313.bootloader.tool=hidapio hidapio4313.bootloader.low_fuses=0xe4 hidapio4313.bootloader.high_fuses=0xdf hidapio4313.bootloader.extended_fuses=0xff hidapio4313.bootloader.file=dummy/blink4313.hex hidapio4313.bootloader.unlock_bits=0xff hidapio4313.bootloader.lock_bits=0xff hidapio4313.build.mcu=attiny4313 hidapio4313.build.f_cpu=8000000L hidapio4313.build.core=arduino hidapio4313.build.variant=attiny4313 hidapio4313.build.board=AVR_HIDAPIO4313 # target cpu: ATmega328P hidaspx328.name=HIDaspx - ATmega328(8MHz) hidaspx328.upload.tool=hidspx hidaspx328.upload.protocol= hidaspx328.upload.maximum_size=30720 hidaspx328.upload.maximum_data_size=2048 hidaspx328.upload.speed=19200 hidaspx328.bootloader.tool=hidspx hidaspx328.bootloader.low_fuses=0xe2 hidaspx328.bootloader.high_fuses=0xd9 hidaspx328.bootloader.extended_fuses=0x07 hidaspx328.bootloader.file=dummy/blink328.hex hidaspx328.bootloader.unlock_bits=0x3F hidaspx328.bootloader.lock_bits=0x3F hidaspx328.build.mcu=atmega328p hidaspx328.build.f_cpu=8000000L hidaspx328.build.core=arduino hidaspx328.build.variant=atmega328 hidaspx328.build.board=AVR_HIDASPX328
  5. ArduinoIDEで利用する場合は、[ツール][ボード]で「HIDapio - ATtiny4313(8MHz)」や「HIDapio - ATmega328(8MHz)」を選択し、[ツール][書込装置]で「Arduino as ISP」を選択する。
  6. 書き込み時には必ず回路の電源(電池)をオン状態にしておく。

4. HIDaspx(ヒダピオ) ZIPソケットライター

 上と同じくHIDaspx(ヒダピオ)を使ったライターですが、ISPタイプではなく、AVRマイコンIC単体をICソケットに装着して書き込むタイプです。プログラムが完成していて、組み立て前にプログラムを書き込みたい時にはこれがあると便利です。マイコンを装着しやすいようにゼロプレッシャーICソケット(ZIPソケット)を用います。

(製作メモ)

部品表
名称入手先等
ヒダピオ学習回路 6530-700 トップマン 1950円
ゼロプレッシャーICソケット 20P サトー電気 350円
ブレッドボード EIC-301 秋月 190円
ジャンパーワイヤ EIC-J-S 秋月 250円
L型ピンヘッダ 40P 秋月 50円
抵抗 1/4W 100Ω 4個 秋月 100本 100円

 以下の写真の方法で組み立てると、半田付けをしないですみます。


ブレッドボードに部品を配置・結線

L型ピンヘッダで接続するとライターが完成

[1] AVRaspx, http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDaspx_news02
[2] ヒダピオ, http://www.hidapio.jp/
[3] ヒダピオ学習回路, http://www.topman.co.jp/ky/download/hidapio/hidapio_00.html
[4] Arduino IDE 1.5 3rd party Hardware specification, https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification


koyama@hirosaki-u.ac.jp