PICKIT3につなぐマイコン書き込み基板の作成

2024年12月22日


PICマイコン (PIC12F1822) にプログラムを書き込むために、市販のデバッガPICKIT3とつないで使える、書き込み用の基板を作ってみました。MPLAB X IDEからプログラムをマイコンに書き込めます。

ひとつ前の記事では、MPLAB Snapという市販のデバッガにつないで、PICマイコンにプログラムを書き込むための基板を製作しました。

PICKIT3は、MPLAB Snapよりも古くからあったPICマイコン用のデバッガです。Low Voltage Programming (LVP)に対応していない古いPICマイコンにも書き込みができます。

(本物の) PICKIT3

PICKIT3を使ってPICマイコンにプログラムを書き込む場合でも、別途書き込み用の基板を用意する必要があります。

PICKIT3の左側のコネクタは、ピン配置がMPLAB Snapと似ているので、前回の記事で作ったMPLAB Snap向けの書き込み用基板を、PICKIT3用に改造して用いることにします。改造後の基板は、PICKIT3とMPLAB Snapの両方で使用可能です。

PICKIT3の右側には、mini USB のコネクタがあり、mini USBに対応したケーブルでパソコンに接続します。

今回用いたPICKIT3は、ファームウェアが古かったので、ファームウェアのバージョンアップを行う作業が必要でした。ファームウェアのアップデートには、MPLAB X IDE (v6.20)だけでなく、その前世代のIDEであるMPLAB IDE v8.92も使う必要がありました。ファームウェアの更新手順も、この記事の中に記載しています。

PICKIT3は製造中止となっており、現在は簡単には手に入りません。一方で、今でも模倣品がAmazonなどで販売されている様子があります。この記事では、本物のPICKIT3を使いました。模造品を使った場合にうまくいくかは、不明です。

高電圧書き込みモードへの対応

PICマイコンは、プログラムを内蔵している不揮発性メモリに記録しています。マイコンにプログラムをあらかじめ書き込んでおけば、後は電源を入れるだけでプログラムを実行できます。

PICマイコンに書き込みを行うためには、マイコンを、プログラムを書き込むための「プログラミングモード」とする必要があります。

PICKIT3では、プログラミングモードに入るには、以下の2種類の方法が使えます。

Low Voltage Programmingは、MPLAB Snapでもできる方法です。最近のマイコンPIC12F1822などが対応しています。

High Voltage Programmingは、PICKIT3では可能ですが、MPLAB Snapではできない方法です。

Low Voltage Programmingに対応しないマイコンでは、こちらの方法でしか書き込みができません。古い世代のマイコンPIC12F675などが該当します。

なお、PIC12F1822などの新しい世代のマイコンも、High Voltage Programmingに対応しています。

PICKIT3につなぐマイコン書き込み用の基板では、High Voltage Programmingを使うと、MCLRピンに最大14Vの電圧がかかる可能性があります。

一方で、VDDピンにかけてよい電圧は、マイコンの種類により異なりますが、最大3.6V~5.5V程度のことが多いです。

VDDのピンには乾電池などから、MCLRのピンにはPICKIT3から、それぞれ電源が供給されます。

しかし、接触不良などで、MCLRには接続されているが、VDDの接触が外れるような状況が起きると、MCLRとVDDの間のプルアップ抵抗(10kΩ)に、高い電圧が回り込んで、VDDにかかる電圧が許容範囲を超えてマイコンが破壊されるリスクが、わずかながらあります。

また、VDDのピンにかかった電圧が、乾電池に充電電流として流れてしまう可能性もあります。ごくわずかな電流ではあるのですが、乾電池に充電電流が流れ込むと、液漏れや破裂の原因となる可能性があります。

そこで、VDDとVSS (GND)の間に抵抗器を追加することで、安全性を向上させることにしました。

回路図の作成と組み立て

今回作る基板の回路図を示します。High Voltage Programmingを行うことを前提とした回路です。

一つ前の記事で作った回路を元に、VDDとVSS (GND) の間に2.2kΩの抵抗器を挿入しただけのものです。

PICKIT3用のPICマイコン書き込み用基板の回路図

PIC12F1822の部分は、マイコンを着脱できるようにするために、ICソケットを用います。

VPPが最大の14Vで、VDDがPICKITから切り離された状況を考えると、回路は以下の図に示す状態となることが見込まれます。ただし、マイコンの消費電流などは無視しています。

また、PIC12F1822に書き込むときは、MCLR端子にかかる電圧は9V以下となりますが、PICKIT3の最大出力が14Vとなっているため、他のマイコンに書き込む場合も考慮して、最大の14Vがかかる場合について考えることにします。

VPPから抵抗器に電流が流れ込むときの各部の電圧

乾電池を外した状態では、10kΩと2.2kΩの抵抗器には、約1.1mAの電流が流れます。2.2kΩの抵抗器にかかる電圧は、約2.52Vとなり、この電圧がVDDとなりマイコンに供給されます。低電圧専用のPICマイコンでは、VDDは3.6V程度までは耐えられることが多いので、この電圧であれば問題ないでしょう。なお、計算ではマイコン自身の消費電流は無視しています。VDDピンに流れ込む電流が大きくなると、VDDにかかる電圧は下がります。

乾電池2本を直列につないで3Vの電圧をVDDにかけたときは、以下の図のように、2.2kΩの抵抗器に流れる電流は約1.1mA、10kΩの抵抗器に流れる電流は約1.4mAとなります。従って乾電池からは約0.3mAの電流が放電されることになります。乾電池は、充電ではなく放電の状態となるので、安全性を保つことができます。なお、ここでもマイコン自身の消費電流は無視して計算しています。

