僅か一、二度ファームウェアを書き換えたいだけなのに、わざわざ四、五千円するPICライタを買いたくないという人の為にお薦めしたい、ブレッドボード上に作る格安PICライタ

Last-modified: 2015-02-25 (水) 22:20:38

AVRライタのページはここ(シリアル接続)ここ(USB接続)
(このページで取り扱っている)RCDライタのユニバーサル基板版ならここ←冒頭に今一番お薦めのPICライタ、PICerFTへのリンクがあります。


初出 2011-12-3
最終更新 2012-2-5
本ページ設置の基本的な趣旨は、PICライタがないとファームウェアの書き換え(Hexファイルの書き込み)がおこなえないタイプの(普通の)マイコン、PIC18F2420のファームウェア(プログラム)の書き換えを、相当程度安く、相当程度簡単におこなう方法を紹介することです。殆どの内容は8ビットPIC全般あるいはPIC18Fシリーズ全般に通用しますが、一点だけPIC18F2420に特化した内容があります。
 

必要な環境
残念ながら(安い代わりに)少し環境を選びます。写真を見れば一目瞭然ですが、RS232C(シリアル)ポートがついたパソコンが必要です。シリアルポートのないパソコンにUSBシリアル変換ケーブルを接続して使用することは(絶対に出来ないというわけではないですが)基本的に出来ないと考えて下さい。またOSはMacやLinuxでは駄目で95以降の何らかのWindowsが必要です。

 

cheap-pic-programmer_1_s.jpg
クリックすると大きな画像で表示されます。 説明付きの図はこちらです。

 
 

ハード側の製作

RCDライタ

ここで紹介するPICライタはほぼ「RCDライタ」という種類のライタそのものです。ただRCDライタに関する殆どの情報はPIC12Fシリーズ、PIC16Fシリーズに関するもので、PIC18Fシリーズについてのものは非常に少ないので、ここにページを設ける必要があると感じた次第です。

 

RCDライタはシリアルポートのピンのうち、合計5ピンを使用します。上でUSBシリアル変換ケーブルを接続して使用することは基本的に出来ないと書いた理由はここにあります。シリアルポートの2,3,5ピンだけを使用するタイプのライタなら基本的にどんな種類のUSBシリアル変換ケーブルででも利用できます。

 

RCDライタ(ていうかJDMライタ)にはdsPICに書き込みが出来るという特徴もあります(私自身は未確認)。
(2014-1-27追記)ユニバーサル基板上にメッキ線のみで配線したRCDライタ(別ページ)を作りました。

部品以外に必要なもの

簡単だと期待させて申し訳ありませんが、部品以外に必要なものは半田ごてと半田です。ブレッドボードを使うので殆ど半田付けは必要ないのですが、D-SUB 9ピンメスコネクタと(ブレッドボード用の)ジャンプワイヤーをつなぐ為にはどうしても(多分ほぼ絶対に)半田づけが必要です。多少細かい作業ですが100円ショップ・ダイソーの420円の半田こてでもなんとかなると思います。コネクタの9ピンのうちの5つのピンとジャンプワイヤーとを半田づけする必要があります。

 

※本ページの作例ではD-SUB 9ピンコネクタとブレッドボードとをつなぐのに普通のリード線を用いていて、そのブレッドボードと接続するところでピンヘッダを間に挟んでそこに半田付けしていますが、ここにジャンプワイヤーを用いればブレッドボード側については半田づけは不要ですし、ワイヤーストリッパーも不要です。
(2012-2-5追記)この部分について、もっと便利なものがありました。秋月の DSUBコネクタDIP化キット(メス) です。残念ながらキットなのでやはり半田づけは必要ですが、かなり作業が簡単になるのは間違いありません。これを使う場合は以下の部品表や部品配置の説明等も適宜読み替えて下さい。

 

あともちろんシリアル(RS232C)ケーブルが必要です。(一般的な)ストレートケーブルが必要です。(電子工作ファンの常識だと思いますが)ネジの規格はミリでもインチのどちらでも構いません。秋月のケーブルはパソコンショップで売っているものと規格が違っていてパソコン用途ではねじが閉まらないんですが、安いのでみんな昔から気にせず買っています。

部品表

基本的にはRCDライタのバージョン 2.5に準拠して作成しています。※印は本ページ独自の部分です

