[PIC]C30コンパイラをインストールする(dsPIC,PIC24用)

本記事ではPICのC言語向けコンパイラである、C30コンパイラのインストールと動作確認を行います。
C30コンパイラの正式名称は”MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs”で、dsPICや,PIC24シリーズなどの16bitマイコンで使用可能なCコンパイラです。

C30コンパイラはPRO、Standard、Liteと3つのバージョンがありますが、今回は無償で利用可能なLite版を使用します。Lite版でもコンパイラとしてはフル機能が利用できますが、最適化が部分的にしか使用できないため生成される実行ファイルのサイズが若干大きくなります。


今回のインストール&動作確認の作業は、以下の4ステップとなります。

MPLABをインストールする
C30コンパイラをインストールする
動作確認用プログラムを作成する
作った確認プログラムをPICに書き込む




動作確認には、今回PIC24FJ32GA002を使用しました。
PIC24FJxxGA002のxxはROMサイズなので、以下の辺りのチップは全く同じように作業できます。

PIC24FJ16GA002
PIC24FJ32GA002
PIC24FJ48GA002
PIC24FJ64GA002


PIC24の他の型番やdsPICでも、コンフィグの設定とライタ-PIC間の配線以外は同様に作業できるはずです。


PICへのプログラム書き込みはPICkit3を使用します。
ライタからPICへの回路は、簡単な配線なのでブレッドボードを使用することとします。


MPLABをインストールする

Cコンパイラの導入の前に、IDEであるMPLABをインストールします。
MPLAB無しでもコマンドラインからC30コンパイラを使用することも可能ですが、最初はMPLABからプロジェクトを作って方が動作確認が簡単なので、上手く動作しない場合に問題の切り分けが楽です。

MPLABのインストールについては、前に書いたのでこちらの記事を参考にしてください。
PIC用IDEのMPLABをインストールする


C30コンパイラをインストールする


MPLABがインストールできたら、次にC30コンパイラをインストールします。

まずは、下記のページへアクセスします。
MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs



ページ下にある「MPLAB C Compiler for PIC24 and dsPIC」のリンクより、コンパイラをダウンロードします


ダウンロードしたら、installerのexeを実行します。


SetupのWelcomeページです。Nextをクリックします。


ライセンスを確認後、I accept…にチェックを入れてNextをクリックします。


インストールディレクトリの指定です。
1台のPCに複数バージョンのC30コンパイラをインストールする場合は、下側にチェックを入れます。
今回は、複数バージョンのコンパイラを同時に使用しないので、上の”Legacy Directory Name”にチェックを入れます。



バージョンの選択です。今回は無償利用が可能なLite版を使うので一番下のLite Compilerを選択します。


最終確認です。


インストールは時間が掛かるので暫く待ちます。


インストールが完了しました。Finishをクリックします。


これでコンパイラのインストールは完了です。


動作確認用プログラムを作成する


次は、インストールしたC30コンパイラを使用してLED点滅のプログラムを作成してみます。

MPLABのIDEを起動し、Project -> Project Wizardを選択します。


プログラムを作成するターゲットのマイコンを指定します。
今回はPIC24FJ32GA002を使用しました。


次にコンパイラを選択するのですが…
選択肢を見ると、先ほどインストールしたC30コンパイラが選択肢に表されません!!


ここは一旦落ち着いて、Show all installed toolsuitesをチェックします。


その後再度選択肢を開くとC30 Toolsuiteが表示されましたので、これを選択します。


Toolsuite Contentsから、Cコンパイラを選択します。


プロジェクトの作成先フォルダを指定します。


そのまま次へをクリックします。


最終確認です。
Deviceが、選択したものになっているかを確認し、完了をクリックします。


プロジェクトを作成したら、まずはmain.cをプロジェクトに追加しておきます。





次に使用するマイコンのヘッダをプロジェクトに追加しておきます。本作業は必須では有りませんが、このヘッダは頻繁に参照するので、プロジェクトに足しておくとダブルクリックするだけで中身が確認できるようになるので便利です。

Header Files -> Add Filesを選択し、ヘッダファイルを選択します。





ヘッダは、C30コンパイラのセットアップでデフォルトのインストール先を選択した場合、以下のフォルダにあります。

C:\Program Files\Microchip\MPLAB C30\support\PIC24F\h


フォルダの中身は以下のように、マイコンの型番毎にヘッダが有ります。


