1.はじめに
- Da Vinch 32U はストロベリー・リナックスが製造・販売しているATmega32U4搭載のマイコンボードです。
- これをAVRライタ AVRISP mkII(クローン) に変身させます。
- ISP,TPI,PDI の書き込みプロトコルに対応しています。
- lufaプロジェクトのAVRISPmkIIクローンのソースコードからファームウェアをビルドしたhexを用います。
- AT90USB62を使用したAVRISPmkIIクローンのFRISK USBTiny MkIIの回路を採用します。
この記事は「Arduino IDE配下のATtiny他の開発環境」で使用することを目的とし
“AVRDUDE ver6.2″で動作確認をしています。
“Atmel Studio”での使用については対象外で全くテストしていません。
2.用意するもの
- Windowsパソコン (Mac / Linux のバーチャルマシン上で動くWindowsでも可)
- Arduinoブートローダが書き込まれていないDa Vinci 32U
Arduinoブートローダが書き込まれている場合は「Da Vinci 32Uを初期状態にもどす方法」を参照して初期状態に戻します。 - dfu-programmer
DFUモードでATmega32U4にプログラムを書き込むツールです。
dfu-programmer-win-0.7.2.zipをダウンロードし展開しまます。 - Atmel USBドライバパッケージ
DFUモードのAVRデバイスやAVRISPmk2用のドライバ詰合せです。
driver-atmel-bundle-7.0.888.exe をダウンロードします。 - AVRISP mkII クローンファームウエア
AVRISP-MKII_ATmega32u4.zip
解凍するとAVRISP-MKII_ATmega32u4.hexが生成されます。
3.Da Vinci 32U AVRISP mkII クローン接続図
図1
PF4ポートの「Voltage」はターゲットの電圧をモニタするものですが,+5Vにプルアップするかオープンのままで使えます。
4.AVRIPSP mkII化作業
- USBケーブルをつなぎ,HWB端子をGNDに接続してリセットスイッチを押した後,HWB端子のGNDとの接続を切ります。(GNDに接続したままでも良いが念のため切り離す)
- ATMEL ATm32U4DFU または Atmel Corp IOUSBHostDevice が現れます。
- ダウンロードしたdriver-atmel-bundle-7.0.888.exewを実行してAtmel USBドライバをインストールします。図2
- dfu-programmer-win-0.7.2.zipを展開生成したフォルダの配下のdfr-programmer.exeがある場所に
AVRISP-MKII_ATmega32u4.hexを移動します。 - コマンドプロンプト(cmd.exe)を起動します。
- コマンドプロンプトのcdコマンドでdfu-programmer-win-0.7.2.zipを展開生成したフォルダに移動します。
- 次のコマンド入力でatmega32u4のflashメモリを消去します。
dfu-programmer atmega32u4 erase –force - 次のコマンド入力でAVRISPmk2クローンのファームウェアを書き込みます。
dfu-programmer atmega32u4 flash AVRISP-MKII_ATmega32u4.hex
5.動作テスト
- HWB端子をGNDに接続しないでUSBケーブルをつなぎます。
- ATMEL AVRISP mkII が出現します。Arduio IDEと連携させて用いるには汎用USBドライバlibsubをインストールします。
libusbのインストール方法はOS環境等によってさまざまに適する方法がありますので libusb AVRISP 等のキーワードでWeb検索してご自分のOS環境に適した方法でインストールします。 - 前述の図1を参照にしてAVRデバイスを接続し読み書きを試します。
【参考】WindowsでAVRISPmk2用にlibusbドライバをインストールする方法
- libusbセットアップツールibusbK-3.0.7.0-setup-chk.exeをダウンロードする。
ドライバを選択インストールするためのツールです。 - libusbK-3.0.7.0-setup-chk.exeを起動してUsbk-Dvelopment Kitをインストールします。
Driver Install Creator Wizard 他1件がインストールされます。 - Driver Install Creator Wizardを起動します。
- Libusb0を選択して[Next]をクリックします。図3
- ラジオボタンShow all Devicesを選択するとAVRISPmkIIが表示されるのでAVRISPmkIIを選択し[Next]をクリックします。図4
図3
図4
- [Next]図5,[Next]図6と進んで行きます。
図5
図6
- Finish & Install Driver Now をクリックしてドライバのインストールを行います。図7
図7
6.活用
ATMEL AVRISP mkIIとして正しく動けば次によりArduino IDEから色々なAVRデバイスを利用することができます。
7.Da Vinci 32Uを初期状態にもどす方法
Arduinoブートローダを書き込んだATmega32U4をDFUローダー搭載の初期状態にもどします。
AVRライタ,AVRライタソフトが必要です。
- DFUローダー詰め合わせmegaUSB_DFU_Bootloaders_2e.zipをダウロードし展開します。
- AVRライタをDa Vinci 32Uに接続し,AVRライタソフトを起動します。
AVRライタやソフトは多種多様で個別説明できませんので以下に必須操作の要点を述べます。 - Da Vinci 32Uの全メモリを消去します。
- 下のようにヒューズビットを設定します。
lowFuse 0xFF , highFuse 0xD9 ,extendedFuse 0xC3
Fuseの設定を誤るとDa Vinci 32Uがゴミと化すので要注意 - megaUSB_DFU_Bootloaders_2e.zipを展開したフォルダの中の
ATMega32U4-usbdevice_dfu-1_0_0.hexを書き込みます - LockBit 0xEFを設定します。
- HWB端子をGNDに接続してリセットスイッチを押します。
USBデバイスATMEL ATm32U4DFUが出現します。
以上で初期状態にもどります。
8.参考
- Da Vinci 32Uとよく似たマイコンボードに32U4を搭載したSparkFun Pro Micro があります。中華製クローンは$3程度で流通しています。
- Pro MicroもAVRISP mkIIクローンファームウェアを書き込んで動かすことができますがTPICLK信号線がピンに出ていないのでTPI書き込みはできません。(TPICLK信号を基板内から取り出す改造を施せばTPI書き込みはできます)
Update 2017.12.10
Upload 2016.12.26 Kimio Kosaka