汎用入出力ポートの使い方が理解できました。これは H,L の 2値の出力つまりディジタル的な電圧を出力するものでした。
次なる欲求としては、何V といったアナログ的な電圧を出力したくなってきます。マイコンの内部ではデータはすべてディジタル値として扱われていますから、アナログ的な出力を得るためには ディジタル-アナログ変換器(略してD-A変換器、DACともいう) が必要になります。 マイコンによっては D-A変換器を内蔵しているものもありますが、MC908QY4A には内蔵されていません。しかし簡単な外付け回路で実現できますから、そんなに困ることはありません。
書籍 「試しながら学ぶHC08マイコン入門」 (CQ出版) で取り上げた HC08ミニマイコン扇風機 では、付属プリント基板上で 4ビットの D-A変換器 を構成しています。
内容見本 p.28 図3-1 操作の面から見たブロック図
ここで使った D-A変換器は専用の IC ではなく、ただの抵抗器の組み合わせによって構成されています。 抵抗器なら 1本あたり数円から買えるのでローコストで実現できますし、仕組みを知るのにも最適です。 D-A変換器の部分を抜き出した回路図を示します。
まず結果から書いておきます。 デバッグの都合上、上図で VDD = 5V 、 PTA5 = L としておくと、PTB3~PTB0 で表される 4ビットの二進数 を 10進表記した値と OUT電圧の アナログ値 [V] との間には下記グラフのような関係ができます。
見やすいように直線で結びましたが、横軸が整数なので実際には16個の丸で示した 飛び飛びの値 しかありません。
4ビットの D-A変換 (基準電圧5V)
このように、ディジタル値をアナログ値に変換することができます。 これを見て、「なんだ、比例関係を作っただけじゃないか」 と思った方もおられるでしょう。 そのとおりです。そのとおりですが、それだけではないのです。 わかりやすくいうと、「それではテスタで調べてみたら?」 という話なのです。
アナログ値はテスタで簡単に調べられますが、ディジタル値のほうはテスタで 5 だ、10 だ、と見ることができません。もちろん 4本の信号線をそれぞれテスタで調べて、それを組み合わせて数値を知ることはできます。それこそが、ディジタルのデータというわけです。
そもそも、ある現象について別な見方をしたらどうなるか、というのが理工学でいうところの 「変換」 ですから、ディジタル値とアナログ値で比例関係を作った、と理解した人は正しかったわけです。 結局、この D-A 変換回路によって 4ビットのディジタル値が 16段階のアナログ値に「変換」されたということになります。
計算式は、次のようになります。 ディジタル値をNとしていますが、これは10進表記と考えるとわかりやすいです。簡単ですね!
アナログ値 [V] = N ÷ 16 × 5 [V] (N は 0 ~ 15 の整数)
4ビットD-A変換器の出力データ(電圧)がなぜ 16段階になるかということは、そう難しい話ではありません。 第12回で 8ビット・データで表現できる内容が 256通りであるという話をしました。それと同様に 4ビット・データで表現できる内容は、
2 × 2 × 2 × 2 = (2の 4乗) = 16 通り
となります。 詳しい説明はしませんが 8ビット D-A変換器の変換結果は 256段階になります。 音声信号などでよく使われる 16ビットD-A変換器の場合は 65536段階になります。 このくらいになると、1段階の差がとても小さなステップになるので、非常になめらかな変換結果を得ることができます。 4ビットくらいだとガタガタですが、まぁ用途によっては充分使えます、といったレベルです。
次に実際の HC08ミニマイコン扇風機 の場合ですが、先に示した回路の PTA5 を H にして使っています。そうすることにより、アナログの 0V 出力ができなくなる代わりに 5V 出力を得ることができるようになります。 グラフで示しておきます。これも先ほどと同様で、直線を書いてありますが、実際には 16個の丸で示した 飛び飛びの値 しかありません。
4ビットの D-A変換 (基準電圧5V)で 5V 出力を得る
これを式で表すと、次のようになります。
アナログ値 [V] = (N+1) ÷ 16 × 5 [V] (N は 0 ~ 15 の整数)
このあたりの説明は、書籍p.33 のコラムでもサラッと書いてありますので目を通してみてください。 なお書籍では電池駆動を前提としているため 5V ではなく VDD と表記しています。
PTA5 を H に固定ということなら、R9 を PTA5 に接続しないで VDD に接続してもよいのでは? と思った方もいるはずです。 そうしてしまうと、パワーダウン状態のときは OUT の電圧を下げておきたいのに R9 に電流が流れてしまうので、電池の減りが早くなってしまうのです。 そうしないため、パワーダウン時は PTA5 を L にしているのです(OUT電圧が高いままだとモータが止まらない)。 なお PTA5 は POWER LED出力、可変抵抗器の電源と兼用です。
◆ R-2Rラダーを理解する方法
動きがわかったところで、その仕組みを見ていきましょう。 使われている抵抗の値をよく見ると、120Ωと 240Ωの 2種類だけでできていることに気が付くと思います。120Ωのほうを R とすると、 240Ωはそのちょうど 2倍、つまり 2R といえます。そこから名前を取って、この構成を R-2Rラダー型 D-A変換回路 と呼んでいます。ラダーというのは梯子(はしご)のことです。 R-2Rラダーを理解するためには、いくつかの方法が考えられます。
・ 動きを知ることで使えるようになる。
これはたった今済ませたところで、動きに関しては知識を得ることができました。完璧とはいえないまでも、もう R-2Rラダー型 D-A変換器が使えるようになったと思います。とはいえ、これだけでは理解したことにはなりませんね。もう少し突っ込んで見ていくことにします。
・ 測定をしてみる。
一番手っ取り早い(?)のは測定をしてみて 「確かにそうなる」 と納得することではないでしょうか。 それほど難しいことを考えなくてもできてしまうという利点もありますし、「自分の手で確認した」 という実感も得られることでしょう。
・ 計算をしてみる。
これはかなり有効です。抵抗がたくさん組み合わされているということと、4ビットD-A変換器でも 四つの変数があるので計算するのは少々面倒くさいのですが、やってやれないことはありません。 それに、計算をしていく途中で 「なるほど」 と思える可能性が高いです。
・ 原理を理解する。
この方法がもっとも説明が難しく、また説明を受ける側も理解度に差が出やすいのではないかと思います。 というわけで、これは最後にします。
次回はこの続きで、書籍に付属するプリント基板を使って実際に測定をしてみます。
『関連宣伝』
HC08ミニマイコン扇風機製作部品セット はマルツパーツ館で販売中です。
また、マルツパーツ館でプリント基板付き書籍 試しながら学ぶHC08マイコン入門 をご購入いただくと、CodeWarrior CD-ROM がもらえます(数に限りあり)。
これから部品を買い揃える方は、次回の実験で使うので 240Ωの抵抗 を 1本多く買っておいてください。
『参考文献』
「試しながら学ぶHC08マイコン入門」 (CQ出版)
第3章 HC08ミニマイコン扇風機とはどういう働きをするのか
Appendix F KMC908QY4Aユーザ・モード・モニタ入りマイコンの知識
筆者のホームページ 『マイコン工作の実験室』
組み込みエンジニア KAWANO
