I2Cをロジックアナライザで確認
こちらの続き。ただし、今回はMacでトライ。用いたロジックアナライザも同じ。
PulseViewをMacにインストール
ここにある「Stable release builds」をインストールする。こちらの「Downloads」にあるものは私のMacでは動作せず。
PulseViewでの設定
はじめに
「fx2lafw」->「USB」->「Scan」->「Saleae」を選択。すると、次のようになるが、ここでは、D0(SDAを接続)とD2(SCLを接続)のみ使用するので、それ以外は右クリックして「Disable」する。
I2C設定
下記赤枠のマークをクリックすると、プロトコル選択画面が表示されるので、I2Cを選択する。
選択後、次のように表示される。
ここで、次のようにSDAをD0に、SCLをD2に割り当てる。
I2C通信の構成
I2Cコマンドレスポンスが明示的に見えるよう、MacからI2C制御で用いた構成である、USB-to-I2Cボード、I2Cデバイス(光センサー)、ソフトウェア(Coolterm)を用いる。配線は次の写真。
ここでは、ロジックアナライザに接続するためにI2Cハブ(右の方に見えるもの)を用いている。
実験
I2Cアドレス確認
光センサーのI2Cアドレスは「0x29」(7bit表記)。1バイトのデータ「0x00」を書き、1バイトのデータを読み込んでみる。詳細は、MacからI2C制御。以下、同様。
I2Cアドレスおよびデータ「0x00」の「AW:29」(Address Write:0x29)および「AR:29」(Address Read:0x29)がデコードされているのがわかる。
センサーON
光センサーをONするには、Controlレジスタ「0x80」にデータ「0x03」を書き込む。
同じくデコードされているのがわかる。
データ取得
光センサーデータData0LOWを取得する。レジスタは「0x8C」。
データ「0x9E」がCoolterm上で取得できていると同時に、ロジアナ上でもそのデータを見ることができる。
接続されていないI2Cアドレスにコマンドを送ってみる
例えば7bit表記で0x03に、1バイトのデータ「0x00」を書き、1バイトのデータを読み込んでみるが、、
レスポンスなし。
終わりに
実験成功。その次はSPIにトライしてみる。