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

組み込みエンジニア

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

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

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

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

2022年8月末現在のMCCの最新のバージョンは5.1.17です。

MPLAB Code Configurator(MCC)を追加する

MCCの追加方法はマイクロチップ社のHPではMPLAB X IDEのプラグインを追加する方法が説明されています。

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

マイクロチップ社のHPでも動画で説明されていますが、ボタンを手順に沿ってクリックするだけなので難しくはありません。

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

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

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

Plugins Downloadを選択した場合
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:インストールの開始

「Next」を押して次に進みます。

手順3:acceptしてスタート
手順3:acceptしてスタート

「I accept the terms in all of the license agereements」にチェックを入れて「Install」をクリックするとインストールがスタートするのでしばらく待ちます。

手順4 インストール後にMPLAB X IDEを再起動する
手順4 インストール後にMPLAB X IDEを再起動する

インストールが完了するとMPLAB X IDEの再起動が求められるので「Restart Now」を選択して再起動します。

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

MPLAB X IDEが再起動するとMCCアイコンが追加されています。このアイコンをクリックするとMCCを使用できるようになります。旧バージョンのMCCを使用していた場合は次のメッセージが表示されます。

MCC Coreのアップデート
MCC Coreのアップデート

MCCはアップデートされるたびにコアのバージョンがアップしています。基本的に古いバージョンを使用し続けるメリットはないため「Yes」をクリックして使用するコアをアップデートすることをお勧めします。

万が一アップデートによって動作しなくなったとしても旧バージョンのコアを選択することができるため問題ありません。

MCCを使うメリット

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

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

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

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

MCCが動作しない場合に試したい事項(参考資料)

下記はMCCのバージョンアップ(Ver5.00以降)によって正常に動作するように修正されており必要はなくなりましたが参考資料として残しています。2021年11月8日動作確認済み

2021年9月23日にアップデートされていますが、アップデートすると新規プロジェクトを作成した場合にMCCが開始しないことがあります。アップデート以前のバージョンに戻すと動作するため今後改修される可能性があります。

バージョンを戻す方法についてまとめました。アップデートによって動作しなくなったなどお困りの際は試してみてください。

MCCのダウンロード
MCCのダウンロード

マイクロチップのHPからMCCのVersion4.21がダウンロードできます。最新のものはVer5.00になりますが現状Version4.21がトップになっています。下記リンクでダウンロードページに遷移します。

MPLAB® Code Configurator | Microchip Technology

ダウンロードして任意の場所に解凍して展開します。次にMPLAB X IDEのtools欄からPluginsを選択しInstalledをクリックし一覧からMPLAB Code Configuratorを選択します。

最新のMCCをアンインストールする
最新のMCCをアンインストールする

MCCを一旦アンインストールした後はマイクロチップのHPからダウンロードしたMCCファイルを使ってMCCのプラグインを追加します。Downloadedを選択しAddPluginsをクリックするとファイル選択のダイアログが表示されます。

MCCプラグインの追加
MCCプラグインの追加

選択するとMCCのバージョン4.2.1がインストール候補として追加されるのでInstallをクリックして追加します。追加するとリスタートするかを尋ねられますが、Restart Laterを選択してすぐにリスタートしないようにします。次に起動時にアップデートの通知が出ないように設定を行います。

プラグインのアップデータを停止
プラグインのアップデータを停止

Settingを選択しMicrochip Pluginsのチェックを外します。MPLAB X IDEをリスタートするまでチェックを外しておくことをお勧めします。アップデートを停止しない場合はMPLAB X IDEを起動するたびにアップデートの通知が発生しアップデートしない場合はMCCがDeactivateになってしまいます。

アップデートしてしまうとMCCが動かない状態に戻ってしまうためアンインストールからやり直しになってしまいます。

アップデートが通知されなくなるため注意が必要ですが、MCCを使用するための一時しのぎになるためバージョン5.0.0以降で動作が確認できた場合はチェックを戻すことを忘れないようにご注意ください。

