マイコンって何が出来るの?
お正月、お腹がもたれたので椅子に座って足上げ運動!の図ではありません。
まったく異業種の方から「マイコンって何が出来るの?」と聞かれたことがあります。
その方は、会話の糸口を掴もうとしただけだと思いますが、意表を突かれて間が空いてしまいました。気を取り直して次のような趣旨で説明したと思います。うまく伝わったか、疑問に答えることが出来たか良く解りませんでしたが、ちょっと味付けして記事にしてみます。
用途と外観
炊飯器などの家電製品にも使われ、自動車一台に20個以上も使われていると言われるICで、複数の端子を持っています。タイトルの図に外観例と端子の様子を描いてみました。私のプロフィールヘッダーに2種類のMCUが写っています。
端子は物理的に足上げ運動をするのではなく(笑い)、出力として各端子の電圧を上げたり下げたり、入力として各端子の電圧を測定、検知しています。
図では次のように色分けしてみました。
(1)緑色:デジタル信号として、High or Low の信号を入力している端子
(2)青色:端子電圧のアナログ値を測定する端子
(3)紫色:端子にアナログ電圧を出力する端子
(4)黒色:デジタル信号 High or Low の信号を出力している端子
(5)橙色:各端子電圧の基準となる端子
入力、出力に限らず、信号電圧は(5)を基準に決められた範囲(例えば+3.3V~0V)を扱います。
デジタル信号は予め決められた電圧より高いとHigh、低いとLowとして入力され、中間は扱いません。同様に中間はないものとしてデジタル信号を出力します。出力を(High → Low, Low → Highと)切り替える速度(最小パルス幅)はMCUの能力によりますが数usec程度です。
アナログ信号も決められた電圧範囲で動作し、電圧を測定する入力端子と任意の電圧を出力する端子があります。多くの場合、HighとLowの中間電圧で使いますからMid.としました。
マイコンの各端子には前述(1)~(4)の機能を選択して割り付けることが出来ます。(マイコン毎の制約により、端子毎に割付可能な機能が異なります。)
(5)の機能や電源電圧を供給する端子(図では省略)は用途を固定されており、別の用途に使うことは出来ません。
電気的にマイコンに出来ることはこれだけです。
マイコンて何?
電気的には前述の通りですが、これらの信号を秩序立てて扱うことが出来ます。つまり、「デジタル入力AがLowの間はデジタル出力BにHigh / Low 交互に出力することで1kHzの矩形波を出力し、デジタル入力AがHighならデジタル出力BはLow に固定する。」と言った秩序に従って動作します。
ボタンを押してデジタル入力AをLowにしている間だけ、デジタル出力Bに接続したブザーが鳴動すると言った用途に使えます。(それだけならマイコン無しでも作れますが・・・)
その秩序を決めるのがプログラムと言うわけです。
シリアル通信をしたり、PWMでモーターを制御したり、はたまた入力信号のパルス幅を測定するために、内臓または外付けのハードウェアを使うことが多いのですが、マイコン端子は前述の通り秩序立てて端子電圧を変化せているに過ぎません。
マイコンを実装した基板もプログラムが無いと、デフォルトで決まる端子電圧に固定されたままで、何も動作が見られません。
逆にプログラムを作っても基板が無いと動作確認すら出来ないことになります。
まとめ
マイコン仕掛けは信号を秩序立てて扱うことが出来る!
既知の応用範囲の他、自分の用途にピッタリの製品が手に入らない(市販されていない)と言う時に意外に容易に要求に答えることが出来ると思います。例えばセンサーを付け替えるだけで、同じ基板が複数の用途に使える場面もあります。
目の前の課題を解決するために、回路図を書き、基板を作ってプログラムを組む、そして役に立つ様子を見るのは楽しいですね!
タイトルの図ですが、端子電圧の様子を理解して製作した基板の動作を見る時に、目にも止まらぬ速さで足上げ運動をしている様子を想像して楽しいと感じる私は変でしょうか?
続編のご案内
「マイコン端子に入出力 1」 - どのようにして入出力信号を扱か
「マイコン端子に入出力 2」 ー SFRの使い方概観
「マイコン端子に入出力 3」 - SFRはハードとソフトの接点
出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。