digirakuda ようこそ!  コンピュータの世界へ!

myRIOによるMCP23017の制御

1.目的

National Instrumentsの教育・組込み制御用デバイス“myRIO”とMicrochip社のI2Cエクスパンダ“MCP23017”をI2C通信し、デジスイッチ4桁の値をLabVIEWで作成したフロントパネル上に表示します。

001.png
図1 myRIOによるMCP23017制御

2.HARD WARE

myRIOとデジスイッチのインターフェースとなるMCP23017実装回路を製作します。回路図を図2に示します。MCP23017のI2CアドレスはR7,R8,R9を使用して設定します。MCP23017のI2C端子はプルアップ不要です。I2C信号線であるSDAとSCLはmyRIO内部回路で電圧3.3Vと2.2kΩでプルアップされています。図3は製作した基板とmyRIOを接続した写真です。

002.png
図2 MCP23017実装回路

003.jpg
図3 myRIOとMCP23017実装回路

3.SOFT WARE

全体フローチャートを図4に示します。最初にMCP23017のGPIO端子を入力ポートとして使用するための初期設定を行います。MCP23017は複数のレジスタがあります。各レジスタに初期設定する内容を表1に示します。詳細はMCP23017データシートを参照下さい。初期設定後にデジスイッチのポーリングを行います。I2C通信エラーがない限りポーリングし続けるプログラムを作成します。
表1. MCP23017初期設定内容

No.レジスタ名アドレス設定値説明
1IODIRA0x000xFFGPAポートを全ポート入力に設定する
2IODIRB0x010xFFGPBポートを全ポート入力に設定する
3IPOLA0x020xFFGPAポートの極性を全ポート負論理に設定する
4IPOLB0x030xFFGPBポートの極性を全ポート負論理に設定する
5GPPUA0x0C0xFFGPAポートのPullUp機能を全ポートONに設定する
6GPPUB0x0D0xFFGPBポートのPullUp機能を全ポートONに設定する

004.png
図4. デジスイッチポーリングフローチャート

4.LabVIEW

作成したviのブロックダイヤグラムを図5に、フロントパネルを図6に示します。
ブロックダイヤグラムはVIスニペットになっているので、画像をコピーしてLabVIEW上でそのまま使えます。

005.png
図5 デジスイッチポーリングブロックダイヤグラム(VIスニペット)

006.png
図6 デジスイッチポーリングフロントパネル