こんにちは、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でも動画で説明されていますが、ボタンを手順に沿ってクリックするだけなので難しくはありません。
広告
PR:わからないを放置せず、あなたにあったスキルを身に着けるコツを教える テックジム 「書けるが先で、理解が後」を体験しよう!
MPLAB X IDEにプラグインとして追加する手順
MPLAB X IDEの起動し画面上部のツールバーの中の「Tools」を選択します。Toolsを選択しPluginsまたはPlugins Downloadを選択します。Plugins Downlloadを選択した場合は次のメッセージボックスが表示されます。
メッセージボックス内の「Go to MPLAB X Plugin Manager」を選択します。PluginsとPlugins Downloadはどちらを選択してもPluginsの項目が表示されます。Plugins欄からAvailable Pluginsを選択します。
Available Plugins内にある「MPLAB Code Configurator」をチェックして「Install」をボタンをクリックします。
「Next」を押して次に進みます。
「I accept the terms in all of the license agereements」にチェックを入れて「Install」をクリックするとインストールがスタートするのでしばらく待ちます。
インストールが完了するとMPLAB X IDEの再起動が求められるので「Restart Now」を選択して再起動します。
MPLAB X IDEが再起動するとMCCアイコンが追加されています。このアイコンをクリックするとMCCを使用できるようになります。旧バージョンのMCCを使用していた場合は次のメッセージが表示されます。
MCCはアップデートされるたびにコアのバージョンがアップしています。基本的に古いバージョンを使用し続けるメリットはないため「Yes」をクリックして使用するコアをアップデートすることをお勧めします。
万が一アップデートによって動作しなくなったとしても旧バージョンのコアを選択することができるため問題ありません。
MCCを使うメリット
MCCはGUI(Graphical User Interface)を使って選択したPICマイコンデバイスのクロックなどのシステム設定や周辺モジュールの初期化処理が自動で行えます。
ユーザーはレジスタの設定などのコーディングを意識することなく画面に表示された項目を選択するだけで簡単に設定できるため、マイコンの初期化処理に伴う煩わしさを感じることなく開発が行えるのが特徴です。
MCCではPin Managerによって選択したパッケージに応じて現在選択中の周辺モジュール情報を反映した情報が表示されるため外部に接続するインターフェースの準備漏れなど未然に防ぐことができます。
MCCが動作しない場合に試したい事項(参考資料)
2021年9月23日にアップデートされていますが、アップデートすると新規プロジェクトを作成した場合にMCCが開始しないことがあります。アップデート以前のバージョンに戻すと動作するため今後改修される可能性があります。
バージョンを戻す方法についてまとめました。アップデートによって動作しなくなったなどお困りの際は試してみてください。
マイクロチップのHPからMCCのVersion4.21がダウンロードできます。最新のものはVer5.00になりますが現状Version4.21がトップになっています。下記リンクでダウンロードページに遷移します。
MPLAB® Code Configurator | Microchip Technology
ダウンロードして任意の場所に解凍して展開します。次にMPLAB X IDEのtools欄からPluginsを選択しInstalledをクリックし一覧からMPLAB Code Configuratorを選択します。
MCCを一旦アンインストールした後はマイクロチップのHPからダウンロードしたMCCファイルを使ってMCCのプラグインを追加します。Downloadedを選択しAddPluginsをクリックするとファイル選択のダイアログが表示されます。
選択するとMCCのバージョン4.2.1がインストール候補として追加されるのでInstallをクリックして追加します。追加するとリスタートするかを尋ねられますが、Restart Laterを選択してすぐにリスタートしないようにします。次に起動時にアップデートの通知が出ないように設定を行います。
Settingを選択しMicrochip Pluginsのチェックを外します。MPLAB X IDEをリスタートするまでチェックを外しておくことをお勧めします。アップデートを停止しない場合はMPLAB X IDEを起動するたびにアップデートの通知が発生しアップデートしない場合はMCCがDeactivateになってしまいます。
アップデートしてしまうとMCCが動かない状態に戻ってしまうためアンインストールからやり直しになってしまいます。
MCCの使い方
MCCを使用してソフト開発を行うためにはプロジェクトを作成する必要があります。対象外のマイコンの場合MCCを開いても使用できません。PIC16F1827を使用してMCCの使用方法を説明します。
プロジェクトを作成する手順
プロジェクトの作成手順を説明します。MPLAB X IDEを起動します。
New Projectを開きCategoriesから「Microchip Embedded」を選択しProjectsから「Standalone Project」を選択します。 「Next」をクリックして次に進みます。
Familyは「Mid-Range 8-bit MCUs」を選択しDeviceは「PIC16F1827」を選択します。Toolは「PICkit4」を選択していますが、後からでも選択できるため指定しなくても問題ありません。
「Next」をクリックして次に進みます。
インストールしているXCコンパイラーが表示されるため使用するコンパイラーを選択します。例では旧バージョンのコンパイラーも表示されていますが最新のバージョンのコンパイラーを使用することをお勧めします。コンパイラーが表示されていない場合は別途インストールが必要です。「Next」をクリックして次に進みます。
プロジェクト名とフォルダを指定します。例では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 Content Manager Wizardが表示されます。MCC Classic内の「Select MCC Classic」をクリックするとMCC Classicに対するコンテンツの要求およびオプションコンテンツの画面に遷移します。
MCCのオプションコンテンツを追加する場合はOptional Content欄のLibrariesにチェックを入れます。特に追加しない場合はチェックせずに「Finish」をクリックするとMCCの操作画面に遷移します。
広告
MCCファイルをアップデートしてオプションコンテンツを追加する場合
オプションコンテンツを追加する場合はMCC Core Versions内の「Libraries may be updated in the Content Manager」をクリックすると追加項目が表示されます。
追加したいライブラリのVersionを選択すると「Apply」ボタンが有効になるためクリックすると追加されます。
MCCで操作する設定項目
MCCは大きく①から④のように各欄において設定する項目があります。
- プロジェクトソース
- デバイスリソース
- 各項目の設定
- 各ピンの割り当て
今回はプロジェクトソースでクロックの設定とピン割り当てを行いデバイスリソースからライブラリのdelay関数を追加して実装します。
System Module設定
①のプロジェクトソースにおいてSystem Moduleを選択すると③の各設定項目の設定欄にSystemに関する設定項目が表示されます。
外部クロックを使用せず内部クロックを使用するためSystem Clock Selectを「INTOSC」を選択しています。Intemal Clockは任意でもよいですがクロックを高速にするほど消費電流が高くなります。例では4MHzとしています。
Pin Module設定
①のプロジェクトソースでPin Moduleを選択すると③の各設定項目の設定欄にPin Moduleに関する設定項目が表示されます。
ピン割り当てはMCCの下側のタブボックスの「Pin Manager:Grid View」ないのGPIOについて設定したい項目をクリックするとinput/outputの設定ができます。設定を行っていない場合は青色になっています。緑色が選択した項目になります。
一度でも選択すると上のPin Module欄のEasy Setupに追加されていきます。例ではRB0をinput設定しておりWPUにチェックを入れてウィークプルアップ設定にしています。
Costom Nameのテキストボックス内の文字は変更することができます。例えばPA0の「IO_PA0」を変更することができます。変更した場合は変更後の名前がMCCが生成する関数に反映されます。
デバイスリソースでライブラリを追加
デバイスリソース内のライブラリとしてdelay関数を追加します。
②デバイスリソース欄内のFoundation Servicesをクリックすると利用できるライブラリや周辺モジュールの項目が表示されます。追加したい項目をクリックすると①のプロジェクトソースにLibraries欄が追加されDELAYの設定ができるようになります。
DELAYの設定が終わると今回設定したい項目は網羅しているためプロジェクトに反映させます。プロジェクトソース内のタブ「Generate」をクリックするとプロジェクトにMCC Generated Filesとmain.cがプロジェクトに追加されます。
ユーザープログラムを追加する
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」を選択します。
Power target circuit from PICkit4をチェックします。「Apply」をクリックして「OK」するとPICkit4から電源が供給され書き込みができるようになります。
関連リンク
PICマイコンを使ってマイコンのレジスタの設定やMPLAB X IDEのプラグインであるMCCを使用して動作確認したことについてまとめています。
PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ
PICマイコン(PIC16F1827)で実現できる機能と解説リンクまとめ
PR:わからないを放置せず、あなたにあった最低限のスキルを身に着けるコツを教える テックジム 「書けるが先で、理解が後」を体験しよう!
最後まで、読んでいただきありがとうございました。