Senshu LAB
サイト内検索: AND検索 OR検索  


Counter: 125738, today: 5, yesterday: 25

お願い:このページは表示が遅いので、ここにはBookMarkしないでください。

============= はじめに =============

HIDaspxも2008年9月に公開以降、多くの情報が蓄積し、高度な話題に驚く方が多いようです。
そのため、このページではHIDaspxに関する基本的な記述に留めました。

を参照してください。

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-struct.png

HIDaspxの特徴

  • どのUSBコネクタに繋いでも動作する(ドライバのインストール不要)
    • COMポートの無いPCでも利用可能(今はこれが一般的です)
    • Windows 2000/XP/Vista/7/8/8.1で動作(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を利用)

※HIDaspとHIDaspxは同一のハードウェアですが、ソフトウェアの互換性はありません。
なお、HIDaspxは、エイチ・アイ・ディー アスペックスとお読みください。

NEWS 2009/2/20
2009年1月末、WS☆NAKさんから「HIDaspx用のプリント基板」がリリースされました。
これは、優れた特徴を有するHIDaspxを手軽で確実に製作できるように、私(senshu)と
WSNAKさんで検討を重ね、設計を行ったものです。
HIDaspxの製作を考えている方は、ぜひこれを利用して製作してください。

HIDaspx用プリント基板(HIDaspx以外にも利用できます)http://wsnak.com/kit/214/index.htm
USB-IO用ブレッドボード対応モジュールhttp://wsnak.com/kit/216/index.htm

HIDaspx(USB接続のAVRライタ)の紹介

HIDaspxの回路図

■ HIDaspxの回路例(HIDsphと同じ回路です。ISPコネクタ配置はWSNAKボードに準拠)
※クリックで拡大可能(後半で紹介しているHIDsphと同じものです)
三端子レギュレータの入出力に接続している47uFのコンデンサは、USB規格としては大きすぎるようです。
発振止めにはこの程度が必要だと思いますが、規格内に収めるなら、10uF程度に留める必要があります。
(メーカーさんではどうやっているのでしょうか)

HIDaspx-0914.jpg
※抵抗値の記入位置と注意事項を修正しました。(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-BRD1.jpg

新バージョン
zoom

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

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

○HIDaspxで書き込みを行っているところ(写真は試作基板)
WSN214-215.jpg

最新の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) fileWinAVR-0604.7z
    • ファームウェアをコンパイルしたい方だけ、ダウンロードしてください
    • 展開したファイル群をWinAVR20060421のディレクトリに上書きします
    • いつでも戻せるように、事前のバックアップを忘れずに行ってください

パソコン用の実行ファイルは、MinGWとBorlabd C++ でコンパイルしています。

また、今まで公開してきたアーカイブは、irukaさんのサイトから入手可能です。
(大量のファイルを保管していただき、感謝いたします。)

http://psp.dip.jp/web/upload/filelist.cgi

ここにあるアーカイブに不具合を発見した場合には、旧版もお試しください。


関連プロジェクト(ATmega88/168用)

  • bootloader + hidmon88
    • bootmon(ファーム・実行ファイル, ソースコード) ... filebootmon-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 解説ページ ⇒ このページ

  1. HIDクラスを採用しATtiny2313一個で実現した「AVRライタ兼USB-IO」
     (hidaspを参考にスタートしましたが、今は互換性はありません)
  2. シンプルでローコストに製作できるハードウェア
  3. HIDクラスの採用により、ドライバのインストールは不要
  4. USB接続で高速に動作する(特にUSB-HUB経由の利用時)

(2) hidspxコマンド

  1. HIDaspxをAVRライタとして使う場合に使用するプログラム
  2. SETUPコマンドで、簡単に導入できる
  3. AVRマイコンを自動認識し、旧タイプのAVRマイコンもサポート
  4. BASCOM-AVRやAVRstudioとの統合利用も可能

(3) hidmonコマンド
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2FHIDmon00

  1. HIDaspxをUSB-IOとして利用する時に使用する
  2. HIDaspxのみでAVRマイコンの学習が可能
  3. hidmon.dllを使えば、一般的な言語(C言語やVB, VBAなど)から制御可能

(4) bootmon
⇒irukaさんによる解説 http://hp.vector.co.jp/authors/VA000177/html/HIDmon88.html

  1. シンプルでローコストに製作できるハードウェア
  2. ATmega88/168用(12/16/20MHzの水晶発振子、あるいは内蔵RC発振で動作)
  3. ブートローダ&簡易AVRマイコン用モニタです(現時点ではAVRライタ機能はありません)
    1. bootloadHID互換のbootloader機能
    2. AVRマイコンモニタ(簡易デバッガ)

