PICの開発環境を整える

はじめに

Arduinoを弄っていて、プロトタイプとしてはいいけど半田付けすることまで考えると、小さくて安くないと駄目だなということに気づき、改めてPICをちゃんとやる必要があるなということで、まずは環境構築をすることにしました。今回はその備忘録になる。

環境

MPLAB X IDE をインストールする

PICのプログラムを実装するにあたりIDEが必要なので、MPLAB IDEを用意する。
数年前ふれてたときは、MPLAB IDEだったのが、MPLAB X IDEになっており時代を感じた...

ビルドするまでには、以下のモノが必要になるためひとまず揃える。

MPLAB X IDE

以下のサイトから最新版(現時点での最新バージョンはMPLAB X IDE v5.50)の「MPLAB X IDE Windows」をダウンロードする。 ダウンロード後、Free版でインストール開始(デフォルト指定で進めた)

https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide

f:id:kyonta1022:20211021194416j:plain

Cコンパイラ(MPLAB XC8、MPLAB XC16、MPLAB XC32)

IDEを起動すると、コンパイラーが見つからないという警告が表示されるので別途コンパイラーをインストールする。 コンパイラーは以下のサイトからダウンロードできるが、種類が複数あるので適切なモノを選択する必要がある。

https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers#

f:id:kyonta1022:20211021200158j:plain

PICファミリがPIC16なのでXC16かなと思ったが、よくわからないので調べてみた。
すると、わかりやすい説明のサイトが見つかったので、下記のサイトを参考に「XC8」をインストールする。 shizenkarasuzon.hatenablog.com

MPLAB XC8
8ビットPIC用のCコンパイラです。PIC10/12/16/18にプログラムを書き込むことができます。

MPLAB XC16
16ビットPIC用のCコンパイラです。PIC24/dsPICにプログラムを書き込むことができます。

MPLAB XC32
32ビットPIC用のCコンパイラです。PIC32にプログラムを書き込むことができます。

PICkit2 Programmer をインストールする

IDEでビルドしたHEXファイルをPICに書き込むためには、PICプログラマーのソフトウェアが別途必要になる。 今回利用する秋月の「AE-PICPGM USB1」はPICkit2互換のタイプのため、PICkit2 Programmerを用意する。

https://www.microchip.com/en-us/development-tool/PG164120

f:id:kyonta1022:20211021202041j:plain

「PICkit 2 V2.61 Install with .NET Framework A」をインストールする。

動作確認用のLチカ実装する

実装するための環境が整ったので動作確認用のソースを用意する。

まずは、新しいプロジェクトを作成する

File > New Project...

f:id:kyonta1022:20211021202440j:plain

Microchip Embedded を選択する

f:id:kyonta1022:20211021202547j:plain

PICの型番を入力していくと候補が出てくるので選択する

f:id:kyonta1022:20211021202719j:plain

Noneのままで次へ

f:id:kyonta1022:20211021203605j:plain

コンパイラーは、先程インストールしたXC8を選択する

f:id:kyonta1022:20211021203611j:plain

最後にプロジェクト名を入力する

f:id:kyonta1022:20211021203619j:plain

動作確認用のmain.cファイルを作成する

f:id:kyonta1022:20211021203626j:plain

ここのサイトにあるLED点滅プログラムを拝借する。 jh7ubc.web.fc2.com

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>

#define _XTAL_FREQ 4000000

#pragma config FOSC = INTOSCIO
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = OFF
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config CP = OFF

void main() {
    CMCON = 0x07;
    TRISA = 0b00100000;
    TRISB = 0x00;
    PORTA = 0x00;
    PORTB = 0x00;
    while(1){
        RB0 = 1;
        __delay_ms(500);
        RB0 = 0;
        __delay_ms(500);
    }
}

Build Main Project を選択してビルドする
正常終了すると「BUILD SUCCESSFUL (total time: 2s)」みたいなメッセージが出力される。

f:id:kyonta1022:20211021203549j:plain

ビルドが終わると、以下のフォルダにHEXファイルが出力される。
※ ここに出力されたHEXファイルをPICkit2 ProgrammerでPICに書き込む。

C:\Users\user-name\MPLABXProjects\led-sample.X\dist\default\production
led-sample.X.production.hex

PICにプログラムを書き込む

PICプログラマにPICを刺してUSBをパソコンに接続する

f:id:kyonta1022:20211022001505j:plain

その状態でPICkit2を立ち上げると、接続の確認ができる

f:id:kyonta1022:20211022000921j:plain

File > Import HEX でHEXファイルを読み込む

f:id:kyonta1022:20211021235822j:plain

f:id:kyonta1022:20211021235833j:plain

write を押して書き込む

f:id:kyonta1022:20211022000957j:plain

※「Programming failed at Program Memory address 0x000000」が表示されるようになった場合
Pickit2でPIC16f628Aに書き込む時、いきなり上記エラーが発生した場合は、設定を見直すと解決する。

f:id:kyonta1022:20211023213857j:plain

f:id:kyonta1022:20211023213904j:plain

回路組む

PICの準備は整ったので、あとは回路を組み上げる。回路は、以下のようにして電源をつなげれば無事LEDが点滅する。

f:id:kyonta1022:20211022003547p:plain

f:id:kyonta1022:20211022001539j:plain

おわりに

数年ぶりのPIC用の開発環境を構築した。
以前はWindowsしかなかった気がするが、現在はMacでも利用できるようになってるのはいいなと思った。 昔のPICプログラマーだけどまだ使えるか?Windows10で動くか?など、色々と心配していたが環境が作れたのでいったん安心した。