VPPと乾電池が接続されたときの各部の電流

次に、回路の組み立てを行いました。2.2kΩの抵抗器を1本追加するだけです。

PICKIT3接続用に改造した基板の様子

また、PICKIT3のコネクタが6ピンしかないため、書き込み用基板のピンヘッダ(8ピン)に干渉してしまいました。7~8のピンは不使用のため、ピンヘッダのピンを切断することで、PICKIT3を奥まで差し込めるようにしました。

製作した基板をPICKIT3と接続した様子

PICKIT3を接続してPICマイコンにプログラムを書き込む

基板が完成したので、さっそくMPLAB X IDE (ver.6.20)を用いてPIC12F1822にプログラムを書き込んでみます。

まず、作成した基板にPIC12F1822を装着し、PICKIT3を基板に接続します。

次に、PICKIT3のmini USB端子とパソコンをUSBケーブルで接続します。

次に、MPLAB X IDEを起動して、書き込みたいプログラムのプロジェクトを開きます。

次に、メニューバーから[File]→[Project Properties (プロジェクト名)]を選択します。

表示されたウインドウの左側で[Conf: [default]]を選択し、右側の[Connected Hardware Tool:]で[PICkit3]を選択したら、ウインドウの[OK]を選択します。

PICKIT3をハードウェアツールに選択

再びメニューバーから[File]→[Project Properties (プロジェクト名)]を選択し、画面左側で[PICkit3]を選択します。

画面右側の[Option Categories:]から[Power]を選択します。

画面右側で、Voltage Levelの欄で[3.0]を選択します。[Power target circuit from PICkit3]にはチェックを入れずに空欄とします。

次にウインドウの[OK]を選択します。

電源電圧に3.0V、PICkit3からの電源供給をオフに設定

次に、基板に接続された電池ボックスに単3形電池2本をセットします。ここではマイコンの電源は、乾電池から供給します。

次に、メニューバーから[Production]→[Make and Program Device (Project プロジェクト名)]を選択すると、プログラムのビルドとマイコンへの書き込みが順次行われるはずなのですが、試してみたところ、PICkit3への接続に失敗したとのメッセージが表示され、書き込めませんでした。

PICkit3に接続できない

MPLAB IDE v8.92でPICKIT3のファームウェアを更新

Microchip社のホームページによれば、PICKIT3をMPLAB X IDEで使えるようにするには、MPLAB IDE v8.92をインストールしたパソコンで、ファームウェアをアップデートする必要があるとのことでした。

しばらくの間は、PICKIT3をパソコンから外しておきます。PICKIT3は、PICマイコンの書き込み用基板からも外しておきます。

MPLAB IDE v8.92は、Microchip社のホームページからダウンロードできます。

ダウンロードとインストールを行った後で、MPLAB IDE v8.92を実行し、メニューバーから[Programmer]→[Select Programmer]→[PICkit3]を選択します。

PICkit3を選択

次に、PICKIT3をUSBケーブルでパソコンとつなぐと、ファームウェアのアップデートができます。しばらく時間がかかりますが、待っていると終わります。

最後に、ターゲットのデバイスが接続されていないという趣旨のエラーが表示されますが、マイコンの書き込み用基板が外された状態のため、問題ありません。

PICkit3のファームウェアの更新が終わった状態

上記の画面になったら、MPLAB IDEを終了します。

PICKIT3を、PCから切り離しておきます。

MPLAB X IDEでさらにファームウェアを更新してPIC12F1822に書き込む

再びMPLAB X IDEを起動して、PIC12F1822のプログラムが入っているプロジェクトを開きます。

プロジェクトを開いたら、PICKIT3をUSBケーブルでパソコンにつなぎます。

プロジェクトのプロパティを開き、PICkit3が選択されているかや、ターゲット回路の電圧が3.0Vになっていること、ターゲット回路への電源供給がオフになっていることを確認します。

次に、PICKIT3をマイコン書き込み用の基板に接続します。さらに、マイコン書き込み用の基板に接続された電池ボックスに単3形電池2本をセットして電源を入れておきます。

MPLAB X IDEのメニューバーから、[Production]→[Make and Program Device (Project プロジェクト名)]を選択すると、プログラムのビルドとマイコンへの書き込みが順次行われます。

PICマイコンへの書き込みが始まる前に、PICKIT3のファームウェアが自動的に、さらに更新されます。

MPLAB X IDEでファームウェアをさらに更新

ファームウェアの更新が終わると、次にPIC12F1822への書き込みが行われます。以下の画面になれば、PICマイコンへの書き込みは成功です。

PICマイコンへの書き込みが完了した様子

乾電池を取り外し、PICKIT3をPCから切り離した後で、PICマイコンをソケットから取り外します。取り外したPICマイコンは、実際にプログラムを実行する基板に載せ替えて使います。

なお、ファームウェアの更新が必要なのは最初の1回だけで、以降の書き込みは短い時間で実行できるようです。

ちなみに、今回はマイコン書き込み用基板の側で、乾電池からマイコンに電源を供給しました。PICKIT3自身にも、マイコン側に電源を供給する機能があるのですが、オフにすることが推奨となっているため、PICKIT3からはマイコンに電源を供給していません。

間違って、PICKIT3と乾電池の両方からマイコンに電源を供給するような設定にしてしまうと、機器が故障する可能性があるため注意が必要です。


手前の記事:MPLAB Snapにつなぐマイコン書き込み基板の作成


もくじへ戻る


製作・著作:杉原 俊雄(すぎはら としお)
(c)2024 Toshio Sugihara. All rights reserved.