本機にI2C通信機器を接続してデータ通信をする使用例をご紹介します。
本機のI2C通信のSCL線とSDA線はそれぞれ2.2kΩの抵抗器でプルアップされています。外部にプルアップ抵抗を接続する必要はありません。
通信環境の準備
本機をパソコンに接続すると自動的にデバイスドライバーがインストールされます。
MCP2221Aか認識されると2つのインターフェイスとして認識されます。1つはI2C通信用のHIDデバイスとして、もう1つはUSB-UART変換機能として仮想COMポートとして認識されます。
基本的にデバイスドライバーは自動的にインストールされますが、もし自動でインストールされない場合にはこちらからデバイスドライバーをダウンロードしてインストールしてください。
仮想COMポートのポート番号はWindowsのデバイスマネージャで確認できます。
I2C通信を行う場合にはも専用のターミナルソフトから行います。インストールした”MCP2221 I2C SMBus Terminal”を起動してください。インストールできていない場合にはこちらからダウンロードしてインストールしてください。
本機は常にI2Cマスターとして動作します。I2Cスレーブデバイスに対してデータをWriteしたりReadしたりします。
I2Cデバイスの検索
本機をパソコンと接続し正しく認識されていると、MCP2221 I2C SMBus TerminalのSettings部の”Select Device”に数値が表示されます。ここに数値が表示されていない場合には本機が正しく認識されていないので、デバイスマネージャー等で認識状態等を確認してください。
“Speed”は通信クロックの早さです。100kHzか400kHzを選択します。接続するI2C機器の仕様に合わせてください。
接続されたスレーブデバイスのアドレスが分からない場合、検索することができます。”Advanced Settings”ボタンを押します。
スキャンするアドレスの範囲を指定します。ここでは0x00~0xFFまでを検索します。数値は16進数です。”Start Scan”をクリックすると検索が開始されます。
検索結果は”Received/Sent Data”のウインドウに表示されます。検出されたデバイスのアドレス(8ビットアドレスと7ビットアドレス)が表示されます。何も検出されない場合には正しくI2Cデバイスと接続できていないか、I2Cデバイスが動作していません。
I2Cデータの送受信
- “Commands”の項にある“Protocol”のプルダウンから”I2C”を選択します。
- “Address Length”はアドレス長です。8ビットアドレスか7ビットアドレスを選択します。
- “Address”にはスレーブアドレスを16進数で入力します。Read(マスターが受信)の場合にはアドレスに1を加算します。Write(マスターから送信)は0を加算します。
- “Operation”はWrite/Readの方向です。書き込みならばWrite”、読み込みならば”Read”を選択します。
- “Data”はWriteの時は送信するデータ、Readの時は読み取るデータのバイト数の指定になります。いずれも値は16進数で入力します。複数バイト入力する場合にはカンマ( , )で区切ります。
上図は8ビットアドレスA4のデバイスから1バイト(8ビット)のデータを読み取る場合の例です。 - 設定ができたら”Send”ボタンを押します。
- すぐにデータが読み取られ、”Received/Sent Data”のウインドウに結果が表示されます。
データをWriteした場合には、”OK”のみが表示されます。