部品名備考数量大凡の合計価格
カーボン抵抗 220Ω1
カーボン抵抗 1kΩ3(R2の予備も含めて) ※
カーボン抵抗 2.2kΩ ※バージョン2.5回路図の1kΩから変更1
カーボン抵抗 10k1
ツェナーダイオード 5.1V 1/2W1
ツェナーダイオード 13V 1/2W1
小信号シリコンダイオード小信号ダイオードとか小信号高速スイッチングダイオードとか呼び方様々
型番は1N4148とか1S2076Aとか何でもよし ※
5
積層セラミックコンデンサ 0.1μF積層でないタイプのセラミックコンデンサとかポリエステルコンデンサでも可 ※1
電解コンデンサ 470μF 16V1
可変抵抗(VR) 10kΩ1
D-SUB 9ピン(RS232C)・メス・コネクタ基板用ではない(安い)タイプ1
赤色LED1
ブレッドボード ※ある程度の大きさが必要1
ブレッドボード用ジャンプワイヤーセット ※ブレッドボード購入時に付属している場合は不要です1
(R2の予備)カーボン抵抗 1.5kΩ ※1

作例のブレッドボードはこれです。必要な分のジャンプワイヤーもセットになっていてお得なセットです。上で説明したように(作例とは異なり)D-SUB 9ピンコネクタとブレッドボードとの接続にもジャンプワイヤーと用いたとしても、ジャンプワイヤーは大幅に余ります。
これら部品の合計価格は送料を除いて(お得なブレッドボードを選べば)1500円程度に収まると思います。特殊な部品はありませんので通信販売に頼らなくても地元の電子部品屋で全て揃うと思います。

部品配置の説明付きの写真(主にこちらを頼りにして組んで下さい)。回路図はこちらです。

cheap-pic-programmer_2_s.jpg
クリックすると大きな画像で表示されます

  • 写真の出来が悪くてすみません。下の写真でもまだわずかに確認しずらいので文字にしておきますが、D5は電解コンデンサの負極側(白いラインのある側の極)につながっています。つまり茶色のジャンプワイヤーと同じラインに差し込まれています。
  • ここで既に触れましたが、この作例ではD-SUB 9ピン(RS232C)メスコネクタ側からは普通のリード線を伸ばしてきていて、その線とブレッドボードの接続箇所は、中間にピンヘッダを挟んでそこに半田づけする形式をとっています(未使用ピンも含んだ9ピン全て揃っていて番号が確認しやすいという長所があります)。しかしリード線の代わりにブレッドボード用のジャンプワイヤーを使えばこの部分での半田づけを省略することができます。半田づけはD-SUB 9ピンコネクタとジャンプワイヤーとの接続に関しておこなうだけで済むことになります。
  • 見てのとおり、D-SUB 9ピンコネクタの9ピンのうち、3,4,5,7,8ピンの計5ピンとだけ接続すれば済みます。
  • PIC18F2420を対象とする場合は、R2の抵抗値を2.2kΩあたりへと変更する必要があります。ただし、ここは環境(パソコンのシリアル(RS232C)ポートの細かな仕様、PICの型番・リビジョン)に依存する部分ですから、あなたの環境では2.2kΩは不適切である可能性があります。場合によっては2.2kΩの代わりに1.5kΩや1kΩが試せるように部品表には予備を追加しています。
  • もちろんICSPも可能な筈ですが、ICSPケーブルを作るのも面倒ですから、ここではマイコン単体に書きこむ手法を紹介しています。
  • PIC18F452にも書き込みを試みてみました。PIC18F452の場合はR2の値が1kΩ, 1.5kΩ, 2.2kΩのいずれの場合でも正常に完了しました。
  • またPIC18F2420, PIC18F452ともにR1の値が1kΩ, 1.5kΩのいずれの場合でも正常に完了しました。つまり、ここまでバージョン2.5準拠(R2の抵抗値を除けばバージョン2.5と同じ)で作成すると書いてきましたが、バージョン2.3準拠(R2の抵抗値を除けばバージョン2.3と同じ)で作成しても構わないということになります。
  • VR(可変抵抗)は私がPIC18F2420とPIC18F452で試した限りは0~10kΩのほぼどんな値に設定しても正常に書き込みが完了しました。ただし環境によっては可変抵抗ならではの調整能力が必要な場合もあるのでしょう。
 

cheap-pic-programmer_3_s.jpg
クリックすると大きな画像で表示されます
上の説明付きの写真では確認しずらいところをこちらで確認して下さい。

(もちろん)PIC12Fシリーズ、PIC16Fシリーズに対しても使用できます

