4 Replies Latest reply on Sep 25, 2019 7:53 AM by TeMa_2997106

    AN75779のサンプルデザインのフレームレートについて

    TeMa_2997106

      AN75779のデザインを用いてUVCのイメージセンサインタフェースを構築しようとしていますが、

      現在、センサからの出力がPC側で表示できておりません。

      アプリケーション上(VirtualDubやAmCap)を開くと、デバイスの選択はFX3と表示されますが、

      画像としてはまったく表示されず、Blankのままです。

       

      このデザインにおいては、USB3.0でのインタフェース時、フレームレートは30fps固定でしょうか。

       

      いま使用しているセンサの出力が22fps固定なのですが、フレームレートの問題でNGとなっている

      のであればFirmを見合う形で変更したいのですが、可能なのでしょうか。

      それとも、ISP側でフレームレート変換が必要でしょうか。

        • 1. Re: AN75779のサンプルデザインのフレームレートについて
          HirotakaT_91

          FX3でのインタフェース時、フレームレートはUVCディスクリプタで設定が可能です。

           

          cyfxuvcdscr.c 内でConfiguration Descriptor がCyFxUSBSSConfigDscr (USB3.0の場合)として定義されており、 "Class specific Uncompressed VS frame descriptor" にて、AN75779のデフォルトですと30 fpsで設定されています。

          line 849に書かれた

          0x15, 0x16, 0x05, 0x00,        /* 30fps */

          がDefaultのフレームレートを30fpsにする、という設定です。値はフレームのインターバルが書かれています。

           

          例として、VGAで22fpsを表示する "Class specific Uncompressed VS frame descriptor" を以下に記載します。

          /* Class specific Uncompressed VS Frame descriptor for VGA*/

                   0x1E,                           /* Descriptor size */

                   0x24,                           /* Descriptor type*/

                   0x05,                           /* Subtype: uncompressed frame I/F */

                   0x01,                           /* Frame Descriptor Index */

                   0x01,                           /* Still image capture method 1 supported */

                   0x80,0x02,                      /* Width in pixel: 640-VGA */

                   0xE0,0x01,                      /* Height in pixel 480-VGA */

                   0x00,0x00,0x65,0x04,            /* Min bit rate bits/s. 640x480x15x16 (bitrate = width x height x frame rate x 16bit/pixel) */

                   0x00,0x00,0x94,0x11,            /* Max bit rate bits/s. 640x480x60x16 */

                   0x00,0x60,0x09,0x00,            /* Maximum video or still frame size in bytes(Deprecated) 640x480x2 bytes */

                   0x91,0xEF,0x06,0x00,            /* Default Frame Interval 22 fps*/

                   0x01,                           /* Frame interval(Frame Rate) types: Only one frame interval supported */

                   0x91,0xEF,0x06,0x00,            /* Minimum Frame Interval 22 fps */

           

          フレームインターバルの早見表を以下に示します:

          Frame interval setting reference table

          15 fps = 666666 ns (frame interval) = 0x2A,0x2C,0x0A,0x00

          22 fps = 454545 ns (frame interval) = 0x91,0xEF,0x06,0x00

          30 fps = 333333 ns (frame interval) = 0x15,0x16,0x05,0x00

          60 fps = 166666 ns (frame interval) = 0x0A,0x8B,0x02,0x00

          120 fps = 83333 ns (frame interval) = 0x85,0x45,0x01,0x00

           

          Class specific VS frame descriptorの設定については、必要に応じて添付のVideo Device Examplesの"2.3.5.1.4 Class-specific VS Frame Descriptor"もご参照いただければと思います。本添付資料はUSB-IFよりダウンロード可能です。

           

          よろしくお願い致します。

          Hirotaka Takayama

          • 2. Re: AN75779のサンプルデザインのフレームレートについて
            TeMa_2997106

            迅速なご回答ありがとうございます。

             

            フレームレートの設定ですが、DefaultとShortestと2つあり、例えば上記の60fpsの設定ですと15~60fpsの信号であれば受けられる、とも読み取れますが、実際はDefaultの値の固定値なのでしょうか。

             

            30fpsの設定で22fpsが受けられない(つまり画像が出ないのはここのフレームレートの設定が間違っている)のか否かの確認をしたい次第です。

             

            以上です。

            • 3. Re: AN75779のサンプルデザインのフレームレートについて
              HirotakaT_91

              前述の回答に記述したVS Frame Descriptorの例を、22fpsで表示する用に変更しました。

              ISP側も22fpsで、FX3のUVCディスクリプタでも22fpsであれば、フレームレートによる問題は発生しないと考えられます。

               

              また、確認した限り、Minimum Frame Intervalの設定に依存するように見えます。そのため、Minimum Frame Intervalが22fpsならば22fpsで送られます。Minimum Frame IntervalとDefault Frame Intervalを同じ値に合わせてご利用いただくのが良いかと存じます。

               

              よろしくお願い致します。

              Hirotaka Takayama

              • 4. Re: AN75779のサンプルデザインのフレームレートについて
                TeMa_2997106

                コメントありがとうございます。

                了解しました。