ナゾテックの名前で模型・ジオラマ用のLED電飾コントローラーや配線済みチップLEDの販売などを行っている者です。
想定読者
MicrochipのPICマイコンを使って電子工作する場合のマイコン設定で使用する、MPLAB X IDEのMCC(MPLAB Code Configurator)の操作方法を少し詳しく解説します。
MPLAB X IDEのインストールや基本操作の説明はここでは省いていますので、各種インストールなどの記事を参考にしてください。
ブレッドボードの使い方の基本
Microchip MPLAB X IDEのインストールと使い方の基礎
MicrochipのPICマイコンとMPLAB Snap インサーキット デバッガを繋ぐ
ここでは"PIC16F1827"のマイコンを使うプロジェクトが既に新規作成されている前提で進めていますので、まずそこまでやっておいてください。
目次
MCCの起動
MCC各部の説明
リソースマネージャ
リソース設定
ピンマネージャ
設定の反映
MCCコード生成の衝突
MCCの起動
下記画面の中央より少し右に有る"MCC"と書かれた青いボタンをクリックします。

このボタンはMPLAB X IDEの表示幅が狭いと表示されません。

その場合は中央より右にある、
!
下向きの矢印が2つ並んだようなボタンの上にマウスカーソルを移動すると別のボタンが下側に表示されます。

一番下にあるMCCと書かれた青いボタンをクリックします。
他にも"Tool"メニューに有る"Embedded->MPLAB Code Configurator Open/Close"をクリックしても開きます。

現在MCCには2種類あり、新しい方が"MCC Melody"、古い方が"MCC Classic"となっています。ここでは"Classic"の方を開くので、下記画面が表示されたら下の方に有る"For MCC Classic Content:Click Here"をクリックしてください。

もう一度聞いてくるので"Next"をクリックしてください。

MCCの起動には少し長い時間が掛かるかも知れません。
MCC各部の説明
MCCの初期画面です。

MCCのウインドウは大きく4つに分かれています。
| 記号 | 名称 | 役割 |
|---|---|---|
| A,A' | Resource Manager (リソースマネージャ) |
機能の追加、選択 |
| B | リソース設定 | Aで選択した機能の設定 |
| C | Pin Manager Package (ピンマネージャパッケージ) |
マイコンのピンの役割表示・変更 |
| D | Pin Manager Grid (ピンマネージャグリッド) |
ピンの役割設定 |
各ウインドウの上部の点線枠で囲ったタブ部分をクリックすることでさらに別のウインドウを表示できます。
リソースマネージャ
リソースマネージャのAの部分には現在マイコンに設定されている機能が表示されています。
A'の部分にはマイコンに追加できる機能やライブラリが表示されています。各行の左端に有る">"をクリックしてツリーを展開し、必要な機能を選択して追加することでA側にそれが加わります。


ツリーの下の方。

たとえば"TMR2"を使いたい場合は"TMR2"の左に有る+アイコンをクリックします。するとAの部分に追加した"TMR2"が加わります。

Aで設定したい機能の行をクリックするとBに設定内容が現れます。

一度Bに表示された機能設定ウインドウはB上部のタブを選択する事でも切り替える事が出来ます。
機能を削除したい場合はAで機能の左に有る✖アイコンをクリックします。

クリックすると確認画面が表示されるので、良ければ"Yes"をクリックします。

リソース設定
Bのエリアです。
選択したリソース毎の各種設定を行います。この画面には大きく分けて"Easy Setup"と"Regiters"の2種類が有ります。

"Easy Setup"の方でもほとんどの設定が可能ですし、設定が分かりやすくなっています。まれにこれだけでは設定しきれない内容を"Registers"側で設定することが可能です。

