Counter: 46834,
today: 14,
yesterday: 32
============= はじめに ============= †
HIDaspxも2008年9月に公開以降、多くの情報が蓄積し、高度な話題に驚く方が多いようです。
そのため、このページではHIDaspxに関する基本的な記述に留めました。
- 「kumanさんによるHIDaspxの概要」
- hidspxのTips集
- HIDaspxのQ&A
を参照してください。
HIDaspxとは(2010年1月修正) †
(2008-09-02 (火) 初版)
HIDaspxは、「ATtiny2313マイコン1個で構成するUSB接続のAVRマイコン用プログラマ」です。
HIDクラスを採用し、Windows, Linux, Mac OSの何れのOSでもドライバのインストールが
不要です。またmピンの設定を行えば、USB-IOとしても利用可能になっています。
組込みマイコンの開発では、多くの場合、ドライバや開発用ソフトウェアのインストールが
必要ですが、教育現場では「ドライバやソフトウェアのインストールは禁止」という環境は
珍しくはありません。
ArduinoやWinAVRなどの開発環境は、CD-ROMやUSBメモリに格納しても利用可能ですから、
インストール不要のAVRライタがあれば、制限のある場合でも開発環境を実現できます。
そこでドライバのインストールが不要のライタの実現を試みました。HIDaspやHIDsphなど
のライタを参考に、irukaさんの協力を得て、安定化と高速化などの改良を行ったものが
HIDaspx(下図を参照)です。
(http://hp.vector.co.jp/authors/VA000177/html/A3C8A3C9A3C4A3E1A3F3A3F0.html)
HIDaspxをAVRライタとして利用するにはPC用プログラムが必要です。これには私が保守し
ているavrspxを元に、HIDaspxをサポートを追加したhidspxコマンドを開発しました。
HIDaspx対応コードには、瓶詰堂さん作成されたコード(hidasp.cの改造版)を含んでいます。
2008年10月にはhidmonコマンドが利用可能になりました。hidmonにより、プログラムを
書くことなく、AVRマイコン内の各種I/Oを操作できます。USB I/Oとして利用できる他、
ATtiny2313マイコンの学習教材としても有用です。
(http://hp.vector.co.jp/authors/VA000177/html/A3C8A3C9A3C4A3E1A3F3A3F0.html)
HIDaspxで登場する用語について †
参考「HIDaspxのシステム構成図(aduinさんによるもの)」

HIDaspxの特徴 †
- どのUSBコネクタに繋いでも動作する(ドライバのインストール不要)
- COMポートの無いPCでも利用可能(今はこれが一般的です)
- Windows 2000/XP/Vistaで動作(私は未確認ですが、Win98で動作したという報告あり)
- MacOSやLinuxでもWindowsと同様に利用可能
- 使い勝手に優れた hidspx(avrspxの別名)コマンドが利用できる
- インストール不要(CD-ROMやUSBメモリからの実行も可能)
- ターゲットのAVRマイコンを自動認識(新・旧のAVRマイコンをサポート)
- 旧タイプの一部を除き、CHIP名を指定する必要なし
- BASCOM-AVR, mikroC, AVR studioなどの開発環境にも組み込み可能
- hidspxのショートカットに、HEXファイルをD&DでもOK
- ISPコネクタを抜き差しすることなく開発可能(ターゲット実行時の影響は最小限)
- 電源の投入順序も気にする必要なし(ライタRESET時、自動再接続)
- 製作コストは最小限(安価(秋月電子では100円!)なATtiny2313のみで実現)
- 材料代は500円程度?(専用プリント基板が入手可能)
- 小型(USBメモリの形状で製作も可)
- 十分な速度で動作(USBaspとほぼ同じ)
- HUBを利用すると更に動作速度が向上(USBaspでは速度は低下する)
- USB-IOとして利用できる(hidmonを利用)
- コマンドによる対話方式で内蔵レジスタを操作可能
- スクリプトによる一括実行も可能
- DLLを使って、各種のプログラム言語(C言語, Visual BASICなど)から操作可能
※HIDaspとHIDaspxは同一のハードウェアですが、ソフトウェアの互換性はありません。
なお、HIDaspxは、エイチ・アイ・ディー アスペックスとお読みください。
NEWS 2009/2/20
2009年1月末、WS☆NAKさんから「HIDaspx用のプリント基板」がリリースされました。
これは、優れた特徴を有するHIDaspxを手軽で確実に製作できるように、私(senshu)と
WSNAKさんで検討を重ね、設計を行ったものです。
HIDaspxの製作を考えている方は、ぜひこれを利用して製作してください。
HIDaspx(USB接続のAVRライタ)の紹介 †
HIDaspxの回路図 †
■ HIDaspxの回路例(HIDsphと同じ回路です。ISPコネクタ配置はWSNAKボードに準拠)
※クリックで拡大可能(後半で紹介しているHIDsphと同じものです)
三端子レギュレータの入出力に接続している47uFのコンデンサは、USB規格としては大きすぎるようです。
発振止めにはこの程度が必要だと思いますが、規格内に収めるなら、10uF程度に留める必要があります。
(メーカーさんではどうやっているのでしょうか)

※抵抗値の記入位置と注意事項を修正しました。(2009-0907)
なお、UARTコネクタはusbRS232での利用を想定しています。AVRライタとして使うだけなら、このコネクタ
を実装する必要はありません。
※ 水晶発振子は必須です
ある方から、HIDaspではセラロックで動作するのにHIDaspxはセラミック振動子では動作しないとの報告が
ありました。HIDaspxでは V-USBを採用しており、発振周波数の誤差に敏感です。回路図にも明記
していますが、セラミック振動子(商品名の例:セラロック)では動作しないと考えてください。
以下が、私が製作したHIDaspxです。+3.3Vの安定化回路を実装し,この「ライタ」だけで、3.3V
(乾電池2本分)の回路実験が可能です.COMポートが付いていないノートパソコンによるマイコン開発
用に小型ケースに組み込んでみました.同様の目的にはUSBaspも使えますが、USBaspではドライバのイン
ストールが必要です。HIDaspxはドライバのインストールが不要という大きな特徴があります。
HIDaspxの製作例 †
多くの方が色々な実装方法で動作させています。このことにより、再現性の問題は少ない
と考えています。製作した基板の配線を再度点検(特に、GND, VDD周り)してください。
なお、ユニバーサル基板を使って確実に製作するには多くの経験が必要です。自作経験の
少ない方は、以下の項で紹介するWSNAKさんの#214基板の利用をお勧めします。この基板を
利用すれば、MINI-BのUSBコネクタを使ってコンパクトに仕上がり、製作も容易です。
また、ユニバーサル基板とのコストの差もほとんどありません。
○ ユニバーサル基板で製作する場合の配線例
簡易な実装例を示します。実用的に使うなら、WsNAK#214のように省略の無い回路を製作
してください。省略された部品があり、機能的には最小限の内容です。
以下の図は、基板を裏(ハンダ面)の図です。USBコネクタの配線時に参考にしてください。
ISP用のMISO/MOSIの結線が逆でしたので、修正しました。

新バージョン

○HIDaspx専用プリント基板の例(WSN214)
http://wsnak.com/kit/214/index.htm 私のデザインした回路を忠実に再現しています。

○USB-IO用ブレッドボード対応モジュール(WSN216 http://wsnak.com/kit/216/index.htm)
ブレッドボードへの実装を前提に小型化しましたが、意外にも製作は容易です。
(クリスタルはAVRマイコンの真下に実装しており、写真からは見えません)

○HIDaspxで書き込みを行っているところ(写真は試作基板)
最新のHIDaspx用アーカイブ(移動しました) †
⇒ http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDaspx_news02
開発に協力していただける方へ(開発環境の補足) †
※ 上記のFirmwareは、WinAVR-20060421をインストールした後に、AVR-Wikiから入手できる
「機能追加版 2006-04-22」を上書きした環境で作成しています。
http://avrwiki.jpn.ph/wiki.cgi?page=WinAVR%A5%D0%A5%B0%BE%F0%CA%F3
ATtiny2313用のファームウェアを作成したい方は、このavr-gccを利用してください。
これ以外のコンパイラでは、ATtiny2313用のFLASHサイズ2048バイトに収めることは困難です。
2006/04/22 19:14 369,664 avr-ar.exe
2006/04/22 19:14 514,560 avr-as.exe
2006/04/22 21:23 91,136 avr-c++.exe
2006/04/22 19:14 399,360 avr-c++filt.exe
2006/04/22 21:23 90,624 avr-cpp.exe
2006/04/22 21:23 91,136 avr-g++.exe
2006/04/22 21:23 89,088 avr-gcc.exe
2006/04/22 21:23 26,112 avr-gcov.exe
バージョンの確認は、CMD窓にて、以下の方法で確認できます。
>avr-gcc -v
Reading specs from C:/WinAVR/lib/gcc/avr/3.4.6/specs
Configured with: ./configure --target=avr --prefix=/c/WinAVR
--enable-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR
--disable-nls --enable-c-mbchar
Thread model: single
gcc version 3.4.6
--disable-nls --enable-c-mbcharの表示があるのを確認ください。実行ファイル群の
日付を確認するを忘れずに行ってください。
>which avr-gcc
でコンパイルに利用するコンパイラの実体(フルパス名)を確認できます。
- 開発者用のWinAVRアーカイブ(15MB)
WinAVR-0604.7z
- ファームウェアをコンパイルしたい方だけ、ダウンロードしてください
- 展開したファイル群をWinAVR20060421のディレクトリに上書きします
- いつでも戻せるように、事前のバックアップを忘れずに行ってください
パソコン用の実行ファイルは、MinGWとBorlabd C++ でコンパイルしています。
また、今まで公開してきたアーカイブは、irukaさんのサイトから入手可能です。
(大量のファイルを保管していただき、感謝いたします。)
http://psp.dip.jp/web/upload/filelist.cgi
ここにあるアーカイブに不具合を発見した場合には、旧版もお試しください。
関連プロジェクト(ATmega88/168用) †
- bootloader + hidmon88
- bootmon(ファーム・実行ファイル, ソースコード) ...
bootmon-1127.zip
- RC発振器でbootloadHIDの動作が可能(RC発振モードは評価目的に公開)
- クリスタル発振子(12/20MHz)で動作確認済み
ファームウェア(ATtiny2313)のFUSE設定 †
クリスタル発振器の場合(1028版以降の設定)
Low: 11111111 (0xFF)
||||++++-- CKSEL[3:0] システムクロック選択
||++-- SUT[1:0] 起動時間
|+-- CKOUT (0:PD2にシステムクロックを出力)
+-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)
High:11-11011 (0xDB)
|||||||+-- RSTDISBL (RESETピン 1:有効, 0:無効(PA2))
||||+++-- BODLEVEL[2:0] (111:Off, 110:1.8, 101:2.7, 100:4.3)
|||+-- WDTON (WDT 0:常時ON, 1:通常)
||+-- SPIEN (1:ISP禁止, 0:ISP許可) ※Parallel時のみ
|+-- EESAVE (消去でEEPROMを 1:消去, 0:保持)
+-- DWEN (On-Chipデバッグ 1:無効, 0:有効)
Ext: -------1 (0xFF)
+-- SPMEN (SPM命令 1:無効, 0:有効)
【FUSE情報の補足】… 以下のFUSE情報の変更は、十分注意してください。
*1 SPIEN (1:ISP禁止, 0:ISP許可)
hidspxでは、ISPを無効にするWriteは行いません。
*2 RSTDISBL (RESETピン 1:有効, 0:無効)
hidspxでは、ISPを無効にする書き込みには特別な指定が必要です。
※ 2008-1028版以降では、PD2端子はAVR programmer/USB-IO の識別ピンです。
そのため、FUSE設定は12MHz クリスタルに合わせ、上記のように設定します。ただし、
外部に発振器を接続していない時にこの設定を行うと、発振器を接続するまで ISP 方式
のライタによる読み書きが出来なくなりますので、ご注意ください。
回路図とおりに製作している場合には、1kΩの抵抗により、従来のファームを使って
いる場合でも悪影響はありません。
この変更は、一つのハードウェアをAVR programmer/USB-IOとして共用する場合に重要な
仕様変更です。オープンでProgrammer、GNDに接続時、USB-IOとして利用します。このモード変更は、
HIDaspxモジュールがRESET時に一度だけ判断します。動作後にPINを変更してもモードは変わりません。
hidspxで利用する時には、Programmer モード、hidmonから利用する時には、USB-IOモードに設定して
ください。特に、Programmerモードでは、PB2には1MHzのクロック信号が出力されます。
この状態では、PB2をUSB-IOとしては使えませんので、ご注意ください。
HIDaspxをAVR programmerとして使う場合には、従来(以下の設定)のままで利用可能です。
PD2からの外部クロック出力を有効にする場合(従来の設定)
Low: 10111111 (0xBF)
||||++++-- CKSEL[3:0] システムクロック選択
||++-- SUT[1:0] 起動時間
|+-- CKOUT (0:PD2にシステムクロックを出力)
+-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)
hidspx, hidmonなどのコマンドについて †
hidspx.exe, hidmon.exeなどのコマンドは、GUIツールから呼び出すことも可能ですが、
基本的にはコマンドプロンプト上で利用するツールです。
一度はコマンドプロンプト(CMD窓)でご利用いただき、CUIの便利さを堪能ください。
現在(2009年)は、hidspxからAVRマイコンのデータシートやヒューズ設定などを確認できるWeb
ページを自動で開く機能なども利用できます。
(1) HIDaspx 解説ページ ⇒ このページ
- HIDクラスを採用しATtiny2313一個で実現した「AVRライタ兼USB-IO」
(hidaspを参考にスタートしましたが、今は互換性はありません)
- シンプルでローコストに製作できるハードウェア
- HIDクラスの採用により、ドライバのインストールは不要
- USB接続で高速に動作する(特にUSB-HUB経由の利用時)
(2) hidspxコマンド
- HIDaspxをAVRライタとして使う場合に使用するプログラム
- SETUPコマンドで、簡単に導入できる
- AVRマイコンを自動認識し、旧タイプのAVRマイコンもサポート
- BASCOM-AVRやAVRstudioとの統合利用も可能
(3) hidmonコマンド
⇒ http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDmon00
- HIDaspxをUSB-IOとして利用する時に使用する
- HIDaspxのみでAVRマイコンの学習が可能
- hidmon.dllを使えば、一般的な言語(C言語やVB, VBAなど)から制御可能
(4) bootmon
⇒irukaさんによる解説 http://hp.vector.co.jp/authors/VA000177/html/HIDmon88.html
- シンプルでローコストに製作できるハードウェア
- ATmega88/168用(12/16/20MHzのクリスタル発振子、あるいは内蔵RC発振器で動作)
- ブートローダ&簡易AVRマイコン用モニタです(現時点ではAVRライタ機能はありません)
- bootloadHID互換のbootloader機能
- AVRマイコンモニタ(簡易デバッガ)
(5) bootloadHIDコマンド
- bootmon用の書き込み用ツール
- 任意の開発ツールで作成したHEXファイルを書き込み、実行できる
(6)hidmon88コマンド
- AVRマイコン内のRAMやI/Oの読み書き、EEPROMやFLASHの読み出しが可能
- 対話的(一括実行も可能)な操作が可能
- シンボリック(レジスタ名は名前で指定)に操作可能
※ bootmonの名前が示すとおり、現時点ではAVRライタ機能はありません。
HIDaspxの完成度が高いので、AVRライタとしてはHIDaspxを使ってください。
HIDaspxが複数台あっても、HIDaspxは多機能で汎用性があり無駄にはなりません。
シリアル情報を設定すれば、一台のPCに複数台のHIDaspxを接続して利用できます。
このように、AVRマイコンを使って学習を考えている方には魅力的な仕様です。
どちらも、irukaさんと共同で開発を行ない、多くの方からの助言を元に、現在に
至っています。
(irukaさんの作成されたbootmonに対し、シリアル情報のサポート、RC発振対応
やmega168対応、各周波数のHEXファイルの一括生成やsetup機能を追加しました)
なお、bootmonではRC発振モードを利用できますが、hidmon88用のコード
が入りません。12や20MHzのクリスタルでの利用をお勧めします。
動作確認済みのAVRリストと動作速度の目安 †
| MCU名 | Device Signature | FLASH | page | EEPROM |
| AT90S2313 | 1E-91-01 | 2048 | | 128 |
| ATtiny2313 | 1E-91-0A | 2048 | 32 x 64 | 128 |
| ATtyny26L | 1E-91-09 | 2048 | 32 x 64 | 128 |
| ATtyny45 | 1E-93-06 | 4096 | 64 x 64 | 256 |
| ATtyny85 | 1E-93-0B | 8192 | 64 x 128 | 512 |
| AT90S4433 | 1E-92-03 | 4096 | | 256 |
| AT90S8515 | 1E-93-01 | 8192 | | 512 |
| ATmega8515 | 1E-93-06 | 8192 | 64 x 128 | 512 |
| ATmega48 | 1E-92-05 | 4096 | 64 x 64 | 256 |
| ATmega8 | 1E-93-07 | 8192 | 64 x 128 | 512 |
| ATmega88 | 1E-93-0A | 8192 | 64 x 128 | 512 |
| ATmega168 | 1E-94-06 | 16384 | 128 x 128 | 512 |
| ATmega64 | 1E-96-02 | 65536 | 256 x 256 | 2048 |
| ATmega644P | 1E-96-0A | 65536 | 256 x 256 | 2048 |
| ATmega128 | 1E-97-02 | 131072 | 256 x 512 | 4096 |
※ これらのAVRマイコンは、8MHz以上のクロックで動作していれば -d1でRead/Write可能です。
その時の読み取りは 4kB/秒程度です。書込み速度はベリファイが必要なため、この1/2程度になり
ます。この時間は、hidmon benchテストで15kB/秒の場合です。
HIDaspxの利用者から、「ATmega8, ATmega64, ATtiny45でも使える」との報告がありました。
1014a版を使い、ATtiny2313で2kBの全領域をWrite/Verify時間は、
8MHzの場合(-d1)で約1秒、
1MHzの場合(-d4)で約3秒です。
>timeit hidspx -d0 2kB.hex
Detected device is ATtiny2313.
Erase Flash memory.
Write Flash: 2048/2048 B
Verify Flash: 2048/2048 B
Passed.
Elapsed Time: 0:00:00.953
HIDaspxをライタとして利用する †
HIDaspxをAVRマイコン用のライタとして利用するには、hidspxコマンドを使います。
USB IOとして操作する場合には、hidmonコマンドを使ってください。
hidspxのオプションについて †
- HIDaspxライタとターゲットボードを6Pケーブルで接続します。
- 電源はターゲットボードから供給が基本です。
- コマンドプロンプトを起動し、CDコマンドでHEXファイルのあるディレクトリに移動します。
- そのフォルダ内で直接コンソールを開く方法(↓)を利用すると便利です。
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2Fnews01#l124df77
| コマンド | オプション | 機能 | 備考 |
| hidspx | 無し | オプション書式とサポートライタ類を表示 | (-?で詳細表示) |
| hidspx | --show-options | コマンド行を表示後に実行 | iniファイルの設定内容を含む |
| hidspx | --atmel-avr | Atmel社のAVRのページを開く | Web browser(要インターネット接続) |
| hidspx | --avr-devices | AVR マイコンのDEVICE一覧 | Web browser(要インターネット接続) |
| hidspx | -pu? | USBのサーチ結果を表示 | DLLバージョンも同時に表示 |
| hidspx | -pcN | com writerを指定 | Nは接続COMポート番号 |
| hidspx | -pbN | com spi Bridgeを指定 | Nは接続COMポート番号 |
| hidspx | -phN | HIDaspxを指定 | シリアル番号の指定も可能 |
| hidspx | -? | サポートデバイス一覧を表示 | |
| hidspx | -r | Device Read(デバイス仕様を表示) | |
| hidspx | -rf | Read Fuse | |
| hidspx | -rF | Read Fuse (command line example) | |
| hidspx | -ri | Read Fuse Information | Web browser(要インターネット接続) |
| hidspx | -rd | Read Document | Web browser(要インターネット接続) |
| hidspx | XXX.hex | Flash Write(複数ファイルを指定可) | |
| hidspx | XXX.eep | EEPROM Write(Flashと同時指定が可能) | |
| hidspx | -v- XXX.hex | Verify無しのWrite(複数ファイルを指定可) | |
| hidspx | -v XXX.hex | Verify(複数ファイルを指定可) | |
| hidspx | -rp | Read Program | >出力ファイル名でファイルに出力可能 |
| hidspx | -fL<hex> | Fuse Lowの設定 | -ri で詳細を確認可能 |
| hidspx | -fH<hex> | Fuse Highの設定 | -ri で詳細を確認可能 |
| hidspx | -fX<hex> | Fuse eXtendの設定 | -ri で詳細を確認可能 |
| hidspx | -e | Erase(ロックビットの解除) | |
| hidspx | -l<hex> | メモリロックビット設定 | |
| hidspx | -qDEVICE | デバイス確認後に実行 | |
| hidspx | -tDEVICE | デバイス特定 | |
| hidspx | -dNN | Delay設定 | |
| hidspx | -w1 | Wait | 処理完了後、キー入力を待つ |
| hidspx | -wN | N秒Wait | 処理完了後、N(2以上)秒間、動作を停止 |
※ <hex>は、0x1b のように書くことができます。00011101のように2進数で書くこともできます。
詳細は、hidspxに同梱のavrx-tool.txtをご覧ください。
Tips集は、AVR/hidspx_tips(↓) にまとめました。
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2Fhidspx_tips
AVRライタなしでHIDaspx用のファームを書き込む方法 †
HIDaspxはAVRマイコンで制御している為、AVRライタを持っていない方がHIDaspxを
作成する場合、ファームウェアを書き込みをどうするかが大きな問題になります。
これはHIDaspxに限らずUSBasp等でも同様であり、「鶏と卵問題」とも呼ばれています。
hidspx内蔵のEGGライタ機能を利用する †
hidspx(avrspx)では、この問題の解決策として、RC232Cコネクタに簡単な回路を接続して
書き込む方法を提案し、これをキッカケに岩永さんが以下の解説記事を書いてくれました。
参考:鶏と卵ライター(ライターを作るためのライター)
http://qrp-homebrewers.net/eggwriter.aspx
タイトルの「AVRライタなしで」はやや誇張した表現ですが、簡易に製作できるAVRライタを
製作し、それで書き込もうというアイディアです。このアイディアの原点は、以下のTADさん
のページです。この考えを元に、kkkさんが、avrspxにこのライタ機能を実装し、hidspxは
それを継承しています。
私は「本物のRC232Cコネクタが利用できるPC」で実行する必要がありと考えていましたが、
TADさんのページには秋月電子のUSB変換ケーブルでもOKと書かれています。
http://homepage2.nifty.com/denshiken/AVW009.html
HIDaspxの部品の多くを流用できるので、追加コストはD-SUBのコネクタ、若干のRC、
スイッチ、電池など、電子工作マニアなら手持ちの部品が大半です。
これほど簡単に製作可能なら、これを使ってみようと思う方がいるかもしれません。しかし、
RS232Cのポートが必要で、書き込みが遅く、書き込んだ内容の検もできませんので、HIDaspx
などのライタ用の最初のファームを書くための道具と考えてください。
☆ブレッドボードで試作した「鶏と卵問題を解決する書き込み器」
…AVRライタが手元にたくさんあるので、全く気合が入っていません。 ![[smile]](image/face/smile.png)
このライタでは正確な12MHzは必要なく、4〜10MHz程度のセラミック振動子でも問題なく
利用できます。また購入直後のTiny2313なら、出荷時内蔵オシレータに設定されているので
セラロックなどの発振子は不要です。しかし、HIDaspx用のFUSE設定を行うと、発振器無し
では動作しないので、FUSE設定が不明のATtiny2313には発振器を実装してください。
また、通電確認のためのLEDと負荷抵抗の省略や、スイッチ操作に自信があれば、ジャンパー
線を手配線で代用することも可能でしょう。
自分なりに工夫した回路で、HIDaspxのファームを書き込んでください。
ただし、HIDaspxにはクリスタル発振子が必須ですので、誤解のないように!

☆「鶏と卵問題を解決する書き込み器」の回路図

☆書き込み用のBATファイル
==== egg-write.bat ====
@echo off
echo RS232-RC方式の書き込みを開始します。
echo RESET 解除SWを押してから、Enterキーを押下してください
pause
echo 書き込み終了まで、約40秒です
hidspx -pf1 -ttiny2313 -fL0xFF -fH0xDB -fX0xFF main-12.hex
echo 書き込み完了しました
☆書き込みの実行例
RS232-RC方式の書き込みを開始します。
RESET 解除SWを押してから、Enterキーを押下してください
続行するには何かキーを押してください . . .
書き込み終了まで、約40秒です
Detected device is ATtiny2313.
Erase Flash memory.
Flash memory...
Writing [##################################################] 2010, 0.02s
Passed.
Fuse Low byte was programmed.
Fuse High byte was programmed.
Fuse Extend byte was programmed.
Progress : 0....1....2....3....4....5....6....7....8....9.... done.
Total read/write size = 2010 B /36.53 s (0.05 kB/s)
書き込み完了しました
この書き込みを数回行ない、全て正常にHIDaspx用の制御チップとして機能しました。
ただし、上記のライタは書込みのみでベリファイを行わないので、HIDaspxが完成後、
別のチップにHIDaspxで書き込みを行ない、差し替えることをお薦めします。
kumanさんのページも大変参考になります。
http://www.geocities.jp/kuman2600/n6programmer.html#10
「FTDI BitBang AVR-Writer」を利用する †
追記 2009-09-07
「FTDI BitBang AVR-Writer avrdude-serjtag」を利用して、HIDaspx用のファームを
書き込みました、という報告がFENG3のBlogにありました。
AE-FT232のようなUSB-シリアルの変換モジュールをお持ちなら、「外付けAVRライタ無しでBootloaderを書き込む」
http://www.geocities.jp/arduino_diecimila/bootloader/index.htmlを参考にすれば、
ファームをウェアを書き込むことができます。
私も、すzさんのソースをベースに、改良を進めています。→ AVR/avrdude10
USB-HUBの利用で高速化 †
HIDaspxの転送速度を向上させるには、OHCIのUSB I/Fを使うほかに、UHCIでもUSB 2.0規格の
HUBを介することで、OHCI以上の速度が得られ、格段に使用感は向上します。
HUB経由の利用を初めて行う方は、hidmonのbenchコマンドで転送速度を検証してください。
このテストで異常がなければ、HIDaspxをHUB経由で利用することが可能です。
関連情報(hidmonの紹介)
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDmon00
>hidmon
^^^^^^
■ UHCIのポートに接続
AVR> bench
hid write start
hid write end 38000 10953 s 3469 byte/s
AVR> q
Bye.
■ UHCIのポートからHUB経由で接続
AVR> bench
hid write start
hid write end 38000 2250 s 16888 byte/s
AVR> q
Bye.
このように4〜5倍程度の違いが生じます。17kB/sの転送速度は、RS232C(115.2kbps)の
速度を上回るものです。
USB 2.0規格のHUB経由で利用すれば、UHCI規格のPCでも転送速度が上がるため、
HIDaspx全体の処理速度が向上し、結果としてUSBaspxに迫る性能が得られます。
HIDaspとの出会い(コラム) †
先の問題を改善する為、ネット上で公開されている瓶詰堂さん開発の「HIDを使ったAVRライタ(HIDasp)」を
試作してみました。http://www.binzume.net/library/avr_hidasp.html
HIDaspは、ATtiny2313のみで構成され、安価に製作でき、ドライバのインストールが不要です。非常に魅力
的な仕様を持っていますが、製作して使ってみると、
- Windows 2000ではエラーになり使えない(Windows Vistaでは動作しない)
- かなりの頻度でISP移行時にエラー(AVRマイコンを認識できない)になる
- HIDaspの電源ON直後の通信でエラーになることが多い
- 類似の構成のUSBaspに比べ、処理に時間がかかる
- ISP用の信号がHi-Zになっておらず、回路構成によって不具合が生じる
などの問題を確認しました。改善したいと細かな修正を試みましたが、なかなかうまく行きません。
追記
この件を瓶詰堂さんに報告したところ、HIDasp(≠HIDaspx)の修正版を公開していただきました。
以下の問題点が改善されました(私は動作を確認しておりません)。
- Windows 2000で使えない問題
- 電源ON時にリセット状態
HIDaspxリンク集 ---【関連ページへの移動にご利用ください】 †
- HIDaspxに関する情報
- HIDaspx 更新履歴
- HIDaspxに関するQ&A
- HIDaspxの製作レポート 利用者の声
- HIDaspxによる教材開発
- AVRライタに関するFAQ集
- 掲示板にも関連情報があります
- 「V-USB」(このソフトがHIDaspxを支えています)
- HIDaspxをWindows以外のOSで利用する
- HIDaspxをUSB-IOとして利用する例
- HIDaspxのハードウェアをusb-RS232のブリッジとして利用
※ ページの簡素化を図りました。以前のページの内容は↑のPDFをご覧ください。
関連するページへのリンク
AVR開発ツールのリンク(外部)