HIDasp

hidasp.jpg

Tiny2313とAVR USBでAVRライタを作ってみました. まだ実験目的で作っているだけなので,仕様はころころ変わると思います. 似たような名前ですが,USBaspとは全く別物です.

特徴

制作方法

下の説明のように回路を製作したのち,ファームウェアを書き込んでください.

AVRを使うので,AVRライタをすでに持っていないと作れません.

回路

AVRの動作電圧を下げる代わりに,USBの信号線に3.6Vのツェナーダイオードを入れました.

circuit.png

今まで,USBaspにあわせていましたが,HIDsph互換に変更しました.

ライタ側のTiny2313がSPIのマスターになるので,MOSI,MISOの順序は気をつけてください.

ヒューズの設定は手元では以下のようにしてます.

USBの線の色は以下のようになっているものが殆どです. 100均とかで買ったUSBケーブルを切って使う場合は参考にしてください.

GND
5V
D+
D-

ソフト・ファームウェア

ここにあるものよりも,千秋ゼミのHIDaspのページにあるhidspxの方が 完成度も高くお勧めです.

Macの人は,hidspx-1012b_osx.tar.gz(hidspx for MacOS X)を 作ってみたので使ってください. (HIDaspx用です.HIDaspファームウェアでは使えません…汗) MacPorts等でlibusbをインストールしてからmakeしてください. Linux等でも動くかもしれませんが,BSDだとダメなのを確認….

HIDaspxを使ってターゲットAVRと通信するサンプル(hidaspxterm.zip)も 作ってみました. ちょっとした工夫でAVRでもprintfデバッグ可能です.

ダウンロード(非推奨)

ファームウェアのライセンスは,AVR USBに準じます. avrspxも元のavrspxとavrspに従ってください.

使い方

avrspxに「-ph」をつけると,HIDaspを使います.

avrspx -ph test.hex

-dでディレイを指定できます.数値は時間に比例します.

プロトコル

もう少ししたら固めます.

考察

2313側では単純なことしかしていませんが, 2KBのプログラムと128Bのメモリに収めるのにかなり苦労しました. もっとプロトコルを工夫すればスピードアップも可能かと思いますが, プログラムサイズを削るのが大変です.

どうしてもサイズがオーバーしてしまうので,AVR USBのusbdrv.cも多少変更しました. AVR-USBの最新版は小さくなったようで大丈夫でした. 少し余裕が出来たので色々出来そうです.

とりあえず動いたという状態で放置していたわけですが, irukaさんsenshuさんの御二方の改良によって,快適に使えるAVRライタになりました. 感謝.

リンク

このサイトより分かりやすい説明を書いてくれている方がいるので そっちも参照するといいかも.

履歴

Copyright © 瓶詰堂 all rights reserved.