IOエクスパンダとは

これまでのSTEPでは、ドットマトリクスLEDをマイコンの16本の端子を使って制御していました。しかし、こんなにたくさんの端子をドットマトリクスLED専用に使うと、他の用途に使う端子が限られてしまいます。

この問題を解消する方法のひとつが、IO(アイ・オー)エクスパンダを使うことです。IOエクスパンダとは、文字どおりマイコンの入出力端子(IO)を拡張(expand)するものです。

本コースでは、16ビットの拡張入出力端子を備えたMicrochip社のMCP23017-E/SPを用います。

図11-1 本コースのIOエクスパンダ

MCP23017によるIO拡張

以下に、MCP23017の主な端子の概略図を示します。

図11-2 MCP23017の主な端子

MCP23017は、図の左下にある「SDA」「SCK」の2つの端子でマイコンと通信を行い、図の右側にある「GPA0〜GPA7」、「GPB0〜GPB7」の2組の汎用IO端子群(合計16端子)を制御します。つまり、マイコンの2つの端子が16個の汎用IO端子に拡張されることになります。

図の右中ほどのA0〜A2はMCP23017の「アドレス」を決めるもので、メイン基板上でDIPスイッチSW9に接続されています。具体的な機能については後述します。

それでは、まずはIOエクスパンダ経由でドットマトリクスLEDを制御してみましょう。詳しい解説は後ほど行います。