MPLAB Code Configurator(MCC)の追加と使い方

組み込みエンジニア

こんにちは、ENGかぴです。

PICマイコンの開発環境であるMPLAB X IDEをインストールした際に追加したいプラグインとしてMPLAB Code Configurator(以下MCC)があります。本プラグインの追加方法と使い方の例をまとめています。

本記事ではMPLAB X IDEがインストールされていることを前提にしています。PICマイコンの開発環境であるMPLAB X IDEのインストール手順については下記にまとめています。

MPLAB X IDEによるPICマイコンの開発環境作りの手順

MPLAB Code Configurator(MCC)を追加する

MCCの追加方法はマイクロチップ社のHPにおいてMCCの追加方法として選択肢が3つ提示されています。

マイクロチップ社ーMPLAB Code Configurator

今回はOption2のMPLAB X IDEのプラグインとしてインストールする方法の手順をまとめています。ボタンを手順に沿ってクリックするだけなので難しくはありません。

MPLAB X IDEのバージョンが古い場合MCCの要件に合わずプラグインを有効にできないことがあります。その場合はMPLAB X IDEのバージョンを更新する必要があります。

MPLAB X IDEにプラグインとして追加する手順

MPLAB X IDEの起動し画面上部のツールバーの中の「Tools」を選択します。Toolsを選択しPluginsまたはPlugins Downloadを選択します。Plugins Downlloadを選択した場合は次のメッセージボックスが表示されます。

Plugins Downloadを選択した場合

メッセージボックス内の「Go to MPLAB X Plugin Manager」を選択します。

PluginsとPlugins Downloadはどちらを選択してもPluginsの項目が表示されます。

Plugins欄からAvailable Pluginsを選択します。

手順1:Available Pluginsを選択
手順1:Available Pluginsを選択

Available Plugins内にある「MPLAB Code Configurator」をチェックして「Install」をボタンをクリックします。

手順2:インストールの開始
手順2:インストールの開始
手順3:acceptしてスタート
手順3:acceptしてスタート

手順2では「NEXT」をクリックし手順3ではインストールの許可のチェックを入れて「Install」をクリックします。インストールがスタートするのでしばらく待ちます。インストールが完了するとMPLAB X IDEの再起動が求められるので再起動します。

MCCがインストールされていることの確認
MCCがインストールされていることの確認

MPLAB X IDEが再起動するとMCCアイコンが追加されています。このアイコンをクリックするとMCCを使用できるようになります。

MCCを使うメリット

MCCはGUI(Graphical User Interface)を使って選択したPICマイコンデバイスのクロックなどのシステム設定や周辺モジュールの初期化処理が自動で行えます。

ユーザーはレジスタの設定などのコーディングを意識することなく画面に表示された項目を選択するだけで簡単に設定できるため、マイコンの初期化処理に伴う煩わしさを感じることなく開発が行えるのが特徴です。

MCCではPin Managerによって選択したパッケージに応じて現在選択中の周辺モジュール情報を反映した情報が表示されるため外部に接続するインターフェースの準備漏れなど未然に防ぐことができます。

PICマイコンのすべてを網羅しているわけではありませんが周辺モジュールが充実しているパッケージの初期設定が簡単にできるため採用する際のハードルが下げられるため大きなメリットとなります。

MCCの使い方

MCCを使用してソフト開発を行うためにはプロジェクトを作成する必要があります。対象外のマイコンの場合MCCを開いても使用できません。PIC16F1827を使用してMCCの使用方法を説明します。

プロジェクトを作成する

プロジェクトの作成手順を説明します。

手順1:New Projectを開く
手順1:New Projectを開く

New Projectを開きCategoriesから「Microchip Embedded」を選択しProjectsから「Standalone Project」を選択します。

手順2:デバイスの選択
手順2:デバイスの選択

Familyは「Mid-Range 8-bit MCUs」を選択しDeviceは「PIC16F1827」を選択します。

手順3:特に設定なし
手順3:特に設定なし

「Support Debug Header」を選択しますが特に必要ないので初期の「None」としています。

手順4:ツールの選択
手順4:ツールの選択

ツールを選択します。書き込みやデバッグに使用するツールとしてPICKit4を選択しています。

手順5:コンパイラーの選択
手順5:コンパイラーの選択

