HIDaspx
はじめに†
HIDasp(x)とは?†
- 瓶詰堂さんが作成された、USB経由でAVRに書き込むライターです。
- 外部リンク
- 瓶詰堂さんのHPへのリンク
- 千秋ゼミにアクセスできない場合の対処方法 --- DNSのトラブルだそうです。
- Q&A
- HIDasp情報 -- 瓶詰堂さんオリジナルのHIDaspを制作する場合のQ&Aです。
高速化の記録†
- HIDasp高速化 -- 書き込み速度を高速化出来ないかと、試行錯誤を行った実験記録です。
高速化後のHIDaspの入手先†
最新版ダウンロードファイル
- 上記URLにsenshu様が取り纏められた最新アーカイブがあります。
- 上記リンクからも最新版がダウンロード出来るように致しました。
配線方法
- USBのD+は 75Ω経由でPD3に接続。
- USBのD−は 75Ω経由でPD4に接続
- USBのD−は、同時に 2.2kΩ経由でPD5プルアップ。
正式の配線図
- MISO/MOSIは書き込みターゲットデバイスに対してはクロス接続になります。
- この理由は、ATtiny2313のSPI機能が元々MASTERデバイスではない(のに、ソフトウェアでMASTERとして機能させている)ためです。
- MISO/MOSIのクロスについてはATmega等を使用したライターと異なりますので注意してください。
最小構成の回路図 兼 配線図
- 水晶の負荷コンデンサ(22pF x 2)を省略しても大抵は動作しますが、12MHz発振周波数の精度が悪くなります(ずれます)
- USB D+ D-とGND間の青色LED x 2 を省略して
も大抵は動作しますが、ホストPCによってはUSB認識出来ないことがあります。---昔のUSB1.1までのPCなら動作することもありました。
- 青色LEDは3.3VツェナーDiの代用品、兼USBバスモニタになります。赤色LEDは順方向電圧が異なるので使用できません。
- 白色LEDの順方向電圧は青色LEDとほぼ同じなので使用可です。(青色LEDに黄色蛍光体を使って合成色の白にしています)
- 3.3VツェナーDiを使用する場合はDiの向きは逆になります。(ツェナーは逆耐電圧によるクランプですが、LEDは順方向電圧でクランプします。)
使い方
- hidspx-2010-****.zipアーカイブに含まれるReadme-j.txtをお読みください。
- hidspx.exeと同じディレクトリに設定ファイルhidspx.iniを置いて、適切なオプションを設定しておいてください。
使用例
- 接続されている書き込みデバイス情報を見る。
HIDspx -ph -r
- main.hexを書き込んでみる。
HIDspx -ph main.hex
- 書き込まれているプログラムを読み出す。
HIDspx -ph -rp >rom.hex
おまけ:HIDmonを作成しました。†
- HIDmon88 を参照してください。
情報†
- 実はすでにWindows2000での接続性不具合改善を行ったHIDaspが瓶詰堂さんのHPで公開されているようです。
- さらに、配線図もHIDsph互換にされているようです。
- 高速化版HIDaspxの配線も瓶詰堂さんの最新回路図と共通化されました。
- プロトコルに関してはsenshu様のほうが高速版HIDaspxを取り込んで頂きました。どうもありがとうございました。
- 基本的なプロトコルは瓶詰堂さんのものと同一ですが、HID Descriptor部分の実装の違いにより、現状ではホストPC側のツールは瓶詰堂さんのものと互いに流用が効かないのでご注意ください。(瓶詰堂さん申し訳ございません m(_ _)m )
最初にAVRライターを持っていない場合はどうすればいいの?†
- HIDasp情報 Q&Aの問7を参照してください。
もしくは、千秋ゼミ:AVRライタなしでHIDaspx用のファームを書き込む方法 †
以下のページも参考になります
■ 鶏と卵ライター(ライターを作るためのライター)
HIDaspxリンク†
JA制御 ヒダピオシステム 〜HIDaspxを利用した中学生(高校生)のための制御学習〜
HIDaspx応用編†
- HIDtester --- HIDaspxハードウェアを使用してA/D変換器や抵抗測定器にする
- KeyBoardマニア --- HIDaspxハードウェア*1とPS/2タイプのパソコン用キーボードを使用して電子楽器風のおもちゃを作る。
- PICspx --- HIDaspxハードウェアで、PIC18Fマイコン用のFlash書き込みを行う。
- hid_blaster --- HIDaspxハードウェアを使用してARMマイコンのFlash書き込みとOpenOCDデバッガを実行する。
*1 もしくはATmega88など