PIC ライターの作成

パソコンからPICにプログラムを書き込むアイテムを作ります。今回作るライターは、
DOS/Vパソコンのプリンターポートに接続してPIC16F84に書き込みをすることができます。
書き込みソフトはすべてフリーソフトを使用します。部品代は秋葉原で1500円もあればそろうでしょう。

今回は後々簡単なプログラムの動作確認もできるように、PIC周辺回路も作っておきます。
できるだけ初心者にもできるように説明しているので、分かっている人からは意味が違うと
突っ込まれるかもしれませんが、ご了承ください。

1枚の基板上で、PCからプログラムを転送し、その後すぐにボードの上で動作を開始できます。

部品リストと補足
回路図1(ROMライタ部)
回路図2(マイコン周辺部)


製作ははじめにやりたいと言い出した友人Hです。
部品の配置をうまく考えて、できるだけ余分な配線を
しないようにがんばってみましょう。基板の「はんだ面」で
回路が出来るだけ交差しないように配置させます。

あっちこっち電線でつないであると、
あとで基板から回路を見るときに苦労します。
最後に必ずどこか間違っているので、
あとで自分がわかりやすいように配置します。
初めに部品の配置をよく吟味しましょう。

電子キットなどの場合、抵抗など背の低い部品から組み立てていくのが普通ですが、
今回は配置も考えながら作っていくのと、説明のしやすさを考えて各機能部分ごとに組み立てていきます。
なぜ背の低い部品から組み立てていくかというと、はんだ付けするときに基板をさかさまにします。
そのときに先に背の高い部品が付いていると、下に大きな隙間ができるので抜け落ちてしまいます。


1.電源部

左の写真は電源部分です。右側は電源部の回路図だけ抜粋しています。
回路図と部品を対比させておきましょう。中央の大きいのがレギュレータICの「78M12」と「78M05」です。
左手前の円筒形の部品がC1の「電解コンデンサ」、青いのはC2,C3,C5,C6の積層セラミックコンデンサ、
赤く小さいのがD1のダイオードです。

この回路ではINに15V〜20V程度の電圧を入力すると12Vと5Vの電源を出力します。
「78M12」は常に12Vに出力するICで、「78M05」は常に5Vに出力します。
各点線の部分がそれぞれの機能を果たすための回路です。

12Vの電源はプログラムを書き込むときに必要な電圧で、5Vはマイコンを動かすときに必要な電圧です。
コンデンサは何のためにつけるのでしょうか?ここではよりきれいな電気を作るためにいれる
おまじないのようなものと考えてください。詳しくは整流回路(あとでリンク)の説明を参照してください。

D1は何のためにあるのでしょうか。先ほど「78M12」は常に12Vを出力する回路と書きました。
書き込み電圧のために必要とも書きました。でも正確にはPICの説明書には13.5V推奨になっています。
12Vでは少し電圧が足りません。そこで12Vのレギュレータを以下のように工夫して使用します。

そもそもレギュレータの動作は”レギュレータのGND端子”と”OUT端子”の
電圧を決められた電圧(この場合は12V)に保つはたらきをします。
D1を挿入すると、”レギュレータのGND端子”は回路のGNDより
ダイオード1個分の電位差(約0.6〜0.8V)ができます。

すると、”回路のGND”と”レギュレータのOUT端子”の電位差は
12V+約0.6Vで約12.6Vになります。こうすることでちょっとだけ
電圧を変化させることができます。2つ入れれば13.5Vぐらいになります。

ほかにも電圧をちょこっと下げたり、大電流をながせるようにしたり、好きな電圧に可変できる
ようにしたりといろいろできます。機会があったら紹介します。


2.IC周辺部

次はいきなりICです。初心者には完全にブラックボックスの世界なイメージかな?
しかし、意味が分かればとても簡単で便利で、なくなると大変困ってしまいます。
基板上に必要な面積は広いので、早めに場所を取ってしまいましょう。
また、ICの周辺は配線が密集することが多いので、周りのスペースも多めにとっておきます。

