topハードウエァの部屋
 PICライターの製作

 はじめに
 PICを用いて電子工作を始めるには、書込み器が必須と言うわけで、PICライターを作ります。Web上の資料や先人たちの苦労の跡を参考にハードウェアが簡単で、書込みプログラムも最新のPICに対応しているJDMライターに決定しました。巷では小さく作ることが流行っているようですが、小さく作る意味が見出せないこと、ICソケットを共用化するメリットがないことなどから(むしろ弊害がある?)、ICソケットの共用化は弊害のない28ピンと40ピンだけとしました。また、PIC12F675等のために、Vpp(13V)印加後、Vdd(5V)を印加する方式と、Vdd印加後、Vppを印加する方式を切り替えられるようにスイッチを設けました。
 本ライターを製作する際、下記ページを参照しました。多くの示唆を頂きました、感謝!!
 使用する書込みプログラムはWinPic、IC-Progです。FENG3さん、JR3ROCさんのページから入手可能です。

    http://cgi.biwa.ne.jp/~jr3roc/pic/  JR3ROCさん
    http://feng3.cool.ne.jp/index.html  FENG3さん
    http://www.ebimemo.net/diary/     えびめもさん

このページのTOPへ


 仕様
PICライター

PICライター回路図

まずは、上のリンクから回路図を良く見てください。前項に書いたように、ICソケットの共用化は28ピンと40ピンだけです。但し、すべての28ピンと40ピンが共用できるわけではありません。どれが共用できるかは、自分で調べてください。回路図に書いてあるPICは、IC-ProgかWinPicで書き込みが出来ました。PGMはLVPモードをもっているデバイスのために、2.2KΩでVssに接続しています。直接Vssに接続しません。トランジスタ2個とスイッチで、VddとVppの印加方式を切り替えできるようにしています。回路図にコメントが書いてありますので、参照してください。LEDはすべて超高輝度LEDです。トランジスタは高速のものという話をWeb上のどこかで読んだ記憶がありますが、2SCタイプならテキトーなもので充分(十分・・ン・・どっちだ?)でしょう。オジサンは手元にあった15年位前の腐りかけのトランジスタを使いました。ダイオードも同じ・・・気をつけたのは超高輝度LEDだけです。電源のインピーダンスが高いため、書込みに直接関与しない電流の値は、できるだけ小さくするのが必須です。

このページのTOPへ


 製作
PICライター オジサンはほとんどの場合、回路図さえあれば作れるので、あまりパターン図は書いたことがありません。と言うわけで、ドキュメントは不備です・・・・・あしからず。
そのためかどうか、作り方も行き当たりばったりのところがあって、左の写真でわかるようにRS232Cのコネクタとケーブルが付いてしまった?!田舎ではクロスケーブルしか手に入らずコネクタを付けた後で、あわててクロスケーブの一方を切断して、ケーブルを直付けしました。製作上気をつけたことは電源線をどう配線するかということです。すべての回路製作についていえることは、電源パターンをどのようにするかということです。ノイズ、動作の安定性等々が電源パターンの如何にかかっています。URLを忘れてしまいましたが、電源パターンの良い配置について、詳しく書いたページがどこかにあります。オジサンも参考にしました。探してみてください。くどいようですが、LEDは超高輝度LEDです。詳しくは、考察の項で。

このページのTOPへ


 考察
JDMライターは、その変形型(例えばRCDライター)も含めて、多くの先人たちの苦労があり多くの資料がWeb上で公開されていますから、いまさら後発組のオジサンがイロイロ書くことはないでしょう・・・と言いながら、気づいた点を

