Pylone Blog

ロジック・アナライザ Logic Cube

photo1

Logic Cube LAP-C(16032)

ZEROPLUS 社製 ロジックアナライザ Logic Cube を紹介します。 Logic Cube にはいくつかのラインナップがありますが、本記事で紹介するのはローエンドモデルの LAP-C(16032) です。

パイロンでは、カスタムボードにブートローダや OS を移植する際やデバイスドライバ開発のデバッグに大変重宝しています。また、コンパクトでUSBバスパワーで動作するので客先出張デバッグでも役立っています。

リンク先のサイトを見て頂ければわかる通り、実に様々なプロトコルに対応しています。 標準で添付される、7-SEGMENT LED, I2C, SPI, UART(RS-232C/422/485) に加えて、オプションとしてライセンス購入によりプロトコルが追加できます。

パイロンでは ストロベリー・リナックス さんから購入しました。

本記事執筆時点ではプロトコル解析が30本無料となっているようです。

ロジック・アナライザ

バスタイミングの設定やドライバ開発のデバッグにおいて

  • バスタイミングに従った波形が出ているか
  • (その波形から)プロトコルが成立しているか

この2点が確認できればざっくりとした問題の切り分けが可能になります。

ロジアナでは波形の確認もさることながら、その波形からプロトコルを解析しグラフィカルに表示してくれるので容易にプロトコルの確認が行えます。

RTC(via I2C)のデバッグを例にとると、RTCが動作しない場合はI2CドライバとRTCドライバの両方を疑う必要があります。

  1. そこでまず、I2Cコントローラを制御しきちんとした波形が出ていることが確認できればI2Cドライバは問題なさそうと判断できます。
  2. 次に、その波形からプロトコルを読み取ることができれば、RTCドライバのどの箇所が問題なのかが判明します。

といった具合にロジアナがあるとデバッグがグッと楽になります。

SBC6000X上での使用

では実際に SBC6000X で使用してみます。

RTCをプローブしI2Cバス上の通信を見てみます。I2CではSDAとSDLとGNDの3本をプローブします。 RTCチップは基板上のU32のRX8025SAです。

各ピン配置は以下のようになっています。

Pin FunctionPin No.アプリの識別子
SDAPin 13A0(茶色線)
SDLPin 4A1(赤色線)
GNDPin 11GND(黒色線)

よって、写真のように付属のクリップ(白と黒)を使って茶色線(A0)をPin13に、赤色線(A0)をPin4に、黒色線(GND)をPin11に接続します。

photo2

アプリの設定方法は省略しますがアプリ設定後、本体のボタンを押すかアプリのRun[F5]を押したらhwclockコマンドを実行しRTCとの通信を発生させます。

すると以下のようなスクリーンショットの結果が得られます。

screenshot

RTCのI2Cアドレスである0x32に対して

  1. (時刻)データを要求(write)し
  2. (時刻)データの応答(read)

があるのが見て取れると思います。

最後に

組込み系のデバッグではロジアナによる可視化が問題の切り分けの手助けになることがあります。

通常のロジアナはオシロのようにモニタを有し単体で動作するものが一般的ですが、その中で Logic Cube は画面出力をPCのモニタに任せることによりコンパクトでかつ低価格な製品になっています。

昨今のAndroidブームで評価ボードを個人で所有されている方もいるかと思います。デバッグのお供にこの Logic Cube も所有してみても面白いのではないでしょうか。 個人的にはLinuxから使えれば満点をあげたい製品です。