EZ-USBロジックアナライザーの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!EZ-USB FX2LPはロジアナになる

http://star.gmobb.jp/koji/data/lcsoft_mbd.jpg

ネットを検索してみると安価なロジックアナライザーにはEZ-USB FX2LPが使われているものがあることがわかりました。[sigrok|http://sigrok.org/wiki/Main_Page]というオープンソースのロジアナソフトが対応しているようです。私が購入したEZ-USB FX2LPボードの同等品[Lcsoft Mini Board|http://sigrok.org/wiki/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|http://sigrok.org/wiki/Fx2lafw]というものでこのページに対応可能なVID/PIDの情報があります。入手したボードのIDは[USBView|http://digital.ni.com/public.nsf/allkb/1DEC366794E3584A862570980007A73A]や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 タブを開き以下のように設定します。

http://star.gmobb.jp/koji/data/sigrokROM.png

,項目,設定値
,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|http://sigrok.org/wiki/Windows](pulseview-NIGHTLY-installer.exe)をインストールします。PulseView(ロジアナGUI)とZadigというツールがセットアップされます。

!ドライバーのインストール(慎重に行ってください)
[Zadig|http://zadig.akeo.ie/]で[WinUSB|https://en.wikipedia.org/wiki/WinUSB]ドライバーを組み込みます。Zadigはデバイスに強制的にWinUSBドライバーを割り当てるツールです。何にでも割り当てられてしまうのでちょっと危険です(マウスやキーボードにやってしまったら?怖いですね!)
""EZ-USBのデバイス(例えば'Cypress FX2LP NO EEPROM Device')に適用してしまうと、Cypressのツールから認識できなくなってしまうので注意してください。
*USBの接続をしてZadigを起動します。該当の'Unknown Device'を選択します。'''Driverが(NONE)になっている'''こと、USB ID(PID/VID)が設定した値であることを確認してください。
http://star.gmobb.jp/koji/data/zadig1.png
*Editにチェックを入れ適当なデバイス名を入力し、Install Driverボタンを押します。
http://star.gmobb.jp/koji/data/zadig2.png
*インストールが完了すると下のような表示になりデバイスマネージャーのデバイス名も入力したものに変わります。
http://star.gmobb.jp/koji/data/zadig3.png

PulseViewを起動し「Demo device」となっているプルダウンリストをクリックして「sigrok FX2 LA(8ch)」に変更できれば準備完了です。

http://star.gmobb.jp/koji/data/PulseView.png
!ファーム自体をEEPROMに書き込む
ここからは余談ですが、[ココ|http://sigrok.org/wiki/Lcsoft_Mini_Board/Info]にLINUX環境でファームを直接EEPROMに書き込む方法が書かれています(起動が2秒早くなる)。HEXファイルがあればWindows環境でCypressのツールから書き込めるのですが、ソースをビルドするのも面倒なのでこんな方法でやってみました。ファームのバイナリ本体はPCの
 C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware
にあるので、BIN→HEX変換ツールでHEXファイルを生成します。変換ツールは探せばいくらでもありそうですがイマイチ信用できないので[ChaNさん|http://elm-chan.org/fsw.html]の汎用HEXファイル変換ツールbin2hex.comを使用します。が、com形式はコマンドプロンプトからは実行できないので[MS-DOS Player|http://homepage3.nifty.com/takeda-toshiya/msdos/]を使って、
 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://digital.ni.com/public.nsf/allkb/1DEC366794E3584A862570980007A73A]
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 |http://www.cypress.com/documentation/application-notes/an50963-ez-usb-fx1-fx2lp-boot-options?source=search&keywords=AN50963]
[Lcsoft Mini Board(Amazon)|http://www.amazon.co.jp/%E6%8B%A1%E5%BC%B5%E3%83%9C%E3%83%BC%E3%83%89%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-CY7C68013A-56-EZ-USB-FX2LP-USB2-0-%E7%99%BA%E5%B1%95%E3%83%9C%E3%83%BC%E3%83%89%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6%E3%83%BCEEPROM/dp/B00W8YUB6Y/ref=pd_cp_21_1?ie=UTF8&refRID=06E2WNHBWSM9FX31PS4A]
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 のロジックアナライザー|https://junkhack.wordpress.com/2015/12/27/fx2lp-%E3%81%A7sigrok-%E3%81%AE%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6%E3%83%BC/]
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
----
{{comment}}