マイクロローダ(プログラム書き込み)

  1. 目的

    1. 目的

       前回作成したプログラムを、 Microloader と 受信回路(RS232C)を用いて PCからPIC に書き込みます。

    2. COM端子

       COM端子は最近小型のPCには装備されなくなりましたが、多くののデスクトップPCに装備されている、簡単な手法でデータ交信を可能にする端子です。
      同時に利用できる周辺機器は1台に限定されます。通信速度もLANやUSBと比較して、かなり遅くなります。

  2. 受信回路

    1. COM端子

       PCのCOM端子は RS232Cと呼ばれる簡単な手順でシリアル通信が可能です。PIC側にこの端子と受信回路を用意すると、PCとPICとのデータ送受信が可能になります。下図は、COM端子に接続するコネクタです。ソケットは4列と5列の9ピンで、5列の左端が5ピンとなります。2(RX:受信),3(TX:送信),4(DTR:制御線),5 ピン(グランド)に信号線が接続されています。


       COM端子は最近小型のPCには装備されなくなりましたが、多くのデスクトップPCに装備されている、簡単な手法でデータ交信を可能にする端子です。昔は、COM端子に「モデム」を接続し、モデムを電話線に接続してネットワークしていました。COM端子は、同時に接続できる機器は1台に限定されます。通信速度もLANやUSBと比較して、かなり遅くなります。

    2. レベル変換

       RS232Cは電圧レベルが±9Vで動作します。これを、通常のディジタル信号レベル(0V,5V)に変換するには、レベル変換用のIC:MAX232 が必要です。ソケットの RX:2ピン,Tx:3ピン、DTR:4ピン、を MAX232 の7,8,13 ピンに接続します。レベル変換された信号が、11ピン、9ピン、12ピンから出力されます。このICには コンデンサを接続する必要があります。1,3ピン、4,5ピン、16,2ピン、6,15ピンの間に0.1μFのコンデンサを接続します。


  3. プログラム書き込み


    1. マイクロローダ

       マイクロローダは、PC用のプログラム送信機能とPIC用のプログラム受信・書き込み機能とを組み合わせた、Mecanique 社の製品です。マイクロローダを利用するには、PIC側にRS232Cのハードウエア(割り込み)による受信機能と、プログラムROM書き込み機能が必要です。16Fシリーズでは、16F873A、16F88 などがこれらの条件を備えています。

    2. マイクロローダ用接続回路

       プログラムを受信するには最初にPICをリセットする必要があります。このため、通常の送受信では利用しないRS232Cの DTR 信号をPICのリセット信号として使用します。PICのリセット端子(1ピン)は通常Hレベルにする必要がありますから、DTR 信号を抵抗を通して リセット端子に接続する必要があります。リセット端子がLレベルになると、PICは0番地から実行を開始します。これで、PICのブートローダが実行を開始します。
       0番地から実行を開始しても、指定時間以内にRs232Cからのデータが到着しない場合、ブートローダは書き込まれたプログラムの実行を開始します。

    3. 接続回路

       マイクロローダでプログラムを書き込むため、予め「ブートローダ」のプログラムを書き込んだPCを利用する必要があります。COM端子のソケットの2ピンはPCの受信端子になります。PICの送信信号(C6/TX)をMAX232のT2IN端子に出力し、レベル変換した信号を、COMの受信信号端子:RX(2ピン)に接続します。逆に、COMの送信端子:TX(3ピン)をMAX232のR2INに変換し、レベル変換した信号をPICの受信端子(C7/RX)に接続します。
       COMのDTR(4ピン)は制御用の信号ですが、ここでは、PICをリセットするために利用しています。DTRをR1Oから取り出し、これを、PICの CLR(1ピン:LレベルでPICをリセットする)に接続します。R1OをLEDのグランド側に接続し、リセットされると LED が点灯するようにします。


  4. PC側マイクロローダ

    1. マイクロローダの起動

       マイクロローダは、PC側のソフトで、*.hex ファイルを COM 端子を通して、PICに送信します。まず、メニューから microloader  を起動します。


    2. COM端子の選択

       マイクロローダのメニューに接続するCOM端子の番号を設定します。他に COM 端子を利用していなければ COM1 を利用します。COM端子はデスクトップ機などでは2個実装される場合があります。タイトルバーの下のCOM1 のメニューで選択します。ノートパソコンではCOM1端子を選択します。

    3. HEXファイルの読み込み

       FIleメニューの「open」でPICに送るプログラムファイル(.hex)を選択します。このファイルはコンパイルが成功すると、ソースファイルと同じフォルダに生成されています。読み込むと、ファイルの内容が16進で表示されます。

    4. 書き込み

       マイクロローダーの 「program」 ボタンを押します。PIC側でプログラムを実行中でも、リセットがかかり、制御がブートローダに移ります。ブートローダはプログラムをRS232Cから受け取り、プログラムメモリに書き込み、その後実行を開始します。

    5. リセット時の動作

       PICは電源を再投入してもリセットされます。リセットするとブートローダの実行が開始されますが、RS232Cからの信号がこない場合、ブートローダは、書き込まれたプログラムの実行を開始します。したがって、マイクロローダの接続がない場合でも、書き込まれたプログラムの実行が可能です。

  5. 実験

    1. 必要な部品

      シリアルコネクタ、シリアルケーブル
       (ケーブルは少し不足します、今回は同じプログラムですから、テーブルに1本あればテストできます)
      パッチ基板1枚、MAX232(ADM3202)、0.1μコンデンサ:5個、
      抵抗(470オーム)、LED:1

    2. 制作

      別ボードにRS232Cの受信回路を作成します。PICのボードを接続できるよう、ボードの向きを調整してください。
      1ピンを左下にして、MAX232(IC)を差し込みます。この回路は、引き続き利用する大事な回路です。チェックを容易にするため、ここで、推奨するパターンで配線してください。

      ■MAX232の16ピンと5V電源バー(短い赤線)、15ピンとGNDバー(短い黒線)を接続します。
      ■1-3、4-5、6-GNDバー、2-1ピンの左、にコンデンサ(青色)を接続します。1ピンの左と5Vバーを接続します。コンデンサの端子が長い場合、切りそろえてください。コンデンサの両足が広がっている場合、斜めにボードに接続します。
       


      ■シリアル接続用ソケット(CN)の 2,3,4,5 ピンに接続した線をMAX232Cの右上から左に、この順で接続します(多くは5ピンが黒い色になっています)。にこから、ソケットの2ピンとIC(MAX232)の7ピン、ソケットの3ピンとMAX232の8ピン、ソケット4ピンとICの13ピン、ソケット5ピンとGNDバーを接続します。

      ■MAX232の12ピンとICの右側(コラム15)に470オームの抵抗を接続します。
      パッチボードのコラム17あたり(上)とLEDの長い端子、コラム17(下)とLEDの短い端子を接続します。

      ■MAX232(IC)の9,10と12ピンをボードの右下にこの順に左から右に引き出します。PICの18,17ピンを接続します。
      コラム17(下)とPICの1ピンを接続します。
      受信回路のボードの上下の電源バーとPICの電源バーを接続します。
      PIC の20ピン(VCC)と19ピン(GND)の間に、0.1μFのコンデンサを接続します。これは、電源の瞬間的な変化を阻止し、電源を安定化します。


      回路図印刷用

    3. マイクロローダ

      マイクロローダを起動します。
      Fileメニューのopen で、前回作成したhexファイルを選択します。
      Loadメニューのprogramでプログラムを書き込みます。
      このとき、受信回路のリセット用のLEDの点灯を確認してください。

       「reset required 」 のメッセージが出る場合、PIC側が応答していません。回路をチェックしてください。「programming」のメッセージが現れたら、書き込みを行っています。また、「program」ボタンを押した直後に、RS232Cの受信回路のLEDの発光を確認してください。発光がない場合は、リセットが出来ていません。
      書き込みが成功すれば、実行を開始します。

  6. 実験


    1. 実験

      前回作成したプログラムで、数字の表示間隔(500と100)を(200と500)に変更してコンパイルする
      変更したファイルを、マイクロローダで送る
      結果を確認する