PICkit3を使ってPICへプログラムを書き込むには2つの方法がある。
1. PICの統合開発環境MPLAB X IDE(無償)をPCにインストールしてプログラムを書き込む方法
2. クラウドベースのPIC統合開発環境MPLAB Xpress(無償)をインターネットブラウザで開き、ソフトをインストールせずにプログラムを書き込む方法
ここでは、1のMPLAB X IDEの、インストール方法から、プログラムの作成手順、PICにプログラムを書き込む方法まで紹介する。
なお、2のMPLAB Xpressを使う方法については、MPLAB Xpressを使ってPICにプログラムを書き込む方法にまとめている。
1. 使用準備
1-1. MPLAB X IDEのインストール
下記のURLからMPLAB X IDEのサイトを開く。
http://www.microchip.com/mplab/mplab-x-ide
ページ下部の「Downloads」から、自分のPCのOSに合ったインストーラをダウンロードする。
ダウンロードしたインストーラを起動すると、Setup画面が表示されるので、画面の指示に従いながら「Next」をクリックしていく。
途中、Installation Options や Select Programs で選択肢が表示されるが、そのまま変えずに「Next」をクリックして良い。
インストールの途中で、上のような画面が表示されることがあるが、「"Microchip Technology Inc."からのソフトウェアを常に信頼する」にチェックを入れて「インストール」をクリックして良い。
インストールが完了すると、上のような画面が表示されるので「Finish」をクリックする。これでMPLAB X IDEのインストールは完了。
1-2. MPLAB XC8 Compilersのインストール
MPLAB X IDEをインストールしたら、次にC言語でプログラムを開発するためにコンパイラをインストールする必要がある。
MPLABで使用可能なコンパイラは何種類かあるが、ここではMPLAB XC8コンパイラ(無償)のインストール方法を説明する。
まず、下記のURLからMPLAB XC Compilerのサイトを開く。
http://www.microchip.com/mplab/compilers
ページ下部の「Downloads」から、自分のPSのOSに合ったMPLAB XC8 Compilerのインストーラをダウンロードする。
XC8は8ビットのPICマイコン(例:PIC16F88)をサポートしている。
ダウンロードしたインストーラを起動すると、上のような画面が表示されることがあるが、「実行」をクリックして良い。
Setup画面が表示されるので、画面の指示に従いながら「Next」をクリックしていく。
途中、License Typeで選択肢が表示されるが、Freeを選択し「Next」をクリックする。
Installation Directory や Compiler Settings で選択肢が表示されるが、そのまま変えずに「Next」をクリックして良い。
FREE MPLAB XC8 Compilerを使いたいので、そのまま「Next」をクリックする。
インストールが完了すると、上のような画面が表示されるので「Finish」をクリックする。これでMPLAB XC8 Compilerのインストールは完了。
1-3. 念のためPC再起動
MPLAB X IDEとXC8 Compilerのインストールが完了したら、念のためPCを再起動する。
再起動後、デスクトップに「MPLAB X IDE」のアイコンがあるかどうか確認する。
1-4. MPLAB X IDE起動
デスクトップ上のMPLAB X IDEのアイコンをダブルクリックすると、Windowsセキュリティの重要な警告が表示されることがあるが、「アクセスを許可する」をクリックする。
MPLAB X IDEが起動すると、上の画面が表示される。これで、MPLAB X IDEを使う準備は完了。
2. プログラムの作成手順
2-1. 新規プロジェクトの作成
MPLAB X IDEの画面の左上、「File」をクリックし、「New Project」をクリックする。
2-2. プロジェクトの種類の選択
Choose Projectの画面が表示されるので、Categoriesは「Microchip Embedded」を選択し、Projectsは「Standalone Project」を選択する。
選択したら「Next」をクリックする。
2-3. 使うPICの種類の選択
Select Deviceが表示される。PIC16F88用のプログラムを作成する場合、Familyは「Mid-Range 8-bit MCUs (PIC10/12/16/MCP)」を選択する。
Deviceは「PIC16F88」を選択する。
選択したら「Next」をクリックする。
2-4. プログラム書き込み装置の選択
Select Toolが表示される。PICにプログラムを書き込む際、PICkit3を使用する場合は、「PICkit3」を選択し、「Next」をクリックする。
2-5. コンパイラの選択
Select Compilerが表示されるので、本ページ「1-2. MPLAB XC8 Compilersのインストール」でインストールした「XC8」を上の画面のように選択し、「Next」をクリックする。
2-6. プロジェクトの名前、保存場所の設定
Select Project Name and Folderが表示されるので、Project Nameには自分で決めたプロジェクト名(日本語不可)を記入、Project Locationは自分のわかる保存場所を指定する。「Set as main project」にチェックを入れる。Encodingは「Shift JIS」を指定する。
【忘れがちなポイント】
Encodingは「Shift JIS」を指定すること。こうすることにより、プログラム中のコメントに日本語を使用することが可能になる。デフォルト設定のままでも、プログラム中のコメントに日本語を入力することはできるが、プログラムを再度開いたときに全て文字化けし、頭を抱えることになる。Encodingの設定は、プログラム作成後でも
File > Project Properties から変更が可能である。
選択したら「Finish」をクリックする。これで、新しいプロジェクトが作成された。
2-7. ソースファイルの作成
プロジェクトを作成したら、次にプログラムを記述するソースファイルを作成する。
MPLAB X IDEの画面の左上、New Fileのアイコンをクリック または 「File」>「New File」をクリックする。
2-8. ファイルの種類の選択
Choose File Typeの画面が表示されるので、Categoriesは「C」を選択し、File Typesは「C main File」を選択する。
選択したら「Next」をクリックする。
2-9. ファイルの名前、保存場所の設定
Name and Locationの画面が表示されるので、File Nameには「main」と入力、Extensionは「c」を選択、Folderは何も指定せずに、「Finish」をクリックする。
これで、プロジェクト内にソースファイルが作成された。
2-10. ソースファイル「main.c」の編集
MPLAB X IDEの左側「Projects」欄にある「main.c」をダブルクリックすると、その右側にmain.cの内容が表示される。このmain.cの内容に、これからプログラムを記述していく。
2-11. Configuration Bitsの設定
PICマイコンのプログラムでは、コンフィグレーションビット(PICの動作設定)をきちんと記述しないといけない。これが、PIC初心者のつまずくポイントである。MPLAB
X IDEの旧バージョンであるMPLAB IDEでは、Configuration Bitsは書き方を自分で調べて手動で入力しなければならなかったが、現在のMPLAB
X IDEでは、マウスのクリック操作だけでConfiguration Bitsを設定できる便利な機能が追加されている。素晴らしい!
その方法は、まずメニューバーの「Production」をクリックし、「Set Configuration Bits」をクリックする。
すると、MPLAB X IDEの画面の下部にConfiguration Bits欄が表示される。各設定の意味の説明はここでは割愛するが、PIC16F88
(特にPIC16F88評価ボード)用のプログラムを作る場合、下の画像の通りに設定することを推奨する。
上の画像のように設定できたら、「Generate Source Code to Output」をクリックする。
すると、「Output - Config Bits Source」が表示される。表示されたソースを全てコピーし、自分のソースファイル(main.c)の冒頭に貼り付ける。
2-12. プログラムの記述
ソースファイル(main.c)に、C言語でプログラムを記述していく。
PICのC言語プログラムの書き方については、説明が長くなるのでここでは割愛する。自分で調べるか、サンプルプログラムを参考にすると良い。
サンプルプログラムは、本研究室Webサイトの「PIC16F88評価ボード」のページの一番下からダウンロードできる。
PICプログラムで初心者がつまずきやすいポイントだけ簡単に書き出しておく。
#define _XTAL_FREQ 8000000
__delay_ms()関数を使うならこのように記述し、クロックが8MHzであることを明記しないといけない。プログラム冒頭 main関数の前に記述しておく。
OSCCON = 0b01110000;
内蔵クロックの周波数を8MHzに設定することを明記。main関数内の冒頭に記述しておく。
ANSEL = 0b00000000;
ADコンバータ無効or有効の設定を明記。上の例は全て無効の場合の例。有効のビットは1にする。main関数内の冒頭に記述しておく。
以上のポイントは、明記しなくてもコンパイルは通るが、プログラムがうまく実行されないことがあるため厄介。
わからない時の近道は、動作することが確認されているサンプルプログラムを参考にすることである。サンプルプログラムは、本研究室Webサイトの「PIC16F88評価ボード」のページの一番下からダウンロードできる。
【注意】
クラウドベースのPIC統合開発環境MPLAB Xpressでは、現在のところエンコーディングを指定できない。そのため、元々コメントに日本語が使われているプログラムを開くと、日本語の部分は文字化けする。よって、MPLAB
Xpressでも開きたいプロジェクトを作る場合、コメントは英語を使用することをおすすめする。
2-13. サンプルプロジェクトのインポート
サンプルプロジェクトを見る必要がない場合、この手順は飛ばしてよい。
サンプルプロジェクトは、本研究室Webサイトの「PIC16F88評価ボード」のページの一番下からZIP形式でダウンロードできる。
ダウンロードしたら、ZIPファイルを解凍し、中身の「16F88_Ref3_*****.X」フォルダを分かる場所にコピーする。
MPLAB X IDEの画面の左上、「File」をクリックし、「Open Project」をクリックする。
インポートしたいプロジェクトファイルを選択し、「Open Project」をクリックする。
これで、サンプルプロジェクトのインポートは完了。プロジェクト内のソースファイルを開いて見ることができる。
2-14. プログラムのコンパイル
プログラムが書けたら、コンパイル(C言語で書かれたプログラムを、PICが直接実行可能な機械語に変換すること)を行う。
【ポイント】
複雑なプログラムを書く場合、プログラムを全て書き終えてからコンパイルを行うと、コンパイルエラーが出たときにどこがエラーなのか探して修正するのが大変になる。よって、ある程度プログラムが書けた状態で、ときおりコンパイルを行うことをお勧めする。
コンパイルを実行するには、MPLAB X IDE上部にあるハンマーのアイコン(Buil Main Project)をクリックするか、F11キーを押す。
コンパイルに成功すると、MPLAB X IDE下部の「(プロジェクト名) (Build, Load)」欄に「BUILD SUCCESSFUL」と表示される。
プログラムの記述に間違いがあり、コンパイルに失敗すると、「BUILD FAILED」と表示される。その場合、エラーが出ている箇所を修正し、再びコンパイルを行う。
3. PICにプログラムを書き込む
3-1. PICkit3をPCに接続
マイクロチップ社のフラッシュマイコン書き込みツールであるPICkit3をPCにUSB接続する。
初めて接続する場合、ドライバーソフトウェアのインストールが終わるまでしばらく待つ。
3-2. ターゲットボードにPICkit3を接続
プログラムを書き込みたいターゲットボード (PIC16F88評価ボード)にPICkit3を接続し、ターゲットボードに5V電源を供給する(PIC16F88評価ボードに9Vの角型電池を繋ぎ、Logic
PowerのスイッチをONにする)。
3-3. プログラムのコンパイルとPICへの書き込みの実行
プログラムを書き込みたいターゲットボード (PIC16F88評価ボード)がPICkit3に接続されていることと、ターゲットボードに電源が供給されていることを確認し、矢印と赤い枠で示した「Make and Program Device Main Project」をクリックする。
すると、プログラムのコンパイルが開始され、コンパイルに成功するとPICへの書き込みが開始される。
もし「PICkit3 not Found」と表示されたら、PCに接続しているPICkit3のシリアルナンバーを選択し、「OK」をクリックする。
もし上の画像のような警告が表示されたら、「OK」をクリックする。
PICへの書き込みに成功すると、MPLAB X IDE画面下の「PICkit3」欄に「Programming/Verify complete」と表示される。
以上で、PICへのプログラム書き込みは完了!
【ポイント】
PICに電源を供給している電池(PIC16F88評価ボードの場合は9V角型電池)の残量が少ないと、プログラムの書き込みには成功しても、正常に実行されないことがある。
PIC16F88評価ボードにサンプルプログラムを書き込んだのに正常に動作しない場合、電池の残量をテスターで確認するとよい。
執筆: 伊藤 大智