EZ-USB FX2LPをLinuxで動かしてみる

またまた突然ですが、仕事絡みで高速に大量のデータをお手軽にPCに引き取る必要が出てきました。

この手の話は

  • ロジックアナライザでステートモードでキャプチャして、テキストでPCに取り込んで、テキスト処理でデータを抽出する
  • 適当な高速パラレルI/Oボードで受ける

というあたりが手軽な定番だったりするわけですが、今回はその後素人さんにも使わせないといけなくなるようです。しかも金もないときたもんです。

そこで適当な方法ででっち上げようと思うと、手軽そうなのは、

  • FT245R(これはFSですが・・・)やFT2232H、FT232HのHiSpeedのUSBデバイスで受ける
  • EZ-USB FX2LP などのHiSpeedのUSBデバイスで受ける

ということになります。
本当は手軽さから前者にしたかったのですが、FT2232HやFT232HがつながるCPLDボードがあいにく手元にありませんので、今回はカメレオンUSB FX2をターゲットにすることにしました。

・・・・っと、その前に、EZ-USB FX2LPを動かしてみよう、というわけです。

で、CycFX2Progを参考にEZ-USB FX2LPを動かしてみます。(基本的に書いてあることを踏襲しているだけです)

1.必要なもの

  • CycFX2Progのソース
    作者さんのサイトからダウンロードできるようです。 ちなみにライセンスはGPLとのことなので、これをベースにしたらソース提供してやらにゃいけませんが、きっとそんなことは気にしない人たちでしょう。(提供しない、といってるんではなくて、GPLってなんぞや、って人たちだろうな・・・と)
  • libusb
    すでにインストール済みのようでした
  • SDCC
    インストールされていなかったようなので、パッケージマネージャからインストールします。
    ・・・と思ったら、CycFX2Progとは直接関係ないようです。・・・が、サンプルをコンパイルするのには必要です。

 2.コンパイル

CycFX2Progは適当なフォルダに展開してMake一発みたいです。
後のことを考えると、cycfx2progはパスが通っているところに置くのが良さそうです。そうすると、EZ-USB FX2LP側のアプリケーションのMakefileが「make run」で実行(テスト)までもっていけるようです。 自分はホームディレクトリに bin フォルダを掘って、そこに .bashrc でPATHを通しました。

3.ホストシステムの準備

/etc/udev/rules.d/z70_usbfx2.rules というファイル名で以下の内容のファイルを作ります。

# USBFX2 development board udev rules which do the following:
# * allow access for users in group "plugdev"
# * unbind the FX2 peripheral from usbtest driver
# 10-2010 by Vesa Solonen. Tested on plain CY7C68013A on Ubuntu 10.04.
# Device properties can be found via dmesg (driver and device number) and udevadm info:
# udevadm info -a -p /sys/bus/usb/drivers/usbtest/1-3\:1.0
# Reference: http://www.reactivated.net/writing_udev_rules.html
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="04b4", ATTR{idProduct}=="8613", GROUP="plugdev", MODE="0660"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="8613", DRIVER=="usbtest", RUN+="/bin/sh -c 'echo -n %k> %S%p/driver/unbind'"

次に、ユーザの設定で、自分のアカウントが「plugdev」というグループに属しているかを確認します。

その後、udevを再起動します。

$ sudo restart udev

さらに、EZ-USB FX2LPを取り付け直して、認識させ直します。

4.USBの折り返しテスト

こちらに記載の折り返しテストを実施してみます。

単純にソースファイル(usb-fx2-local-examples-0.5.tar.gz)をダウンロードして展開すると、

  • hello_world_ram
  • hello_world_usb
  • convert_string

という3つのテストプログラムのフォルダができます。各フォルダの中で、「make run」するとテストが完了します。

5.その他メモ

ただひたすらデータ転送するのであれば、CY7C68013A(すなわちFX2LPが必要ですが、FX2Pipeというプログラムも公開されています。ひょっとしたら、これを使うとFX2LP側のプログラムは不要になるような気がします。とりあえずインストールは、

$ ./configure
$ make
$ sudo make install

でできました。

#こんな簡単にLinuxでEZ-USB FX2LPを動かすノウハウを公開している作者さんに感謝です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)