1.LEDは書込み動作にはまったく寄与しませんから本来不要ですが、ハードウェアの確認をするためにあれば便利です。しかし、そのために書込み動作が不安定になるようでは、ない方が良いということになります。
しかし近年、あれば便利だがなくてもよい機能に金をかけた家電品が多いナァ?!お年寄りが使えない家電品を高額で売っている?・・・・・ヤバイ?!決して社内告発じゃないからネ。
LEDを取ったら書込みがうまくいったという話が掲示板などにありますが、これはLEDに流す電流が大きいためVddやVpp電圧が規定値より低くなるためと思われます。多くの場合、LEDの電流制限抵抗に680Ω程度が使われていますが、この場合Vdd(5V)では、(5-2)/680=約4.4mAで電流が無駄です。(ここで2はLEDの順電圧、超高輝度LEDは約3Vです。) 電源のインピーダンスが高いためLEDの電流は極力小さくすべきです。LEDを用いないのがベストですが、あれば便利なことを考慮して、できるだけ小電流で実用に供する明るさを確保するため、超高輝度LEDの使用を勧めます。オジサンの場合、LED電流は1mA以下にしています。といってもかなりテキトーで、手持ちの適当な抵抗(数KΩ)を実装しています。VppのLEDは8Vの定電圧ダイオードの替わりに、5Vの定電圧ダイオードと超高輝度LEDを直列にした方が良いでしょう。超高輝度LEDの順電圧は3V程度あり、5Vの定電圧ダイオードと合わせて8Vは確保できます。また、LEDに余分な電流を消費されずにすみます。それから、RS232Cの信号の出力電圧は、±8V以上(ン、-8Vの場合は以下、つまり-9Vとか)必要です。これはRCDライターも同じです。RS232Cの電圧レベルはかなりイイかげんで(オジサンミタイダ!?)、0Vを横切るレベルがあればHi、Lowを区別するパソコンもあって、ノートパソコンのように電源がプアな(貧弱な)ものはメーカーがケチッて電圧をあまり高くしていない場合があります。こういうパソコンでは、当然規定の電圧が発生しないため書込みがうまくいきませんから、マァ、あきらめましょう?!対処法はイロイロ検討もされ、Web上に公開されていますので調べてみてください。
非常につまらない話を、どこかのページに670Ωのものをつかいましたと書いてあったような気がするのですが・・・
670Ωという抵抗はこの世に存在しません。(470Ωの間違いですかネ?)もちろん、特殊な抵抗をどこかのメーカーが作っているならあるかもしれませんが。抵抗値、コンデンサの容量値はE12、E24、E96、E192系列といった仕様があります。自分で調べてください、Web上にたくさん書かれていますから。通信販売をしている電子部品屋さんのページに、系列にない抵抗を注文する人が多くなったなどと書いてあります。注意しましょうネ?!

2.Vddを制御できないJDM形ライターで、PIC12F675などの再書込みができない問題の解決策として、Vpp印加後Vddを印加する遅延回路が種々報告されています。フォトカプラを用いる方法は余分な電流を流すため、それでなくても電源のインピーダンスが高いJDMライターには不向きです。かと言って、トランジスタ1個とCRのみは、はっきり言って首をかしげざるを得ません。(この方式で商品になっているモノがあることには驚きました!ビックリ!)Vppの印加前は100ΩでVddがVssに接続されるため、計算上50mAもの電流が定常的に流れます。モッタイナイ!!!それと最も肝心なことは電源ラインに直列に抵抗が接続されているということで、これは絶対やってはいけないことです。Vdd電流が流れれば、この抵抗で電圧降下が生じ、Vddを不安定にします。Vdd電流は決して静的(いかなる状態でも一定値)ではありませんから、書き込み中Vddがフラフラして書込み動作を不安定にすることは必定です。100ΩとVdd電流も小さいですから、電圧降下はあまり高くはないでしょうが、それでも電源ラインに抵抗を直列に接続するなどもってのほかで、さらに改定前の10KΩなどトンでもないことです。良い子は絶対しないでネ!!!RCDライターのVppに直列に接続されている10KΩも同様の意味でイイとはいえませんが、RCDライターの場合Vppがコンデンサに充電された電荷のみのため、ンーーーはっきり言ってRCDライターはオジサンにはお勧めではありません。それから、RCDライターで、VddはTxDの反転と同時に形成されますが、C3によって遅延しますと書いてありますが、C3によって遅延することは絶対にありません。なぜなら、C3に直列に10KΩが接続されているからです。C3の両端の電圧は遅延しますが、Vddそのものは10KΩのため遅延しません。Vddを遅延させるには10KΩをD5に直列に接続する必要がありますが、そうすると前述したように電源ラインに抵抗が入るので良くないですヨネ。遅延できないため、また平滑(の必要もないのですが)にも役に立たないので、C3と10KΩは不要です。というわけで、Vdd遅延回路はHOGEPIYOHAMU's Pageに書かれているトランジスタ2個の回路が正解です。オジサンもそうしました。遅延はたぶんに、トランジスタ2個のスイッチングスピードの遅れだけで充分で、コンデンサは不要な気がします。オジサンの回路図にはコンデンサが入っていますが、コンデンサがなくてもPIC12F675の再書込みができました。また、C3によって遅延しないRCDライターでも再書込みができていることから、最悪VddとVppは同時に立ち上がってもOKな気がします。と言っても、あくまでも実力値の話ですが。オジサンは英語が天才なのでよくわからないのですが、PIC12F675のProgramming Specificationの4ページFIGURE2-2に、ENTERING HIGH VOLTAGE PROGURAMはVpp印加後(最小5μS後)Vddを印加するように書いてあります。このタイミングが必要なら、PIC12F675はVddをOFFできないJDMライターでは書き込めないことになります。また、PIC16F88は同様にProgramming Specificationの7ページのNoteに、Vddが立ち上がってから250μS以内にVppを印加すれば、どのような場合でもPROGRAMING MODEになると書いてある(ように思います)。MCLRピンを入力として使用する場合、VddをOFFできないJDMライターではこのタイミングを作り出せないので、MCLRピンをLowにしてもリセットが働かず、PROGRAMING MODEに入る前にプログラムがスタートして、再書込みが出来ないことになります。JDMライターかRCDライターを使用する場合は、PIC16F88はMCLRピンを必ずMCLRとして使用するのが鉄則と考えます。但し、RCDライターではVppがVddより前に印加されるため、PIC16F88にダメージを与えるのでは?と思いますし、実際RCDライターではPIC16F88に書き込み出来ませんでした。

