AN75705 Getting Started with EZ-USB FX3 (Japanese).pdf

AN75705
EZ-USB® FX3™入門
関連プロジェクト: なし
®
関連製品ファミリ: EZ-USB FX3™
ソフトウェア バージョン:SDK 1.3.3
関連アプリケーション ノート: AN70707
完全な一覧については、こちらをクリック
本アプリケーション ノートの最新版または関連プロジェクト ファイルについては、http://www.cypress.com/go/AN75705
をご覧ください。
本資料 (AN75705) は、開発を行うお客様にサイプレス EZ-USB FX3 USB 3.0 デバイス コントローラーを紹介します。本アプリケ
ーション ノートは、FX3 の主な機能と応用を強調しながら、FX3 の開発の手助けになる様々な設計リソースへのアクセスを提供
しています。また、Eclipse 統合開発環境 (IDE) を備えたサイプレスの無料ツールを使って FX3 ファームウェアを開発できるよう
に、各開発ステップも説明します。最後に、FX3 ソフトウェアとハードウェア開発キットの概要も記載します。
目次
はじめに .............................................................................2
FX3 とは? .........................................................................2
FX3 の特長 ........................................................................3
USB インターフェース .....................................................3
GPIF II ..........................................................................3
CPU ..............................................................................3
JTAG インターフェース ...................................................3
UART インターフェース ..................................................3
2
I C インターフェース .......................................................3
2
I S インターフェース .......................................................3
SPI インターフェース ......................................................4
ブート オプション ............................................................4
クロッキング ...................................................................4
電圧ドメイン ...................................................................4
FX3 を使用したアプリケーション開発 ...................................4
FX3 に接続した FPGA/ASIC .........................................4
FX3 を介して FPGA を構成 ............................................5
FX3 に接続したイメージ センサー ...................................5
FX3 ハードウェアの設計 ................................................5
デザインを FX2LP から FX3 にアップグレード .................5
設計リソース .......................................................................6
FX3 の用語 ........................................................................7
FX3 による USB 3.0 転送: 初回転送前の準備................... 11
開発ツール ....................................................................... 21
SuperSpeed Explorer Kit の紹介 ................................ 21
www.cypress.com
FX3 SDK 入門 ............................................................ 22
FX3 サンプル ファームウェア ........................................ 23
FX3 ファームウェア開発ツール ..................................... 24
Windows ソフトウェア概要 ........................................... 24
アプリケーション インターフェース ................................. 25
サンプル Window ソフトウェア ...................................... 25
サンプル ストリーマ ...................................................... 25
Linux 用 FX3 SDK およびソフトウェア .......................... 26
有用なデバッグ ツール................................................. 27
付録 A.............................................................................. 28
A.1. USB 3.0 の概要 ................................................... 28
A.2. 電気的インターフェース ......................................... 28
A.3. ケーブルおよびコネクタ......................................... 28
A.4. USB 3.0 と 2.0 の比較.......................................... 30
付録 B.............................................................................. 31
B.1. Windows における FX3 DVK ドライバーインストール
................................................................................... 31
付録 C ............................................................................. 33
C.1. EZ-USB FX3 DVK の入手 ................................... 33
C.2. FX3 DVK 入門 ..................................................... 34
C.3. FX3 DVK 向けの JTAG デバッガー ...................... 35
改訂履歴 .......................................................................... 36
ワールドワイドな販売と設計サポート ................................. 37
文書番号: 001-85370 Rev. *B
1
EZ-USB® FX3™入門
はじめに
FX3 とは?
サイプレスの EZ-USB FX3 (以下、FX3 と呼ぶ) は、統合され
た柔軟な機能を提供する高性能の USB 3.0 ペリフェラル コン
トローラーです。FX3 により、開発者は USB 3.0 の機能をシス
テムに追加することができます。
FX3 とは、ARM9 プロセッサを統合した USB 3.0 周辺コント
ローラーです。パラレルとシリアル インターフェースにより、
ユーザー システム内の他のデバイスとの高速接続を実現し
ます。
AN75705 は FX3 入門について説明します。FX3 の主な用
途、応用、および特長を強調します。また、サイプレスの設計
リソースの包括的な一覧も提供します。SuperSpeed Explorer
Kit (CYUSB3KIT-003) ま た は FX3 Development Kit
(CYUSB3KIT-001) を用いた USB 転送を身に付けられるよう
に各ステップも説明しています。
FX3 デバイスは、システム内で主に USB ホストと周辺機器
(カメラやスキャナー等) の間で高帯域幅データを転送する
ために使用されます。高性能のオンチップ ARM9 プロセッサ
により、FX3 はデータ ストリームにアクセスしてデータを効果
的に処理することができます。データ処理に FX3 が不要な
システムでは、ARM9 ファームウェアは、USB とデータ送受信
デバイスという 2 つのインターフェース間でデータ転送を初期
化および管理するだけです。
付録 A では、USB 3.0 の概要を説明します。付録 B では、
FX3 Windows ドライバーがインストールされていない場合、
それをインストールする方法について説明します。
FX3 は、I2C、SPI、UART、I2S シリアル インターフェースに
加えて、第 2 世代の汎用プログラマブル インターフェース
(GPIF II) と知られている高度に柔軟かつプログラマ可能な
インターフェースを持っています。GPIF II はプログラム可能な
ので、FX3 は、FPGA、イメージ センサー、ADC、アプリケー
ション プロセッサなど各種のデバイスに接続することができ
ます。このため、FX3 は、数多くの高性能 USB 3.0 アプリケー
ションの内優れたオプションになります。
TDO
TCK
TRST#
TMS
TDI
図 1. FX3 ブロック図
FSLC[0]
FSLC[1]
FSLC[2]
JTAG
CLKIN
CLKIN_32
XTALIN
XTALOUT
SRAM
(512kB/256kB)
ARM9
HS/FS/LS
OTGHost
DQ[31:0]/[15:0]
DMA
Interconnect
CTL[15:0]
PMODE[2:0]
SS
Peripheral
32
EPs
GPIF™ II
HS/FS
Peripheral
INT#
RESET#
D+
D-
Charger
Detect
I2S
I2S_WS
I2S_MCLK
SPI
SSN
SCLK
MISO
MOSI
I2S_CLK
I2S_SD
UART
TX
RX
CTS
RTS
I2C_SCL
I2C_SDA
I2C
www.cypress.com
USB
OTG_ID
SSRX +
SSRX SSTX +
SSTX -
文書番号: 001-85370 Rev. *B
2
EZ-USB® FX3™入門
GPIF II がよく実装しているのは、多くの FPGA インターフェー
スで使用される同期スレーブ FIFO インターフェースです。
同期スレーブ FIFO インターフェースの詳細については、
「AN65974 - Designing with the EZ-USB FX3 Slave FIFO
Interface」を参照してください。
FX3 の特長
本節では、FX3 の主な特長を簡単に説明します。
USB インターフェース
FX3 USB インターフェースの特長は以下の通りです。

USB 3.0 仕様、Rev 1.0 に準拠した USB スーパースピー
ドとハイスピード ペリフェラル機能をサポートします。この
仕様に基づいて設計されたデバイス (FX3 など) は、USB
2.0 との後方互換性があります。

OTG 補足、Rev 2.0 に準拠しています。FX3 は、ハイス
ピード、フルスピード、ロースピードの OTG デュアル
ロール デバイスの機能をサポートします。ペリフェラルとし
ては、FX3 はスーパースピード、ハイスピード、フルスピー
ドの機能を持っています。ホストとしては、ハイスピード、
フルスピード、ロースピードの機能を持っています。

CEA-936A 仕 様 に 基 づ い て 、 USB D+/D– ラ イ ン で の
Carkit パススルーUART 機能にサポートしています。

最大 16 入力エンドポイントと 16 出力エンドポイントを
サポートします。
GPIF II
高性能の GPIF II (プロセッサ インターフェース ブロック (PIB)
の一部) は、FX2LP の GPIF とスレーブ FIFO インターフェー
スに似たがより高度な機能を実現します。GPIF II は、自給
の 高速 クロ ッ クを 使用 して 動作 するこ と か ら、 ARM9 か ら
独立した柔軟なインターフェースを実現するプログラム可能
なステート マシンです。GPIF II は、業界標準または独自の
インターフェースでマスターかスレーブのいずれとしても機能
できます。パラレル インターフェースとシリアル インターフェー
スの両方は GPIF II で実装することができます。
GPIF II の主な特長は以下の通りです。



マスターまたはスレーブとして動作します。


最大 100MHz のインターフェース周波数をサポートします。

