もどる


sigrokという解析ソフトを見ていたら EZ-USB FX2 のボードをロジックアナライザとして動作させることが出来るらしい。
このチップを採用した幾つかは Saleae Logic というアナライザのクローンとして使われていた様だが、FWも用意されてクリーンに使えるようだ。
Amazonでfx2ボードが安く手に入るよね。という話からもあり作ってみることに
ちなみに一連のFWでDDS120もsigrokで使えるらしいがうちのはDDS140なので使用できない…(T_T)

大体ここからはじまる一連の作業を行いましたよ。と。
【EZ-USBロジアナ】700円〜のロジック・アナライザ(1) (2) (3) (4)

適当に部品を用意します。
Amazonから
・FX2ボード
・ジャンプワイヤー
秋月から
・74VHC541FT
・チップコンデンサ
・変換基板
後は適当に
・L型ピンヘッダ
・2x4、1x10のハウジング
等々

後で2×5Pメス/10Pメスも使いましたがその辺は臨機応変で。
74541はVCCが3.3Vの物と5Vの物が秋月にあります。3.3V対応の物を選んでください。
変換基板に半田をします。
SOP20と書いてある側で、12番ピンから10番ピンへジャンパーをします。
そのままその先を1番ピンへ繋ぎます。
つまりこういうルートを作ります。
基板をひっくり返し、SSOP側にします。
SSOP側で、1番ピンと20番ピンからジャンパーをはやします。
頭の空きパッドに予備半田をします。
0.1ufを半田付け
位置を決めたらもう一方も半田し、1ピン、20ピンからのジャンパーを繋ぎます。
つまりこういうこと。
ここまで来たら、74を載せる前に配線のチェック
赤い丸同士、グレーの四角同士が導通し、互いに触れていないことを確認します。
で、74を取り付け
裏面のジャンパーの下にはカプトンテープを敷いておいても良いかもしれない(今更)
ピンヘッダーを付け、ハーネスを準備します。
ピンヘッダーは両方全て付けると後で混乱しますので、プローブ側を9本にします。
74-FX2間は特に色で指定をせずフラットに10本。74541の11番ピンを茶(1)-20番ピンを黒(0)の向きとします。 プローブの方は2番ピンから9番ピンが入力で、1 or 10番ピンがGNDとなります。お好きな方で
まずは74とFX2を結ぶハーネス
40ピンのうち茶色から黒までの10本を取り
10Pのコネクタと、2x4Pのコネクタ(2ヶ)に取り付け直します。
(10Pのハウジングが無かったのでとりあえず8Pで代用)
10P側はストレート、2x4P側は 1,2,3,4,9,10 と 5,6,7,8 の2組に分けます。
茶色が1番ピンでPB0に、次いでPB1..緑で分かれてPB4とつなぎ黒、白がVCC/GNDです。
色は選ばず配線の順序にしていますので、黒がVCC / 白がGNDです。
繋ぐ場所と色の関係はこんなで。
プローブ側も作りますが、隣り合わせで繋がっているのが良ければ
この様に-1から8で取ってもよいかもしれません。(裂くので無駄でしょうが…)
接続は先にも書きましたが10番ピンがGNDなので黒、9番ピンがbit0なので茶、8番ピンが赤…と写真では配線しています。

この後の方で直していますが、電線の1(茶)番目とsigrokの黒(bit0)の始まりに混乱をし続けたので少し小細工をし 黒はGNDに使用、0は8番目から灰を移動し、灰茶赤橙黄緑青紫なケーブルとしました。

とかく、74541への入力は 2-bit7 / 3-bit6 / 4-bit5 / 5-bit4 / 6-bit3 / 7-bit2 / 8-bit1 / 9-bit0 / 1 or 10-GND となりますので適当に調整します。


ソフトウェアをインストール


CypressからSDKをダウンロードします。
http://www.cypress.com/file/135301
インストールすると8051用?のKeilなどいろいろと入りますが進めます。
ドライバは C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Drivers の下に入り
必要なツールは C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Windows Applications\Application Source files\c_sharp\controlcenter\bin\Release の下にある CyControl.exe です

つぎに、sigrokを入れます。
https://sigrok.org/wiki/Downloads
currentが見当たらないのでNightlyを入れます。
2つlinkが見えますが、pulseview-NIGHTLY-32bit-static-release-installer.exe の方をダウンロードし、入れます。
まずは VID PIDを書き換えます。
8chなので、VID = 1D50 / PID = 608C にします。
(16chの場合、PB0-7/PD0-7を使うようです:未確認)

こちらのサイトを参考にして書き換えを行いました。
EZ-USBロジックアナライザー

CyControl.exeを起動してVend_ax.hexをロードします。
Data to send に C0 50 1D 8C 60 00 00 00
Req code 0xA9 といれ、
Req Type を Vender にします。
(他は初期値でよい)

ボード上のジャンパ J2 を抜いてからTransfer Dataを押し VID 1D50、PID 608C をにします。

