実験・調査

【PIC】MPLABで作成したプログラムをPICKIT3で書き込む方法を紹介する

あまり新しい情報がなかったのでまとめてみました。

開発環境(ソフト)->開発環境(ハード)->プロジェクトの作成->実際に書き込みの順で書いてあります。

多少参考になるかもしれん。

環境整備とかからちゃんと載せてみる

僕はめんどくさがりなので毎回思ってしまうんですが、何かをやるためにまず何が必要か調べて準備をするのって結構体力使いますよね。。

PICはArduinoと違ってUSBをつなげば書き込みができる、というわけではないので、それなりに準備が要ります。

一番最初だけはすんなりいった方が、第一印象が良くなって長続きするよなぁ~なんて思います。

まぁ、そんなわけで、素人なりに手順をまとめてみます。

ソフトウェアを書き込むための開発環境整備①-MPLAB X IDE のインストール-

PICマイコンへ書き込むプログラムを編集するためには開発環境が必要です。(ArduinoならArduino IDE)

PICマイコンへのプログラムの書き込みは、「MPELAB IDE」が主流になっています。

別の方法もあるようですが、今回はこちらを開発環境として使用することにします。

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

まず最初に以下のMPLABダウンロードページへアクセスします。

MPLAB X IDEインストール

OS別にインストーラが分けて用意されているので、自分の環境にあったものをインストールします。

続いてインストール作業を進めていきます。

①インストールを開始

ダウンロードしたインストーラを起動し、以下のようなSetupウィザードが開始されることを確認します。

「Next」を押します。

②利用規約確認

「I accept the agreement」を押します。

③プロキシ設定

「Next」を押します。
だいたい開発環境系はデフォルトの場所にインストールしとかないと後々めんどくさいことになることが多いらしいので、C直下が無難です。

④インストールするアプリケーションの種類を選択

IDEで対応させるマイコンの種類などを選択できます。

必要な項目にチェックを入れて「Next」を押します。

今回はハードの容量的に余裕があったので、どのマイコンでも使えるように全部チェックを入れました。

(※デフォルトで全部チェック入っています。)

⑤インストールを開始

インストールの開始について確認を求められるので、開始します。

「Next」を押します。

⑥インストール進捗状況

インストールの進捗状況が表示されるので、そのまま待ちます。(結構かかります)

終わったら「Next」を押します。

⑦インストール完了とコンパイラのダウンロード確認

IDEのインストールが終わると以下のような画面が表示されます。

3つチェックボックスがありますが、上から順に

・MPLAB X IDEの起動
・MPLAB IPEの起動
・XCコンパイラのインストール

となっています。IPEは何のことだかわからん。

XCコンパイラはCとかアセンブラとかをマイコンが認識するファイルへ変換するやつです。ここにチェックを入れておくと、「Finish」を押した後にコンパイラのダウンロードサイトが自動で表示されます。

チェックを入れたら「Finish」を押します。

ソフトウェアを書き込むための開発環境整備② -MPLAB XC8 Compiler のインストール-

先ほどコンパイラをインストールする、にチェックを入れた場合はコンパイラのダウンロードサイトが自動で表示されます。

※自動ではインストールしてくれません。

MPLAB X IDEの起動と同時に、以下のようなページが勝手に開いたと思うので、手動でインストールを行います。

チェックを入れ忘れた場合は以下のリンクからどうぞ。

MPLAB XC Compilers :コンパイラセットのダウンロード

8bit、16bit、32bitマイコン用のコンパイラが別々に用意されています。

僕の手持ちのPCは容量に余裕があるので全部インストールしますが、必要ない人は自分が使おうとしているマイコンのbit数に合わせてインストールをお願いします。

①インストール開始の案内

今回はXC8コンパイラを例にインストール方法を説明します。

「Download XC8 Compiler」をクリックします。

ダウンロードが完了したらインストーラを起動します。以下のようなウィンドウが最初に出ます。

「Next」を押します。

②利用規約への同意

「I accept the agreement」を選択し、「Next」をクリックします。

③ライセンスタイプの選択

ここではコンパイラのライセンスの種類について聞かれています。

フリー、ワークステーション、ネットワーククライアント、の3つがあるので「フリー」を選択します。

「Next」をクリックします。

⑤インストール場所の確認

コンパイラのインストール場所について聞かれています。デフォルトで問題ないと思います。

「Next」をクリックします。

⑥コンパイラのセットアップ

・PC上のほかのユーザーアカウントでも使用できる状態にするか?
・環境パスを設定するか?

について聞かれています。

今回インストールするパソコンは僕以外誰も使わないので全ユーザーに入れる必要はないですが、複数人でPCを共有している場合はチェックを入れた方が楽です。

環境パスは自分で設定するとめんどくさかった記憶があるので今回は両方ともチェックを入れました。

「Next」を押します。

