ZeroPlus LAP-C 16064 をというロジックアナライザを買ってみた。Windows にしか対応してないけど、一応 Mac でも動かせそうな感じなのでやってみた。ただ、ロジックアナライザの値段はソフトウェアの値段感があって、できれば Windows で使いたくなる。

  • sigrok を使う
  • VM 上で Windows を起動する

という方法を試した。結論からすると sigrok を使うほうが楽だけど、機能的にはちゃんと Windows 使ったほうがよさそう。

sigrok を使う

OSS で対応しているソフトがあるので使ってみる

$ brew tap rene-dev/sigrok
$ brew install --HEAD libserialport
$ brew install --HEAD --with-libserialport libsigrok
$ brew install --HEAD libsigrokdecode
$ brew install --HEAD --with-libserialport sigrok-cli
$ brew install --HEAD pulseview

で頑張ると入る。libsigrokdecode がうまく入らなかったので いろいろ頑張った

pulseview

pulseview コマンドで Qt で作られた GUI が起動する。あんまり機能はないので難しくはない感じ…

  • [File] -> [Connect to Device...] で LAP-C を選択する。
  • ツールバーの設定アイコンで Volatage Threshold を適切に設定する
  • サンプリング数とサンプリングレートを設定する
  • Run を押すと出てくる

Decoder の追加はそのまんまなので難しくない Threshold 設定するのが忘れがちでハマりそう。

左のラベルをクリックするとトリガーの条件をかけられる。なぜか状態トリガーしかない。ハード的にはエッジトリガもあるはずなんだけどよくわからない。

captureratio ってのがなんなのかわかりにくいが、トリガーがかかるまでのサンプリングレートを決定する割合みたい。たぶん設定したサンプリングレートに captureratio をかけた値でトリガーがかかるまでサンプルされ、その後設定したサンプリングレートでサンプリングされる、のかな。

よくわからないけど、基本、トリガかけたい信号の周波数の2倍になるように captureratio を設定して、あとは細かいタイミングを見るために高速にサンプリングする、という使いかたなのかな。

sigrok-cli
sigrok-cli  --show --driver zeroplus-logic-cube
zeroplus-logic-cube - ZEROPLUS LAP-C(16064) with 16 probes: A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7
Supported configuration options:
    samplerate - supported samplerates:
      100 Hz
      500 Hz
      1 kHz
      5 kHz
      25 kHz
      50 kHz
      100 kHz
      200 kHz
      400 kHz
      800 kHz
      1 MHz
      10 MHz
      25 MHz
      50 MHz
      80 MHz
      100 MHz
    captureratio
    voltage_threshold
    Maximum number of samples: 65536

ここに出てくるサンプリングレート以外を設定するとセグフォして死ぬので注意

 sigrok-cli --driver zeroplus-logic-cube --probes A0=SCL,A1=SDA --output-format bits --samples 1k --config samplerate=25K 

で適当に表示されるはずなんだけど、なぜか手元のだと 4bit ごとにビットが立つみたいな挙動になってしまう…

あと sigrok-cli だとvoltage_threshold は設定できない (パースできない)。エラーもでないので罠。たぶん sigrok-cli あんまり使ってる人いない。

VirtualBox 上の Windows を使う

Mac、VirtualBox 上の Win XP で動かす

接続からドライバインストールまで

VirtualBox は USB extension を入れる必要がある。

ゲスト Windows が起動したら、VirtualBox のメニューの Devices -> USB Devices -> LAP-C〜 を選ぶ (つまり Windows 側へ接続する)

Windows 側では特に何も起きていないように見えるが、デバイスマネージャを見ると不明なデバイスが1つ見える。

そのデバイスのプロパティを開き、ドライバの再インストールボタンを押す。

  • (Windows Update に)「いいえ、今回は接続しません」を選択
  • 「一覧または特定の場所からインストールする」を選択
  • 「次の場所で最適のドライバを検索する」を選択
    • リムーバブルメディアは検索しない
    • 「 次の場所を含める」に C:\Program Files\PC-Based Instrument\ZEROPLUS\DRIVER を入れる
  • 次へをやると1段階進む
  • 今度は再び自動的にドライバのインストールウィザードが開くので、同じように進める
  • ドライバの選択では一番新しそうなのを選ぶ

これで起動はするようになる。

使いかた (I2C)

A0 を SCL, A1 を SDA にする場合 (当然これらと GND を結線しておく)

  • [Bus/Signal] → [Channels Setup]
  • [Delete All] して全部消す
  • [Add Bus/Signal] を SCL, SDA 及びバスのデータ表示用に3回押す
  • SCL 用には A0 を選択
  • SDA 用には A1 を選択
  • I2C 用には A0, A1 をどっちも選択
  • [OK] で閉じる

[Tool] -> [Bus Property...] をクリックするとアナイラザを選択できるはずだが、エラって死ぬ……… ので終了。うまくいく方法はわからず。

ZeroPlus に問いあわせてみたら、これは V3.12.02 のバグらしい。Channels Setup から BUS を作ってはダメみたい。

V3.12.02 でうまくいく方法は以下

  • [Bus/Signal] → [Channels Setup]
  • [Restore Default] して元に戻す
  • [OK] で閉じる
  • メイン画面の左側のプローブ一覧から A1, A0 を Shift か Ctrl を押しながら複数選択して、右クリックから [Group into Bus] をする。
  • [Tool] -> [Bus Property...] で開く (開ける)
  • 適当に設定する

あらかじめ対応する DLL を入れる必要がある。http://www.zeroplus.com.tw/logic-analyzer_en/products.php?pdn=10&pdnex=list で、とりあえず Generic Free Protocols を入れたらいい

  • シリアルが必要なアナライザの場合入れるコードは http://www.zeroplus.com.tw/ に登録して出てきたコード
  • 入れる場所は設定画面

で、適当にセットしたらいける。



  1. トップ
  2. tech
  3. Mac OS Xで ZeroPlus LAP-C