以降、J2はオープンのままで使います。
またCyControlで処理をするときは、J2を差してから接続しなおし、同じようにします。
書き換えが終わったら、sigrokに含まれるZadigを起動し、ドライバをインストールします。
Unknown Device #1 (など)で USB ID 1D50 608C になっていれば、 Install Driverをします。

なにも表示されない場合は、Options から List All Devices にチェックを入れるとUSB以下全てのデバイスが表示されます。
Zadigは強制的にドライバを書き換えます。
全く関係ないものに対して実行してしまうと使えなくなってしまいますので注意が必要です。
もし、04B4 8613 のままなら、素のFX2で書き換えられていませんのでCypressのツールで書き直しです。

書き換え後、再接続させました?
そして再接続後の書き換えにはCypressのドライバとファームの注入が必要です。お忘れ無く
Zadigでlibusbを入れ終わればsigrokを起動します。
起動後はdemoになっているので、demo deviceを押しdeviceの選択をします。
ちなみに、fx2のファームウェアは C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware 以下に格納されており
また最新版の確認はここから入手できます。 https://sigrok.org/wiki/Fx2lafw
ま、Nightly入れているのだから常に最新版のドライバが来ているはずですが。
Step1 を fx2lafw にし Step3の Scan for device をクリックします。
すると Step4 に sigrok FX2 LA(8ch) が表示されるのでOKします。
(USBのIDにきちんと連動しますよ。)
プローブの色が一つずれているのはデータバスのマークをクリックして色を変えてみてください。
(配線を変えてしまっても良いかもしれませんが、黒がGNDとD0で紛らわしいでしょうから…)


とりあえずこんな感じで割り当ててみます。(自分用メモ)
変更後適当に保存なりすれば記憶されると思います。(demoにすると戻ってしまうかも)
で、できあがっていればこんな感じでしょうか?
また作っておいてナンですが、割と目的は作るためですよね。
Amazonでも売っているし…
あけてみるとCypressから直結の奴だったのですがね。


以上ここまでが2017年1月頃に諸々作成し、かつHDDの中に寝ていたデータです。
1年以上熟成放置してた後、2018年夏頃における変更点や追加を以下に


ワイヤの取り回しの勝手が悪いのでサブボードを作ってみました。


複数面付けしたので使い切らない量が…
欲しい人居ればコミケ辺りにでも捨てに行きます。
先の方法ではハーネスの色指定をケーブル準拠としていましたが、起動のたびに入換えるのも面倒なのでケーブルの方を合わせることにしました。
カラーコード順のケーブルは 茶(1)赤(2)橙(3)黄(4)緑(5)青(6)紫(7)灰(8)白(9)黒(0)です。
Sigrokのカラー順は 黒(0)茶(1)赤(2)橙(3)黄(4)緑(5)青(6)紫(7) と0の黒が主張します。
が、このケーブルを作ってしまうとGNDに使う黒と混同してしまいますので灰(8)を黒(0)代わりに使用し
灰(0)茶(1)赤(2)橙(3)黄(4)緑(5)青(6)紫(7)とした8ピンコネクタを作り、黒(GND)を1ピンの独立したワイヤとしました。

またこのプローブも秋月にあった2×5Pメス/10Pメスを組み替えて使用。
先端のICクリップはとりあえずZeroplusに付いていた物を取り付け。
このCypressの開発ボードはSigrokのサイトによるとピン配置が2種ある様で、geeetech準拠のものでした。
Lcsoft準拠であれば、J2側左下の端子がGND->VCCに、反対にJ2側中央右のVCCがGNDと成っているようです。

J1はLED(D1,D2)のの有効無効。
J2は外付けI2Cの認識用で、短絡で無効、オープンで有効。
ちょっと「?」と思うかもしれませんが、このCY768013は起動時に外付けのEEPROMを読み込んで起動します。
このときに参照するI2Cアドレスが24LC128の場合 A2=0, A1=0, A0=1 と設定されている必要があり、J2をショートするとA0が0のため参照先のROMが居無くなりCypressのIDとなります。
Cypressのデータシート(文書番号001-63322 Rev.D 15ページ I2Cコントローラの項)

ま、つまりジャンパをを刺しておくとアドレスがずれる為、外付けROM無効
ジャンパを外すとPull Up有効でアドレスが決定となり外付けROMが有効
となります。
実際に信号解析をかけるとこの様な感じになります。

信号の解析は Protocol decoder を使って解析をします。

信号の波形時間を見たいときは show cursors を使えば良い様に見えますが、 これは波形にフィットしませんのでこれも Protocol decoder から Timing を選択します。

