AVRやPICをXilinx JTAGケーブルで書き込むのだ

ISPは便利、だけど、、、

最近のPLDやマイコンはボード上で書き込み(ISP)ができるものが多くなりました。 パソコンの操作だけでコンパイル、書き込み、実行とやれるのはとてもらくちんで もうROMライタの世界には戻りたくなくなります。

でもいろんな会社のマイコンやPLDで遊んでいると、それぞれ専用のケーブルとか が必要で面倒ですよね。その点aJileの開発環境は Xilinxのケーブルが使えるようになっていて、こりゃグッドアイデアだな、 と感心しました。

AVRをXilinxケーブルで書き込む

で、そんな時たまたまAtmelAVRを 使う機会があり「専用ライタを買うような軟弱な真似をしてはいかん」 と思い、手元にあった Xilinx HW-JTAG-PC 互換ケーブル(*1) を使って、下記のような接続でAVRを書き込めるように uisp改造してしまいました。

(この改造はCVSで最新版を取ってくれば入っています)
この改造は、現在では (uisp-20021201 以降) 標準で uisp に含まれてます。

AVR connection

(*1) ヒューマンデータさんの XC2。 これは汎用変換基板が付属しているので、今回のような遊びには便利なのです。

PICをXilinxケーブルで書き込む

この勢いで(?) PIC にも挑戦。もちろん、使いたいデバイスは最新の PIC18シリーズです。

データシート、アプリケーションノートを調べると、おお、 LVP (Low Voltage ICSP Programming) モードってのがあるではないか。 これなら特別なハードウェアなしに、以下のような結線で書き込めそうです。

PIC connection

uispのような適当な雛形が見つからなかったので、 書き込みソフトウェアも作ってしまいました。

Cygwinのgcc用 ソースコード: picw-1.0.tar.gz (tar+gzip)
(ライセンス条件は GPLとします)

使い方は簡単。uispと同じでCygwinなどのコマンドラインから起動します。 (GUIなんて洒落たものはありません)

picw erase
デバイスを消去します
picw write < hex-file
デバイスを消去してから hex-file の内容を書き込みます
picw read > hex-file
デバイスの内容を hex-file へ書き出します
picw verify < hex-file
デバイスの内容と hex-file の内容を照合します

Windows XPのCygwin上で動作を確認しています。 Cygwinがインストールされていれば、pario.cの中のポートアドレスの設定を適当に 書き換えて(LPT1ならそのまま)あとはmake一発で良いと思います。 Linuxでも動くように作ってあるつもりですが、テストしていないので 駄目かもしれません。:-)

デバイスの種類は自動判定します。 一応 PIC18Fxx2, PIC18Fxx8, PIC18Fxx20 をサポートしているつもりなのですが、 今のところ動作を確認しているのは PIC18F452 のみです。 動作が安定しないときは強め(1kΩ程度)にPGMをプルダウン、 PGDをプルアップしてみてください。

PIC16系でもLVPをサポートしているデバイス(PIC16F627/8,PIC16F870-7など) であれば、同様の結線で書き込めると思いますが、今のところ使う予定がない のでソフト的にサポートしていません。誰か挑戦してみてはいかがでしょう。

ちゃんと作ってあるつもりなのですが、 本ページのソフトウェア、ハードウェアを試したことによる デバイスの破損等あらゆる損害について、当方は一切補償いたしません。 (無料なのですから当然です)

ともあれ、これでAVRもPICもaJileもみんなXilinxケーブルだけで開発できる ようになったわけです。
めでたし、めでたし。

(2002.9.22)


Tetsuya Okada (okayan@c-creators.co.jp)