3.ICソケットを共用化するメリットは部品点数が少なくて済む、小型化できるなどありますが、小さくする意味がオジサンには見出せません。取扱いが厄介で、ある程度大きいほうが良いと(トシヲトッタセイカナァ?)・・・・
共用化することでむしろ弊害があると思います。共用化したため、本来接続する必要のない端子に書き込み時に不要な電圧が印加されます。また、Vssに直接接続される端子もあり、場合によってはPICにダメージを与える、あるいは破壊につながることもないとは言えません。共用化ではなくピン数毎に専用ライターとするか、オジサンのように夫々のソケットを設けるようにすべきです。共用化できるのは、40ピンと28ピンの一部のPICだけです。また、PGMをLVPモードをもっているデバイスのために直接Vssに接続していますが、海外のWeb上で公開されているように(http://www.ucapps.de/mbhp_jdm.html)抵抗を通して接続すべきです。オジサンはテキトーに2.2KΩを使いました。
(ウラバナシではないですが、オジサンの使う“テキトー”は決してデタラメといったことではなく、オジサンの持っている基礎知識に照らし合わせて、理にかなった適当なものという含みを持っていますから・・・なんでこんなことを書かにゃならんってイウジャナイ?落語のオチをばらさないと理解できず笑えない人がいたりするので、ザンネン?!!!)

4.JDMライターで厄介なことは、VddをOFFできないということです。パソコンのRS232Cポートに接続した時点でVddが出力されていますから、PICをソケットに抜き差しする場合電源が印加されたままで行うことになります。ソケットに挿入後パソコン側に接続する場合でも、RS232CのコネクタはUSBコネクタのように電極形状がホットプラグに対応しているわけではないので、不安定な電源接続状態を経由します。これはパソコンからRS232Cのコネクタを抜く場合も同じです。電源が印加されたままPICを抜き差しすることは、PICにダメージを与えたり、最悪破壊される可能性もあります。
しかし、皆さんはどうしているのかナァ?電源が印加されたまま抜き差ししているんでしょうかネェ?こんな危険なことがどこにも書かれていないのは、実に奇怪です。それともオジサンの勘違いかナァ?
そこでオジサンはスイッチを設けて、PICに印加されるVddをOFFできるようにしました。これにより、PICの電源をOFFでき安全に抜き差しすることが可能になります。このスイッチはまた、RCDライターとの切り替えスイッチでもあり、RCDライター、JDMライターの両ライターとして使用できます。スイッチの使用法は回路図のコメントを参照してください。
RCDライターはVppが印加されない限りVddも印加されませんからこの点は安心ですが、書込みプログラムにWinPicを使用する場合は注意が必要です。初期状態でのWinPicは書込み終了後、LEDが点灯し余計な電圧がPICに印加されたままになります。オジサンが使ったiniファイルは“RCD_programer.ini”ですが、このファイルの最後の2行はncに書き換えました。他のiniファイルでも同様です。
   RedLed=nc
   GreenLed=nc
こうすることで書込み終了後、余計な電圧がPICに印加されたままになることがなくなり、安全にPICをソケットから抜き差し可能になります。書き込み中のLEDの点灯状態はこの設定と関係ありませんから、書き込み中のLEDは正しく点灯します。書込みが正常に終了したかなどのためLEDを点灯しているようですが、パソコンの画面で確認できますし、あれば便利でもPICに対して不具合を生じさせる可能性もあり、書込み終了後はLEDを必ずOFFすべきです。IC-Progではこのようなことがなかったと思いますが、もし書込み終了後LEDが点灯するようであれば、OFFするように設定(があったかなかァ?)すべきです。

*注)赤字は大事なところ、青字は注目する語句またはリンク、緑字は独り言・・・カナ?

topハードウエァの部屋このページのTOPへ