Peri's Hobby
Periの雑多なホビー活動の記録

私がPICマイコンを使うようになった時、最初の壁がパソコンとの概念の違いでした。
組み込み用マイコンではあまりに当たり前の話なので、あえて書いてみました。

マイコンとコンピュータ


私が初めてプログラミングという行為をしたとき、入力装置は16進+α程度のキーボードで出力装置はタイプライターでした。
その後、ある程度のプログラミングができるようになったのは、キーボードとディスプレーがあるPC8001の頃の環境です。
その頃は、マイコンといえば今のパソコンで、それでも入出力装置は何かしらのかたちで用意されていました。
その後、MS-DOSや各種Unix、Windows、Linuxという環境で様々なソフトウェアを仕事でも趣味でも作ってきましたが、すべて入出力は環境で用意されていました。

最近のマイコンは、ただの8ピンから40ピンくらいのICです。入出力装置が付いたコンピュータとは全然違います。入出力を作らないといけません
プログラムはアセンブラで書けばよいというのはわかっていたのですが、実際に使うにはどういう発想の転換が必要なのかがわからずにいました。

結局デジタル回路に過ぎない


かつて、エレキーなどを作っていたころは、デジタル回路といえばTTLからMOSへの転換期で、74XXなどの論理ゲートの組み合わせが普通でした。
これは、入力をHighにするかLowにするかで、出力レベルがLowになったりHighになったりするように論理ゲートを組み合わせて作るわけです。ハードワイヤードの単機能の装置ができます。
PICなどのワンチップマイコンは、この論理ゲートの組み合わせのところをプログラムでやるものと考えた方が、使い方としてはより近いイメージだとあるとき気づきました。

でもマイコンはコンピュータ


一方で、プログラマブルロジックデバイス (PLD)とよばれるプログラミング可能な論理ゲートICも存在します。これは、IC内部の論理回路を変更可能なICです。
マイコンは、論理ゲートではなく、あくまでコンピュータとして動作します。つまり、クロックがあってレジスタがあって、クロックに合わせてレジスタから命令やデータを順番に読みだしてその通りに動作するという、チューリングのモデルに従った動きをします。
これは、プログラミングの際のロジックの考え方は入出力がついているコンピュータと大差ないということで、むしろ使いやすい特徴となります。

超基本PICの入出力


ここまでは、マイコン一般ですが、この辺からPICに絞った話になります。AVRでも同じというところはたくさんありますが、AVRは詳しく知りません。

PICは、電源ピンと入出力ピンを持っています。基本的な使い方では、入出力ピンは、ピン1本が1ビットの入力か出力を行うことができます。8ビットをパラレルで扱うには8本のピンが必要になります。
プログラムは、各入力ピンの状態を1本づつHighかLowかを見て、その状態に応じて出力ピンの状態を1本づつ操作するイメージになります。
もちろん、実際のプログラミングでは8本づつ扱うこともできますが、意識するのは8bit unsigned charの変数のどのビットがどのピンに割り当てられているかなので、意識は1ビット単位ということになります。
このbit単位での意識というのが、OSがある環境でのプログラミングとの一番の違いのような気がします。

ピンの割り当て


PICは、ピンの数が限られているので、各ピンは複数の用途に使えるようになっています。ピンの用途の切り替えは、プログラム書き込み時やプログラム中で内部動作レジスタの値を設定することで変えられます。また、この設定が違うと意図した動作にならなかったりプログラムが動かなかったりします。
PICの使い方で一番難しいのはこのコンフィグレーションレジスターの設定かもしれません。機種によって異なったりしますので、データシートと首っ引きということになります。

プログラムの書き込み


プログラムの書き込みも入出力に使えるピンと共用です。特定のピンに特定の電圧をかけると書き込めるようになるみたいです。書き込み機は、この書き込み用信号(電圧)を作ってPICを書き込みモードにすることと、書き込み用プロトコルでPICと通信する機能を持っているインターフェースアダプターです。

PICのそのほかの機能


PICのピンは、デジタルにhigh/Lowの入出力ができるだけでなく、ADコンバータや通信やPWM出力などいろいろなことができます。この付加機能の違いとメモリ量の違いが同じPIN数のPICにいろいろ種類がある理由です。
デジタル以外の機能にピンを使う際にもコンフィグレーションレジスタで設定します。データシートを熟読すると、使えるようになるかも。

PICの選択


基本のデジタル入出力はどれでもできるし、低機能が安いとは限らないので、最近の18PINでは高機能PIC16F88を使う事例が多いです。16F88の機能がそこそこ使いこなせれば、PICの機能では怖いものなしかもしれません。

FirstUpload 09/11/17-15:41 : LastUpdate 09/11/17-15:41

Copyright © peri All Rights Reserved. Script by Petit CMS Designed by info-cache.com