MacBookAir.

AVR書込器の製作(USBasp編)


最初PICをやりたかったんですが、Macで使う為の環境や書き込み器の問題で挫折しちゃいました。 その後AVRが出て、Mac上での開発環境や安価な書き込み器が充実してきました。 現在では趣味でAVRの工作/開発をMac上でやっています。 開発環境は「CrossPack-AVR」が使えます。そして書き込み器にはISP方式に対応した「USBasp」を作って使っているので紹介します。

USBasp

これからは低消費電力な1チップマイコンを部品のように使う時代です。 PICやAVR、そしてARMのCPUコアを使った面白い部品が出てます。

こういった部品を使って趣味で遊ぶ為には、安価な開発環境と安価な書き込み器の存在が重要です。

AVR書き込み器

USBasp製作

とはいえ、安価なAVR書き込み器であるUSBaspを作るためにはそのコントローラであるAVRチップへの書き込みが必要・・ という問題があるのですよ。

仕方なく、まずはWindowsマシンのパラレルポート接続で、抵抗4本だけのAVRライタを作りました。 これを使い、WindowsマシンでUSBaspのファームをatmega48に書き込んでもらいました。

AVR書き込み器

USBasp完成

一度書き込んでしまえばあとは作るだけ。

フォトカプラで絶縁する事も考えましたが、バッファ入りのUSBaspで作りました。

AVR書き込み器

USBaspの限界

ところが最近の新しいATxmegaやATtinyは書き込み方式が「TPI」や「PDI」になり、私も従来のatmega系を3.3Vで作ることが多くなってきたのです。

しかしUSBaspの回路の基本が5.0V動作では、3.3Vのターゲットに直結できません。ここはキチンとレベル変換したいところです。

ハードウェア

「USBasp改」回路

そこで、通販で見つけたDIP品の74VHC9541を使ってレベル変換を組み込むことにしました。

まずはISPだけ3.3V対応です。「TPI」や「PDI」はケーブル側で送受信混合をやることになります。(当面使う予定はないので)

回路解説

74VHC9541の特徴はいろいろありますが、2~5.5V動作、入力端子に寄生Diがないので、 電源電圧にかかわらず入力電圧は0~5.5Vが可能。入力端子には無電圧時の保護回路も内蔵してます。 この特性を利用して5V→3.3V変換します。さらにG端子を「動作中」のLED端子で制御します。
VHC9541

動作確認

気になるのは、MISOのAVR入力端子も切り離されてHi-Zになってしまう為に10KΩでP-UPしてる部分。 74VHC9541は出力トレラントの機能はないので、これはできれば入れたくないのです。(100KΩでもいいかも)

SCK、MOSI、RSTも100KくらいでP-UPしたほうがよいカモですが、入れてません。

3.3Vターゲット

TPI対応

TPI接続時の配線はこのようになります。「TPI_ISO_OPT」を定義してDATA-INとDATA-OUTを別ポートにしています。VHC9541で変換後に混合します。

PDIの端子割り振りもTPIにあわせたものになってほしいですね。(正式に対応するかは「?」ですが。)

TPI配線

ケース作って完成!

ケースに入れて完成
簡単なケース(紙工作)に入れて完成です。3.3V系に直接書き込めるのはいいですね。
最近のAVRは1.8Vから動作可能ですが、1.8Vはバックアップ動作の限界電圧と考え、通常動作は3.3Vで設計するのがよさそうです。

新しいatxmegaは3.3V仕様(5.0V動作不可)なので、PDIに対応するなら最低限3.3V対応は必須です。新しいデバイスが使用可能になるのはうれしいですね。