PICを使った電子工作を行うための、C言語でPICのプログラムの開発を行う環境構築方法を紹介する。PICについて全くの初心者の方や、焼き込み環境の構築について知りたい方はまずこちらの記事を参照いただきたい。PICとは、「Peripheral Interface Controller」の略で、Microchip Technology社が販売しているマイコン(マイクロコントローラ)で、電子制御、特に組み込み分野で使われている。最近の車輌は、さらに信頼性の高いマイコンを用いて画像処理や制御などを行っているが、個人で楽しむ分には、PICは十二分の性能を持っている。
基本的な流れは、上記の通り、C言語でプログラミングしたプログラムソースコードをコンパイラを通してHEXファイルに変換、ターゲットとなるマイコンに焼き込むという流れだ。PIC製造元であるMicrochip社から無料で提供されている統合開発環境(IDE(Integrated Development Environment))を使うことで、簡単にHEXファイルを生成できる。
IDEは、PIC作成元であるMicrochip Technology社が無料で提供しているものを使用するのが良いだろう。
IDEのダウンロードとインストール
無料のIDE(プログラム開発環境)のダウンロード
Microchip社のMPLABダウンロードページにアクセスし、のMPLAB X IDE Windowsをダウンロードする。2022/07/31現在、以下が最新。
無料のIDE(プログラム開発環境)のインストール
ダウンロードしたexeファイルを右クリック→管理者権限で実行。
情報提供はお好みで。私はチェック外しておいた。Update通知も不要。
他はそのままでインストール。終盤に以下のメッセージが出るので、常に信頼するにチェックしておくと楽。発行元が3つあるらしく3回出た。
この時点では、XC compilersがインストールされていない。最後の画面で以下のチェックボックス入れてFinish。
XC Conpilerのインストール
続いて、C言語で書かれたプログラムをHEX形式にコンパイルするコンパイラをインストールする。XC8/XC16/XC32の3種類がある。PICの種類によって必要なコンパイラが違うようだ。今まで使っていたやつはPIC12,16,18なのでXC8が対応しているようだが、とりあえず全部ダウンロード。
管理者権限で実行。
NextでLicence 同意。
Freeバージョンを選択。
環境設定パスは追加しておいた。他は全部デフォルトでNext押下してInstall。XC16/32も同様。繰り返し。
IDEの起動とビルドの確認
MPLAB X IDEを起動する。こんな感じの画面が出るはず。
簡単なプロジェクトを作成してビルドしてみる
File → New Projectを選択。↓のダイアログ画面が出るので、Standalone Projectを選択してNext
今回はシンプルな入門用PICであるPIC12F675を使用する。DeviceにPIC12F675を選択してNext
Select Header、およびSelect Plugin BoardはそのままスルーでNext(今回はAKIプログラマを使うため。他のPIC焼き込み環境を使えばこのあたりは適宜選択)。
次に、コンパイラを選択する。XC8を選択して、Next
適当なプロジェクト名を入力。今回は動作確認を含めてPIC12F675でLEDの点滅プログラムを作成するため、そんな感じの名前で作成。Project Location/Project Folderは任意。Cプログラム作成の際に日本語のコメントを入れるのならEncoding はShift_JISにしておくと、文字化けしない。
入力したら、Finishボタンを押下。
これで、プロジェクトの作成は完了。
テストプログラムの作成とビルド
プロジェクトができたら、Source Filesを右クリック→New→main.cを選択。
ファイル名は何でもいいが、ここでは、led_brinkingとした。こんな感じで、新規ファイルが作成される。
次に、今回焼き込みを行うPICのコンフィグレーションセッティングを行う。コツコツ手動で入力しても良いが、自動ソースコード作成ツールが用意されているのでそれを利用する。window → Target Memory Views → Configuration Bits
Configuration Bitsという、マイコンのセッティング一覧が表示されるので、以下のように変更。
変更後、Generate Source Code to Outputボタンを押下すると、自動でConfigソースファイルが生成されるのでコピーして、先程のCソース・ファイルの冒頭に貼り付ける。
あとは、メインのプログラムを記述していく。今回はGPIO2ピンに、500msごとにON/OFF信号を流すプログラムを追加する。while文がメインとなる。他の命令文は、おまじないみたいなものと理解しておけばとりあえずOK。
#define _XTAL_FREQ 4000000
void main(void) {
CMCON = 0x07;
ANSEL = 0b00000000;
TRISIO = 0b00000000;
GPIO = 0x00;
while(1){
GPIO2 = 1;
__delay_ms(500);
GPIO2 = 0;
__delay_ms(500);
}
}
入力したら、以下のようになるので、ハンマーの形の「ビルド」コマンドを実行する。今回はクリーンビルド(余分なファイルを全部削除してからビルド)を選択した。
ビルドが完了すると、Build SUCCESSFULの表示とともに、プロジェクトの\dist\default\productionフォルダに、HEXファイルが作成された。これを、AKIプログラマでPICに焼き込む。
今回作成したソースコード(参考)
#include <xc.h>
#pragma config FOSC = INTRCIO
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = OFF
#pragma config BOREN = OFF
#pragma config CP = OFF
#pragma config CPD = OFF
#define _XTAL_FREQ 4000000
void main(){
CMCON = 0x07;
ANSEL = 0b00000000;
TRISIO = 0b00000000;
GPIO = 0x00;
while(1){
GPIO2 = 1;
delay_ms(500);
GPIO2 = 0;
__delay_ms(500);
}
}
作成したプログラムのPICへの焼き込み方法についてはこちらの記事を参照
PIC開発のおすすめ書籍
私がPICを始めた当初は電子工作の知識は皆無だったので抵抗とは?プロアップとは???というレベルであった。出身がプログラマなので、プログラム言語はある程度理解できるが、ハードウェア寄りの知識がなかった。そのときに参考にしたのがこの書籍。
電子工作関連の本って、ハードウェアの知識はある程度持っている人向けに書かれている事が多いが、この本は、プログラムはわかるけどハードウェアはよくわからない人にとって、とても参考になると思う。CR-ROMに環境すべて入っているので簡単に初められるのが嬉しい(現在のIDEよりも古いVerを使って解説しているため、新しい開発環境をどうしても使いたい人は読み替えが必要)。ある程度C言語の基本を知っている電子工作初心者が、自分の作りたいものを形にする助けになるだろう。
関連記事
PICの焼き込み環境についてはこちらの記事を参照
コメント