コンパイラーを選択します。X8コンパイラーが表示されていない場合はインストールが必要です。

手順6:プロジェクト名とフォルダを指定
手順6:プロジェクト名とフォルダを指定

プロジェクト名と保存するためのフォルダを指定します。Encodingは日本語でコメントを入れる場合は「Shift JIS」を選択します。

以上でプロジェクトの作成は完了となります。プロジェクトを作成した後はMCCを使って初期化処理を行いソフト開発を行っていきます。

動作確認用の回路図

動作確認用の回路図
動作確認用の回路図

LED1とLED2はHアクティブとLアクティブのハード構成にしているためRA7とPB6をHIGHにしたとしても反対の動きになります。SW1を押したときLED3が点灯するようにします。

RB0はウィークプルアップしているため信号レベルが浮くことはありません。SW1を押すとLED3が点灯し押さない場合はLED3が消灯するようにします。

MCCによる設定

MCCのアイコンをクリックすると初期起動の場合にMCCファイルについて指定するダイヤログが表示されます。MCCの設定はこのファイルに保存されます。

手順1:MCCファイルの作成
手順1:MCCファイルの作成

ファイル名を指定したい場合は任意の名前を指定できますが特に変更の必要はありません。保存すると操作画面が表示されます。

MCCの全体構成
MCCの全体構成

MCCは大きく①から④のように各欄において設定する項目があります。

  1. プロジェクトソース
  2. デバイスリソース
  3. 各項目の設定
  4. 各ピンの割り当て

今回はプロジェクトソースでクロックの設定とピン割り当てを行いデバイスリソースからライブラリのdelay関数を追加して実装します。

System Module設定

①のプロジェクトソースにおいてSystem Moduleを選択すると③の各設定項目の設定欄にSystemに関する設定項目が表示されます。

手順2:システム設定
手順2:システム設定

外部クロックを使用せず内部クロックを使用するためSystem Clock Selectを「INTOSC」を選択しています。Intemal Clockは任意でもよいですがクロックを高速にするほど消費電流が高くなります。例では4MHzとしています。

Pin Module設定

①のプロジェクトソースでPin Moduleを選択すると③の各設定項目の設定欄にPin Moduleに関する設定項目が表示されます。

手順3:ピンの割り当て
手順3:ピンの割り当て

ピン割り当てはMCCの下側のタブボックスの「Pin Manager:Grid View」ないのGPIOについて設定したい項目をクリックするとinput/outputの設定ができます。設定を行っていない場合は青色になっています。緑色が選択した項目になります。

一度でも選択すると上のPin Module欄のEasy Setupに追加されていきます。例ではRB0をinput設定しておりWPUにチェックを入れてウィークプルアップ設定にしています。

Costom Nameのテキストボックス内の文字は変更することができます。例えばPA0の「IO_PA0」を変更することができます。変更した場合は変更後の名前がMCCが生成する関数に反映されます。

Easy Setupでウィークプルアップの設定はできますがウィークプルアップを使用する場合はRegisters内でWPUを許可する必要があります。

手順4:ウィークプルアップを許可
手順4:ウィークプルアップを許可

デバイスリソースでライブラリを追加

デバイスリソース内のライブラリとしてdelay関数を追加します。

手順5:デバイスリソースでライブラリの追加
手順5:デバイスリソースでライブラリの追加

②デバイスリソース欄内のFoundation Servicesをクリックすると利用できるライブラリや周辺モジュールの項目が表示されます。追加したい項目をクリックすると①のプロジェクトソースにLibraries欄が追加されDELAYの設定ができるようになります。

手順6:ライブラリの設定とMCC設定の反映
手順6:ライブラリの設定とMCC設定の反映

DELAYの設定が終わると今回設定したい項目は網羅しているためプロジェクトに反映させます。プロジェクトソース内のタブ「Generate」をクリックするとプロジェクトにMCC Generated Filesとmain.cがプロジェクトに追加されます。

警告やヒントがNotifications[MCC]に表示されるため設定の矛盾などについて確認しながら設定ができるためコーディングミスによる初期化ミスの可能性が減らせることが最大のメリットだと言えます。

ユーザープログラムを追加する