⑦コンパイラのインストール準備完了

「Next」を押します。

⑧インストール進捗状況

完了したら「Next」をクリックします。

⑨インストール完了通知とライセンス情報

インストールの完了通知および現在のライセンスに関する情報が表示されます。

フリーユーザーなら「Next」を押す、と書いてあるので押します。

⑩コンパイラインストール完了通知

以上でXC8コンパイラのインストールは完了です。

「Finish」を押して終了します。

他の16,32ビット用も同じ手順でインストールできます。

プログラム書き込み環境を整える -MPLABを使用してプログラムを書き込んでみる-

次にハードウェアの書き込み環境を整えます。

PICはマイコン単体なので以下のようにUSBコネクタとかはありません。

なので書き込むための装置が必要になります。

書き込み装置は自作もできるらしいですが、単純に楽なのでPICKIT3を使います。

PICKIT3なんですが、マイクロチップ社の公式モデルはすでに販売・流通が停止しているようです。
海外サイトとかで販売されてないないかなぁ~と調べてみたんですが、純正と言って出してるのもほぼ互換機みたいです。

現状互換機しかないようなので、Amazonで購入しました。

ほかの海外サイトだともう少し安く販売されてますが、送料込みで考えるとだいたい似たような価格帯になりそうです。

互換品だと出品者によって内容物にばらつきがあるようですが、

・PICKIT3 本体
・マイコン固定用のゼロプレッシャー治具(上記商品の場合は青緑色のやつです)
・USBケーブル
・PICKIT3と治具接続用のケーブル

の4つがあれば問題ありません。

プロジェクトを作成する

上記までの説明で、ソフト・ハードの開発環境が整いました。

次は実際にプロジェクトを作成し、書き込みを行います。

まずはMPLAB X IDEを起動します。

「File」- > 「New Project...」をクリックします。

とりあえずマイクロチップ社の書き込み体系で書き込みたいので一番上のものを選択しました。

次に書き込み対象のハードウェアについて聞かれるので、手元に用意したマイコンの型番を選択します。

今回はPIC16F1827を使用して書き込みテストを行ってみます。

Toolについては「No Tool」でも先に進めました。

デバッグ用ヘッダーはNoneのままで次へ進みます。

コンパイラの種類を選択します。

今回は上のXC8(先ほどインストールしたコンパイラ)を選択します。(※「-as」が付くのはアセンブラ用)

プロジェクトの名称・保存場所などを求められるので、適切に埋めて「Finish」を押します。

これでプロジェクト(のワークスペース)が作成されました。

次にメインとなるCファイルを追加していきます。

左上のプロジェクトエクスプローラーにはファイルの種類に応じたフォルダが用意されています。
ヘッダやmainファイルなどを分けて保存できます。

今回は"Source Fileフォルダ"の上で右クリックしてファイル(main.c)を追加します。

選択すると追加するファイルの名称や場所の設定を行うウィンドウが表示されます。

自分が設定したい内容で登録を行います。

追加が完了すると以下のようにmain.cファイルが追加されます。

以上でソールファイルの追加は完了です。

PICKIT3を使用してマイコンへプログラムを書き込む

次にPICマイコンへの書き込みテストを行ってみます。

プログラムの中身は機能的に何もありませんが、書き込み時の通信などについては確認ができるのでやってみます。

PCとジグとの接続

まずはPICKITを付属のUSBケーブルでパソコンへ接続します。

PCがネットにつながっていればUSBドライバ等は勝手に入ってくれるはずです。

それが終わったら以下のようにPICKIT本体とゼロプレッシャージグを付属のケーブルで接続します。

この時のピン配置ですが、マイクロチップ社のPICKIT3取説にピン配置が明記されてます。

白い△マークが書かれた場所が、1番ピンになります。

ゼロプレッシャー治具側の接続ですが、MCLR と書かれているピンがPICKIT3本体の△マークとつながるようにします。

その他のピンについてはゼロプレッシャー治具のピン配置を見ながら接続していきます。

基本的には1番ピンのMCLRだけそろえれあとは隣り合わせて接続していくだけだと思います。

(変に交差したり入れ替わったりとかはありませんでした。)

ピン数に応じたジャンパの設定を行う

次にマイコンをPICKIT3と接続します。

このゼロプレッシャー治具ですが、どのマイコンでも同じく使えるわけではなく、基板上にあるジャンパをマイコンのピン数に応じて変更する必要があります。

ゼロプレッシャー治具を裏返すと、以下のようにジャンパ設定の指示が明記されています。

今回使用している「PIC16F1827」は「DIP18パッケージ」になるので、下に書かれた表記に従ってジャンパを以下のように設定します。

・J1:B    
・J2:2と3
・J3:2と3

以下に参考画像を添付します。

裏面に数字が書いてあり、ジャンパは表面にあるのでやりにくいです。間違えないように確認して接続します。

