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