プログラムを焼いて実行

今回は簡単なプログラムを書いて実際にPICに焼いて実行する所まで説明します。今回プログラムするPICは ”24FJ64GA002” を使います。秋月電子さんで買いました。このデバイスは起動の為の周辺回路を必要とせず電源のみ供給すれば動きます。値段も安く使い易いPICです。このPICを使ってLEDを点滅させるプログラムを書いて行きます。

説明は以下の順で進めます。

  • ソフトの準備: 
    • IDEでの新規プロダクトの作成
    • ソースプログラムのコーディング
    • コンパイル
  • ハードの準備: 
    • Writer(PCとPICをつなぐTOOL:PICkit3)の説明
    • LEDの点滅、PCと接続する為のPIC側の回路の製作
  • 実際に焼いて実行
    • 書き込む前にPICkit3に設定が必要

ソフトの準備

先ずはプロジェクトの作製からです。

  1. IDEを上げて左上の”File”をクリック
  2. ポップアップの一番上”New Project”をクリック
  3. ここから使用するデバイスについての情報を入力します。下記を選択後”Next”をクリック
    • Categories:でMicrochip Embeddedを選択
      • 24FJ64G002はMicrochipの製品です。
    • Projects:でStandalone Projectを選択
      • 今回の様にただLEDを点滅させるプログラムはこれに当たります。
      • 実は他の項目はほとんど選択した事が有りません
  4. ここはPICの選択です。
    • Family:はALLで問題無いですが選択項目が多くなるので 16-bit MCUs(PIC24) を選んだ方が良い
    • Device:は24FJ64G002を選択
    • Tool:は No Tool を選択
  5. ここはそのまま None でNext
  6. ここでコンパイラーを選択します。今回は、XC16(v1.70)……. を選択
  7. ここでプロジェクト名を入力します。今回は、”test”と入力しました。最後にFinish をクリックするとプロジェクトが製作されます。

続いてソースを作成します。

  1. 左側のSource Filesフォルダーを選択し右クリックするとポップアップウインドウが表示されます。その一番上のNewをクリックするとさらにポップアップウインドウが表示され、そこで”mainXC16.c….”をクリック。
  2. File_Name:の欄に、”newmainXC16”と有ります。ソースファイルの名前を指定出来ますが今回はそのまま使用。下のFinishボタンを押せば、
  3. ソースの雛形が作成されます。

この雛形を下記の様に変更して下さい。Port Bを一定時間でオンオフするプログラムです。

newmainXC16.c

#include "xc.h"

void wait_00(void)
{
    int a,b;

    b = 10;
        while(b --)
        {
            a = 0xffff;
            while( a --) ;
        }
}

int main(void)
{
    AD1PCFG = 0xffff;
 
    TRISB = 0;

    while(1)
    {
        LATB = 0xFFFF;
        wait_00();
        LATB = 0x0000;
        wait_00();
    }
    
    return 0;
}

1行目の#include “xc.h” 以降が変更箇所です。今は内容が分からなくても取り敢えず入力して下さい。

  1. 入力が終わったら、メニューバーの”トンカチ”をクリック。これでコンパイルが開始します。
  2. コンパイルが始まると画面の下にウインドウが作成され経過が表示されます。問題無くコンパイルが終了すると”BUILD SUCCESSFUL (total time: XXms)”と表示されます。

ここまででソフトの準備は完了です。次はハードの準備に移ります。

ハードの準備

PICではプログラムを焼く為にWriterが必要です。今回はWriterの中では安価な”PICkit3”を使用します。Amazonで検索し下記を見つけました。これくらいの値段なら買ってもいいかなって感じです。

PCとPICkit3はUSBケーブルで繋ぎますが、PICkit3とPICとは下記の様につなぐ必要が有ります。

次にPICに付いて説明します。下記はPIC24FJ64GA002の外形とピン配置です。

以下は回路図と実物です。

  • 回路図の左側がPICkit3との接続用回路です。PICkit3, PIC24FJ64GA002 互いに対応するピンは以下の様になります。
PICkit3 PIC24FJ64GA002
1:(Vpp/MCLR) 1
2:(Vdd Target) 13 , 28
3:(Vss GND) 8 , 27
4:(PGD) 4
5:(PGC) 5
6: —–
  • 専用のWriterを作るのであればこれらを直接繋いでも良いのですが、そうすると書き込む度に開発用の基板からPICを取り外し、書き込みが終了すると元に戻す事になりPICの抜き差しが面倒です。
  • そこで開発用の基板にスイッチを付け、書き込みと実行をスイッチで切り替えて行う事にします。これでPICを基板から抜き差しする必要が無くなります。
  • 回路図右側がLED点滅用回路です。RB15のHigh,LowでLEDを点滅させる構造です。
  • 実物は上記の写真の様になっています。
    • 切替用のスイッチは、2接点中立有り2回路入りのスイッチを2個使用しています。
    • 2つのスイッチを同時に切り替えているのですがレバーの倒し方で下記の設定になります。
      • 中立時: 接触無し
      • 右倒し: PICkit3 <-> PIC
      • 左倒し: PIC
  • 開発基板が小さいのでPICkit3とはケーブルで繋いでいます。PICkit3を開発基板に直接つなぐと何回も抜き差しするとPICkit3のコネクターが壊れる様な気もします。

実際に焼いて実行

  • MPLAB IDEを起動する前にPCとPICkit3を繋いで下さい。IDE起動時にアプリがPICkit3を自動認識して後の作業が簡単になります。
  • PCとPICkit3の接続にUSBケーブルを使うのですが、PC側とPICkit3側のUSBのタイプが違います。注意して下さい。
    • PC側はUSBタイプA、
    • PICkit3側はMini USBタイプB。
  • 次に、PICkit3とPICを接続して下さい。その後IDEを起動。
  • IDEが立ち上げたら、”test” プロジェクトを読み込んで下さい。
  • ここで、PICkit3の設定を行います。
  1. プロジェクト ”test” をクリックし有効になった所で右クリックするとポップアップウインドウが表示されます。ポップアップウインドウ一番下のPropertiesをクリック
  2. Conf:の欄でPICkit3をクリック。次にOption Categories で Powerを選択すると
  3. この画面になります。Power target circuit from PICkit3 にチェックを入れます。これでPICkit3からPICに電源が供給されます。PIC書き込み時にこの電源が必要です。その他は変更無しで下の OK ボタンを押す。
  4. これで準備OKです。IDEのメニューバーに有るアイコン下記をクリックして下さい。コンパイルが開始しされ終了と共にPICへの書き込みが開始されます。

書き込みが終わると、スイッチを切り替えてプログラムを実行して下さい。大体4秒毎にLEDがオンオフします。

次は

前回はIDEのインストール。今回は簡単なプログラムの作成と実行に付いて説明しました。今後はプログラムの開発に移りたいのですが、IDEを操作していたら MCC (MPLAB® Code Configurator )なるもの見つけました。どうもPICのコードを自動で作成するアプリケーションの様です。次回はこれを使って今回と同じプログラムを書いてみたいと思います。