ピンマネージャ
CとDのエリアです。ここでは各ピンに対して入出力の設定や各種機能の出力先、入力元を割り当てます。
グリッド表示とパッケージ表示に分かれていて、パッケージ表示の方はマウスである程度の設定が出来るようになっています。
下図はCエリアで7番ピンの上で右クリックした場合の表示です。一番上に"MSSP1|SDI1|input"と表示されているのは、リソース設定でMSSP1機能を追加しているからです。追加していない場合はこれの表示は有りません。また、このマイコンの場合はピンごとに役割が有る程度決まっているので、他のピンの右クリックでは表示が変わります。

基本的に"Pin Module|GPIO|input"と"Pin Module|GPIO|output"はどのピンでも表示され、そのピンを入力にするか出力にするのかを設定できます。同じ選択を2度行うと解除されます。つまり、最初に"GPIO|input"を選択して再度"GPIO|input"を選択すると、そのピンは何も設定していない状態に戻ります。
Dエリアはピンと各種機能の入出力が縦横のグリッド状に表示されていて、交差する部分をクリックすることでピンに機能の入出力を割り当てる事が出来ます。

緑で鍵が掛った状態のアイコンが選択された状態です。黄色の鍵が開いているアイコンはそのピンもしくはその機能が他のピンなどで選択されていることを表しています。ブルーの鍵が開いたアイコンは何も選択されていない状態です。緑アイコンを再度クリックすると選択されていない状態になります。
さらにBエリアのタブで"Pin Module"を選択すると下記の画面に切り替わります。
下記画面ではRB5を入力、RB6を出力の設定にした状態です。

こちらの画面では先ほどのピンモジュールグリッドなどで入出力の設定を行ったピンのみが表示されます。
各列の意味です。
| 列名 | 意味 | 働き |
|---|---|---|
| Pin Name | ポート番号 | |
| Module | モジュール・リソース名 | |
| Function | モジュール・リソース毎の役割 | |
| Custom Name | ピンに付ける名称 | ピン単位でプログラムで使用する名称を設定できます |
| Start High | 起動時Highにする | 起動時に最初からピン状態をHighにできます |
| Analog | アナログ入出力指定 | デジタル・アナログ入出力切り替え |
| Output | 出力指定 | 出力ピンの設定 |
| WPU | 弱いプルアップ指定 | 入力の場合に抵抗値が大きなプルアップ設定ができます |
| OD | Open Drain設定 | ピン出力をLowかオープン状態にする設定。 すみません詳しくはググッてください |
| IOC | 割込み設定 | ピンの状態によって割込みを発生させるかの設定 |
設定の反映
MCCでの各種の設定変更はそのままではプログラムに反映されません。必ず"Generate"ボタンをクリックしてコードへの反映を行ってください。どんなに小さな変更でも、これを行わないと正しくマイコンへの設定が行われません。
ボタンはAのエリアに有ります。

これを実行するとDのエリアに実行結果が表示されます。

MCCコード生成の衝突
MCCは自動的にコードを出力しますが、たとえば何らかの理由でMCCが出力したコードを人が書き換えたとします。するとMCCはそれを勝手に書き換える事をせず、確認の画面を表示して人に指示を仰ぎます。
Bのエリアに表示されます。下記の画面がそれにあたります。

これは差分表示(マージツール)ツールで、必要があれば人の書いたコードを残すかMCCのコードで上書きするかを選択できます。
上記の画面では左側がこれからMCCが出力しようとしているコードで、右側が現状のコードです。
中央付近に赤い✖マークと右側にグリーン帯のような部分が見えますが、この部分が左のコードに無くて右のコードに有る部分、と言う事になります。
上書きをせず全て現状で残す場合はこのタブ自体を閉じて大丈夫です。下記の確認ウインドウが表示されますので、本当に良ければ"Yes"をクリックしてください。

マージツールの上の方に有る左から右へ向かう矢印をクリックすると、全体をMCCの出力するコードで置き替えます。
基本的にmain.cなどは人がたくさんの変更を加えているはずなので、全体をMCCのコードで上書きすると困るはずです。どの部分をMCCからのコードにするのかを考えてマージしてください。
前述した赤い✖マークで必要な部分のみMCCのコードで書き換えて、最後はタブを閉じてください。