MCCの設定を反映するとmain.c内にMCC Generated Filesで設定した初期化に関する処理などが関数としてコールされるように実装されています。またユーザーアプリケーションを追加する箇所について記述されています。

main.cにプログラムを追加する

ユーザープログラムはvoid main(void)中のwhile(1){}で囲まれた中に実装します。

void main(void)
{
    // initialize the device
    SYSTEM_Initialize(); //MCCが追加した初期化関数

    while (1)
    {
        // Add your application code
        mainApp(); //ユーザープログラムを追加
    }
} 

void mainApp(void){
   
    DELAY_milliseconds(250);  //250msソフトウェアウェイト
    IO_RA7_Toggle(); //出力を反転
    IO_RB6_Toggle(); //出力を反転

    if( IO_RB0_GetValue()){ //RB0のDIの確認(プルアップなので基本はHIGH)
        IO_RA3_SetLow(); //RA3をLow
    }else{
        IO_RA3_SetHigh(); //RA3をHigh
    } 
}

ユーザーアプリケーションとしてmainApp()関数を実装しています。250msのウェイトを入れながらRA7とRB6のDOの出力を反転することで動作確認回路図のLED1、LED2を点灯/消灯しています。SW1を押したときRA3がLowとなるのでLED3を点灯しています。

mainApp()関数内ではMCCにより生成された関数を使用しています。関数の内容はSource FilesとHeader Filesの中のMCC Generated Filesのファイルを開くことで確認できます。下記に一部を抜粋しています。

// get/set IO_RA0 aliases
#define IO_RA0_TRIS                 TRISAbits.TRISA0
#define IO_RA0_LAT                  LATAbits.LATA0
#define IO_RA0_PORT                 PORTAbits.RA0
#define IO_RA0_ANS                  ANSELAbits.ANSA0
#define IO_RA0_SetHigh()            do { LATAbits.LATA0 = 1; } while(0)
#define IO_RA0_SetLow()             do { LATAbits.LATA0 = 0; } while(0)
#define IO_RA0_Toggle()             do { LATAbits.LATA0 = ~LATAbits.LATA0; } while(0)
#define IO_RA0_GetValue()           PORTAbits.RA0
#define IO_RA0_SetDigitalInput()    do { TRISAbits.TRISA0 = 1; } while(0)
#define IO_RA0_SetDigitalOutput()   do { TRISAbits.TRISA0 = 0; } while(0)
#define IO_RA0_SetAnalogMode()      do { ANSELAbits.ANSA0 = 1; } while(0)
#define IO_RA0_SetDigitalMode()     do { ANSELAbits.ANSA0 = 0; } while(0)

MCCで生成した定義を記述することで動作がマクロ化されているため使用したい関数をコールするだけでDOやDIの制御が可能です。

ソフトの書き込みについて

プログラムを実装しソフトをPICマイコンに書き込むときの方法について説明します。書き込みツールが準備できていることを前提に進めます。

ソフト書き込み

書き込みのマークをクリックすることでコンパイルとソフト書き込みを同時に行うことができます。

コンパイルエラーの場合は書き込みがスタートすることはありませんがエラーが無ければPICマイコンにソフトを書き込みます。書き込み時に次のような警告が出ることがあります。

書き込み時に出る警告
書き込み時に出る警告
プロパティを開く
プロパティを開く

この警告は電源に関するものですがPICkitの電源設定を変更すると警告が出なくなります。プロジェクトのプロパティで変更します。

Dashboard内のPacksのPIC12-16F1xxx_DEFをクリックするとプロジェクトのプロパティが表示されます。Conf欄の中のPICkit4の欄をクリックするとPICkit4に関する情報が表示されます。Option categories:を選択と設定できる項目がリストで表示されるので「POWER」を選択します。

PICkit4の電源設定
PICkit4の電源設定

Power target circuit from PICkit4をチェックします。チェック後はApplyをクリックしOKをクリックします。この設定が完了したら書き込めるようになります。

関連リンク

PICマイコンを使ってマイコンのレジスタの設定やMPLAB X IDEのプラグインであるMCCを使用して動作確認したことについてまとめています。

PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ

PICマイコン(PIC16F1827)で実現できる機能と解説リンクまとめ

テックジム-将来のためにプログラミングを学ぶ

最後まで、読んでいただきありがとうございました。

タイトルとURLをコピーしました