PIC Writer for FMTOWNS


  1. はじめに

     Microchip Technology社のマイクロコントローラPICシリーズ(以下、PICマイコンと省略)にはプログラムメモリ(フラッシュ)やデータメモリ(EEPROM)を内蔵したものがあり、PIC16F84のプログラムメモリは100回(通常1000回)以上、データメモリは100万回(通常1000万回)以上の書き換えが保証されています。したがって、うまく動かなくても修正しながら動くまでプログラムを書き換えていくことができ、また、別のプログラムに書き換えれば使い回すこともできるので、趣味の電子工作に向いているといえます。
     このように優れたPICマイコンですが、PICマイコンのメモリを読み書きするPICライタがFMTOWNSに接続できても肝心のPICライタを制御するソフトウェアがFMTOWNSに対応していません。そこで、ないものは作るしかないということで、FMTOWNSユーザである私が開発しました。

    外部電源が不要のRS-232-Cポート版PICライタ
    外部電源が不要のRS-232-Cポート版PICライタ
     まだまだ小型化が可能です。


  2. PIC Writer for FMTOWNSおよびPICライタの特長

    1. PICマイコンのプログラムメモリ/データメモリの読み込み/書き込み、コードプロテクションの設定/解除、ID番号の読み込み/書き込みにも対応しています。

    2. 面倒なコンフィギュレーションワードの設定が簡単にできます。

    3. 同じアドレスに同じデータが書き込まれている場合は書き込まず、プログラムメモリやデータメモリの寿命を延ばし、素早く書き込みが終了します。

    4. プログラムとデータを一括して書き込む方式を採用しているので、データメモリを使ったプログラムも1つのHEXファイルにまとめることができます。

    5. ICSP(In-Circuit Serial Programming)に対応しているので、回路に組み込まれたPICマイコンでも簡単にプログラムメモリやデータメモリを更新することも可能です(注1)

      (注1)組み込まれている回路によっては対応できません(ここを参考にしてください)。対応できない回路例に該当する場合は、回路からPICマイコンを取り外してプログラムメモリやデータメモリの書き換えを行ってください。

  3. 準備
     本ソフトウェアをダウンロードしただけではPICマイコンの開発ができないので、以下の準備が必要です。なお、i.とii.で製作する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ライタの回路図はここを参照してください(回路図にある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)FMTOWNSのRS-232-Cポートに直接コネクタを接続する場合は、Dサブ25ピン(オス)に変更します。
      (注7)FMTOWNSとはストレート接続にしてください。また、FMTOWNS〜PICライタ間1.5[m]以内のケーブル長が目安です。これ以上長くすると誤動作する可能性が高くなります。
      (注8)必要に応じて使用します。

    2. ICSPに対応したプリンタポート版PICライタの製作

       Application Note AN589が公開されたことで一般的に普及しているICSPに対応したPICライタを製作します(ただし、フィードバックにBUSYを使う点がApplication Note AN589と違います)。
       プリンタポート版PICライタの回路図はここを参照してください。参考までに部品リストを以下に示しますが、VPP(+12[V]≦VPP≦+14[V])を供給する回路の部品は含まれていません。なお、抵抗にはカラーコードを、コンデンサには数字の表記を示したので参考にしてください。

      部品リスト
      種類部品名数量
      IC74LS2441個
      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)FMTOWNSのプリンタポートに直接コネクタを接続する場合は、アンフェノール24ピン(オス)に変更します。
      (注11)FMTOWNS〜PICライタ間1.5[m]以内、PICライタ〜ICクリップ間30[cm]以内のケーブル長が目安です。これ以上長くすると誤動作する可能性が高くなります。

    3. PIC Writer for FMTOWNSのダウンロード

       PIC Writer for FMTOWNSはあにくんのホームページでダウンロードできます。

    4. PICライタの接続

       プリンタを増設する場合と同様に、PICライタとFMTOWNSの電源を切った状態でプリンタポートに接続してください。

  4. 使い方

    1. PICライタの使い方

       PIC Writer for FMTOWNSの指示に従ってください(注1)

      (注1)必ずPIC Writer for FMTOWNSの指示に従ってください。PICライタやPICマイコンが故障する場合があります。

    2. PIC Writer for FMTOWNSの使い方

       PIC Writer for FMTOWNSにはネイティブ版(拡張子が.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ファイルと解釈します。また、絶対パスや相対パスに対応しています。

  5. 現在の制限事項

    1. 1μWAITレジスタ(006Ch)を搭載したFMTOWNSでのみ正常に動作します(注1)

    2. PIC16C84/PIC16F84/PIC16F84Aのみに対応しています。

    3. 対応しているHEXファイルはIntel HEX Format(INHX8M)のみです。

    4. HEXファイルのコンフィギュレーションワードやID番号は無視されます。

    5. プログラムメモリやデータメモリの一括消去に対応していません。

      (注1)ソースファイルを同梱しているので、ウェイトを変更してコンパイルし直せばすべての機種で対応可能です。

  6. 今後の予定

    1. FMTOWNS全機種で動作可能にする。

    2. Hot Plug対応のPAD&MOUSEポート版PICライタを製作する。

    3. 対応PICマイコンを増やす。

    4. GUI版を開発する。

    5. HEXファイルのコンフィギュレーションワードやID番号に対応する。

    6. プログラムメモリやデータメモリの一括消去に対応する。

    7. FMTOWNSで動作するPICマイコンのアセンブラを開発する。

  7. 注意事項

     本製作記事および本製作記事で配布しているプログラムは無保証です。いかなる事故にも作者は責任を負いません。
     特にPICライタの誤配線に気がつかないまま接続した場合、FMTOWNSやPICライタ、PICマイコンが故障する恐れがあります。
     また、本ソフトウェアはBIOSを通さず直接I/Oにアクセスして制御しているため、本ソフトウェアを起動した後、それぞれ使用したRS-232-Cポートまたはプリンタポートの状態とBIOSとの間に矛盾が発生し、これらのポートに接続した周辺機器が誤動作する可能性があります。よって、本ソフトウェアを起動した後、これらのポートに接続する周辺機器を使用したい場合には、いったんFMTOWNSをリセットまたは電源を切ってから使用または接続するようにしてください。
     PICマイコンの純正アセンブラMPASM(フリーソフトウェア)は、FMTOWNSでも動作するWindows版とDOS/V機のみに対応したMS-DOS版しかありません。FMTOWNSのみでPICマイコンの開発をする場合、Windows3.1かWindows 95がないとPICマイコンの純正アセンブラが使えません。しかし、インターネット上にはMS-DOS汎用で動作するフリーソフトウェアのアセンブラが公開されているので、それを使用すればFMTOWNSのTownsOS V2.1またはMS-DOSのみでPICマイコンの開発ができます。

  8. 謝辞

     PIC Writer for FMTOWNSの開発にあたり、以下の方々にご協力いただきました(敬称略)。
    なべちゃん@abk
    長船 俊
     また、PIC Writer for FMTOWNSのネイティブ版はTOWNS-gpp 2.4.5でコンパイルしました。このように強力なコンパイラをフリーソフトウェアとして公開してくださったGNUの開発メンバの方々にも感謝いたします。

  9. 著作権/掲載/リンクについて

     本製作記事の著作権は作者であるあにくんが保持します。
     本製作記事を雑誌に掲載する場合には事前に電子メールで連絡をください。
     本製作記事および本製作記事で配布しているプログラムへ直接リンクすることを禁止します(トップページ(http://anikun.kutami.jp/)へリンクしてください)。

  10. 利用について

     本製作記事および本製作記事で配布しているソフトウェアの販売を禁止します。

  11. 参考文献


    あにくん(WAE28175@nifty.com)
    All rights reserved, Copyright © 1999-2003 Anikun.