回路図ベースで説明していきましょう。
20ピンのICです。回路図上の番号はICのピンの位置を表現しています。ピンの対応は
右の写真のように切欠きのマークを目印に半時計回りに1から20まで数えます。
回路図上は電源の部分と2つに分かれて書かれていますが、実際は1つの同じICです。
10ピンをGNDに、20ピンを5Vの電源につなぐという意味です。

他のピンも1、2、3、17、18、19もそれぞれ相手先と接続します。相手先はまだ作っていないので
現段階ではまだ接続する必要はありません。最後に忘れずに配線しましょう。

このICは何者なのでしょうか?「1A1」とか「2Y4」とか中に書かれていますがさっぱり分かりません。

中身を知るには左写真のような規格表が必要です。
(メーカのホームページ上からも当然入手可能です。)
もちろん知らなくても回路図があれば目的のものは作れます。

←大型書店や秋葉原などで手に入ります。1冊1500円ぐらいで、
他の部品も含めるとシリーズで20冊ぐらいあります。




ちょっと中身をのぞいて見ましょう。
たしかに10ピンはGNDと書いてあります。
20ピンはVCC(+電源のこと)とあります。

ロジック記号が書かれています。???ですね。
簡単にいえば、このICは2→18、4→16といったように
三角の矢印の方向にそのまま信号が流れます。
ただし、1ピンと19ピンが交通整理をしていて
信号の役目をしています。1ピンが赤信号になると
2,4,6,8ピンの信号は通過できません。


3.PIC周辺部(リセット回路)

左図はPICの周辺回路の一部を書きだしたものです。
必要な部分だけ書き出してあり、余分な場所は
消してあります。

この部分はマイコンの初期リセット回路です。
PICは4ピンのMCLR端子がHiレベル(5V)のときに
動作し、Loレベル(0V)の時に初期化(リセット)します。

電源を入れた直後は不安定で、安定するまで待つか
一度リセットしてあげなくてはなりません。
この作業をしてくれるのが左の回路です。


ここでのポイントはC7コンデンサの特性です。
コンデンサの性質として、交流は流します。つまり抵抗として考えれば極端な場合、約0Ωです。
逆に直流は流しません。抵抗として考えれば約∞Ωです。ここで考えるのは直流の5Vです。
普通に考えるとC7は∞Ωで電流は流れないので、C7の+側は5Vになります。
(∞Ωということは断線しているのと同じです。)
(マイコン側には電流は流れず、R8の電位差は0Vと考えます。よってR8の両端とも5V)
これでは、常にHiレベルでリセットは?となります。

でも実際は電源を入れた瞬間は0V→5Vに変化しているので
直流ではありません。過渡的に(その瞬間だけ)見ると
交流と考えることが出来ます。よってその瞬間C7は0Ωと
考えることが出来、@のような経路で電流が流れます。
つまりC7の+側は0Vです。よってR8の両端も0Vであり
PICの4ピンも0Vということになり、リセット状態です。
(0Ωということはショートしているのと同じです。)

さて、5V電源も安定してくると今度はまさに直流です。
すると、C7は∞Ωなので断線しているのと同じに考える
ことができます。すると今度はAのような経路で電流が
流れます。上の説明ではICには電流が流れないと言いましたが
イメージとしてR_PICを書きました。
これはICの中の抵抗だと考えて下さい。
R7、R8と比べてものすごく大きな抵抗です。抵抗値が大きいので無いと思ってくれてもOKです。
すると今度はPICの4ピンはHiレベル(5V)になりました。これで動作することが出来ます。

イメージはこんなもんです。不安定なときはリセットになっていて、安定すると動き出します。
C7と並列にスイッチを付ければ、手動のリセットボタンになります。

4.PIC周辺部(発振回路)

ここは説明が難しいので雑談だけにしておきます。
マイコンには動作周波数というものがあります。
パソコンでもペンティアム800MHz、1GHzとかありますよね。
あの周波数と同じです。

もちろん数字が大きいほど速いというのは直感的に
おわかりだと思います。PICではせいぜい10MHzぐらいで
使用します。10MHzというと遅いと感じますか?


マイコンはこの周波数のクロック(波)1回につき
1つの仕事をします。時間に直すと10MHz作動とは
0.0000001秒に1回何かすることになります。

この動作のタイミングを作るのがこの部分です。
15ピンと16ピンの間には左の写真のような
クロックが発生しています。