FX3 は、32 ビット 200MHz ARM926EJ-S コア CPU を内蔵し
ています。コアは、16KB の命令密接合メモリ (TCM) および
8KB の デ ー タ TCM へ の 直 接 ア ク セ ス を 持 っ て い ま す 。
ARM926EJ-S コアはファームウェア デバッグ用の JTAG
インターフェースを提供します。
FX3 は、(選択した製品番号に応じて) 512KB または 256KB
の SRAM を組み込み、USB、GPIF II、I2C、SPI というコード
を起動する 4 つの方式を 4 つサポートします。
FX3 は、その異なるペリフェラル (USB、GPIF II、I2S、SPI、
UART など) 間で効果的かつ柔軟な DMA 接続を可能にしま
す。FX3 ファームウェアがペリフェラル間のデータ アクセスを
コンフィギュレーションした後、DMA ファブリックは ARM9 コア
から独立して転送を管理します。EZ-USB FX3 SDK をインス
トールすると、FX3 のサンプル ファームウェアを使用できます。
JTAG インターフェース
FX3 の JTAG インターフェースは、JTAG デバッガーへ接続す
るために標準の 5 ピン インターフェースを備えており、CPU
コアのオンチップ デバッグ回 路を介してファームウェアを
デバッグすることができます。ARM926EJ-S コア用の業界
標準デバッグ ツールは、FX3 アプリケーション開発に使用
することができます。
UART インターフェース
FX3 の UART インターフェースは、全二重通信に対応してお
り、TX、RX、CTS、および RTS 信号があります。UART は、
FX3 ファームウェアで選択可能な 300bps~4608Kbps の
ボーレートを発生させることができます。
I2C インターフェース
256 のプログラム可能なステートを提供します。
8 ビット、16 ビット、24 ビット、32 ビットのパラレル データ
バスをサポートします。
32 ビット データ バスを使用する場合、 (制御信号として
動作するために) 14 本の構成可能な I/O ピンをサポート
します。制御ピンは、入力、出力、双方向のいずれです。
16/8 データ バスを使用する場合、16 本の I/O ピンを
サポートします。制御ピンは、入力、出力、双方向のいず
れです。
サイプレスの GPIFII Designer ツールは、GPIFII ステート
マシンの迅速な開発を可能にし、サンプル共通インターフェー
スを含んでいます。EZ-USB FX3 SDK をインストールすると、
GPIFII Designer ツールを使用できます。
www.cypress.com
CPU
FX3 の I2C インターフェースは、I2C マスターとして動作し、
I2C スレーブ デバイスとの通信を可能にします。例えば、FX3
は、I2C インターフェースに接続している EEPROM から起動
することができます。FX3 の I2C マスター コントローラーは、
マルチマスター機能に対応しており、I2C クロック ストレッチを
可 能 に し ま す 。 I2C コ ン トロー ラ ー は 、 100kHz、 400kHz、
1MHz のバス周波数をサポートしています。
I2S インターフェース
FX3 には、外部オーディオ コーデックをサポートする I2S トラ
ンスミッタおよび他の I2S レシーバがあります。I2S インター
フ ェ ー ス が サ ポ ー ト す る サ ン プ リ ン グ 周 波 数 は 32kHz 、
44.1kHz、48kHz です。
文書番号: 001-85370 Rev. *B
3
EZ-USB® FX3™入門
SPI インターフェース
FX3 は、最大 33MHz の動作周波数で SPI マスター インター
フェースをサポートします。SPI コントローラーは、4 ビット~32
ビットのトランザクション サイズで 4 つの SPI 通信モードをサ
ポートします。
FX3 への電圧入力は、EZ-USB FX3 データシートに記載され
る要件を満たさなければなりません。
FX3 ハ ー ド ウ ェ ア を 設 計 す る 際 、 「 AN70707 - EZ-USB
FX3/FX3S Hardware Design Guidelines and Schematic
Checklist」を参照してください。
ブート オプション
FX3 を使用したアプリケーション開発
FX3 は以下のソースのいずれかからブート イメージをロードし
ます。
本節では、FX3 のシステムでの主な応用を強調します。
USB、I2C、SPI、GPIF II (ブートローダによりサポートされる
同期 ADMux、非同期 ADMux、または同期 SRAM インター
フェースを介する)。
完全な FX3 設計は、ソフトウェア、ファームウェア、およびハー
ドウェアの開発を含みます。サイプレスは、それぞれ用に設計
リソースを提供しています。FX3 設計リソースは表 1 に記載さ
れています。
設計に適切なブート方式の選択し方は、「AN76405 - EZ-USB
FX3 Boot Options」で詳しく説明されています。
クロッキング
FX3 に水晶または外部クロックを接続することができます。サ
ポートされる水晶の周波数は 19.2MHz で、サポートされた外
部クロック周波数は 19.2、26、38.4、および 52MHz です。
FX3 へのクロック入力は、EZ-USB FX3 データシートで指定さ
れている位相ノイズとジッタの要件を満たす必要があります。
電圧ドメイン
FX3 には、それぞれの機能ブロック (GPIF II、UART/SPI/I2S、
I2C、JTAG、USB、クロック、およびコア) 向けの独立した電圧
供給ドメインがあります。
FX3 に接続した FPGA/ASIC
幾つかのアプリケーションでは、FPGA または ASIC が高速パ
ラレル GPIF II インターフェースを介して FX3 に接続されます。
データのソースまたはシンクとなる別のデバイスが FPGA また
は ASIC に接続されます。例として、データ収集装置、プリン
ター、スキャナー、撮像機器などが挙げられます。
このようなアプリケーションでは、FX3 は、USB ホストから/へ
のデータ パイプとして動作します。これらのアプリケーションで
は、通常、FX3 と FPGA/ASIC 間のインターフェースは同期
スレーブ FIFO インターフェースです (図 2)。
図 2. FX3 に接続した FPGA/ASIC
High Bandwidth USB Peripheral such as Camera, Scanner, Printer
SLCS#
PKTEND#
FLAGB
FLAGA
Rest of the
system
(Data Source/
Sink)
A[1:0]
External FPGA/
ASIC
D[15:0]/ D[31:0]
SLWR#
Sync
Slave
FIFO
I/F
EZ-USB
FX3
USB
USB Host
(Typically a PC with
a USB3.0 Port)
SLRD#
SLOE#
PCLK
スレーブ FIFO インターフェースの詳しい説明、および FPGA が FX3 に接続している完全なサンプル デザインは、「AN65974 Designing with the EZ-USB FX3 Slave FIFO Interface」を参照してください。
GPIF II がよく実装できるもう 1 つのインターフェースは、同期アドレスデータ多重化インターフェースです。
www.cypress.com
文書番号: 001-85370 Rev. *B
4
EZ-USB® FX3™入門
FX3 を介して FPGA を構成
FX3 が FPGA に接続しているアプリケーションでは、FPGA ビット ファイルを FX3 を介してロードすることが勧められます。この場合、
FPGA コンフィギュレーション ファイルは USB ホストから FX3 を介して FPGA に転送されます。これにより、FPGA ブ起動メモリの
コストを節約でき、PC からの FPGA 再構成 (更新を含む) を可能にします。実装例については、「AN84868 - Configuring an FPGA
over USB Using Cypress EZ-USB FX3」を参照してください。
図 3. FX3 を使用して FPGA を構成
PC
FX3
FPGA
FPGA
FX3
PC
Bitstream
Bitstream
(b) FPGA boots from PC. No
external memory required.
(a) FPGA boots from
external memory.
Boot
Memory
FX3 に接続したイメージ センサー
撮像アプリケーションには、パラレル GPIF II インターフェースを介して FX3 に直接接続されるイメージ センサーが備えられ、動画は
センサーから FX3 を介して USB ホストにストリーミングされます。
システムは、適切なファームウェアで FX3 をプログラムすることで、USB ビデオ クラスと互換性があるようにすることができます。その
ようなアプリケーションの例については、「AN75779 - How to Implement an Image Sensor Interface with EZ-USB FX3 in a USB
Video Class (UVC) Framework」を参照してください。
図 4. FX3 に接続したイメージ センサー
Camera
USB Host
PCLK
Frame Valid
Line Valid
GPIF II
DQ[15:0]/DQ[7:0]
USB
EZ-USB FX3
Image Sensor
Reset#
I2C control
USB
Host
Controller
UVC
Driver
Video
Capture
Application
GPIO
I2C
Master
FX3 ハードウェアの設計
USB 3.0 の速度と能力のため、PC 設計とレイアウトに注意を十分に払ってください。FX3 ハードウェアを設計する際、「AN70707 - EZUSB FX3/FX3S Hardware Design Guidelines and Schematic Checklist」を参照してください。サンプル回路デザインについては、
「FX3 DVK Schematic」を参照してください。
デザインを FX2LP から FX3 にアップグレード
既存の FX2LP デザインを FX3 にアップグレードする際、「AN76348 - Differences in Implementation of EZ-USB FX2LP and EZUSB FX3 Applications」を参照してください。
www.cypress.com
文書番号: 001-85370 Rev. *B
5
EZ-USB® FX3™入門
設計リソース
表 1 には、FX3 を使用した開発に有用なサイプレスのさまざまなリソースを示します。USB スーパースピードのサンプル コードについ
ては、こちらをクリックしてください。
表 1. FX3 設計リソース
設計
リソース
リソース ロケーション
FX3 ファーム
ウェア
GCC コンパイラを含む Eclipse IDE のインストレーション
EZ-USB FX3 SDK のインストールに含まれる
さまざまな関数を実行する用の API
サンプル ファームウェア
ホスト
ソフトウェア
GPIF II イン
ターフェース
設計
ハードウェア
設計
ファームウェ
ア デバッグ
SDK の使用に関する資料
FX3 Programmer のマニュアル
SDK で提供された API に関する資料
FX3 SDK の API ガイド
FPGA を持った完全な設計での同期スレーブ FIFO
ファームウェア例
AN65974 - Designing with the EZ-USB FX3 Slave FIFO Interface
UVC 準拠のファームウェア例
AN75779 - How to Implement an Image Sensor Interface with
EZ-USB FX3 in a USB Video Class (UVC) Framework
USB 3.0 ドライバー – cyusb3.sys
EZ-USB FX3 SDK のインストールに含まれる
サンプル ホスト アプリケーション― Control Center
および Streamer アプリケーション
サイプレス USBSuite アプリケーション開発のクイック
スタート ガイド
Cypress USBSuite Application Development - Quick Start Guide
GPIF II Designer ツールにより、ステート マシンを使用し
たカスタムの GPIF II インターフェースを設計することが
できる。このツールは FX3 ファームウェアに要実装の
コードを生成
EZ-USB FX3 SDK のインストールに含まれる
スレーブ FIFO、SRAM スレーブ、および ADMux スレー
ブを含んだ一般的な GPIF II 実装例
GPIF II Designer ツール (EZ-USB FX3 SDK のインストールに含ま
れる)
ツールの使用方法などが記載されている GPIF II の資料
GPIF II デザイン ガイド - GPIF II Designer に同梱される (EZ-USB
FX3 SDK のインストールに含まれる)
開発基板―回路図、基板ファイル、資料
SuperSpeed Explorer Kit (CYUSB3KIT-003) のユーザー ガイドお
よび設計ファイル (回路図、CAD、ガーバー ファイル)
FX3 DVK (CYUSB3KIT-001) のユーザー ガイドおよび設計ファイル
(回路図、CAD、ガーバー ファイル)
水晶発振器、電源供給デカップリング コンデンサ、
プリント基板レイアウトなどの推奨事項が記載されている
ハードウェア デザイン ガイドライン
AN70707 - EZ-USB FX3/FX3S Hardware Design Guidelines and
Schematic Checklist
IBIS モデル
FX3 IBIS モデル
JTAG デバッガーのセットアップと使用
「FX3 Programmer’s Manual」の第 12 章
その他の資料
アプリケーション ノート
EZ-USB FX3 アプリケーション ノート
トレーニング ビデオ
EZ-USB FX3 Architecture Overview (本アプリケーション ノートのロケーション ページに掲載される)
知識ベース記事
EZ-USB FX3 の知識ベース記事
www.cypress.com
文書番号: 001-85370 Rev. *B
6
EZ-USB® FX3™入門
FX3 の入力と出力データ転送を理解するには、以下の用語を
理解する必要があります。