[A (B) C] [1 (2 3)] [1 (2 3)]

マイコンを載せる

次にマイコンを載せます。

このゼロプレッシャー治具の使い方ですが、結構癖があります。

裏面を見るとジャンパの設定とともに、切りかき(三角形)のついた印があると思います。

これがマイコンを載せる際の位置と向きを表しています。

つまり、マイコンによってつける位置と向きが変わってくる、ということです。(毎回端から詰めていけばいいわけじゃない。)

めんどくせぇ。。。。。

うっかり端によせて接続して4番と15番にVCCを加える、みたいになったらちょっとまずいかもしれない。

PIC16F1827(18ピン)を接続する場合、マイコンの切り欠き側がある足が白い太線と重なるように接続することになります。

※マイコンの切り欠きがある方を白い線に合わせるのではなく、切り欠きがある方を白い太線に向けて端のピンを太線のラインに挿入します。

以下の例では、白い線の上に、1,16番ピンが来る形です。

ちょっと使いにくいので毎回同じマイコンしか使わないならユニバーサル基板とかで用意しておいてもいいかもしれません。

心配であれば、通電前にテスタなどを使ってVCC(VDD)、GND(VSS)の接続を確認するのがいいかなと思います。

PIC16F1827のVCC端子は14番ピンなので、上記画像でいうと右側の列の下から6番目の穴がVCCになっていれば問題ないと言えます。

僕が購入したやつは問題ありませんでした。

PICKIT3の電源供給設定を行う

上記までで接続が完了したので、次は実際にプログラムの書き込みを行っていきます。

まずはPICKIT3の電源供給についての設定を行います。

PICKIT3ではマイコンへの書き込み時に電源を供給できる機能がありますが、デフォルトだとOFFになっているので有効化します。

(PICマイコンに直接電源を与える場合は不要です。)

先ほどmain.cを作成したプロジェクトを開き、「Production」- > 「Set Project Configuration」 - > 「Customize」を選択します。;

ここではPIC・コンパイラ・書き込みハードの設定などを行います。

今はPICKIT3の設定を行いたいので、左の選択欄から「Categories :」から「PICKIT3」を選択し上部の「Option categories」から「Power」を選択します。

「Power」の項目では以下のような内容が表示されます。

「Power target circuit from PICKIT3」というチェックボックスがあるので、チェックを入れます。

書き込み電圧はかなり自由に設定することができます。低すぎると失敗することがあるので今回は5Vに設定します。

マイコンへプログラムを書き込む(焼く)

以上で準備は整ったので、プログラムを書き込んでいきます。

MPLAB X IDEの上部にあるマイコンへの書き込みボタン(以下の画像赤枠)をクリックします。

ウィンドウを最大化していないと選択式のウィンドウの中に隠れてしまうことがあるので、見つからないときは最大化してください。

マイコンへ書き込めない際の対処

上記の操作で書き込みが完了すれば問題ないですが、PICKIT3の個体差により書き込みができない場合があるようです。

自分の環境では以下のようなエラーが出ました。

内容としては、「PICKIT3では5Vでの電源供給が厳しいので外部電源を用意してほしい」といった感じです。

なので外部電源を用意します。

※対処法として、一個前の書き込み電圧を4V程度まで低下させる方法があります。この方法でも問題ありません。

今回購入したゼロプレッシャー治具には、外部から電源を供給するためのUSBポートのランドが設置されているのでこれを利用することにします。

基板の中の接続は以下のようになっているので、極性を間違えないように電源を接続します。

今回は以下のような感じで接続。

これで準備は完了。

電源装置ではなくUSBで給電する場合の話ですが、HUBやパソコンのUSBではなく、スマホ充電用のACアダプタなどを使わないとダメなようです。電流が足りない模様。

マイコンへプログラムを書き込む(再)

電源を外部から供給した状態で、再度マイコンへプログラムを書き込んでみます。

先ほどと同じく上部の書き込みボタンを押します。

Outputウィンドウの内容を見てみましたが、このボタンでデバッグ、ビルド、書き込み、ベリファイまでやってくれます。

エラーがなければ、書き込みは完了です。

まとめ

今回はPICマイコンの書き込み方法について、

・開発環境(MPLAB X IDE)のインストール
・コンパイラ(MPLAB XC Compiler)のインストール
・MPLAB X IDEでの新規プロジェクト作成方法
・PICKIT3を使用してマイコンへプログラムを書き込む際の設定や配線
・PICKIT3を用いた実際の書き込み
 +書き込み失敗時の対処(別電源供給)

についてまとめました。

今回工作で初めて使いましたが、100円とかで使えるマイコンってやっぱ魅力的だよね。

今回の記事でひとまず書き込みはできると思います。環境が変わったら適宜更新していこうと思います。

それでは。また。

-実験・調査