処理速度は速ければ速いほどいいのですが
不便な場合もあります。それはゆっくり動作
させたいときです。たとえばランプを点滅させ
たいとき、0.00・・・秒で動作しても人間には
理解できません。1秒とかはマイコンにとっては
ものすごく気の長い話です。そのへんはソフトで
どうにでもなるのですが、「無意味に」早くしても
あまりメリットはありません。
SW1は発振をやめたいときにONにします。ONにするとGNDとショートし発振がなくなるので
マイコンは次の仕事ができません。動作が停止します。

5.PIC周辺部(入出力)

次はスイッチ入力やランプ出力などのI/O部分です。
16F84にはRA0〜RA4、RB0〜RB7の13個のI/Oがあります。
(I/O: Input/Output→入出力ポートの略)

これらのポートはスイッチなどを付けて入力用に、または、
ランプやリレー、モータなどを付けて出力用に使うことができます。

まず初めにスイッチの使い方から見ていきましょう。
今回はRA0とRA1に使用しています。マイコン側は、端子に電圧が
あるかないかでON/OFFを判断します。つまり5Vか0Vかで
ONかOFFか判断します。これは左図のような回路で成立します。

SW2がOFFのときはRA0はR15でGND(0V)に接続されています。電流は流れていないので
R15の両端の電位は等しく0Vです。この状態ではマイコンはOFFと認識できます。

次にSW2を押した場合を考えてみましょう。このとき@のように電流が流れます。
+5VからGNDの間にある抵抗はR15だけなので、電圧が変化するのはここだけです。
すなわちR15のGND側は0Vで、マイコン側は+5Vです。このときマイコンはON認識します。


次は出力部を見ていきましょう。
まず初めにマイコンの出力部はどうなっているかのイメージです。
RB0が出力ポートで、VCCはPICの電源(5V)です。

中にスイッチがありますね。これはプログラムでON/OFFに切り換えます。
俗に言うソフトスイッチです。「ONにしろ」と命令するとスイッチはVCCと
つながりRB0はVCC(5V)とつながります。「OFFにしろ」と命令すれば
RB0はGNDとつながります。(ONはプログラム上の1、OFFは0です。)

では回路を見ていきましょう。ここではLED(発光ダイオード)を光らせます。
ON命令で光るようにします。抵抗R9−14の後にあるダイオードみたいな
のがLEDの記号です。

RB*の電圧が5Vのとき、赤い線の方向に電流が流れLEDが光ります。

応用です。今度はプログラム上で1になったとき(RB*が5Vのとき)に消灯し
0になったとき(RB*がGNDレベルの時)点灯させてみましょう。
この場合も至って簡単でLEDの向きを逆にし、外から5Vかけてあげれば
いいわけです。

マイコンに対する電流の向きで、吸い込み、吐き出しなどと表現します。
(左図は吐き出し)マイコンは一般的には吸い込みの方が得意なようです。
今回はプログラム上”1”=ONと理解しやすいので吐き出しにしました。

ついでに簡単な回路の勉強もすこししておきましょう。簡単な抵抗から。
抵抗は電流制限のために入れると言いますよね。どういうことなのか考えてみましょう。

LEDはある程度電流を流さないと光らないし、電流をたくさん流せば明るく光ります。流しすぎると
燃えてしまいます。半導体はとてもエコデバイスでここで扱うのは数mA〜数十mAの電流です。
また、マイコンも扱える最大の電流値が決められています。これ以上流すとマイコンが壊れます。

オームの法則より、電流=電圧÷抵抗 で計算されます。ここでRB*の電圧は0Vか5Vなので
決まっています。電流値は設計者の判断で、LEDの明るさやマイコンの負荷を考えて設定します。
趣味程度の簡易設計では以下のようにします。(・・・というか私はこうしてます)