ソケット
DMA ディスクリプタ
DMA バッファ
GPIF スレッド
ソケットとは、ペリフェラル ハードウェア ブロックと FX3 RAM
の接続点です。USB、GPIF、UART、SPI など FX3 上の各周
辺装置のハードウェア ブロックのそれぞれに対応する一定数
のソケットがあります。各ペリフェラルを流れる個別のデータ
フロー数は、それに対応するソケット数に等しいです。ソケット
の実装は、アクティブな DMA ディスクリプタを指すレジスタ一
式とソケットに対応するイネーブルまたはフラグ割り込みを含
んでいます。
DMA ディスクリプタとは、FX3 RAM に割り当てられたレジスタ
一式です。DMA バッファのアドレスとサイズの情報および次の
DMA ディスクリプタへのポインタを格納してます。これらのポイ
ンタは DMA ディスクリプタ チェーンを形成します。
DMA バッファとは、RAM の一部であり、FX3 デバイスを介し
て転送されるデータの中間記憶領域として使用されます。
DMA バッファは FX3 ファームウェアによって RAM の領域
から取っておき、そのアドレスが DMA ディスクリプタに格納さ
れています。
GPIF スレッドとは、GPIF II ブロック内の専用データ経路で
あり、外部データ ピンをソケットに接続します。
ソケットは、イベントにより互いに直接通知するか、または、割
り込みにより FX3 CPU に通知します。ファームウェアは信号
方式を設定します。GPIF II ブロックから USB ブロックまでの
データ ストリームの例に取ってみます。GPIF ソケットは、
データで DMA バッファを充填したことを USB ソケットに通知
でき、USB ソケットは、DMA バッファが空であることを GPIF ソ
ケットに通知できます。この実装は、自動 DMA チャネルと呼
ばれています。自動 DMA チャネルの実装は通常、FX3 CPU
がデータ ストリームでデータの修正が必要ない場合に使用さ
れています。
一方、GPIF ソケットは FX3 CPU に割り込みを送信して GPIF
ソケットが DMA バッファを満たしたことを通知することもできま
す。FX3 CPU はこの情報を USB ソケットに伝達します。USB
ソケットは、FX3 CPU に割り込みを送信して、USB ソケットが
DMA バッファを空にしたことを通知することができます。そして、
FX3 CPU はこの情報を GPIF ソケットに伝達します。これは、
手動 DMA チャネルの実装と呼ばれています。この実装は通
常、FX3 CPU がデータ ストリームでデータを追加したり、除去
したり、修正する必要がある場合に使用されています。UVC
アプリケーション ノート (AN75779) のサンプル ファームウェア
では、ファームウェアが UVC ビデオ データ ヘッダを追加する
必要があるため、手動 DMA チャネルの実装を使用します。
www.cypress.com
DMA バッファにデータを書き込むソケットは、プロデューサ
ソケット (producer socket) と呼ばれています。DMA バッファ
からデータを読み出すソケットは、コンシューマ ソケット
(consumer socket) と呼ばれています。ソケットはデータ管理
のために DMA ディスクリプタに格納された DMA バッファ
アドレス、DMA バッファ サイズおよび DMA ディスクリプタ
チェーンを使用します。ソケットは、DMA バッファが満杯か空
になった後、DMA ディスクリプタから他の DMA ディスクリプタ
に切り替えるのに限られた時間 (数マイクロ秒まで) かかり
ます。切り替え中、ソケットはデータを転送することはできま
せん。このレイテンシは、フロー制御機能を備えないインター
フェースでは問題となります。例えばイメージ センサー イン
ターフェースです。
この問題は GPIF II ブロック内で、複数の GPIF スレッドを使
用して対応されます。GPIF II ブロックは 4 つの GPIF スレッド
を実装しています。一度に 1 つの GPIF だけがデータを転送
できます。GPIF II ステート マシンは、データ転送のために、
いずれかのアクティブな GPIF スレッドを選択する必要があり
ます。
GPIF スレッド選択のメカニズムはマルチプレクサに似ていま
す。GPIF II ステート マシンは、内部制御信号または外部入力
(「スレーブ FIFO 2 ビットのアプリケーションノート」ではアドレ
ス ライン A1、A0) を使用して、アクティブな GPIF スレッドを選
択します。アクティブな GPIF スレッドを切り替えると、データ転
送用のアクティブなソケットが切り替わります。結果として、デ
ータ転送用の DMA バッファが変更されます。GPIF スレッドの
切り替えにレイテンシはありません。
ソケットと GPIF スレッドのデフォルト マッピングは、図 5 に示
されています。ソケット 0 は GPIF スレッド 0 に、ソケット 1 は
GPIF スレッド 1 に、ソケット 2 は GPIF スレッド 2 に、ソケット
3 は GPIF スレッド 3 に対応します。
図 5. GPIF II ソケットとスレッドのデフォルト マッピング
Processor Interface Block
(PIB)
GPIF II
Socket 0
Thread 0
Socket 1
Thread 1
Socket 2
Thread 2
Socket 3
Thread 3
Switching
FX3 の用語
External
Data Bus
DMA 転送を理解して頂けるために、ソケットの概念を次の
4 図に示します。
文書番号: 001-85370 Rev. *B
7
EZ-USB® FX3™入門
図 6. ソケットが DMA ディスクリプタ一覧に従ってデータを
送信する
図 8. ソケットが DMA ディスクリプタ 2 を使用して動作する
Socket Linked List
Socket Linked List
FX3 RAM
Socket
FX3 RAM
DMA Descriptor 1
Address A1, Length L,
Next Descriptor 2
Socket
DMA Descriptor 1
Address A1, Length L,
Next Descriptor 2
DMA Buffer 1
DMA Buffer 1
A2
DMA Descriptor 2
Address A2,Length L,
Next Descriptor 3
DMA Buffer 2
L
DMA Buffer 3
DMA Buffer 3
Data
DMA Descriptor 2
Address A2 Length L,
Next Descriptor 3
DMA Buffer 2
DMA Descriptor 3
Address A3, Length L,
Next Descriptor 1
Data
ソケット リンク リストとは、DMA ディスクリプタと呼ばれるメイ
ン メモリ内のデータ構造一式です。それぞれのディスクリプタ
は、DMA バッファのアドレスと長さ、および次の DMA ディスク
リプタへのポインタを指定します。ソケットは、動作する際、
DMA ディスクリプタを個別に取得し、ディスクリプタ指定のアド
レスと長さを持つ DMA バッファにデータを送信します。L バイ
トが転送された後、ソケットは次のディスクリプタを取得し、
バイトを別の DMA バッファに引き続き転送します。
この構造により、DMA バッファをメモリ内でどこでも何個でも
作って、自動的に一緒に連結することができるため、ソケットを
多目的に使用することができます。例えば、図 6 のソケットは、
繰り返しループで DMA ディスクリプタを取得します。
図 7. ソケットが DMA ディスクリプタ 1 を使用して動作する
Socket Linked List
DMA Descriptor 3
Address A3, Length L,
Next Descriptor 1
図 9 では、ソケットは 3 番目の DMA ディスクリプタを取得して、
A3 で始まるデータを転送します。L バイトを転送した後、
シーケンスは DMA ディスクリプタ 1 に戻って転送過程を繰り
返します。
図 9. ソケットが DMA ディスクリプタ 3 を使用して動作する
Socket Linked List
FX3 RAM
Socket
DMA Descriptor 1
Address A1, Length L,
Next Descriptor 2
DMA Buffer 1
DMA Descriptor 2
Address A2 Length L,
Next Descriptor 3
DMA Buffer 2
DMA Buffer 3
A3
FX3 RAM
A1
L
Socket
Data
DMA Descriptor 1
Address A1, Length L,
Next Descriptor 2
DMA Descriptor 3
Address A3, Length L,
Next Descriptor 1
DMA Buffer 1
DMA Descriptor 2
Address A2 Length L,
Next Descriptor 3
DMA Buffer 2
DMA Buffer 3
Data
DMA Descriptor 3
Address A3, Length L,
Next Descriptor 1
図 7 では、ソケットは DMA ディスクリプタ 1 をロードして、
ディスクリプタの指定に従って A1 で始まるバイトを転送します。
ソケットは、L バイトの転送を完了すると、DMA ディスクリプタ
2 を取得します。それから、アドレス A2 と長さ L で転送を続け
ます (図 8)。
www.cypress.com
図 10 には、詳細な DMA データ転送を示します。例えば、円
形ループで連結した長さ L の DMA バッファを検討しましょう。
FX3 メモリ アドレスは左側にあります。青い矢印は、メモリから
ソケット リンク リスト ディスクリプタをロードしていることを示し
ます。赤い矢印は、結果となるデータ パスを示します。以下の
ステップは、データが内部 DMA バッファに転送されている時
のソケットの動作一連を示します。
ステップ 1: DMA ディスクリプタ 1 をメモリからソケットにロード
します。DMA バッファ位置 (A1)、DMA バッファ サイズ (L)、お
よび次のディスクリプタ (DMA ディスクリプタ 2) の情報を取得
します。ステップ 2 に進みます。
ステップ 2: A1 で始まる DMA バッファ位置にデータを転送し
ます。DMA バッファ サイズである L のデータ量を転送した後、
ステップ 3 に進みます。
文書番号: 001-85370 Rev. *B
8
EZ-USB® FX3™入門
図 10. DMA 転送例
0
DMA Descriptor 3
Buffer Address: A3 – Size L
Next DMA Descriptor: 1
Ste
p
1
DMA Descriptor 2
Buffer Address: A2 – Size L
Next DMA Descriptor: 3
ep
St
DMA Descriptor 1
Buffer Address: A1 – Size L
Next DMA Descriptor: 2
3
Step
5
Socket
A1
p2
Ste
DMA Buffer 1
4
図 11. デュアル ソケットにより継ぎ目のない転送が実現される
St
ep
A1+L
この簡単な方式では、ソケットがメモリから次の DMA ディスク
リプタを通常 1 マイクロ秒の間取得している中に外部周辺機
器がデータを送信する場合、データ損失が発生します。より良
いソリューションは、ソケットが 1 クロック サイクル以内にレイ
テンシなしに切り替わるという特性を利用することです。という
ことは、外部周辺機器がフロー制御メカニズムを備えない場合、
2 つのソケットを使用するのが勧められます。デュアル ソケット
を使用したデータ転送は、図 11 で説明されており、実行
ステップが番号付けられています。ソケット 0 とソケット 1 の
DMA バッファへのアクセスは、それぞれ赤い矢印と緑の矢印
(個別のソケットのデータ パス) で区別されています。各ステッ
プの「a」と「b」部分は同時に行われます。このハードウェアの
並行な動作により 、DMA ディ スクリプ タの 読み出 しデ ッド
タイムが無くなり、GPIF II がデータを内部メモリに連続して
ストリーミングすることができます。
0
1a
6
ep
DMA Descriptor 2
Buffer Address: A2 – Size L
Next DMA Descriptor: 4
St
ep
DMA Buffer 2
DMA Descriptor 1
Buffer Address: A1 – Size L
Next DMA Descriptor: 3
St
A2
A2+L
ep
Step 4a
6a
A3+L
1b
St
DMA Descriptor 4
Buffer Address: A4 – Size L
Next DMA Descriptor: 2
a
5a
DMA Buffer 3
ep
p3
Step
DMA Descriptor 3
Buffer Address: A3 – Size L
Next DMA Descriptor: 1
A3
St
Ste
Socket 0
Socket 1
A1
ステップ 5: 現在の DMA ディスクリプタ 2 が指している DMA
ディスクリプタ 3 をロードします。DMA バッファ位置 (A3)、
DMA バッファ サイズ (L)、および次のディスクリプタ (DMA デ
ィスクリプタ 1) の情報を取得します。
ステップ 6: A3 で始まる DMA バッファ位置にデータを転送し
ます。DMA バッファ サイズ L のデータ量を転送した後、ステッ
プ 1 に戻ります。
ep
St
2
ep
St
6b
ep
3b
St
A1+L
A2
DMA Buffer 3
5b
ep
A2+L
A3
St
4b
DMA Buffer 2
ep
ステップ 4: A2 で始まる DMA バッファ位置にデータを転送し
ます。DMA バッファ サイズ L のデータ量を転送した後、ステッ
プ 5 に進みます。
DMA Buffer 1
St
ステップ 3: 現在の DMA ディスクリプタ 1 が指している DMA
ディスクリプタ 2 をロードします。DMA バッファ位置 (A2)、
DMA バッファ サイズ (L) および次のディスクリプタ (DMA ディ
スクリプタ 3) の情報を取得します。
A3+L
A4
DMA Buffer 4
A4+L
ステップ 1: ソケットの初期化時に、ソケット 0 とソケット 1 は、
それぞれ DMA ディスクリプタ 1 と DMA ディスクリプタ 2 をロ
ードします。
ステップ 2: 転送データの準備ができると、ソケット 0 はデータ
を DMA バッファ 1 に転送します。転送の長さは L です。この
転送が終わったら、ステップ 3 に進みます。
www.cypress.com
文書番号: 001-85370 Rev. *B
9
EZ-USB® FX3™入門
ステップ 3: GPIF II は GPIF スレッドを切り替えて、従ってデー
タ転送用のソケットも切り替えます。ソケット 1 が DMA バッファ
2 へのデータ転送を開始し、同時にソケット 0 は DMA ディスク
リプタ 3 をロードします。ソケット 1 が L のデータ量の転送を
完了すると、ソケット 0 は DMA バッファ 3 へのデータ転送を開
始できます。
ステップ 5: GPIF II は、ソケット 1 のデータを DMA バッファ
4 に送信します。同時にソケット 0 は DMA ディスクリプタ
1 をロードして、データを DMA バッファ 1 へ転送します。
ステップ 5a はステップ 1a とほとんど同じですが、ソケット 1 を
初期化せずにデータを同時に転送する点が異なることに注意
してください。
ステップ 4: ここで、GPIFII は元の GPIF スレッドに切り替え
ます。ソケット 0 は長さ L のデータを DMA バッファ 3 に転送し
ます。同時に、ソケット 1 は DMA ディスクリプタ 4 をロードして、
DMA バッファ 4 へのデータ転送の準備ができました。ソケット
0 が長さ L のデータの転送を終わったら、ステップ 5 に進み
ます。
ステップ 6: GPIF II は再びソケットを切り替えて、ソケット 0 は
DMA バッファ 1 への長さ L のデータの転送を開始します。
DMA バッファは、ここまでは UIB コンシューマ ソケットにより
使い果たされたから、空になっていることが想定されます。
同時に、ソケット 1 は DMA ディスクリプタ 2 をロードして、
DMA バッファ 2 へのデータ転送の準備ができました。ここで、
サイクルは実行過程のステップ 3 に進みます。
コンシューマー側 (USB) が GPIF II から次のデータ チャンク
を受信するために間に合って DMA バッファを空にして解放し
た場合にのみ、GPIF II ソケットはデータを転送することが
できます。コンシューマーの速度が十分に速くなかった場合、
ソケットの DMA バッファへの書き込みが無視されるため
ソケットはデータを失います。
www.cypress.com
文書番号: 001-85370 Rev. *B
10
EZ-USB® FX3™入門
FX3 による USB 3.0 転送:初回転送前の準備
本節では、読者が USB ホストから FX3 デバイスに BULK OUT と BULK IN 転送を行えるように、簡単なファームウェア例のビルドお
よび実行を実演します。
この実例を始める前に、以下を行ってください。
1.
®
EZ-USB FX3™ SuperSpeed Explorer Kit (CYUSB3KIT-003) を手に入れます。この例では、FX3 ファームウェアが USB ホス
トからダウンロードされたため、FX3 DVK 基板を USB ブートに設定する必要があります。USB からの起動を選択するには、図 12
のように、すべてのジャンパを閉じます。これらのジャンパ設定は、赤い長方形または円形でハイライトされています。キット基板の
詳細については、キットのユーザー ガイドを参照してください。SuperSpeed Explorer キット基板は USB ケーブルからしか電源を
受けることができます (バス パーワ)。FX3 DVK (CYUSB3KIT-001) のキットの入手、およびジャンパ設定の詳細については、
「付録 C.1. EZ-USB FX3 DVK」を参照してください。
図 12. USB からの起動のための SuperSpeed Explorer Kit 基板設定
www.cypress.com
文書番号: 001-85370 Rev. *B
11
EZ-USB® FX3™入門
2.
EZ-USB FX3 SDK をインストールします。Installation Type にデフォルトの Typical (標準) 設定を選択します。FX3 SDK の
インストール後、サンプル ファームウェアを Eclipse IDE ワークスペースにインポートします (Eclipse IDE インストールは SDK に
含まれています)。すべてのサンプル ファームウェアを IDE にインポートする手順は以下の通りです。
a.
スタート メニューに移動して、Eclipse IDE を開きます。All Programs > Cypress > Eclipse > EZ USB Suite を選択しま
す。デフォルトのワークスペース フォルダを使用します。あるいは、後で随意に場所を定義することができます。
図 13. スタート メニューから Eclipse IDE を開く
b.
そうすると、「Project Explorer」タブに何のプロジェクトが含まれない空の Eclipse IDE を開始します。次に、サイプレス サン
プル プロジェクトを「Project Explorer」にインポートします。
図 14. プロジェクト インポート前の Eclipse IDE
www.cypress.com
文書番号: 001-85370 Rev. *B
12
EZ-USB® FX3™入門
c.
d.
File > Import を選択します。
General > Existing Projects into Workspace を選択して、Next をクリックします。
図 15. 「Existing Projects into Workspace」を選択
e.
SDK インストールでファームウェア ディレクトリを開きます。Browse…ボタンをクリックして、サイプレス SDKfirmware フォル
ダに移動します。標準的な Windows インストレーションの場合、このフォルダ パスは C:\Program Files (Program Files
(x86 on 64-bit machines)\Cypress\EZ-USB FX3 SDK\firmware です。
図 16. ルート ディレクトリを選択する
www.cypress.com
文書番号: 001-85370 Rev. *B
13
EZ-USB® FX3™入門
図 17. SDK インストレーションで「firmware」ディレクトリを開く
f.
すべてのサイプレス プロジェクト例をチェックマークで選択します。あるいは、Select All ボタンをクリックします。また、Copy
projects into workspace にチェックマークを付けて、Finish をクリックします。
www.cypress.com
文書番号: 001-85370 Rev. *B
14
EZ-USB® FX3™入門
図 18. ファームウェア ディレクトリで全てのプロジェクトを選択する
g.
すべてのファームウェア例はワークスペースにインポートされた後、Eclipse の「Project Explorer」に表示されます。全ての
プロジェクトはインポートの際に自動的にビルドされるため、全部ロードしてビルドするのに数分かかります。ロード後に、
それらをそのままで実行できるか、または変更して再ビルドすることができます。
www.cypress.com
文書番号: 001-85370 Rev. *B
15
EZ-USB® FX3™入門
図 19. すべてのプロジェクトがワークスペースにインポートされる
U S B B u l k L o o p Au t o フ ァ ー ム ウ ェ ア の ビ ル ド お よ び 実 行
この実例の次のステップとして、基本的なサンプル ファームウェアをビルドして実行します。
FX3 SDK に含まれた USBBulkLoopAuto ファームウェア例は、デフォルトでは BULK エンドポイント 1 IN と BULK エンドポイント
1 OUT を設定します。USB ホストが OUT エンドポイントに送信したデータは、FX3 ファームウェアによって IN エンドポイントにループ
バックされます。USB ホストは、IN エンドポイントからそのデータを受信することができます。
1.
Eclipse IDE で USBBulkLoopAuto ファームウェアを開くために、その名前をダブルクリックするか、またはその名前の左側にある
小さい拡張矢印をクリックします。ファームウェアをデフォルト設定でビルドする、または以下の手順に従ってエンドポイント番号を
変更してファームウェアを修正することができます。ファームウェアを変更せずに実行する場合は、ステップ 5 に飛ばします。ファー
ムウェアに小さな変更を加えてから実行する場合、ステップ 2 に進みます。Eclipse ツール チェーンをより詳しく理解するには、
変更ステップを読むことをお勧めします。
2.
ファイル一覧から cyfxbulkloopauto.h をクリックして、エディタ ウィンドウに表示します。エンドポイント番号およびそれらに対応
するソケットは、cyfxbulkloopauto.h ファイルの終わりの近くにある CY_FX_EP_PRODUCER、CY_FX_EP_CONSUMER、
CY_FX_EP_PRODUCER_SOCKET、および CY_FX_EP_CONSUMER_SOCKET という ID を使用して、.h ファイル内で定義
されます。
www.cypress.com
文書番号: 001-85370 Rev. *B
16
EZ-USB® FX3™入門
図 20. cyfxbulklpauto.h 内でのエンドポイントとソケットの定義
3.
図 21 に示すように、上記でハイライトされた ID を使用すると、エンドポイント番号と対応するソケットは EP1 から EP2 に変更され
ます。ここで、修正されたファームウェアでは、EP2 IN は BULK IN となり、EP2 OUT は BULK OUT となります。
注: USB では、エンドポイントは、方向を示すビット 7 (1 = 入力、0 = 出力) とビット 6:0 を占める 7 ビット アドレスから成るバイトで
識別されます。USB 転送の場合では、FX3「ソケット」はエンドポイントに相当します。USB ドメイン内のソケットは、データ転送のた
めに、他のペリフェラル ドメイン (例えば、GPIF II、または CPU) 内のソケットに接続します。
図 21. エンドポイント番号および対応するソケットが EP1 から EP2 に変更
4.
編集された cyfxbulklpauto.h ファイルを確実に保存してください (File > Save)。Eclipse ビルド プロセスでは、新たに編集された
ファイルを自動的に保存しません。USBBulkLoopAuto プロジェクトを Project Explorer ウインドウで拡大されたことを確認してから、
Project > Build Project 選択して、プロジェクトをビルドします。
あるいは、プロジェクトのビルド前に Build Configurations を選択することもできます。Project Explorer ウィンドウで、プロジェ
クト名を右クロックして、Build Configurations > Set Active > Debug/Release を選択します (図 22 を参照)。
www.cypress.com
文書番号: 001-85370 Rev. *B
17
EZ-USB® FX3™入門
図 22. Eclipse IDE 内の「Build Configurations」の選択
メッセ ージが表示した場合は、付録 B を参照して
Windows ドライバーをインストールしてください。
注: Release モードでのファームウェア イメージ サイズは、
Debug モードでのイメージに比べて小さいです。デバッグ
モード イメージは、ユーザーが JTAG を使用してデバッグする
ための追加のデバッグ マークを含んでいます。
U S B B u l k L o o p Au t o フ ァ ー ム ウ ェ ア を F X 3 R AM に
ロードする
サイプレス Control Center というアプリケーションは、コードを
FX3 にロードします。Control Center アプリケーションは FX3
SDK の一部としてインストールされます。
1.
サイプレス Control Center アプリケーションを開くには、
Start メ ニ ュ ー を 開 き ま す 。 Start > All Programs >
Cypress > Cypress USBSuite > Control Center を
選択します。
2.
キットに同梱する USB 3.0 ケーブルを使用して、スー
パースピードまたはハイスピードい USB ポートを介して基
板をご使用の開発 PC に接続し DVK とドライバー ソフト
ウ ェ ア が 既 に イ ン ス ト ー ル さ れ た 場 合 、 USB Control
Center は「Cypress USB Bootloader」を接続済みのデ
バイスとして表示します。但し、「no drive found」という
www.cypress.com
3.
フ ァ ー ム ウ ェ ア を FX3 RAM に ロ ー ド す る た め に 、
Program > FX3 > RAM を選択します。
文書番号: 001-85370 Rev. *B
18
EZ-USB® FX3™入門
4.
FX3 にロードするファームウェア イメージ ファイルに移動
します。このファイルは、Eclipse がビルド プロセスの最終
ステップで生成した USBBulkLoopAuto.img ファイルです。
デフォルト ワークスペースでは、このファイルは
C:\Users\antioch\Work\USBBulkLoopAuto\
Debug に配置されます。ファイルを選択して Open を
クリックするか、またはファイル名をダブルクリックします。
USB コントロール センターが新しい FX3 コードをダウンロード
し た 後 、 Windows は 、 Cypress USB BulkLoopExample
という新しい USB デバイスを認識します。これは、FX3 の
再エニュメレーションです。FX3 は、初期には Windows でブー
トローダとして認識されますが、新しいコードをロードした後、
USB から電気的に切断して、ダウンロードしたコード (BULK
ルーパ) で定義された新しいデバイスとして再接続します。
コントロール センター メニューには、FX3「 Cypress USB
Bootloader 」 が 非 表 示 に な り 、 「 Cypress USB
BulkloopExample」という新しい USB ペリフェラルが表示にな
ることに注意してください。FX3 は、0x04B4 と 0x00F0 の新し
いベンダ ID/製品 ID の組み合わせで再エニュメレートされま
した。
注: 新しいプロジェクトをロードする準備ができたら、RESET
スイッチを使用して FX3 をリセットし、ブートローだモードに
戻ります。
BULK 転送の実行
5.
「Cypress USB Bulkloop Example」エントリ下の全ての
サブフィールドを拡張します。ステップ 1~6 で説明した
ようにファームウェアを変更してビルドした場合、BULK
EP2 OUT と BULK EP 2 IN が 「 Interface 0 」 の
「Alternate Setting 0」の中で表示されます (図 23)。
注: ファームウェアを変更しなかった場合、デフォルトの
「 BULK out endpoint (0x01) 」 と 「 BULK in endpoint
(0x81)」が Control Center に表示されます。
6.
BULK OUT 転送を実行するために、Data Transfers
タブをクリックして、左の画面の BULK out endpoint
(0x02)を選択します。Bytes to Transfer フィールドに転
送バイト数を入力し、転送データを Data to send (Hex)
フィールドに入力します。Control Center は自動的に
16 進数の桁のペア間にスペースを入れます。Transfer
Data-OUT をクリックします。図 23 には、5 バイトの
BULK OUT エンドポイント (0x02) への転送を示します。
図 23. BULK OUT 転送
7.
BULK Loop プログラムは対応して番号付けられた IN エンドポイントを使って OUT エンドポイントで受信したデータを戻させます。
BULK IN 転送を実行するには、左のペインに表示される BULK in endpoint (0x82) を選択します。転送するバイトの数を
Bytes to Transfer フィールドに入力します。Transfer Data-IN をクリックします。図 24 で IN エンドポイント (0x82) に同じ 5 バイ
トが戻されたことを示します。
www.cypress.com
文書番号: 001-85370 Rev. *B
19
EZ-USB® FX3™入門
図 24. BULK IN 転送
www.cypress.com
文書番号: 001-85370 Rev. *B
20
EZ-USB® FX3™入門
開発ツール
ここまで基本的な FX3 デバイスを使用した操作を行いました。本節は、SuperSpeed Explorer Kit (CYUSB3KIT-003) と FX3 SDK を
簡単に紹介します。FX3 DVK (CYSUB3KIT-001) の詳細は、「付録 C.3. FX3 DVK 向けの JTAG デバッガー」を参照してください。
SuperSpeed Explorer Kit の紹介
Cypress’s SuperSpeed Explorer Kit は、FX3 を使用するために必要なハードウェアを提供します。プリント基板は、FX3 に必要な
クロックと電圧、構成可能なおよび I/O 電圧を提供します。キットは、外部デバイスと接続するための高速なコネクタを備えています。
2
2
SuperSpeed Explorer Kit は USB および I C からの起動をサポートします。ファームウェアを格納し、I C EEPROM からの起動を
2
テストするために、8M ビットの I C EEPROM が備えています。SDK に同梱されるサイプレスのサンプル プロジェクトは DVK 基板を
使ってこれらのデバイスをプログラムするためのファームウェアを含みます。SuperSpeed Explorer Kit を持っていない場合、ここから
入手できます。
FX3 DVK 基板の外部にある、ハードウェアの 2 つの重要な部品は、USB 3.0 ホスト (通常、PC である) と GPIF II インターフェースに
接続する外部デバイス (イメージセンサー、FPGA など) です。SuperSpeed Explorer Kit の詳細については、キットのユーザー ガイド
を参照してください。図 25 に、重要な領域をハイライトした SuperSpeed Explorer Kit 基板のイメージを示します。
図 25. FX3 DVK 基板
表 2 に、DVK 基板上に搭載されている主なジャンパとその初期設定を示します。
www.cypress.com
文書番号: 001-85370 Rev. *B
21
EZ-USB® FX3™入門
表 2. SuperSpeed Explorer Kit 基板ジャンパ
ジャンパ
ジャンパの状態
機能
J2
短絡
パワー ドメイン VIO1、VIO2 および VOI3 電圧は外部 3.3V インターフェースおよび基板搭載の SRAM をサポートする
ために 3.3V に設定される
J3
短絡
開発基板は USB 3.0 VBUS から電源を受ける。正常の動作のためにこのジャンパは正しく配置されなければならない
J4
オープン
有効なファームウェア イメージが EEPROM に存在している場合、開発基板搭載の I2C EEPROM から起動する。
そうでなければ、 USB から起動
注: デフォルトでは、LED 点滅の USBBulkSourceSink ファームウェアは EEPROM に格納される
J5
オープン
外部 SRAM の選択を解除
フ ァ ー ム ウ ェ ア ス タ ッ ク と AP I
FX3 SDK 入門
FX3 内に、USB アプリケーションを組み込みシステム環境に
統合するための、完全なソフトウェアとファームウェア スタック
が実装してあります。ソフトウェア開発キット (SDK) は、アプリ
ケーション開発を加速するサンプル アプリケーションを含みま
す。SDK は、サイプレス ウェブサイトからダウンロードできま
す。図 26 は、SDK がインストールされた時に作成されるディ
レクトリ構造を示します。
サイプレスは、複雑な設計時でもファームウェアの開発を容易
にするための強力な API ライブラリを提供します。以下は FX3
SDK のいくつかの利点です。

RTOS
同梱の ThreadX Real Time OS (RTOS) はファーム
ウェア開発手順を簡易化します。RTOS により複数の
スレッドが容易に作成でき、ファームウェア フローを簡素
化します。
図 26. ディレクトリ構造

モジュラー アプローチ
API ベース アプローチにより、開発者が FX3 のレジスタと
ビットの知識を必要とせずにファームウェア ロジックおよ
びフローに集中できます。このアプローチは使いやすく、
またデバッグ、修正、サポートが容易です。
図 27. ファームウェア SDK の構造
FX3 Firmware Stack
FX3
FX3Firmware
Firmware
Examples
Examples
Customer
Firmware
FX3 Firmware Framework
FX3 API Library
RTOS
Customer software
Cypress provided software
Third-party software
www.cypress.com
文書番号: 001-85370 Rev. *B
22
EZ-USB® FX3™入門
API では以下も提供します。
USB ISOCHRONOUS データ ループバックの例

FX3 デバイスの各ブロック (GPIF II、USB、およびシリア
ル インターフェース) のプログラミング

DMA エンジンのプログラミング、およびこれらブロック間
のデータ フローの設定

アプリケーションの要求に応じた ThreadX OS の呼び
出し



デバッグ機能
動作用 USB ホスト モード
電源管理
スレーブ FIFO 応用例
スレーブ FIFO の応用例では、USB ホストおよび外部 FIFO
コントローラー間のデータ転送を示します。この例は、USB
ホストと外部マスター間にある 2 本の単方向データパイプで構
成されています。GPIF II インタフェースは、16 ビットまたは
32 ビットバスを使用して同期と非同期スレーブ FIFO 転送用
に設定可能です。
サンプル シリアル インターフェース
2
フ レ ー ム ワ ー ク AP I
ファームウェア (またはアプリケーション) フレームワークは、
起動および初期化コードをすべて持っています。また、USB、
GPIF II、およびシリアル インターフェース ブロック用の個別の
ドライバーも同梱しています。フレームワークは以下の機能を
実行します。




これらの例は、USB ISOCHRONOUS エンドポイント間の
ループバック メカニズムを示します。使用されるエンドポイント
がバルクではなくアイソクロナスであることを除いて、これら例
はバルク ループバックの例と同様です。
これらのサンプルは、GPIO、I C、SPI、および UART への
データ アクセスを図示します。
サンプルの USB バルク/アイソクロナス データ ソー
ス/シンク
プログラムのエントリ ポイントの定義
これらのサンプルは、2 つの USB BULK/ISOCHRONOUS
エンドポイントを使用して、データ ソースとデータ シンクの
メカニズムを図示します。
スタック セットアップの実行
サンプルフラッシュ プログラマ
2
カーネル初期化の実行
アプリケーション スレッド起動コード用のプレースホルダ
の提供
FX3 サンプル ファームウェア
サンプルの大容量記憶クラス
SDK には、上記の Eclipse インストールに見られるように多く
のサンプル ファームウェアが含まれています。本節では、より
一般的なファームウェア プロジェクトの例の内一部を詳細に説
明します。現在提供されているサンプル ファームウェアの完全
な一覧は、SDK のリリース ノートに記載されています。サンプ
ル ファームウェアは USB 2.0 と USB 3.0 の両速度で動作し
ます。
注: サンプル ファームウェアはすべて、Eclipse プロジェクトと
して提供されています。これにより、在庫の完全なファーム
ウェア例を Eclipse Project Explorer で一目で見ることができ
ます。
このサンプルでは、記憶デバイスとして FX3 デバイス RAM の
小さい領域を使用して実装される USB 大容量記憶クラス
(BULK Only Transport) のデバイスを示します。また、大容量
記憶コマンドがどのように構文解析され、FX3 のファーム
ウェアで処理されるかも示します。
USB オーディオ クラスの例
このサンプルでは、SPI フラッシュ メモリに保存された PCM
オーディオ データを USB ホストにストリーミングする、USB
オーディオ クラス準拠のマイク デバイスを作成します。例は
USB 2.0 の速度でのみ動作します。
サンプルの 2 段起動
USB BULK データ ループバックの例
これらの例では、USB BULK エンドポイント間の簡単なループ
バック メカニズムを示します。USB ホスト PC からのすべての
標準セットアップ要求は、FX3 の応用例により処理されます。
例は、DMA AUTO または MANUAL チャネルを使用してルー
プバックを行います。
DMA マルチチャネルの例は、3 つのエンドポイントをループ
バックに使用します。
www.cypress.com
このサンプルは、USB からの I EEPROM や SPI フラッシュ
デバイスのプログラミングを図示します。読み書き動作は、
あらかじめ定義されたベンダ コマンドを使用して行われます。
ユーティリティは、これらのデバイスのフラッシュ メモリにブート
イメージをプログラムするために使用できます。
2 段起動を実行するために簡単な API セットが独立したライブ
ラリとして提供されます。この例では、これら API の使用方法
を示します。また、リアル ビュー ツール チェインで使用できる
構成ファイルも提供します。
USB ホストおよび OTG の例
これら例では、ホスト モードと FX3 の USB ポートの OTG
モードでの動作をデモします。
文書番号: 001-85370 Rev. *B
23
EZ-USB® FX3™入門
内蔵デバッガーの詳細については、SuperSpeed Explorer Kit
ユーザー ガイドを参照してください。
FX3 ファームウェア開発ツール
Eclipse IDE
FX3 SDK の一部として、C/C++開発者用 Eclipse IDE が
提 供 さ れ ま す 。 こ の IDE に は 、 ベ ー ス と な る Eclipse
プラットフォームおよび CPP 機能が含まれます。開発に必要
なプラグインが IDE に含まれます。


Zylin 組み込み CDT
Java(TM) Platform、Standard Edition Runtime
Environment Version 7 (JRE)
GNU ツール チェーン
FX3 SDK の一部として提供されている GNU ツール チェーン
には、以下が含まれます。




GCC コンパイラ (gcc)
GNU リンカー (ld)
GNU アセンブラ (as)
GNU デバッガー (gdb)
これらの実行可能ファイルは Eclipse IDE によって呼び出され
ます。
GPIF II Designer
GPIF II インターフェース設計ツールは、FX3 の顧客が FX3
SDK の一部として入手する Windows アプリケーションです。
ツールは、対象のデバイスに必要なインターフェースを指定す
るグラフィカル ユーザー インターフェースを提供します。
ユーザーは、ステート マシンのエントリを使用してインター
フェースを設計し、そしてこのツールは Eclipse プロジェクトに
格納される C ヘッダ ファイルにインターフェースを変換します。
統合デバッガー
SuperSpeed Explorer Kit は、CY7C65215 USB-Serial IC を
組み込んで、デバッガーとして使用します。CY7C65215 は 2
つのコンフィギュレーション可能なシリアル通信ブロック (SCB)
を備えるフルスピード USB シリアル ブリッジ コントローラーで
す。SuperSpeed Explorer Kit は CY7C65215 の 1 番目のシ
リアル チャネルを UART として、2 番目のシリアル チャネルを
JTAG インターフェースとして使用します。
SuperSpeed Explorer Kit は内蔵デバッガーを JTAG イン
ターフェースのみをサポートします。内臓デバッガーは
OpenJTAG プ ロ ト コ ー ル で 動 作 し 、 ホ ス ト の OpenOCD
デーモン ツールを使用してデバッグ セッションを行います。
www.cypress.com
Windows ソフトウェア概要
サイプレスは、Windows で FX3 USB アプリケーションを開発
するためのデバイス ドライバーとインターフェース API を含む
ライブラリを提供します。
GNU ARM C/C++開発サポート
これは、GNU デバッガーを使用して FX3 ファームウェア
のデバッグを可能にする Eclipe IDE 向けの汎用プラ
グインです。

FX3 DVK (CYUSB3KIT-001) で使用可能な JTAG デバッ
ガーの詳細については、付録 C.3. FX3 DVK 向けの JTAG デ
バッガーを参照してください。
Windows USB デバイス ドライバー
cyusb3.sys は 32 ビットの Windows XP、32/64 ビットの
Windows Vista、32/64 ビットの Windows 7、および 32/64
ビットの Windows8 向けの USB デバイス ドライバーです。
このドライバーは、USB 2.0 と USB 3.0 の仕様に準拠するい
かなるデバイスとも通信可能です。ドライバーは汎用で、基本
的な USB のコマンドを理解します。ただし、このデバイスは
USB デバイス クラスのプロトコルを実装しません。例えば、
ドライバーは Windows ファイル システムと USB 大容量記憶
デバイス間の直接インターフェースをサポートしません。この
論理はアプリケーション ファームウェアにより実装される必要
があります。
このさんプレス汎用ドライバーは、署名して 0x04B4 の VID、
および 0x00F0、0x00F1、0x00F3 の PID をを受け取りました。
自前の VID/PID ペアを使用したい場合、Microsoft WHQL に
よって署名されたドライバーを入手する必要があります。開発
フェーズでは、コンピュータ上のドライバー署名の強制を無効
にすることで、サイプレスの署名が入っていないドライバーを
使用できます。ドライバーは、カスタム USB アプリケーション
からベンダ固有のデバイスへ通信するための理想的手段です。
またはドライバーは、実験または診断アプリケーション用の任
意の USB デバイスへ、ロー レベルの USB リクエストを送信
するために使用することもできます。デバイスと通信するため
にドライバーを使用するには、デバイスを Windows のドライ
バーに一致させる必要があります。クラス ライブラリ
(CyAPI.lib と Cyusb.dll) は、ドライバーに高レベルのプログラ
ミング インターフェースを提供します。
特長
 Windows Driver Foundation (WDF) 準拠
 任意の USB 2.0 準拠デバイスとの互換性
 Cypress USB 3.0 準拠デバイスとの互換性
 基本的 USB 3.0 機能のサポート
 Windows プラグ アンド プレイおよび電源管理をサポート
 USB 遠隔ウェイクアップをサポート
 制御、バルク、割り込み、およびアイソクロナスのエンド
ポイントをサポート
 同時に接続された複数の USB デバイスをサポート
 ドライバーを再構築せずにカスタマイズ可能なドライバー
GUID をサポート
文書番号: 001-85370 Rev. *B
24
EZ-USB® FX3™入門

フレームごとに複数のパケットを通過させる高帯域幅の
データ転送をサポートサイプレス付属のドライバーを使用
す る 必 要 は あ り ま せ ん 。 FX3 は 、 標 準 USB ク ラ ス
デバイスを実装するようにプログラミングすることが可能
です。これらデバイスを実装する際には、USB クラス
ドライバーを代わりに使用してください。例えば FX3 が
USB ビ デ オ ク ラ ス (UVC) を 実 装 し て い る 場 合 は 、
Cypress 汎用ドライバーを必要としない代わりに、OS が
提供する UVC ドライバーを使用することになります。特定
の標準ドライバーは既に OS により提供されるため、
Windows、Linux、および Mac サポートが容易になります。
サンプル Window ソフトウェア
サンプル BULKLoop
アプリケーション BulkLoop は、バルク エンドポイントを介した
データ転送のループバックをテストするために使用されます。
図 28. サイプレス C++ BULKLoop アプリケーション
アプリケーション インターフェース
C yA P I . l i b
CyAPI.lib は、USB デバイスに簡単かつ強力な C++プログラ
ミング インターフェースを提供します。cyusb3.sys デバイス
ドライバーに高レベルのプログラミング インターフェースを提供
する C++クラス ライブラリとなります。ライブラリは、このドライ
バーが提供する USB デバイスとしか通信できません。
CyAPI.lib の詳細については、プログラマ リファレンス C++ラ
イブラリを参照してください。これらは SDK の一部として USB
Suite Help 資料に含まれて提供されます。
サンプル ストリーマ
ア プ リ ケ ー シ ョ ン ス ト リ ー マ は 、 BULK/ISOCHRONOUS
エンドポイントでのデータ転送をテストするために使用されます。
図 29. サイプレス C++ Streamer アプリケーション
C yU S B . d l l
CyUSB.dll は、高レベルプログラミング インターフェースを
USB デバイスへ提供する、マネージ Microsoft .NET クラス
ライブラリです。アプリケーションは、低レベルの Win32 API
呼び出しを介して USB デバイス ドライバーと直接通信する
よりも、ライブラリ メソッドとプロパティを使用して USB デバイ
スにアクセスできます。CyUSB.dll は、マネージ.NET ライブラ
リであるため、そのクラスやメソッドが Visual Basic.NET、C#、
Visual J# 、 マ ネ ー ジ ド C++ な ど の Microsoft Visual
Stuido.NET が管理する言語のいずれかからアクセスすること
が で き ま す 。 ラ イ ブ ラ リ を 使 用 す る に は 、 CyUSB.dll へ の
リファレンスを、対象プロジェクトの References フォルダに追
加します。それから、CyUSB 名前空間にアクセスするすべて
のソース ファイルに、適切な構文で名前空間を追加するため
の行を入れてください。
CyUSB.dll の詳細については、プログラマ リファレンス C#ライ
ブラリを参照してください。これらは SDK の一部として、USB
スイート ヘルプ資料に含まれて配布されます。
CyAPI.lib と CyUSB.dll の使用の詳細については、「Cypress
USBSuite Application Development - Quick Start Guide」
を参照してください。
www.cypress.com
文書番号: 001-85370 Rev. *B
25
EZ-USB® FX3™入門
図 30. サイプレス C# Streamer アプリケーション
(スレーブ FIFO アプリケーションで通信量を管理)
FX3 SDK をインストールすると、BULKLoop と Streamer
ア プ リ ケ ー シ ョ ン の C++ と C# の 実 装 は 両 方 と も 、
「applications」ディレクトリに使用可能になります。
Linux 用 FX3 SDK およびソフトウェア
Linux 用 EZ-USB FX3 SDK
FX3 SDK は、Eclipse IDE を使用してファームウェア開発を支
援し、Linux プラットフォーム上の J-Link JTAG デバッガー
プローブを使用してデバッグを支援します。
Linux 用の EZ-USB FX3 SDK は以下を含みます。





C yU S B S u i t e f o r L i n u x ソ フ ト ウ ェ ア
CyUSB Suite for Linux ソフトウェアは、ファームウェア イメージ
を FX3 デバイスにダウンロードし、デバイス上のさまざまな
インターフェースをテストすることを可能にします。FX3 SDK for
Linux イ ン ス ト ー ル フ ォ ル ダ ( fx3_sdk_v1.3_linux\
cyusb_linux_1.0.4\cyusb_linux_1.0.4\docs) に あ る cyusb_
linux_user_guide.pdf ファイルを参照してください。この資料で
は、CyUSB Suite for Linux ソフトウェアをインストールする方
法、ファームウェアを FX3 にダウンロードする方法、およびベン
ダ拡張機能、BULK OUT/IN 転送と ISOCHRONOUS OUT/IN
転送をテストする方法について説明します。
CyUSB Suite for Linux - プログラマ リファレンス マニュアル
( 同 じ フ ォ ル ダ に 保 存 さ れ る cyusb_linux_programmers_
guide.pdf) は、Linux 用の cyusb ライブラリとライブラリでのユ
ーザーがプログラムするアプリケーションをビルドおよび統合
する方法を説明します。このソフトウェアでは以下のことを実現
できます。
 接続されたデバイスのデバイス、コンフィギュレーション、
インターフェース、代替インターフェース、およびエンドポイ
ント ディスクリプタを閲覧します。
 通信用の固定インターフェースと代替インターフェースを
選択します。
 FX3 デバイスへデバイスをプログラミング (ファームウェア
を FX3 デバイスにダウンロード) し、ファームウェアを
2
RAM、I C ベースの EEPROM または SPI ベースの
フラッシュにダウンロードします。
 コマンドを実行する特定のファームウェアをダウンロードし
た後、所持のコマンド (ベンダ拡張コマンド) をテストします。
 BULK OUT エンドポイントを、定数、ランダム、インクリメ
ントデータのいずれかを送信することでテストします。他に、
OUT データを送信した後にデータをループバックすること
で Bulk IN エンドポイントをテストします。
 ISOCHRONOUS OUT/IN エンドポイントをテストし、デー
タ転送レートを測定します。
FX3 ファームウェア ライブラリおよび例
図 31. CyUSB Suite for Linux ソフトウェア
Device selection area: Click on a device to select it
Sourcery ARM GN のツール チェーン
32 ビットの Linux OS インストール用 Eclipse IDE
64 ビットの Linux OS インストール用 Eclipse IDE
CyUSB Suite for Linux ソフトウェア
インストール手順には、これらアーカイブの解凍と環境変数の
設定が含まれます。FX3 SDK for Linux インストール フォルダ
(fx3_sdk_v1.3_linux\FX3_Firmware\cyfx3sdk\doc) に あ る
FX3_SDK_Linux_Support.pdf ファイルを参照してさい。
www.cypress.com
Detailed
Information
Summary
Information
文書番号: 001-85370 Rev. *B
26
EZ-USB® FX3™入門
ロジック アナライザ
有用なデバッグ ツール
USB 3.0 プロトコル アナライザ
USB 3.0 プロトコル アナライザは有用なデバッグ用ツールで
す。FX3 とホスト間の USB での通信量を分析します。各アナ
ライザに付属したソフトウェア ツールは、USB 転送パケットで
データをデコードします。このデータを分析することで、問題を
容易に識別することができ、性能を最大限引き出すことができ
ます。今日の市場では複数の USB 3.0 アナライザが提供され
ています。サイプレスはいずれのアナライザも特別に勧めま
せんが、以下のオプションがあります。



スタンドアロン型ロジック アナライザ


Agilent 16800 Series Portable Logic Analyzer
PC ベース型ロジック アナライザ


スタンドアロン USB 3.0 プロトコル アナライザ



ロジック アナライザにより、デジタル シグナルの簡単な分析が
可能です。これらのアナライザは FX3 と他のペリフェラル間の
さまざまな GPIO を観察するために使用することができます。
次の 2 種類のロジック アナライザーが市場で提供されてい
ます。
USBee Logic Analyzer
ZeroPlus Logic Analyzer
使用する際、アナライザのシグナルの周波数範囲の上限は分
析対象の信号より高くなければならないことに注意してください。
Ellisys USB Explorer 280
LeCory USB Voyager M3i
Beagle USB 5000 SuperSpeed Protocol Analyzer
PC ソフトウェア USB 3.0 プロトコル アナライザ


SourceQuest SourceUSB
SysNucleus USBTrace
www.cypress.com
文書番号: 001-85370 Rev. *B
27
EZ-USB® FX3™入門
表 3. USB 3.0 ピンの説明
付録 A
ピン名
A.1. USB 3.0 の概要
USB 3.0 により、データ転送レートを 5Gbps 向上し、消費電
力を低減し、USB 2.0 との後方互換性があります。USB-IF
によって発行された USB 仕様はこちらから入手できます。
図 32 に USB 3.0 のアーキテクチャを示します。
図 32. USB 3.0 デュアル バス アーキテクチャ
説明
VBUS
電源
D-
USB 2.0 差動ペア
D+
GND
電源リターン用グランド
SSRX-
SuperSpeed 受信信号差動ペア
SSRX+
SuperSpeed 送信信号差動ペア
SSTXSSTXGND_DRAIN
信号リターン用グラウンド
A.3. ケーブルおよびコネクタ
USB 3.0 はデータ転送用に 4 つの追加データ ライン (SSRX+、
SSRX-、SSTX+、SSTX-)、およびドレイン線終端、信号堅固
性管理、EMI 性能用に 1 つの追加グラウンド ラインを備えて
います図 33 に USB 3.0 ケーブルのアーキテクチャを示してい
ます。表 4 でこれらラインを説明しています。
図 33. USB 3.0 ケーブル アーキテクチャ
出典:http://usb.org
USB 3.0 の物理インターフェースは USB 2.0 接続に加え、
SuperSpeed 転送用の 2 つの差動ペアとグラウンドで構成さ
れています。これにより、USB2.0 に対する下位互換を実現し
ています。
A.2. 電気的インターフェース
USB 3.0 のピン配置は USB 2.0 とは異なります USB 2.0 に
必要な VBUS、D–、D+、GND ピンに加え、USB 3.0 にはさら
に 5 つのピン、すなわち 2 つの差動ペアおよび 1 つのグラウ
ンド (GND_DRAIN) を備えています。これら 2 つの差動ペア
は、SuperSpeed データ転送用で、デュアル シンプレックスの
SuperSpeed 信号方式をサポートしています。GND_DRAIN
ピンは、ドレイン線終端、信号堅固性の管理、および EMI 性能
に用います。表 3 は、9 個のピンの説明です。
www.cypress.com
出典:http://usb.org
文書番号: 001-85370 Rev. *B
28
EZ-USB® FX3™入門
表 4. USB 3.0 ケーブルの説明
名称
USB 3.0 電源 B プラグおよびレセプタクル
説明
PWR
VBUS
赤
UTP_D-
USB 2.0 D-
白
UTP_D+
USB 2.0 D+
緑
グラウンド
電源ドレイン用グラウンド
黒
SDP1-
シールド差動ペア 1
青

SDP1_Drain
SDP1 用ドレイン線
SDP2-
シールド差動ペア 2

USB 3.0 マイクロ AB および USB 3.0 マイクロ A コネクタ
USB 3.0 標準 A プラグおよびレセプタクル
USB 3.0 マイクロ AB レセプタクルは、キーイングが異な
る以外、USB 3.0 マイクロ B レセプタクルに似しています。
USB 3.0 マイクロ A プラグ、USB 3.0 マイクロ B プラグ、
USB 2.0 マイクロ A プラグ、USB 2.0 マイクロ B プラグの
差し込みが可能です。USB 3.0 マイクロ AB レセプタクル
は、ホストま たは デバイス の いずれか とし て機能 する
OTG 製品でしか使用できません。USB 3.0 マイクロ-AB
レセプタクルの他のあらゆる使用は禁止されています。
USB 3.0 標準 A コネクタは、SuperSpeed 規格では
ホスト コネクタとして定義されています。これは USB 2.0
標準 A コネクタのデザインに基づいていますが、追加の
SuperSpeed 信号を備えています。USB 3.0 標準 A レセ
プタクルは、USB 3.0 標準 A プラグまたは USB 2.0 標準
A プラグのどちらにも差し込み可能です。USB 3.0 対応の
標準 A コネクタには、識別を容易にするために、個別の
色を使用します。図 33 に推奨のカラー コーディングを
示します。
USB 3.0 マイクロ-A プラグは、キーイングおよび ID ピン
接続が異なる以外は USB 3.0 マイクロ-B プラグに類似し
ています。USB 3.0 マイクロ-A プラグ、USB 3.0 マイクロAB レセプタクル、USB 3.0 マイクロ-B レセプタクルおよび
プラグは、USB 3.0 マイクロコネクタ ファミリに属します。
これらインターフェースはキーイングのみ異なります。
USB 2.0 マイクロ-A プラグと同様、USB 3.0 マイクロ-A プ
ラグは OTG アプリケーションのみを対象にして定義され
ています。
SDP2_Drain
紫
オレンジ
SDP2+
SDP2 用ドレイン線
USB 3.0 仕様では、以下のコネクタも定義します。

USB 3.0 マイクロ B プラグおよびレセプタクル
USB 3.0 マイクロ B コネクタは、小型ハンドヘルド デバイ
ス向けに使用されると定義されています。
黄
SDP1+

USB 3.0 電源-B コネクタは、USB 3.0 デバイスが外部電
源なしで USB アダプタに電源を供給するためのものです。
フォーム ファクタでは USB 3.0 標準-B コネクタと同じです
が、さらに 2 本のピンを備えています。一本 (DPWR) は
電源に、もう一本 (DGND) はグランドに使用されます。
色
USB 3.0 標準 B プラグおよびレセプタクル
USB 3.0 標準 B コネクタは、外部ハードディスク ドライブ
やプリンタなどの大きくて据え置きされたペリフェラル向け
に使用されると定義されます。USB 3.0 標準 B レセプタク
ルは、USB 3.0 標準 B プラグまたは USB 2.0 標準
B プラグのどちらにも差し込み可能です。USB 3.0 標準
B プラグを USB 2.0 標準 B レセプタクルに差し込むこと
はできません。
www.cypress.com
文書番号: 001-85370 Rev. *B
29
EZ-USB® FX3™入門
A.4. USB 3.0 と 2.0 の比較
USB 3.0 は、USB 2.0 および 3.0 をサポートするデュアル バス アーキテクチャを持っています。以下の表では、USB 3.0 と USB 2.0
の主な違いを記載します。
表 5. USB 3.0 と USB 2.0 間の比較表
機能
データ転送レート
USB 2.0
USB 3.0
480Mbits/s (ハイスピード)
5.0Gbits/s (スーパースピード)
12Mbits/s (フルスピード)
480Mbits/s (ハイスピード)
1.5Mbits/s (ロースピード)
12Mbits/s (フルスピード)
1.5Mbits/s (ロースピード)
データ インターフェース
ケーブル信号カウント
半二重
デュアル シンプレックス
二線差動信号方式
四線差動信号方式
4 つの信号:
9 つの信号:
- 2 つは USB 2.0 データ (D、D–) に使用
- 4 つはスーパースピード データに使用
- 2 つは VBUS と GND に使用
- 2 つは USB 2.0 データ (D、D–) に使用
- 3 つは VBUS と GND に使用
バス トランザクション
プロトコル
ホスト主導型
ホスト主導型
ポーリング トラフィック フロー
非同期通知
すべてのダウンストリーム デバイスに放出
されたパケット
バルク送信に可能な複数のデータ ストリーム
対象のデバイスだけに配線されたパケット
データストリームの多重化なし
電源管理
2 つのモード
4 つのモード
- アクティブ
- アクティブ (U0)
- サスペンド
- アイドル、高速 (U1)
- アイドル、低速 (U2)
- サスペンド、低速 (U3)
バス電源
ポート状態
低電力デバイス: 100mA
低電力デバイス: 150mA
高電力デバイス: 500mA
高電力デバイス: 900mA
ポート ハードウェアが接続を検出
ポート ハードウェアが接続を検出し、ポートを SuperSpeed
データ通信可能な動作状態に移行させる
ポートを有効な状態へ遷移するために、シ
ステム ソフトウェアがポート コマンドを使用
最大ケーブルの長さ
5 メートル
電気的仕様に基づいている
実際には、26AWG 銅の 3 メートル
データ転送タイプ
www.cypress.com
4 データ転送タイプ: 制御、バルク、割り込
み、およびアイソクロナス
SuperSpeed 能力を持つ USB2.0 タイプ
バルクはストリーム機能を備えている
文書番号: 001-85370 Rev. *B
30
EZ-USB® FX3™入門
付録 B
B.1. Windows における FX3 DVK ドライバーインストール
Windows コンピュータに FX3 DVK キットをインストールしていない場合、コンピュータに DVK を初めて接続する時次のメッセージが
表示されます。
図 34. ドライバーがインストールされていない場合の Windows メッセージ
メッセージ ボックスを閉じて、Windows のデバイス マネージャに移動します。これを行うには、Windows の Start ボタンをクリックし、
右側の列の Computer を右クリックし、システム情報を表示するために Properties を選択します。その後、左側の列の上部にある
Device Manager をクリックします。
図 35. Windows の Device Manager
WestBridge を右クリックして Browse my computer for driver software を選択します。64 ビットの Windows 7 マシンでは、ドライ
バーが C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.2\driver\win7\x64 にあります。ユーザーの SDK のバージョン番号が
1.2 以降でも可。
「Device Manager」ウィンドウが WestBridge エントリを削除し、SDK 基板をサイプレスの USB ブートローダ (トップ エントリ) として識
別する必要があります。
www.cypress.com
文書番号: 001-85370 Rev. *B
31
EZ-USB® FX3™入門
図 36. ドライバー インストール後の Device Manager 内の USB ブートローダ
www.cypress.com
文書番号: 001-85370 Rev. *B
32
EZ-USB® FX3™入門
付録 C
C.1. EZ-USB FX3 DVK の入手
開発キットを入手するには、EZ-USB FX3 Development Kit のホームページにアクセスしてください。本アプリケーション ノートで説明さ
れる例では、FX3 ファームウェアが USB ホストからダウンロードされるため、USB からの起動ができるように FX3 DVK 基板を構成
する必要があります。
USB ブートを選択するには、図 37 に示すように 3 個のジャンパと 4 個のスイッチを必ず設定してください。これらのジャンパ設定は、
赤い長方形または円形でハイライトされています。他の全ての DVK ジャンパ設定については、DVK ユーザー ガイドを参照してください。
FX3 DVK 基板は、外部電源から電源供給される (セルフパワー型) か、または USB ケーブルから電源供給されます (バスパワー型)。
便宜のために、本例はバスパワー型であり、USB ホストに接続するのに USB ケーブルだけが必要です。図 37 に示された右下の
ジャンパはこのモードを選択します。その他のジャンパとスイッチは、USB を介してダウンロードされた FX3 コードに基板を設定します。
電源スイッチ (左下) は、DVK 基板を速くホスト PC から切断して再接続する便利な方法です。
図 37. USB からの起動のための FX3 DVK 基板設定
www.cypress.com
文書番号: 001-85370 Rev. *B
33
EZ-USB® FX3™入門
C.2. FX3 DVK 入門
サイプレスの FX3 DVK は、作業開始するために必要なハードウェアを提供します。プリント基板は、FX3 に必要なクロックおよび電圧
を全て提供し、同時に I/O 電圧を設定可能にします。DVK は、外部デバイスと接続するための高速なコネクタを備えています。DVK は
2
2
さらに様々な起動モードを実装します。I C EEPROM ソケットを I C EEPROM からのプログラムと起動の試験に使用できます。基板搭
載 SPI フラッシュ チップにより、SPI バスを介したプログラミングと起動が可能になります。SDK に同梱されるサイプレスのプロジェクト
例は DVK 基板を使ってこれらのデバイスをプログラムするファームウェアを持っています。DVK をまだお持ちでない場合、こちらから
入手できます。
FX3 DVK 基板の外部にある、ハードウェアの 2 つの重要な部品は、USB 3.0 ホスト (通常、PC である) と GPIF II インターフェースに
接続する外部デバイス (イメージ センサー、FPGA など) です。FX3 DVK の使用法の詳細は、DVK のユーザー ガイドを参照して
ください。図 38 に、FX3 DVK 基板の画像を示し、また吹き出しでその重要な領域も示します。
図 38. FX3 DVK 基板
Boot Mode
Switch
Reset
Button
EEPROM
Socket
SPI Header
I2S Header
Reset Signal
Jumper
I2C EEPROM
Address Selection
Switch
CTRL-4
Signal Jumper
RS-232
Connector
Crystal Voltage
Selection
Boot Mode Jumpers
UART/SPI
Selection Jumper
GPIF II Connector
USB Receptacle
FX3 Device
Debug Mictors
I2C Connection
Jumpers
OTG Host Mode
Selection Jumper
Bus/Self-Powered Mode
Selection Jumper
5-V Power Jack
JTAG Header
Voltage Selection
Jumpers
On/Off Toggle
Switch
表 6 に、DVK 基板上に搭載されている主なジャンパとその初期設定を示します。
www.cypress.com
文書番号: 001-85370 Rev. *B
34
EZ-USB® FX3™入門
表 6. FX3 DVK 基板のジャンパ
ジャンパ/スイッチ
ジャンパで接続されるピン
(初期設定)
機能 (初期設定)
J101
1と2
GPIO_46=UART_RTS
J102
1と2
GPIO_47=UART_CTS
J103
1と2
GPIO_48=UART_TX
J104
1と2
GPIO_49=UART_RX
J136
3と4
VIO1 (3.3V)
J144
3と4
VIO2 (3.3V)
J145
3と4
VIO3 (3.3V)
J146
3と4
VIO4 (3.3V)
J134
4、5
VIO5 (3.3V)
J135
2と3
CVDDQ (3.3V)
J143
1と6
VBATT (2.5V)
•
SW25 を使用した PMODE0 ピン状態 (オン/オフ) 選択
J96 & SW25
2と3
•
SW25.1 = オフ
•
SW25 を使って PMODE0 ピンの状態 (オン/オフ) を選
択。
SW25.2 = オフ
J97&SW25
2と3
•
J98
1と2
PMODE2 ピンが開放
J72
1と2
リセット
J42
未インストール
GPIO_58=I2C_SCL
J45
未インストール
GPIO_59=I2C_SDA
J100
1と2
GPIO_21=CTL4
C.3. FX3 DVK 向けの JTAG デバッガー
Segger J-Link プローブは FX3 SDK に勧められる JTAG プローブです。このプローブは Segger J-Link ARM GDB サーバと共に
デバッグに使用されます。Eclipse IDE は、対象のファームウェアをデバッグするために、J-link GDB サーバーに接続されます。
Eclipse を GDB サーバーで動作させるために、J-link 用のデバッグ コンフィギュレーションを作る必要があります。詳細は、「FX3 プロ
グラマー マニュアル」の第 12 章を参照してください。
デバッグするためには、Olimex ARM-USB-OCD プローブなど他の JTAG プローブを使用することができます。この場合、OpenOCD
ツールは GDB 接続のために使用することができます。詳細は、「FX3 プログラマー マニュアル」の第 12 章を参照してください。
www.cypress.com
文書番号: 001-85370 Rev. *B
35
EZ-USB® FX3™入門
改訂履歴
®
文書名: EZ-USB FX3™入門 - AN75705
文書番号: 001-85370
版
ECN
変更者
発行日
**
3843790
KHIG
12/14/2012
これは英語版 001-75705 Rev. *A を翻訳した日本語版 001-85370 Rev. **です。
*A
4336698
HZEN
04/08/2014
これは英語版 001-75705 Rev. *C を翻訳した日本語版 001-85370 Rev. *A です。
*B
4874834
HZEN
08/06/2015
これは英語版 001-75705 Rev. *E を翻訳した日本語版 001-85370 Rev. *B です。
www.cypress.com
変更内容
文書番号: 001-85370 Rev. *B
36
EZ-USB® FX3™入門
ワールドワイドな販売と設計サポート
サイプレスは、事業所、ソリューション センター、メーカー代理店および販売代理店の世界的なネットワークを持っています。お客様の
最寄りのオフィスについては、サイプレスのロケーション ページをご覧ください。
PSoC®ソリューション
製品
車載用
cypress.com/go/automotive
psoc.cypress.com/solutions
クロック&バッファ
cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
インターフェース
cypress.com/go/interface
サイプレス開発者コミュニティ
照明 & 電源管理
cypress.com/go/powerpsoc
メモリ
cypress.com/go/memory
PSoC
cypress.com/go/psoc
テクニカル サポート
タッチ センシング
cypress.com/go/touch
cypress.com/go/support
USB コントローラー
cypress.com/go/usb
ワイヤレス/RF
cypress.com/go/wireless
コミュニティ | フォーラム | ブログ | ビデオ | トレーニング
PSoC はサイプレス セミコンダクタ社の登録商標であり、PSoC Creator は同社の商標です。本書で言及するその他すべての商標または登録商標は、それぞれ
の所有者に帰属します。
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2012-2015. 本文書に記載される情報は、予告なく変更される場合があります。Cypress Semiconductor Corporation
(サイプレス セミコンダクタ社) は、サイプレス製品に組み込まれた回路以外のいかなる回路を使用することに対して一切の責任を負いません。サイプレス セミコン
ダクタ社は、特許またはその他の権利に基づくライセンスを譲渡することも、または含意することもありません。サイプレス製品は、サイプレスとの書面による合意
に基づくものでない限り、医療、生命維持、救命、重要な管理、または安全の用途のために使用することを保証するものではなく、また使用することを意図したもの
でもありません。さらにサイプレスは、誤作動や故障によって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネント
としてサイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆる
リスクを負うことを意味し、その結果サイプレスはあらゆる責任を免除されることを意味します。
このソースコード (ソフトウェアおよび/またはファームウェア) はサイプレス セミコンダクタ社 (以下「サイプレス」) が所有し、全世界の特許権保護 (米国およびそ
の他の国)、米国の著作権法ならびに国際協定の条項により保護され、かつそれらに従います。サイプレスが本書面によりライセンシーに付与するライセンスは、
個人的、非独占的かつ譲渡不能のライセンスであり、適用される契約で指定されたサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカ
スタム ソフトウェアおよび/またはカスタム ファームウェアを作成する目的に限って、サイプレスのソース コードの派生著作物をコピー、使用、変更そして作成す
るためのライセンス、ならびにサイプレスのソース コードおよび派生著作物をコンパイルするためのライセンスです。上記で指定された場合を除き、サイプレスの
書面による明示的な許可なくして本ソース コードを複製、変更、変換、コンパイル、または表示することはすべて禁止します。
免責条項: サイプレスは、明示的または黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性または特定目的への適合性の黙
示的な保証が含まれますが、これに限定されません。サイプレスは、本文書に記載される資料に対して今後予告なく変更を加える権利を留保します。サイプレス
は、本文書に記載されるいかなる製品または回路を適用または使用したことによって生ずるいかなる責任も負いません。サイプレスは、誤作動や故障によって使
用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレス製品を使用することを許可していません。生命
維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任
を免除されることを意味します。
ソフトウェアの使用は、適用されるサイプレス ソフトウェア ライセンス契約によって制限され、かつ制約される場合があります。
www.cypress.com
文書番号: 001-85370 Rev. *B
37