=========================================================================== PIC Writer for FM TOWNS Version 0.20c All rights reserved, Copyright (c) 1999-2002 Anikun. =========================================================================== 1. はじめに Microchip Technology社のマイクロコントローラPICシリーズ(以下、PICマイコ ンと省略)にはプログラムメモリ(フラッシュ)やデータメモリ(EEPROM)を内蔵した ものがあり、PIC16F84のプログラムメモリは100回以上(標準値で1000回以上)、デー タメモリは100万回以上(標準値で1000万回以上)の書き換えが保証されています。 したがって、うまく動かなくても修正しながら動くまでプログラムを書き換えて いくことができ、また、別のプログラムに書き換えれば使い回すこともできるの で、趣味の電子工作に向いているといえます。 このように優れたPICマイコンですが、PICマイコンのメモリを読み書きするPIC ライタがFM TOWNSに接続できても肝心のPICライタを制御するソフトウェアが FM TOWNSに対応していません。そこで、ないものは作るしかないということで、 FM TOWNSユーザである私が開発しました。 2. 本ソフトウェアとPICライタの特長 (1)PICマイコンのプログラムメモリ/データメモリの読み込み/書き込み、コー ドプロテクションの設定/解除、ID番号の読み込み/書き込みにも対応してい ます。 (2)面倒なコンフィギュレーションワードの設定が簡単にできます。 (3)同じアドレスに同じデータが書き込まれている場合は書き込まず、プログラ ムメモリやデータメモリの寿命を延ばし、素早く書き込みが終了します。 (4)プログラムとデータを一括して書き込む方式を採用しているので、データメ モリを使ったプログラムも1つのHEXファイルにまとめることができます。 (5)ICSP(In-Circuit Serial Programming)に対応しているので、回路に組み込 まれたPICマイコンでも簡単にプログラムメモリやデータメモリを更新するこ とも可能です(注1)。 (注1)組み込まれている回路によっては対応できません(同梱のEXAMPLE.TIFを 参考にしてください)。対応できない回路例に該当する場合は、回路からPIC マイコンを取り外してプログラムメモリやデータメモリの書き換えを行っ てください。 3. 準備 本ソフトウェアをダウンロードしただけではPICマイコンの開発ができないので、 以下の準備が必要です。なお、(1)と(2)で製作するPICライタは片方でも構いませ ん。 (1)外部電源が不要のRS-232-Cポート版PICライタの製作 ICを一切使わずシンプルな回路ですが、RS-232-Cポートから電源を供給する ことで外部電源も不要になるという、至れり尽くせりのRS-232-Cポート版PICラ イタを製作します。また、プリンタポート版PICライタのようにICクリップを使 用すればICSPにも対応できます(ただし、PICマイコンが2個同時に接続できるか らといって、ICソケットとICクリップに2個のPICマイコンを同時に接続して使 用することはできません)。 RS-232-Cポート版PICライタの回路図は同梱のPICWRIT2.TIFを参照してくださ い。参考までに部品リストを以下に示します(回路図にあるPICマイコンはICソ ケットのみで、実際にはメモリ内容を読み書きしたいPICマイコンをそのICソケッ トに接続します)。なお、抵抗にはカラーコードを示したので参考にしてくださ い。 部品リスト トランジスタ 2SC1815(注1) × 2個 ダイオード 1S1588(注2) × 4本 5.1[V]ツェナ(200[mW]) × 1本 8.2[V]ツェナ(200[mW]) × 1本 抵抗 1.5[kΩ](炭素皮膜;1/8[W];±5[%];茶緑赤金)(注3) × 1本 10[kΩ](炭素皮膜;1/8[W];±5[%];茶黒橙金)(注3) × 1本 コンデンサ 22[μF](アルミ電解;16[V]) × 1個 100[μF](アルミ電解;35[V])(注4) × 1個 コネクタ ICソケット(DIP18ピン用)(注5) × 1個 Dサブ25ピン(メス)(注6) × 1個 その他 ユニバーサル基板 × 1枚 配線材(注7) × 必要量 ケース(注8) × 1個 (注1)hFEが比較的大きいYランク(120≦hFE≦240)やGRランク(200≦hFE≦400) を使用してください。 (注2)小信号用スイッチングダイオードで代用できます。 (注3)小型に作る必要がなければ1/4[W]で代用できます。 (注4)100[μF](アルミ電解;50[V])で代用できます。 (注5)ゼロプレッシャソケットが良ければ変更します。 (注6)FM TOWNSのRS-232-Cポートに直接コネクタを接続する場合は、Dサブ25 ピン(オス)に変更します。 (注7)FM TOWNSとはストレート接続にしてください。また、FM TOWNS〜PICラ イタ間1.5[m]以内のケーブル長が目安です。これ以上長くすると誤動作す る可能性が高くなります。 (注8)必要に応じて使用します。 (2)ICSPに対応したプリンタポート版PICライタの製作 Application Note AN589が公開されたことで一般的に普及しているICSPに対 応したプリンタポート版PICライタを製作します(ただし、フィードバックにBUSY を使う点がApplication Note AN589と違います)。 プリンタポート版PICライタの回路図は同梱のPICWRITE.TIFを参照してくださ い。参考までに部品リストを以下に示しますが、VPP(+12[V]≦VPP≦+14[V])を 供給する回路の部品は含まれていません。なお、抵抗にはカラーコードを、コ ンデンサには数字の表記を示したので参考にしてください。 部品リスト IC 74LS244 × 1個 78M05(注1) × 1個 トランジスタ 2SA1015(注2) × 1個 2SC1815(注2) × 2個 ダイオード 1S1588(注3) × 1本 抵抗 750[Ω](炭素皮膜;1/8[W];±5[%];紫緑茶金)(注4) × 1本 2[kΩ](炭素皮膜;1/8[W];±5[%];赤黒赤金)(注5) × 4本 コンデンサ 2200[pF](セラミック;50[V];222)(注6) × 1個 0.1[μF](積層セラミック;50[V];104)(注7) × 2個 コネクタ ICソケット(DIP20ピン用)(注8) × 1個 ICクリップ(DIP18ピン用)(注9) × 1個 アンフェノール36ピン(メス)(注10) × 1個 その他 ユニバーサル基板 × 1枚 配線材(注11) × 必要量 ケース(注8) × 1個 (注1)7805で代用できます。 (注2)hFEが比較的大きいYランク(120≦hFE≦240)やGRランク(200≦hFE≦400) を使用してください。 (注3)小信号用スイッチングダイオードで代用できます。 (注4)78M05の出力電流が5[mA]以下になると出力電圧が不安定になるので負荷 として接続します。小型に作る必要がなければ1/4[W]で代用できます。 (注5)2.2[KΩ]で代用できます。また、小型に作る必要がなければ1/4[W]で代 用できます。 (注6)波形なまりを改善するためのコンデンサです。 (注7)小型に作る必要がなければ普通のセラミックコンデンサで代用できます。 (注8)必要に応じて使用します。 (注9)PIC16F8XシリーズのICSPは隣接する5ピンしか必要ないので、間違えな いようICクリップにピン番号を書き込んでおけば、DIP18ピン用より安価な DIP8ピン用のICクリップに変更できます。また、PICライタを制御するソフ トウェアの対応が必須ですが、ICクリップの代わりにフックチップを使え ばより多くのPICマイコンに対応できます。 (注10)FM TOWNSのプリンタポートに直接コネクタを接続する場合は、アンフェ ノール24ピン(オス)に変更します。 (注11)FM TOWNS〜PICライタ間1.5[m]以内、PICライタ〜ICクリップ間30[cm] 以内のケーブル長が目安です。これ以上長くすると誤動作する可能性が高 くなります。 (3)Windows版の統合開発環境MPLABのダウンロードとインストール 以下のWebサイトからWindows版の統合開発環境MPLABをダウンロードしてくだ さい(注1)。 Microchip WebSite http://www.microchip.com/ マイクロチップテクノロジ http://www.microchip.co.jp/ この統合開発環境MPLABにはテキストエディタやアセンブラのほか、シミュレー タが含まれていて、パソコンのみである程度のデバッグができます。 Windows3.1以降のOSがインストールされたパソコンで動作するのでFM TOWNS でもWindows3.1やWindows 95がインストールされていれば使用できます(注2)。 (注1)2000/08/23現在、Microchip Technology社がフリーソフトウェアとして 配布していたアセンブラMPASMのみをダウンロードすることができなくなっ てしまったようなので、統合開発環境MPLABをダウンロードしてください。 しかし、統合開発環境MPLABは10数[Mバイト]あるのでダウンロードには時 間がかかります。それで、マイクロチップテクノロジではCD-Rの無料配布 を行っているので、それを利用するのも一つの手です。 (注2)Windowsを持っていないと純正アセンブラが使用できませんが、HEXファ イルを作成できるアセンブラはインターネット上に存在します。すべて TownsOS上で開発したい方はご自分で探してみてください。 (4)PICライタの接続 RS-232-Cポート版PICライタはモデムを増設する場合と同様に、プリンタポー ト版PICライタはプリンタを増設する場合と同様に、PICライタとFM TOWNSの電 源を切った状態でRS-232-Cポートまたはプリンタポートに接続してください。 4. 書き込むプログラムとデータの作成 統合開発環境MPLABでプログラムを作成し、アセンブルするとHEXファイルが作 成されます。本ソフトウェアはプログラムメモリとデータメモリを一括して書き 込む方式を採用しているので、アセンブラのプログラムを作成するときにはデー タメモリの内容も一緒にアセンブルしてHEXファイルを作成しておいてください (別々でもいいのですが、面倒なのでそうした方がよいでしょう)。 プログラムメモリのアドレスは0000hから03FFhまで、データメモリのアドレス は2100hから213Fhまでなので、実際に作成するアセンブラのプログラムは以下の ようになります。 ORG H'0000' : : ;03FFhまでがプログラムメモリ ORG H'2100' : : ;213Fhまでがデータメモリ アセンブラMPASMの文法や統合開発環境MPLABについては詳しく説明できません が、後閑 哲也さんによるPIC16C84/PIC16F84/PIC16F84Aの詳しい解説が以下のWeb サイトにあります。 電子工作の実験室 http://www.picfun.com/ 5. 使い方 (1)PICライタの使い方 本ソフトウェアの指示に従ってください(注1)。 (注1)必ず本ソフトウェアの指示に従ってください。PICライタやPICマイコン が故障する場合があります。 (2)本ソフトウェアの使い方 本ソフトウェアにはネイティブ版(拡張子が.EXP)とリアル版(拡張子が.EXE) がありますが、基本的にTownsOS V2.1のコマンドモードで実行します(注1)。実 行後、設定内容は“[実行ファイル名].CFG”に書き込まれ、次回実行したとき にはこの設定を参照します。 RS-232-Cポート版の場合 >RUN386 PICWRIT2(ネイティブ版の場合) >PICWRIT2(リアル版の場合) プリンタポート版の場合 >RUN386 PICWRITE(ネイティブ版の場合) >PICWRITE(リアル版の場合) このようにHEXファイルを指定しないで実行すると各種設定(注2)をして、PIC マイコンのメモリの読み込み(注3)やコードプロテクションの解除(注4)を行う かそれぞれ聞かれます。 RS-232-Cポート版の場合 >RUN386 PICWRIT2 HELLO(ネイティブ版の場合)(注5) >PICWRIT2 HELLO(リアル版の場合)(注5) プリンタポート版の場合 >RUN386 PICWRITE HELLO(ネイティブ版の場合)(注5) >PICWRITE HELLO(リアル版の場合)(注5) このようにHEXファイル(この例ではHELLO.HEX)を指定して実行すると各種設 定をして、HEXファイルを読み込みPICマイコンに書き込みます。 (注1)リアル版はMS-DOS汎用なので、MS-DOSおよびWindows3.1やWindows 95の MS-DOSプロンプトで動作可能です。 (注2)コードプロテクションを設定するとプログラムメモリやデータメモリの 読み込みができなくなります(読み込んでも0000hや00hばかりになります)。 (注3)PICマイコンから読み込んだコンフィギュレーションワードやID番号が 表示されますが、読み込んだコンフィギュレーションワードやID番号はHEX ファイルに保存しません。また、同名のファイルが存在していても強制的 に上書きされるので注意が必要です。また、HEXファイルの拡張子が省略さ れている場合には、拡張子.HEXを付け加えたHEXファイルと解釈します。ま た、絶対パスや相対パスに対応しています。 (注4)コードプロテクションを設定していないPICマイコンの場合、PICマイコ ンに書き込まれているプログラムメモリの内容のみ消去されます。 (注5)HEXファイルの拡張子が省略されている場合には、拡張子.HEXを付け加 えたHEXファイルと解釈します。また、絶対パスや相対パスに対応していま す。 6. 現在の制限事項 (1)1μWAITレジスタ(006Ch)を搭載したFM TOWNSでのみ正常に動作します。 (2)PIC16C84/PIC16F84/PIC16F84Aのみに対応しています。 (3)対応しているHEXファイルはIntel HEX Format(INHX8M)のみです。 (4)HEXファイルのコンフィギュレーションワードやID番号は無視されます。 (5)プログラムメモリやデータメモリの一括消去に対応していません。 7. 今後の予定 (1)FM TOWNS全機種で動作可能にする。 (2)Hot Plug対応のPAD&MOUSEポート版PICライタを製作する。 (3)対応PICマイコンを増やす。 (4)GUI版を開発する。 (5)HEXファイルのコンフィギュレーションワードやID番号に対応する。 (6)プログラムメモリやデータメモリの一括消去に対応する。 (7)FM TOWNSで動作するPICマイコンのアセンブラを開発する。 8. 注意事項 本ソフトウェアはフリーソフトウェアおよびフリーデータです。いかなる事故 にも作者は責任を負いません。 特にPICライタの誤配線に気がつかないまま接続した場合、FM TOWNSやPICライ タ、PICマイコンが故障する恐れがあります。 また、本ソフトウェアはBIOSを通さず直接I/Oにアクセスして制御しているため、 本ソフトウェアを起動した後、それぞれ使用したRS-232-Cポートまたはプリンタ ポートの状態とBIOSとの間に矛盾が発生し、これらのポートに接続した周辺機器 が誤動作する可能性があります。よって、本ソフトウェアを起動した後、これら のポートに接続する周辺機器を使用したい場合には、いったんFM TOWNSをリセッ トまたは電源を切ってから使用または接続するようにしてください。 PICマイコンの純正アセンブラMPASM(フリーソフトウェア)は、FM TOWNSでも動 作するWindows版とDOS/V機のみに対応したMS-DOS版しかありません。FM TOWNSの みでPICマイコンの開発をする場合、Windows3.1かWindows 95がないとPICマイコ ンの純正アセンブラが使えません。しかし、インターネット上にはMS-DOS汎用で 動作するフリーソフトウェアのアセンブラが公開されているので、それを使用す ればFM TOWNSのTownsOS V2.1またはMS-DOSのみでPICマイコンの開発ができます。 9. 謝辞 本ソフトウェアの開発にあたり、以下の方々にご協力いただきました(敬称略)。 なべちゃん@abk 長船 俊 また、本ソフトウェアのネイティブ版はTOWNS-gpp 2.4.5でコンパイルしました。 このように強力なコンパイラをフリーソフトウェアとして公開してくださったGNU の開発メンバの方々にも感謝いたします。 10. 著作権/再配布/転載について 本ソフトウェアの著作権は作者であるあにくんが保持しますが、再配布及び転 載は無償で内容が改変されていない場合に限り自由にしていただいて構いません。 11. サポート 本ソフトウェアの最新版は以下のWebサイトから入手できます。 あにくんのホームページ http://homepage1.nifty.com/anikun/ また本ソフトウェアに対する感想や要望、質問などありましたら、以下の電子 メールアドレスまでお送りください。 あにくん PEC05400@nifty.com 12. 参考文献 改訂3版 FM TOWNS テクニカルデータブック(アスキー出版局) トランジスタ技術 1997年8月号(CQ出版社) Application Note AN589(DS00589A;Microchip Technology Inc.) Programming Specifications PIC16C84(DS30189D;Microchip Technology Inc.) Programming Specifications PIC16F8X(DS30262C;Microchip Technology Inc.) Data Sheet PIC16F8X(DS30430C;Microchip Technology Inc.) データシート PIC16F8X(DS30430C-J2;Microchip Technology Inc.) Data Sheet PIC16C84(DS30445C;Microchip Technology Inc.) Data Sheet PIC16F84A(DS35007A;Microchip Technology Inc.) PIC-Programmer 2(http://www.jdm.homepage.dk/newpic.htm) 13. 開発履歴 1999/01/23 CUI版開発開始。 1999/03/04 CUI版Version 0.10 プリンタポート版PICライタに対応。 1999/03/20 CUI版Version 0.11 ID番号の桁が反対になっていたのを修正。 1999/04/02 CUI版Version 0.12 表示する指示内容を訂正。 1999/11/04 CUI版Version 0.12a 説明書の一部を修正。 2000/08/23 CUI版Version 0.13 表示する指示内容を変更。 ネイティブ版のほかリアル版も制作。 2000/08/27 CUI版Version 0.14 表示する指示内容を訂正。 2000/09/10 CUI版Version 0.14a ウェイトを少し長めに変更。 2000/10/07 CUI版Version 0.14b 余分なウェイトを削除。 CUI版Version 0.20 RS-232-Cポート版PICライタに対応。 2000/11/18 CUI版Version 0.14c リアル版で操作手順が表示されないうちにキー操作をすると操作 不能になる致命的なバグを修正。 CUI版Version 0.20a リアル版で操作手順が表示されないうちにキー操作をすると操作 不能になる致命的なバグを修正。 2000/12/16 CUI版Version 0.20b 回路図を修正。 2002/09/22 CUI版Version 0.20c 説明書の一部を修正。 ソースファイルを同梱。