EZ-USBロジックアナライザー
EZ-USB FX2LPはロジアナになる
ネットを検索してみると安価なロジックアナライザーにはEZ-USB FX2LPが使われているものがあることがわかりました。sigrokというオープンソースのロジアナソフトが対応しているようです。私が購入したEZ-USB FX2LPボードの同等品Lcsoft Mini Boardで試してみたので手順をメモしておきます。作業環境はWindows7 x64です。sigrokのサイトには各OSの詳しい手順が解説されています。
必要なもの
- EZ-USB FX2LP(CY7C68013A)を搭載しているマイコンボードなら何でもよいです。
- CypressのEZ-USB FX2LP用の開発環境をセットアップしてください→EZ-USB開発環境設定メモ
VID/PIDの設定
sigrokはPulseView(ロジアナGUI)起動時に接続されているデバイスのVID/PIDに対応したファームをEZ-USBのRAMに書き込むので、EEPROMにはsigrokから認識できるVID/PIDを返す設定を書き込むだけです。EZ-USB FX2LP用のファーム本体はfx2lafwというものでこのページに対応可能なVID/PIDの情報があります。入手したボードのIDはUSBViewやZadig(後述)等で確認できます。
VID | PID | Firmware | Hardware | Vendor |
---|---|---|---|---|
1D50 | 608C | fx2lafw-sigrok-fx2-8ch.fw | sigrok-fx2(8ch) | Openmoko Inc. |
1D50 | 608D | fx2lafw-sigrok-fx2-16ch.fw | sigrok-fx2(16ch) | Openmoko Inc. |
16D0 | 0498 | fx2lafw-braintechnology-usb-lps.fw | Braintechnology USB-LPS | MCS Electronics |
08A9 | 0009 | fx2lafw-cwav-usbeesx.fw | CWAV USBee SX | CWAV Inc. |
08A9 | 0014 | fx2lafw-cwav-usbeeax.fw | CWAV USBee AX-Pro | CWAV Inc. |
08A9 | 0015 | fx2lafw-cwav-usbeedx.fw | CWAV USBee DX | CWAV Inc. |
0925 | 3881 | fx2lafw-saleae-logic.fw | Saleae Logic | Lakeview Research |
04B4 | 8613 | fx2lafw-cypress-fx2.fw | EZ-USB FX2LP | Cypress |
EZ-USBは設定されていない場合'VID/PID=04B4/8613'を返します('04B4'がCypressのVIDです)。sigrokはその場合でも使用できますが、Cypressのツールを使い続ける場合は必ずこのVID以外の値を設定してください。そうしないとツールから認識できなくなってしまいます。
変更が必要な場合の手順を示します。いろいろな方法がありますがCypressのツールで設定してみます。'sigrok-fx2-8ch'というファームに設定する例です。(VID/PID=1D50/608C)
- USBの接続をします。
- 「CyControl」を開き「Cypress FX2LP NO EEPROM Device」と表示されているのを確認します。→表示されない場合はEZ-USB開発環境設定メモの「EEPROMの消去の仕方」を参照。
- 「CyControl」から、Vend_Ax.hexをRAMにロードします。メニューバーの Program->FX2->RAM。
C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Firmware\Vend_ax\Vend_Ax.hex
- ノードの Configuration1->Control endpoint(0x00)を選択して、Data Transfers タブを開き以下のように設定します。
項目 | 設定値 |
---|---|
Data to send(Hex) | C0 50 1D 8C 60 00 00 00 |
Direction | Out |
Req type | Vendor |
Target | Device |
Req code※ | 0xA9 |
wValue | 0x0000 |
wIndex | 0x0000 |
※搭載されているEEPROMが小容量(256バイト以下、1バイトアドレス)の場合は0xA2を設定してください。
- Transfer Data ボタンを押します。
- USBの接続をしなおしてデバイスが「不明なデバイス」になりドライバーがインストールされていない状態であることを確認します。
ロジアナソフトのインストール
sigrok(pulseview-NIGHTLY-installer.exe)をインストールします。PulseView(ロジアナGUI)とZadigというツールがセットアップされます。
ドライバーのインストール(慎重に行ってください)
ZadigでWinUSBドライバーを組み込みます。Zadigはデバイスに強制的にWinUSBドライバーを割り当てるツールです。何にでも割り当てられてしまうのでちょっと危険です(マウスやキーボードにやってしまったら?怖いですね!)
EZ-USBのデバイス(例えば'Cypress FX2LP NO EEPROM Device')に適用してしまうと、Cypressのツールから認識できなくなってしまうので注意してください。
- USBの接続をしてZadigを起動します。該当の'Unknown Device'を選択します。Driverが(NONE)になっていること、USB ID(PID/VID)が設定した値であることを確認してください。
- Editにチェックを入れ適当なデバイス名を入力し、Install Driverボタンを押します。
- インストールが完了すると下のような表示になりデバイスマネージャーのデバイス名も入力したものに変わります。
PulseViewを起動し「Demo device」となっているプルダウンリストをクリックして「sigrok FX2 LA(8ch)」に変更できれば準備完了です。
ファーム自体をEEPROMに書き込む
ここからは余談ですが、ココにLINUX環境でファームを直接EEPROMに書き込む方法が書かれています(起動が2秒早くなる)。HEXファイルがあればWindows環境でCypressのツールから書き込めるのですが、ソースをビルドするのも面倒なのでこんな方法でやってみました。ファームのバイナリ本体はPCの
C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware
にあるので、BIN→HEX変換ツールでHEXファイルを生成します。変換ツールは探せばいくらでもありそうですがイマイチ信用できないのでChaNさんの汎用HEXファイル変換ツールbin2hex.comを使用します。が、com形式はコマンドプロンプトからは実行できないのでMS-DOS Playerを使って、
msdos bin2hex fx2lafw-sigrok-fx2-8ch.fw
出来上がったHEXフィルは一度「CyControl」でRAMに書き込んでテストし、Hex2bix.exeでEEPROM用のバイナリファイルに変換します。
C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Bin\Hex2bix.exe -i -f 0xC2 -o fx2lafw-sigrok-fx2-8ch.iic fx2lafw-sigrok-fx2-8ch.HEX
生成した.iicファイルを「CyControl」でEEPROMに書き込みます。
関連リンク
USBデバイスのベンダIDとプロダクトIDを調べるにはどうすればよいですか?
http://www.linux-usb.org/usb.ids
http://wiki.openmoko.org/wiki/USB_Product_IDs
https://www.sigrok.org/blog/sigrok-firmware-fx2lafw-013-released
AN50963 - EZ-USBFX/FX2LP Boot Options
Lcsoft Mini Board(Amazon)
http://www.lctech-inc.com/Hardware/Detail.aspx?id=7cadef7b-359a-4e3d-b980-76ffa15171e0
http://tomosoft.jp/design/?p=6196
http://myfreescalewebpage.free.fr/toolbox/logic/logic.htm
FX2LP でsigrok のロジックアナライザー
http://yoshi-s.cocolog-nifty.com/cpu/2013/06/post-afb3.html
http://suz-avr.sblo.jp/article/146281779.html
http://blog.malcom.pl/2015/02/17/analizator-na-lcsoft-cy7c68013a-mini-board/
https://abzman2k.wordpress.com/tag/saleae/
http://hanixdiy.blogspot.jp/2011/03/cy7c68013a-usb-logic-analyzer.html
https://airwebreathe.org.uk/doku.php?id=introduction_to_sigrok
http://blog.goo.ne.jp/sabotenboy_london/e/e5e38b95643af2e22ddf8e561cca937d
http://xiexiebitte.blog.so-net.ne.jp/2015-09-13-1
トップ メニュー
This web page is described in Japanese, but you can read in English by translation site.