組み込みシステム技術者に必要なマイコンの基礎知識を解説しています。前回のマイコン入門(3)では開発環境の導入と、実際にマイコンを動作させてLEDを点灯しました。今回はそのLEDが点灯した理由を解説しましょう。レッツトライ!

LEDのON/OFF回路

前回のマイコン入門(3)では、マイコン開発キットの「RL78/G14 Stickスターターキット(RL78G14-STICK)」と統合開発環境「CS+」を接続して、「CS+」からマイコン周辺回路を制御するSFR(特殊機能レジスタ)の値を変更することによってLEDを点灯させました。しかし、なぜ、SFRを変更することでLEDが点灯したのか……今回はその理由を解説します。

初めに、LEDの点灯を制御する回路を考えましょう。下の図1をAからB、Cへと順番に見てください。

図1:LEDの点灯回路

図1 LEDの点灯回路

A
シンプルなLEDの点灯回路。Rは電流制限抵抗と呼ばれ、LED(D)に流れる電流量を調整するために回路に挿入します。
B
LED(D)をON/OFF制御するために、機械的なスイッチ(SW)をAの回路に挿入した図。スイッチ(SW)をONにすると回路に電流が流れLEDが点灯します。
C
Bの回路のスイッチ(SW)を電気的にON/OFFできるFET(電界効果型トランジスタ)(Q)に変更します。このFET(Q)はゲートとソースの間に電圧が加わる(印加する)と、ドレインからソースへ電流が流れます。したがって、ゲートが接地(GND)電圧だと電流が流れずLEDが消灯し、ゲートに電圧が加わるとLEDが点灯します。

マイコンの内部回路を覗いてみよう!

図1でLEDの点灯回路を理解したところで、前回のマイコン入門③に戻りましょう。

「LEDを点灯しよう!」の章では、「RL78/G14 Stickスターターキット(RL78G14-STICK)」のLED(D2)を点灯させました。そこで、LED(D2)とマイコンがどのように接続されているのかを調べました。下の図2は、LED(D2)の周辺回路と接続しているマイコンの内部回路を組み合わせたものです。

  • 周辺回路(LED)の回路図:テセラ・テクノロジー株式会社提供の「RL78/G14 Stick スターターキット ユーザーズ・マニュアル」(Rev.1.1、2012/11/02)、11回路図、P.72を参照。ダウンロードはこちらから
  • マイコン内部回路は、ルネサス提供の「RL78/G14 ユーザーズマニュアル ハードウェア編」(Rev.3.20、Jan.05.15)、端子ブロック、図2-7端子タイプ7-1-3の端子ブロック図、P.106を参照。ダウンロードはこちらから

図2:LED(D2)の周辺回路と接続するマイコン内部回路

図2 LED(D2)の周辺回路と接続するマイコン内部回路

ここが今回のポイントです!上の図2と図1Cの回路を見比べてください。

図2の赤い線で囲まれた回路と図1Cの回路が同じであることに気がつきましたか。同じ回路であるということは……動作も同じ、したがって、図2の回路のQ1のゲートに電圧を加えれば、Q1がONになり、LED(D2)が点灯します。

次にQ1のゲートに電圧が加わる条件を考えましょう。

Q1のゲートに電圧を加える(論理「1」を入力)ためには、Q1のゲートに接続しているNOR回路から「1」を出力する必要があります。

NOR回路の真理値表を下に示します(表1)。

入力A 入力B 出力
0 0 1
0 1 0
1 0 0
1 1 0

表1 NOR回路の真理値表

表1からわかるように、NOR回路から「1」を出力するのは、入力Aと入力Bの両方に「0」が入力されている場合だけです。図2の場合は、「P77」と「PM77」という箱の両方から「0」が出力されるということです。

LED(D2)が点灯するしくみをまとめましょう。

  1. 「P77」と「PM77」の両方から「0」が出力
  2. NOR回路の2つの入力に「0」が入力
  3. NOR回路が「1」を出力
  4. Q1のゲートに「1」が入力
  5. Q1がON
  6. LED(D2)が点灯

マイコン入門③で、「PM77」はSFRであるとお話しました。「P77」も同様です。続いて、SFRについて解説しましょう。

箱の中身を変えてハードウェア制御

マイコンにはレジスタと呼ばれるデータを一時的に保存する箱のような機能があります。レジスタにはプログラムカウンタや汎用レジスタ、SFR(特殊機能レジスタ)などさまざまな種類があります。

 

SFRは、周辺回路(カウンタやシリアルポート、汎用IOなど)の動作設定や動作状況を確認して、周辺回路を制御するのに用いられます。SFRは、単にデータを保存するだけの箱ではありません。箱に保存するデータを変更することで周辺回路の動作を変化させたり、データが周辺回路の状況によって変化したりします。

 

前回のマイコン入門③「LEDを点灯しよう!」の章で試した、LED(D2)の点灯を解説しましょう。

マイコン開発キットの「RL78/G14 Stickスターターキット(RL78G14-STICK)」と統合開発環境「CS+」を接続した時点では、「P77」から「0」、「PM77」から「1」が出力されていました。LEDを点灯させるには、先に述べたように両方から「0」を出力する必要があったので、「PM77」を「1」から「0」に変える操作(SFRの値を変える)を行ったのです。

さて、「P77」や「PM77」は1ビットのレジスタですが、実際には他のレジスタと一緒にまとめられて8ビットや16ビットのレジスタとして扱われます(図3)。そのため、前回のマイコン入門③では「PM7のレジスタの値を0xff(2進数:1111 1111)から0x7f(2進数:0111 1111)に変更」という操作をすることによって、PM77の値を変更したわけです。

図3:RL78/G14のPM7レジスタの構造と値の変化

図3 RL78/G14のPM7レジスタの構造と値の変化

レジスタの定義は、ルネサス提供の「RL78/G14 ユーザーズマニュアル ハードウェア編」

(Rev.3.20、Jan.05.15)、表4 - 8 各製品で搭載しているPMxx, Pxx, PUxx, PIMxx, POMxx, PMCxxレジスタとそのビット(30ピン製品~64ピン製品)、p.195を参照。

ダウンロードはこちらから

 

マイコンにはこのようなSFRが数多く搭載されており、さまざまな機能を持っています。これらレジスタの値をプログラムで変更したり、値を読み込んだりすることにより、マイコンは外の世界の情報を得ることができ、また、外部に何らかの制御を行っているのです。

 

今回は、マイコンによるハードウェア制御の基礎を大まかに解説いたしました。

さて次回はマイコン入門の最終回、プログラミングを行います。ご期待ください!

 

※この記事は2015年3月13日に改訂しました。