1.LEDの電圧降下分(両端にかかる電圧)=2Vとします。
2.電源が5Vで、LEDに2Vかかるということは、抵抗には3Vかかります。
3.直列につながっているので、抵抗に流れる電流=LEDに流れる電流です。
4.LEDに10mA流すとします。と言うことは抵抗にも10mAながれます。
5.抵抗には3Vかかって、10mAながれます。
6.オームの法則より抵抗=電圧÷電流なので抵抗値=5(v)÷0.01(A)(=10mA)
6.オームの法則より抵抗=電圧÷電流なので抵抗値=3(v)÷0.01(A)(=10mA)
7.計算結果は500Ωです。500Ωで10mA流れます。
7.計算結果は300Ωです。300Ωで10mA流れます。
8.適当にこれに近い抵抗を使用します。

↑6番間違えていました。5Vではなく3Vですね。2007.2.2


6.その他
それでは最後に残りの部分です。
ここではトランジスタの動作を中心に説明したいと思います。
トランジスタの基本的動作については<こちら>に書くので省略します。
回路上で何をしているのかの説明にしたいと思います。

左図は、トランジスタの動作イメージです。
(スイッチとして利用した場合)
左側がNPNタイプで、右側がPNPタイプです。
コイルに電流が流れると隣のスイッチが
ONします。NPN型はBEに電流を流すと
CEにも電流が流れることをイメージし、
PNP型はCBに電流を流すとCEに電流が
流れるとイメージしています。



D3、D4はパソコンのプリンターポートに
接続されています。書き込みプログラムで
Hiレベル、Loレベルを切り換えてます。

さて、それではトランジスタの動作ですが、
単純にスイッチの役割をしています。
Tr1から3をうまく使うことによって、出力
に0V、5V、12Vを出すことが出来ます。

それでは実際にどのような仕組みになっている
のか見ていきましょう。

抵抗などは省略してあります。実際の回路図と
見比べて理解してください。





まずは図2です。D4だけをHiレベルにすると、
Tr3のみONします。よって出力端とGNDが
接続され、出力は0Vになります。

図3はD3、D4ともにLoレベルで、
どのトランジスタもOFF状態です。

出力端には5Vがそのままでてきます。








図4はD3がHiレベル。D4がLoレベルです。
D3がHiレベルなのでTr1がONします。
Tr1がONすると、Tr2がONするので
12Vが出力されます。


ちょっとややこしいですが、トランジスタの
スイッチング素子としての使われ方が
分かればいいと思います。




簡単な回路の説明は以上です。
読み返してみると、初めは組立の説明からはいっているのに、途中から回路の説明に
なってしまってますね。実は会社で休み時間にちょっとずつ作ったので、話が急に
とんだり、つながってなかったりします。そのへんは大目に見てください。

↓完成基板面(クリックで拡大:約70kbyt)


↓完成はんだ面(クリックで拡大:約70kbyt)



それでは電源を入れてみましょう・・・。
でもその前に、本当に間違いはありませんか?

よく間違えるポイントです。これぐらいは目視で確認しておきましょう。

・IC等の電源はすべて接続されていますか?
・極性の間違いはありませんか?
・回路図を2枚に分けてしまいましたが、きちんと接続されてますか?
・GNDは全てつながっていますか?
・隣同士のはんだがショートしてたりしてませんか

大丈夫そうなら電源を入れてみましょう。(ICはまだ付けないでください。)
異常に熱くなっている部品はありませんか?
→なってたらすぐに電源を切ってどこかショートしてないか極性間違えてないか再確認です。

次にPICの電源にあたる部分の電圧を確認してください。きちんと5Vになってますか?
全てOKなら電源を切ってからPICを装着して完成です。


では次に、書き込みソフトの用意をしましょう。

私は”PIC Writer for Windows Ver 2”というフリーソフトをっています。
作者のホームページ(http://www.ops.dti.ne.jp/~ishijima/sei/index.html)から入手することが出来ます。
ソフトの使用方法は転載するわけにも行かないので付属のマニュアル等を参照して下さい。


プログラムの書き方は、素直に書籍を購入しましょう。昔はPICの本なくてWebが情報源でしたが、
最近は数種類のPIC入門書が売っているのでとても助かります。

http://www.amazon.co.jp/
ここでキーワード「PIC」で本を検索してみてください。いろいろありますよ。


この先は、うまくまとめられている書籍や他のホームページを参考にしてください。


ブラウザの戻るボタンでお戻りください。
検索サイトから来た方は
こちらからトップページへお戻りください。