2011年5月1日日曜日

Saleae LLCのロジックアナライザを使ってみた

まずはhttp://www.saleae.com/downloads/からソフトウェアとドライバが一式になったパッケージをダウンロードします。

インストール後に本体を接続してソフトウェアを起動すると以下のような画面が表示されます。
[Connected]と状態が表示されていますね。


被測定対象にプローブを取り付けます。
今回はUART, I2C, SPIと三種類に対してプローブを付けてみました。


手始めにUARTでその機能を試してみましょう。

まず、測定ポイントに対する名前を付けます。


次にチャンネルに対するプロトコルを選択します。


プロトコルに対する設定が出てきます。


トリガをかけることもできます。
トリガをかけたいチャンネルのトリガ選択ボタンを押してからStartを押すとトリガ待ち状態になります。


この状態でUART TXからデータが出力されると・・・


上記のように確かに指定した条件でトリガがかかっているのがわかります。
取得したデータに対する値が表示されていませんが、御安心下さい。

ここで、マウスのホイールをクリクリ回転してズームアップしてみます。
(ついでにウインドウを少し横に伸ばしました。)


例えば、嬉しいのはデータビットに「●」が付いている事。
これでスタートビットやストップビットに惑わされる事もありません。


こんな感じでUARTの状態を簡単に見る事ができました。
うーん。便利。

また、解析結果をテキストファイルで出力することもできます。


txtとcsvを選べるようですが、どちらも出力内容は同じようです。

Time [s],Value
0,0x0D
0.000173,0x0A
0.000345,0x54
0.000518,0x4F
0.000691,0x50
0.000864,0x50

同じようにI2CやSPIなども簡単に確認することができます。
先ほどと同様、プロトコル解析の追加を行なうだけです。

I2Cの設定画面。


SPIの設定画面。


例えば、以下の画像はSDカードをSPIモードで読み出している場合の例です。
まぁ、何と言いますか「あれ?何でクロックがこんなにもたついてるんだ?」とか、そういうのも見れます・・・。



UARTやI2CやSPIなどプロトコル上のデバッグをする場合、「データの値が何であるのか?」を抽出するのに頭を使いたくありません。
むしろ、デバッグ時には「何が原因で問題を起こしているのか?」を突きとめる為に頭を使いたいところです。

データを可視化する部分はこういった便利な道具を使って効率よくデバッグしたいものです。

もう1つ面白いのはアナライザのソースコードをSDKと合わせて一緒にダウンロードできる点です。
これを起点にオリジナルプロトコルの解析を追加することもできるでしょう。

0 件のコメント:

コメントを投稿