Timing decoderが設定項目は図の通りで
  • Averaging period は指定された期間の平均値。100 ならそこに到達するまでの100サンプリング(直近99+自分)を平均した値。0にすると表示は消える。
  • Edge to check を rising にすれば立ち上がり、falling にすれば立ち下がり、any にすれば信号のHi-Lo間それぞれの時間が表示される。
  • Show delta from last は yes にすると直前のサンプルとの時間差分が表示される。100ms 50ms 120ms となる場合、(先頭なので非表示) -50ms +70msとなる。+-0ms で続けば duty 50%

    また信号の順序を並び替えるには、起動時にGroupで固定されているので信号名の左にある括弧を右クリックで削除し、並び替えてからまたGroup化できる。
    Groupを作成するには紐付けたい信号名をCTRLキーを押しながらで複数選択し、右クリック、ポップアップメニューからGroupを選択すれば良い。
    この時、手を抜いて信号の最初と最後だけを選択すると、その2つだけでグループ化されてしまうので、全ての信号を選択する必要があります。




  • すっかり更新するのを忘れていました。(この文章も書いてから1年寝ていました…)



    いっくらまとまったとは言え、基板むき身は気持ち悪かったりしたわけで
    アクリル加工が出来るという話からケースに突っ込んで使っています。
    件の知人は3Dプリンタを購入したので印刷!印刷!としていますが、私はアクリルを切ってもらう派です。


    ケースにとして6面の板を用意します。


    ねじ類も各種用意。
    妻面をおさえるのに樹脂で8本、ナットも8個。
    基板押さえにスペーサ(10mm)が4個にねじが4個、ケース内は樹脂にして、外はナベと…全てM3で


    最終的にには、こんな感じにして使っています。
    ま、自分の作業的に頻度は低いかも知らんですが便利に使っています。
    どの程度便利かというとZeroPlus持ってたよな〜ってたまに思い出すくらい?
    正直、壊しても(また作ればと思えば)痛くもないので、すごく気楽に使えるのでお勧めです。
    あとSigrokも解りやすいので良いです。



    やっとこ、この辺の文章を書いていたのが2024/05頃でした。
    いまそれを編集してこの形にしているのが2025/06です……写真のタイムスタンプは2021だったよ…
    えー、そうこうしているうちに、どうもRaspberry pi picoを使ってロジアナにする手法が流行のようです。

    sigrok-pico buildの下にある pico_sdk_sigrok.uf2 を書き込んでsigrokを使う様です。
    Micro Logic Analyzer こちらはReleaseがあるので、それを書き込めば良さそうです。

    LogicAnalyzer 専用ソフトがあり、sigrokのプロトコルデコーダが使えるようです。
    aliexpressで基板を見かけ、雰囲気から検索したらたどり着きました。
    ガーバデータもあったので基板を注文してみました…現在製造中



    注文時では6.0.0.1までが公開されているので、Releaseからつぎの3つをダウンロードします。
  • Gerber_Files.zip
  • CPL.zip
  • BOM_JLCPCB.zip
    JLCPCBのBOMがあったのでそのまま製造まで進めてみました。
    注文から2日程度で基板の製造が完了、そこから4日程度で実装完了。
    発送はOCSで4日程度だった様に思います。
    記録から抜粋すると
    ・6/10 20時頃に注文
    基板製造
    ・6/11 23時頃 Drilling
    ・6/12 15時頃 Vcut
    部品実装
    ・6/11 21時頃 Solder Paste Printing
    ・6/14 09時頃 Assembly Setup
    ・6/14 14時頃 Wave Soldering/QC
    ・6/15 13時頃 From workshop to warehouse
    配送
    ・6/16 13時頃 Arrived at Facility,Arrived at Service Center
    ・6/16 13時頃 Shipment Data Entry,
    ・6/18 00時頃 Delivery Route Fix,
    ・6/19 09時頃 Delivered,Delivery CompletedDelivered
    と、およそ10日ほどで届きました。


    実装部品に関しては、RaspberryPI PICOとピンヘッダは 自分で手半田する事にして非実装、
    スライドスイッチは似た素性の ものが入手できるか不明だったので実装としました。

    基板製造$2.00
    部品実装  $61.90
    送料$10.34
    初回割引-$10
    Total$61.90
    でした。(5枚分)


    この様な基板が届きますので、不要な部分を折り取ってピンヘッダとPICO2を半田します。
    FWは6.0.0.0の方に ある、logic-analyzer-firmware_v6.0.0_BOARD_PICO_2.zip か
    logic-analyzer-firmware_v6.0.0_BOARD_PICO_2_Turbo.zip を 書き込みます。
    PC用のソフトは
    6.0.0.1の方にある logicanalyzer_6.0.0.1-win-x64.zip を使います。


    その後、アクリルケースを設計してみました。
    基板の固定穴は2.6なのにM3で考えてしまったので2.6のメネジを買い直さず
    穴広げてしまったり色々ありましたが、大体なんとかなった感じです。


    最終的にこんな感じでしょうか。
    Aliで探すと基板が売られている様ですが、ちょっと待つか作った方がよさそうで、現在
    BETA 6.5が進んでいます。
    PICO 2Wに対応するようですので、基板で作っておけばPICO 2にするかPICO 2Wにするか選べるかと思います。

    (私は逆にAliで基板見かけてなんぞや?と検索して行き着いたのですがね…)


    もどる