(5) bootloadHIDコマンド

  1. bootmon用の書き込み用ツール
  2. 任意の開発ツールで作成したHEXファイルを書き込み、実行できる

(6)hidmon88コマンド

  1. AVRマイコン内のRAMやI/Oの読み書き、EEPROMやFLASHの読み出しが可能
  2. 対話的(一括実行も可能)な操作が可能
  3. シンボリック(レジスタ名は名前で指定)に操作可能

※ 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 SignatureFLASHpageEEPROM
AT90S23131E-91-012048128
ATtiny23131E-91-0A204832 x 64128
ATtyny26L1E-91-09204832 x 64128
ATtyny451E-93-06409664 x 64256
ATtyny851E-93-0B819264 x 128512
AT90S44331E-92-034096256
AT90S85151E-93-018192512
ATmega85151E-93-06819264 x 128512
ATmega481E-92-05409664 x 64256
ATmega81E-93-07819264 x 128512
ATmega881E-93-0A819264 x 128512
ATmega1681E-94-0616384128 x 128512
ATmega641E-96-0265536256 x 2562048
ATmega644P1E-96-0A65536256 x 2562048
ATmega1281E-97-02131072256 x 5124096

※ これらの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のオプションについて

  1. HIDaspxライタとターゲットボードを6Pケーブルで接続します。
    1. 電源はターゲットボードから供給が基本です。
  • コマンドプロンプトを起動し、CDコマンドでHEXファイルのあるディレクトリに移動します。
    • そのフォルダ内で直接コンソールを開く方法(↓)を利用すると便利です。

http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2Fnews01#l124df77

コマンドオプション機能備考
hidspx無しオプション書式とサポートライタ類を表示(-?で詳細表示)
hidspx--show-optionsコマンド行を表示後に実行iniファイルの設定内容を含む
hidspx--atmel-avrAtmel社のAVRのページを開くWeb browser(要インターネット接続)
hidspx--avr-devicesAVR マイコンのDEVICE一覧Web browser(要インターネット接続)
hidspx-pu?USBのサーチ結果を表示DLLバージョンも同時に表示
hidspx-pcNcom writerを指定Nは接続COMポート番号
hidspx-pbNcom spi Bridgeを指定Nは接続COMポート番号
hidspx-phNHIDaspxを指定シリアル番号の指定も可能
hidspx-?サポートデバイス一覧を表示
hidspx-rDevice Read(デバイス仕様を表示)
hidspx-rfRead Fuse
hidspx-rFRead Fuse (command line example)
hidspx-riRead Fuse InformationWeb browser(要インターネット接続)
hidspx-rdRead DocumentWeb browser(要インターネット接続)
hidspxXXX.hexFlash Write(複数ファイルを指定可)
hidspxXXX.eepEEPROM Write(Flashと同時指定が可能)
hidspx-v- XXX.hexVerify無しのWrite(複数ファイルを指定可)
hidspx-v XXX.hexVerify(複数ファイルを指定可)
hidspx-rpRead Program>出力ファイル名でファイルに出力可能
hidspx-fL<hex>Fuse Lowの設定-ri で詳細を確認可能
hidspx-fH<hex>Fuse Highの設定-ri で詳細を確認可能
hidspx-fX<hex>Fuse eXtendの設定-ri で詳細を確認可能
hidspx-eErase(ロックビットの解除)
hidspx-l<hex>メモリロックビット設定
hidspx-qDEVICEデバイス確認後に実行
hidspx-tDEVICEデバイス特定
hidspx-dNNDelay設定
hidspx-w1Wait処理完了後、キー入力を待つ
hidspx-wNN秒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]

このライタでは正確な12MHzは必要なく、4〜10MHz程度のセラミック振動子でも問題なく
利用できます。また購入直後のTiny2313なら、出荷時内蔵オシレータに設定されているので
セラロックなどの発振子は不要です。しかし、HIDaspx用のFUSE設定を行うと、発振器無し
では動作しないので、FUSE設定が不明のATtiny2313には発振器を実装してください。

また、通電確認のためのLEDと負荷抵抗の省略や、スイッチ操作に自信があれば、ジャンパー
線を手配線で代用することも可能でしょう。

自分なりに工夫した回路で、HIDaspxのファームを書き込んでください。
ただし、HIDaspxには水晶発振子が必須ですので、誤解のないように!
EGG-BB.jpg


☆「鶏と卵問題を解決する書き込み器」の回路図
zoom
☆書き込み用の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リンク集 ---【関連ページへの移動にご利用ください】

※ ページの簡素化を図りました。以前のページの内容は↑のPDFをご覧ください。

 

関連するページへのリンク
AVR開発ツールのリンク(外部)