HIDasp ドライバインストール不要のAVRライタ

hidasp.jpg

Tiny2313とAVR USBでAVRライタを作ってみました.大学の授業やサークルで,USBaspを使っていたのですが,ドライバのインストールでのトラブルも多く,mega88は高価なので,自分で作ってみました.USBのHIDクラスなのでドライバのインストールは不要ですし,ATTiny2313は秋月で100円で買えるのでとてもコストパフォーマンスが高いです.

特徴

制作方法

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

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

回路

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

circuit.png

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

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

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

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

GND
5V
D+
D-

必要な部品

部品個数購入場所の例
attiny23131秋月
12MHzクリスタル1秋月
ピンヘッダ1秋月
68Ω2千石
100Ω4千石
1kΩ2千石
1.5kΩ1千石
22pF2千石
0.1uF2千石
LED2千石
3.6V ZD2千石

他に,基板とか,線材とか.

ソフト・ファームウェア

ここにあるものよりも,千秋ゼミの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.