とりあえず、なんとか動かしたいのでソースをコードも見ましたが、特に問題となりそうな部分もなく、ちょっと場を離れてから、brew版のをサイド入れてみることに。とりあえず、動作させることができました。
なんとか、今年中に出来たのですっきり。
0.3.0-git-5d73886 では、以下のようにトリガーが設定できて楽になりました。Runを押せばトリガーがでるまで、stop して採取されます。サンプル数を設定しておけば、採取されて停止します。ロジックアナライザーとしては基本機能だと思いますが、手持ちのハードでなんとか動いてよかったです。
拡大すると、500ns とか取れています。1us 単位くらいまでは見れそうということがわかりました。
サンプルレートは、2MHz 以上あげるとどうしても採取後にクルクル回って、操作を受け付けないスタック状態のような感じになります。コマンドライン版でドライバを指定してみると、以下のようです。
$ sigrok-cli --show --driver fx2lafw Driver functions: Logic analyzer Scan options: conn sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER. fx2lafw:conn=28.2 - Saleae Logic with 8 channels: 0 1 2 3 4 5 6 7 Supported configuration options: continuous: limit_samples: 0 (current) conn: 28.2 (current) samplerate - supported samplerates: 20 kHz 25 kHz 50 kHz 100 kHz 200 kHz 250 kHz 500 kHz 1 MHz 2 MHz 3 MHz 4 MHz 6 MHz 8 MHz 12 MHz 16 MHz 24 MHz Supported triggers: 0 1 r f e captureratio: 0 (current)
ここに出ているサンプリング周波数は採取できるはずなんですが、なぜか2MHz までしかとれません。
まぁ、最初の一台ですし、これで勉強させてもらって、物足りなければまた考えることにします。
automator でシェルスクリプトを実行するものを作り、アイコンをつけて、app 化します。
python の環境変数を一度 unset して消去して、python3.4 とか3.x のをセットしてアプリをバックグランドで呼び出します。
unset PYTHONPATH export PYTHONPATH="/usr/local/lib/python3.4/site-packages/:$PYTHONPATH" /usr/local/Cellar/pulseview/HEAD/bin/pulseview >/dev/null 2>&1 &
配布用にするには、ライブラリのパスを全部書き換えないといけないので、やめました。このあたりのスキルは、もう少し勉強しないと嵌りそうです。
brew 版のインストールは、wiki に書いてあるとおりで以下のようです。
https://sigrok.org/wiki/Mac_OS_X
$ brew tap rene-dev/sigrok
$ brew install python3$ 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
ポイントとしては、マニュアルビルドしてソースから入れたものは一度、綺麗に消して、brew docter で問題をクリアにしてからやることと、以下の libsigrokdecode が2つ出てくるのでbrew のを無効にすることくらいです。
$ brew install –HEAD libsigrokdecode
Error: Formulae found in multiple taps:
* homebrew/science/libsigrokdecode
* rene-dev/sigrok/libsigrokdecode
$ brew untap homebrew/science
$ brew tap –repair
$ brew update
あと、ファームウェアの格納場所は、デフォルトで
/usr/local/share/sigrok-firmware
になるので、ここにディレクトリを作成し、最新のファームウェアを入れておきます。これで最初のデバイスを見つけてファームがなくエラーになるのを迂回できます。エラーでも、落ちはしませんが。前回落ちたのは別の原因で、QT 関連のライブラリのパスが書き換わっていないのが原因でした。ltool で見ると、/usr 配下となっていました。そのほかの原因もあったとは思いますが、ライブラリの依存関係でおそらくは、brew 版のを見に行っていたのかもしれません。まぁ、詳細は不明です。
ということで、とりあえずは動いてよかったです。トリガーもかけられるようになったし、インターフェイスは少しよくなった感じ。ボタンの配置とか。
▼まとめ
・EZ-USB FX2LP CY7C68013A で、sigrok の pulsview は動作
・このハードは実質6ドルくらいなので、ロジックアナライザーとして最初の一台で遊ぶには十分
・0.3.0-git-f3697d3 は動作した
・トリガーがかけられるようになった
・少しインターフェイスがよくなった
・2Mhz サンプリングまでは出来ることを確認
・1チャンネル採取で500ns は採取できた。1us くらいが精度か?
・8チャンネル同時採取はまだやっていない
・ファームウェア格納場所は、/usr/local/share/sigrok-firmware
・brew 版で HEAD で入れているので、時期によっては動作しない場合もあるかも
・配布用に、ライブラリを書き換えるのはどうすれば楽になるのか?要研究