たとえばPIC12F683に書きこむときは↑上の写真の状態まで組んだ上にさらにこの写真のように5本のジャンプワイヤーを加えます。
cheap-pic-programmer_6_s.jpg
クリックすると大きな画像で表示されます
上で記したように本ページの作例ではPIC18F2420に合わせてR2の抵抗値をカスタマイズしていますが、私が確認した限りでは、R2の抵抗値がカスタマイズしたままの2.2kΩの状態で(1kΩや1.5kΩに戻さなくても)、PIC12F683に対して正常に書き込みがおこなえました。ただし、万が一あなたの環境で正常に書き込みがおこなえない場合は、R2を予備に用意した(筈の)1kΩや1.5kΩに差し替えて再度試してみて下さい。

ソフトウェア側

必要なソフト(必要なのは書き込みソフトとデバイス定義ファイル)

使用する書き込みソフトはWinPic日本語版です。無料です。私が書き込み確認をおこなった際のリビジョンは「WinPic日本語版(2006年11月15日にコンパイル)」です。

 

解凍してインストーラーを起動すればインストール自体はすぐに済むと思います。ただしたとえばPIC18F2420に書き込みをおこなう為には、Microchip社から「PIC18F2420.dev」という「デバイス名.dev」形式のファイル名を持つ「デバイス定義ファイル」を取得して、書き込みソフトが読み込める、所定のフォルダ内に置いておかなければなりません。

 

書きこみソフトが各種マイコン(デバイス)に対して正しく書き込みをおこなう為には、書き込みソフト側が各種マイコン(デバイス)毎の詳細な情報を掴んでいる必要があるからです。

 

PIC18F2420.dev」やその他の種類のマイコンの「デバイス定義ファイル」はMicrochip社から「MPLAB IDE」という無料のソフトをダウンロードしてインストールすれば、インストールされたファイル群の中に含まれるという形で取得することができます。

 

デバイス定義ファイル」は小さなテキストファイルなので、わざわざMicrochip社から取得して頂くんじゃなくて、私が持っているものを本ページに直接掲載したいところなのですが、Microchip社の著作物なので一応著作権上掲載できません。

 

Microchip社のトップページから「Development Tools」をクリックすれば「MPLAB IDE」が見つかる筈です。

 

MPLAB IDEをインストールすれば、「PIC18F2420.dev」を含め、Microchip社の多くの種類のマイコン用の「デバイス定義ファイル」が同時にインストールされます。

 

ところで、せっかく「MPLAB IDE」をインストールしたのなら、ついでに「MPLAB C Compiler for PIC18 MCU」等もインストールすることをお薦めします。同じくMicrochip社からダウンロードできます。実質的には無料ソフトです。MPLAB C Compiler for PIC18 MCU」もインストールし終わると、こちらとかこちらに掲載されているC言語のソースを自分でコンパイルしたり自分の好みに合わせた改造をおこなうことが可能になります。

 

「MPLAB IDE」と「MPLAB C Compiler for PIC18 MCU」のインストールを丁寧に説明したページがあります。→こちら

WinPic日本語版の設定

なんか「Windows2000ぽいな」というのは無視して下さい。
cheap-pic-programmer_4_b.png
当然対象デバイスの種類を指定します。

 

cheap-pic-programmer_5_b.png
ここに、先にイントールした(筈の)MPLAB IDEのフォルダの中の「Device」フォルダの場所を指定して下さい。標準では「C:\Program Files\Microchip\MPLAB IDE\Device」あたりだと思います。わからなければ「*.dev」で検索してみて下さい。あと、ここは空欄のままにして代わりにWinPic日本語版がインストールされたフォルダの「devices」フォルダにたとえば「PIC18F2420.dev」などの「デバイス定義ファイル」を個別にコピーして置いておくことでも代替できますので、「デバイス定義ファイル」を他のパソコンから持ってこられるような場合等にはこちらの手法を選択すればいいでしょう。

 

あとはデフォルトの設定のままです。

書き込み作業

書き込み作業についての説明は特に要らないでしょう。用意したHexファイルを読み込んでから書きこむだけです。

 

もしあなたの環境で正常に完了しなかった場合は(照合でエラーが発生した等)、R2の抵抗値を変更すれば正常に完了するようになる可能性があります。予備の抵抗で試してみればいいでしょう。

 

ご要望、ご意見、質問を下のフォームにどうぞ
(でもここより、掲示板書き込みフォームのページに書いて頂いた方が気づき易いと思います。)