MPLABの環境構築とトラブルシューティング

#1．はじめに
本記事では，PICの開発に使われる統合開発環境MPLAB X IDEの環境構築とそのトラブルシューティングについて紹介します．

既にMPLABに関する記事はいくつか存在していますが，本記事は現在僕が執筆している【気象・水文観測機器の自作】シリーズの内容に特化したものになっています．
解説自体は他の記事をお借りして，本記事はMPLABに関する情報の集約に主眼を置きます．

**記事の内容**
・MPLABのインストール方法
・コンパイラのインストール方法
・MCCのインストール方法
・その他の準備
・トラブルシューティング

#2．MPLABの環境構築
###2.1．MPLABとコンパイラのインストール
以下の記事を参考に，MPLAB X IDEとXC8コンパイラをインストールしてください．
なお，コンパイラのセッティング画面で環境変数へのパスを通しておいてください(Add xc8 to the PATH environment variableのチェックボックスにチェックを入れる)．

>
http://www2.kaiyodai.ac.jp/~jtahar0/posts/activity19.html
https://sanuki-tech.net/pic/development/install-mplab-x-ide/

###2.2．MCCのインストール
以下の記事を参考に，MCCをインストールしてください．
このとき新規作成したプロジェクトは削除してかまいません．
>
http://blog.e-photographer.net/how-to-program-pics-with-mplab-x-and-mcc?lang=ja

###2.3．その他の準備
MPLAB，XC8コンパイラ，MCCのインストールは初回のみ必要です．
ここでは，PIC開発をするときに作成するプロジェクトファイルに対して行う初期設定について説明します．

改めて，以下のサイトを参考に新規プロジェクトを作成します．
>
http://blog.e-photographer.net/how-to-program-pics-with-mplab-x-and-mcc?lang=ja

**プロジェクトファイルのアクティベート**
・画面左のプロジェクトウィンドウのプロジェクト名が太字になっていない場合は，プロジェクト名を右クリックして，「Set as main project」を押して，プロジェクトをアクティベートしてください．
![Set_as_main_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666904/45d85eb1-5f03-b349-7db2-9aaaa46fd28e.png)

**供給電圧の設定**
・画面左のプロジェクトウィンドウのプロジェクト名を右クリックして，「プロパティ」をクリック．
・ライター名(ここでは，PICkit3)をクリックする．
・「Option categories」は「Power」を選択する．
・「Power target circuit from PICkit3」にチェックを入れ，「Voltage Level」を「3.25」にする．
![MPLAB X IDE v5.45 - DataLogger _ default 2021_04_17 8_59_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666904/03db786a-6387-37b6-c5c5-f131a0246f80.png)

**C言語の規格をC99からC90に変更する**
・画面左のプロジェクトウィンドウのプロジェクト名を右クリックして，「プロパティ」をクリック．
・「XC8 Global Options」をクリック．
・「Option categories」は「Global options」を選択する．
・「C standard」を「C 90」にする．
>
https://neo-sahara.com/wp/2018/08/25/mplab-xc8-compiler-v2-00-%E3%81%A8-mplab-code-configurator-v3-65-%E3%81%A7%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%87%A6%E7%90%86%E3%81%AB%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%82%A8%E3%83%A9/

![MPLAB X IDE v5.45 - DataLogger _ default 2021_04_17 8_59_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666904/245fab55-e511-034f-3036-44a08e0cf5ea.png)

#3．トラブルシューティング
ビルド・書き込み時のエラーについて整理しておきます．


**エラーメッセージ：can't find 0x0a words (0xa withtotal)**
メモリ(RAM)が足りないため表示されるエラーメッセージです．
無駄な変数を減らしたり，上位種のPICに変更することで解決します．
RAMの使用率の確認方法
　メニューバーの「Window」>>「DashBoard」で「DashBoard」ウィンドウを画面左下に表示させる．
　「Memory」ツリー直下の「Data」を見る．
![MPLAB X IDE v5.45 - DataLogger _ default 2021_04_17 9_14_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666904/29b0a706-7690-094e-1550-c4ce25b94e8c.png)

http://blog.livedoor.jp/mplab/archives/1062715171.html

**エラーメッセージ：Target Device ID (0x0) does not match expected Device ID (0x2480).　**
たいてい配線ミスが原因です．
**エラーメッセージ：Failed to program device**
**エラーメッセージ：Connection Failed.**　
これらは物理・人的エラーで起きることが多いです．
一番よくやるミスはPICkitとPICの繋ぎ忘れです．

>
http://www.picfun.com/mplabx/mpxlab05.html



**エラーメッセージ：PICkit 3 is trying to supply XXXXXXX volts from the USB port, but the target VDD is measured to be XXXXXXX volts. This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.
The target circuit may require more power than the debug tool can provide. An external power supply might be necessary.
Connection Failed.**
配線を確認する
PICKitを一度繋ぎなおす
配線を直したり，PICkitを繋ぎなおしたときは一度MPLABを再起動するのがよい
通常はPICKitから対象の回路に書き込みするときは外部から電源を供給しないが，あえてVDDとVSSを供給してみるとうまくいくこともある．

**エラーメッセージ：The target circuit may require more power than the debug tool can provide. An external power supply might be necessary.Connection Failed.**
PICkitをUSBハブ経由でPCに繋いでいると電圧不足になりこのエラーが出ることがあります．
USBハブは普段から使わないで直接PCに繋ぎましょう．
PCに直接繋いでも解決しないときは供給電圧をテキトーに変更すると解決することがあります．
・画面左のプロジェクトウィンドウのプロジェクト名を右クリックして，「プロパティ」をクリック．
・ライター名(ここでは，PICkit3)をクリックする．
・「Option categories」は「Power」を選択する．
・「Power target circuit from PICkit3」にチェックを入れ，「Voltage Level」を「3.25」にする．

**エラーメッセージ：nbproject/Makefile-default.mk:154: recipe for target 'build/default/production/main.p1' failed
make[2]: Leaving directory 'C:/Users/XXXX/Desktop/PIC PROJECT/sensor_obfect.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/XXXX/Desktop/PIC PROJECT/sensor_obfect.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [build/default/production/main.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2**

C言語の規格をC90にすると解決します．

ソースファイルやヘッダーファイルを削除したあとビルドしようとすると，
古いビルド情報が残っていて似たようなエラーが出ることがあります．
その場合は以下の手順でビルド情報をリセットします．
メニューバー>>Production>>Clean and Build Main Project

**outputウィンドウが開かない**
メニューバー>>Window>>Reset Windows


#4．おわりに

最後までお付き合い頂き，ありがとうございました．

今回は備忘録に近い記事のためやや説明が簡単ですが，何かしら役に立てば幸いです．

それでは，また次回の記事でお会いしましょう．

記事のリクエスト・感想なども受け付けています．
Twitter Acount：https://twitter.com/6LxAi9GCOmRigUI
メール：BattleShipMissouriWater@gmail.com
ツイッターで絡んでくれると喜びます(*´･ω･｡)σｶﾏﾁｮ