FX2LP とイメージセンサの接続 - Community Translated (JA)

Version 3

    Community Translated by  MoTa_728816          Version: *A

     

    質問:

    ハードウェア割込みとソフトウェア割込みの処理に違いはありますか?

     

    回答:

    ハイスピードUSBコントローラ FX2LP CY7C68013A

    1 のように(ベンダ固有モードで)イメージセンサアプリケーションに使用できます。

     

    1 FX2LPとイメージセンサの接続

    1

    ==============

    IMGA SENSOR > イメージセンサ

    I2C Maser > I2C マスタ

    Configuration Registers > 設定レジスタ

    ==============

     

    FX2LP ピンの説明:

    CLKOUT: FX2LP はイメージセンサに 12-MHz, 24MHz, または48MHz のクロックを供給できます。

     FX2LP をクロックソースとして使用することによりイメージセンサ用に追加のクロックソースを用意する必要がなくなります。

    IFCLK: FD上のデータ転送は IFCLK に同期されます。

    SLWR: FX2LP はスレーブFIFOモードで使用されます、データをエンドポイントバッファに書込むためには SLWR をアサートする必要があります。

    PA0: この GPIO はフレームの開始/終了を監視用に使用できます。PA0 は通常のGPIOとしても、VSYNC監視用の割込みピンとしても使用できます。

    FD[7:0]: FX2LP ポート B 8ビットのパラレルインターフェースとして使用する必要があります。もしイメージセンサのデータラインが8本より多い (16本以下の) 場合には、上位8本のデータラインを接続して、残りのラインをフローティングにしておくと良いです。もし8本より多い (16本以下の)データライン全てを使用されたい場合、ポートB ポートD を合わせて 16ビットのパラレルビットインターフェースとして使用してください。この場合、FX2LP はピクセル毎に(データラインが 8本より多く 16本より少ない場合には余剰なビットを追加して) 2バイトのデータを送ります。ピクセルのデータではない余剰なビットはホストアプリケーションで取り除く必要があります。

    I2C: FX2LP I2Cマスタとして機能します。I2Cインターフェースを使用してイメージセンサのレジスタ設定を行うことができます。

     

    イメージセンサ ピンの説明:

    XCLK: クロック入力ピン。もしイメージセンサが 12MHz, 24MHz, または48MHz のクロックに対応していない場合、別途クロックソースを用意する必要があります。

    PIXCLK: イメージセンサのデータは PIXCLK に同期されます、このピンは FX2LP IFCLK に接続してください。

    VSYNC: フレームの開始と終了を示すフレームの有効信号です。

    HSYNC: データライン上のデータが有効データであることを示すラインの有効信号です。

    D[7:0]: イメージデータを転送するデータ出力ラインです。

    FX2LP FIFOADR0 FIFOADR1 ピンは使用されるエンドポイントバッファに合わせて論理ハイ、論理ローに接続する必要があります。

     

    以降のフローチャートでアプリケーションの概要を示します。

     

    ホストアプリケーションフローチャート

     

    ホストアプリケーションフローチャート中

    HOST Application: ホストアプリケーション

    START: 開始

    Device detected: デバイスを検出?

    Send vendor command to configure the registers of image sensor:

    イメージセンサのレジスタ設定用ベンダ固有命令を送信

     

    1) SEND vendor command to set variable X = TRUE :

    1) 変数 X=TRUE のベンダコマンド送信

     

    2) SEND IN request to receive 512Bytes of data :

    512バイトのデータを受信する為に IN リクエストを送信

     

    KNOWN pattern in the received packet? :

    受信されたパケットは既知のパターンを含むか?

     

    Send IN request to receive data of length = FRAME SIZE :

    データ長 = フレームサイズとなるデータを受信する為に IN リクエストを送信

     

    Display the image :

    イメージを表示

     

    STOP? :

    停止?

     

    STOP :

    停止

     

    FX2LP プロジェクトフローチャート

     

    FX2LP プロジェクトフローチャート中

    START : 開始 (又は、スタート)

     

    TD_INIT() : TD_INIT()  

     

    Configure IN endpoint : Manual mode, Quad buffer :

    IN エンドポイントを マニュアルモード、クォッドバッファに設定

     

    CONTROL TRANSFER? : 送信制御?

     

    VENDOR COMMAND? : ベンダ固有コマンド?

     

    Respond to STANDARD command: 標準コマンドに応答

     

    CONFIGURE IMAGE SENSOR REGISTERS OR SET X=TRUE BASED ON VERDOR COMMAND :

    イメージセンサのレジスタ設定  またはベンダ固有コマンドによる X=TRUE 設定

     

    infinite loop: 無限ループ

     

    X=TRUE & PA0 is high? : X=TRUE かつ PA0がハイ?

     

    CONFIGURE IN endpoint: MANUAL MODE:

    IN エンドポイントをマニュアルモードに設定

     

    BUFFER and commit 512 byte (generated by CPU with known pattern) to HOST:

    (CPU によって既知のパターンから生成された) 512バイトをバッファしてホストにコミットする。

     

    Configure IN endpoint: Auto mode :

    IN エンドポイントをオートモードに設定

     

    TD_POLL() : TD_POLL()

     

    注:フローチャート上の (1) および (2) は単なる参照ポイントです。

    注: FX2LP はヘッダとフッタを要求する UVC クラスはサポートしていません。

    8051 CPU はフレーム間にヘッダとフッタを挿入できるほど高速ではありません。

    その為、もし FX2LP UVC クラスを実装したい場合には外付け FPGA を使う必要があります。

    そのFPGAがフレーム間にヘッダとフッタを挿入後、データを FX2LP に渡す必要があります。

     

    FX2LP を使用して UVC クラスを実装したサンプルプロジェクトは https://community.cypress.com/docs/DOC-14406 をご参照ください。

    サンプルプロジェクトを入手するためには http://www.cypress.com/support にて技術サポートケースを作成してください。