ヘッダを追加後、ダブルクリックするとファイルが開くようになります。



次にmain.cに動作確認用のプログラムを作成します。

#include <libpic30.h> 
#include <p24FJ32GA002.h>
 
//--------------------------------------
// コンフィグレーションビットの設定
//--------------------------------------
_CONFIG2(   POSCMOD_NONE  &       // Primary oscillator disabled
            IOL1WAY_OFF   &       // IOLOCK may be changed via unlocking seq
            OSCIOFNC_ON   &       // OSC2/CLKO/RC15 functions as port I/O (RC15)
            FCKSM_CSDCMD  &       // Clock switching and Fail-Safe Clock Monitor are disabled
            WUTSEL_LEG            // Legacy Wake-up Timer
        );
 
_CONFIG1(   FWDTEN_OFF &          // Watchdog Timer is disabled
            ICS_PGx1   &          // Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1
            COE_ON     &          // Reset Into Clip On Emulation Mode
            BKBUG_ON   &          // Device resets into Debug mode
            GWRP_OFF   &          // Writes to program memory are allowed
            GCP_OFF    &          // Code protection is disabled
            JTAGEN_OFF            // JTAG port is disabled
         );
 
int main( void )
{
    volatile unsigned long int loop;
    TRISB = 0x00;
 
	// 一定周期でLEDを点滅させる
    while( 1 ) {
        PORTB = 0xFF;
        for ( loop = 0; loop < 100000; loop++ ) { // 0.8sec
            ; /* nop */
        }
 
        PORTB = 0x00;
        for ( loop = 0; loop < 100000; loop++ ) {
            ; /* nop */
        }
    }
 
    return 0;
}


ほとんどがコンフィギュレーションビットの設定ですね。
_CONFIG1(),_CONFIG2()で何が指定できるかは、先ほどのヘッダに書かれています。今回は開発向けの無難な設定にしておきました。
コンフィギュレーションビットはPICの型番毎に違うので、PIC24FJxxGA002以外を使う場合は必ずヘッダの中身を確認してください。

プログラムの中身は、TrisBでPortBのBR0-BR7を出力ピンに設定した上で、PortBの全ピンを一定周期でOn-Offさせています。


プログラムを書いたらProject->Makeをクリックしてコンパイルします。
OutputウィンドウにBUILD SUCCESSEDと出る事を確認してください。


これで、テスト用プログラムの作成は完了です。


作った確認プログラムをPICに書き込む


次はいよいよプログラムを書き込みます。
書き込みにはPICkit3を使用します。

PICkit3の役割や、基本的な使い型はこちらを参考にしてください。
PICkit3を使ってMPLABからプログラムを焼く方法


今回はPIC24で28ピンのモノなので、上記の記事とは書き込みに使用するピンの割り当てが変わります。今回は小さいブレッドボードで書き込み用回路を作成しました。

まずは、今回使用するPIC24FJxxGA002のデータシートより、ピンアサインを確認します。
PCD1,PGC1がある4,5番ピンが書き込みを行うためのピンです。ほかにMCLR、Vdd, VssをPICkit3と接続する必要があります。


PICkit3のユーザガイドを見ると、PICkit3側のピンアサインが分かります。


両者を見比べつつ、作成した回路がこちら。
両者のPin1,4,5の配置が同じなので、とてもシンプルな回路になりました。
15ピンにつながっているLEDと470オームの抵抗は動作確認用です(PortBのBR6につながってます)。
また、左下から出ているピンヘッダがPICkit3の差込み口で、左端が1番ピンです。



Programmer->Select Programmerより ライターとしてPICkit3を選択します。


次にProgrammer->Settingsより、PowerタブのPower target circuit form PICkit3にチェックを入れます。PIC24FJxxGA002は3.3V駆動なので最も近い電圧の3.250を指定します。


すると、Outputウィンドウに以下のようにDevice IDが表示されるはずです。
ここで赤字でエラーメッセージが出る場合は、配線が間違っているか、上記のSettings漏れなので、再確認してください。



プログラムをコンパイルしたら、ツールバーのProgramをクリックし、プログラムを書き込みます。


これでブレッドボード上のLEDが周期的に点滅するはずです。
以上で、C30コンパイラのインストールと動作確認は完了です。


4774132470
C言語ではじめる PIC24F活用ガイドブック

関連記事

コメントを残す

メールアドレスが公開されることはありません。