スポンサーリンク

MCCの使い方

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

プロジェクトを作成する手順

プロジェクトの作成手順を説明します。MPLAB X IDEを起動します。

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

New Projectを開きCategoriesから「Microchip Embedded」を選択しProjectsから「Standalone Project」を選択します。 「Next」をクリックして次に進みます。

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

Familyは「Mid-Range 8-bit MCUs」を選択しDeviceは「PIC16F1827」を選択します。Toolは「PICkit4」を選択していますが、後からでも選択できるため指定しなくても問題ありません。

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

「Next」をクリックして次に進みます。

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

インストールしているXCコンパイラーが表示されるため使用するコンパイラーを選択します。例では旧バージョンのコンパイラーも表示されていますが最新のバージョンのコンパイラーを使用することをお勧めします。コンパイラーが表示されていない場合は別途インストールが必要です。「Next」をクリックして次に進みます。

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

プロジェクト名とフォルダを指定します。例ではProject Nameを「ledonoff」、project Locationを「C:\WorkSpace\PIC16F1827」(任意でも可)を指定しています。Encodingは日本語でコメントを入れる場合は「Shift JIS」を選択します。「Finish」をクリックするとプロジェクトが作成されます。

スポンサーリンク

動作確認用の回路図

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

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

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

MCCによる設定

MCCを初期起動する場合とプロジェクトフォルダにMCCファイルが生成されている場合の起動方法が異なるため2通りの方法を説明します。

初期起動の場合

MCCのオプションコンテンツを追加する場合
MCCの初期起動の画面

MCCのアイコンをクリックするとMCC Content Manager Wizardが表示されます。MCC Classic内の「Select MCC Classic」をクリックするとMCC Classicに対するコンテンツの要求およびオプションコンテンツの画面に遷移します。

MCCのオプションコンテンツを追加する場合

MCCのオプションコンテンツを追加する場合はOptional Content欄のLibrariesにチェックを入れます。特に追加しない場合はチェックせずに「Finish」をクリックするとMCCの操作画面に遷移します。

MCCファイルをアップデートしてオプションコンテンツを追加する場合

MCCファイルをアップデートしてオプションコンテンツを追加する場合
MCCファイルをアップデートしてオプションコンテンツを追加する場合

オプションコンテンツを追加する場合はMCC Core Versions内の「Libraries may be updated in the Content Manager」をクリックすると追加項目が表示されます。

追加したいライブラリのVersionを選択すると「Apply」ボタンが有効になるためクリックすると追加されます。

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マイコンに書き込むときの方法について説明します。書き込みツールが準備できていることを前提に進めます。

書き込みの方法
書き込みの方法

ハンマーのマークをクリックするとコンパイルできます。コンパイルのみでは書き込みを行いません。コンパイル&書き込みのマークをクリックするとコンパイルしてエラーなど問題がなければソフトの書き込みを行います。書き込み時に次のような警告が出ることがあります。

書き込み時に出る電源の警告
書き込み時に出る電源の警告

この警告は3.3V電源のデバイスで5.0Vを選択するとダメージになるという警告ですが5.0Vマイコンを使用している場合は特に気にする必要はありません。電源をPICkit4から供給して書き込む場合はPICkit4の設定を行う必要があります。

PICkitの電源設定を変更するためプロジェクトのプロパティで変更します。

プロジェクトのプロパティを表示する方法
プロジェクトのプロパティを表示する方法

Dashboard内のPacksのPIC12-16F1xxx_DEFをクリックかPjojects欄内のプロジェクト名を右クリックしてpropertiesを選択するとプロジェクトのプロパティが表示されます。

Conf欄の中のPICkit4の欄をクリックするとPICkit4に関する情報が表示されます。Option categories:を選択と設定できる項目がリストで表示されるので「POWER」を選択します。

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

Power target circuit from PICkit4をチェックします。「Apply」をクリックして「OK」するとPICkit4から電源が供給され書き込みができるようになります。

関連リンク

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

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

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

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

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

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