Menu

My Works
- LEDチェッカ
- 太陽電池式回路テスタ
- TTL Pong
- DSP プリセットラジオ
- 電動式 CVCC 電源装置
- OLED MP3 プレーヤ
- etc.

Report
- MIDI のハードウェア
- aitendo DSPラジオ一覧表
- etc.

Parts Collection
- Logic IC
- Calculator LSI
- CMOS Melody IC
- etc.

Blog

Recent Updates

主な更新のみ

24/09/11
- MCU-based Melody ICs

24/08/12
- MCU-based Melody ICs

24/03/10
- Logic IC Collection


AVR ライタを作ろう (vusbtiny)

初版公開:2014/05/23


 
(左)見た目はシリアル変換ケーブル(右)ケース内部

ずっと使っていた AVR プログラマ(usbasp)がくたびれてきたので、新しい AVR プログラマを作りました。vusbtiny という attiny45 を使った USB 接続のプログラマのクローンで、内蔵 RC 発振器で動作するため水晶不要、非常にシンプルな回路が特徴です。したがって今回は私のオリジナルではないのですが、せっかく作ったのでここで紹介したいと思います。

今回の作例では MLF パッケージの AVR を使用することで、4x4 という非常に小さなユニバーサル基板上に組み上げました。USB 接続の AVR プログラマとしては世界最小の実装面積だと思います。加えて、プログラマ部分を D-SUB 9ピンのシェル内に組み込み、インタフェース部分を別にすることで、さまざまな ISP コネクタ規格や挿入型プログラマへと柔軟に対応することができます。


(システム概要)

回路図

ジャンパにより USB 給電に対応します。C2 と R4 が地味ながらポイントで、これがないと活線挿入時にターゲット基板のデカップリングコンデンサの影響で電源電圧がドロップしてしまいます。

写真


外観は USB-シリアル変換器にしか見えません。


ISP インタフェースモジュール。USB給電機能は不用意に切り替わらないよう、ジャンパによって設定します。


挿入型インタフェースモジュール。ISP を実装したくないような場合にはこれを使って書き込みます。
めったに使わないので板バネの IC ソケットで十分です。

製作


今回使用する attiny45 の MLF パッケージです。4mm x 4mm というサイズです。
底面にパッドがあるので裏返して実装します。

 
4x4 のユニバーサル基板に 12 個のパーツを押し込んでいます。


例によって UEW で配線を行います。MLF パッケージへのハンダ付けは、実は見た目より簡単です。

 
D-SUB シェル内に余裕をもって入れることができました。


tiny45 へのプログラム書き込みは、写真のように D-SUB コネクタを通して行うと良いでしょう。
もちろん別のプログラマが必要になりますが・・・。

ISP-SIL コネクタについて

別ページでも述べたように、標準的な 2 列 6 ピンないし 10 ピンの ISP コネクタは不都合が多いので、本ページの製作例では共通して 1 列 6 ピンの ISP コネクタを使用しています。
私はこのコネクタを ISP-SIL コネクタと呼ぶことにしています。

以下にこのコネクタの特徴をあげます。

簡単な配線:上記ピン配置により、どの AVR でもユニバーサル基板上に隣接して直感的に配線が可能です。面倒な ISP 配線から開放されます。

省スペース:基板側に丸ピン IC ソケットを使用することで、ピンヘッダを使用するよりも低背に仕上がります。プログラマ側は小径のピンヘッダが使用できます。

共通の挿入方向:写真のようなアダプタを使うことで、どの種類の AVR でも「押しボタンの有るほうが IC 側」という接続になります。コネクタ挿入方向で迷う煩わしさから開放できることは、意外に大きなメリットです。

 
ISP-SIL アダプタ(冒頭回路図参照)。
リセットスイッチと電源インジケータ LED を実装しています。

 
ISPコネクタの例。

 
プログラミング時のワンスナップ。
必ずコネクタのリセットスイッチの有る面が AVR 側となります。

avrdude の簡単なつかいかた

vusbtiny は usbtiny の移植機なので、usbtiny 向けに作られた書き込みソフトウェアがそのまま使用できます。デファクトスタンダードである avrdude はこの usbtiny プログラマに対応しています。

avrdude は 他の書き込みソフトウェアと比較すると MCU の指定が必須な点が若干煩わしい感じがします。全てのコマンドラインオプションは オンラインドキュメント上に記述されています。

コマンドライン実行例

・ATmega88 への FLASH 書き込み:

avrdude -p m88 -c usbtiny -e -U flash:w:[ファイル名]:a

-U 以降が操作を行うメモリ{flash,eeprom,hfuse,lfuse,efuse,...}動作{r,w,v}、ファイル名or値、フォーマット{a,m,h,b,...} を指定します。-U オプションは複数個記述可能で、書かれた順番に操作が行われます。フォーマットは省略可能です。

・ATtiny2313 へのヒューズ書き込み:

avrdude -p t2313 -c usbtiny -U efuse:w:0xFF:-U hfuse:w:0xDF:m -U lfuse:w:0x62:m

上記のように書き込む値については即値の指定が可能です。

参考資料