2380072_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2380072_ja-JP

2380072_ja-JP

i.MX8MP: TP2860エンコーダチップを搭載したCSI0(連続クロックモード)

こんにちは、

IMX8MPベースのプラットフォームにTP2860ビデオエンコーダーを統合しようとしていますが、ビデオをキャプチャすることができません。CSISは受信するMIPIデータストリームと同期していないようです。

プラットフォーム:VARカスタムボード上のVariscite DART-MX8M-PLUS
カーネル: linux-imx 6.6.52 (NXP BSP、imx8-mipi-csi2-sam ドライバー)、yocto ビルド
カメラ:TechPoint TP2860 MIPIエンコーダ(AHD/TVI → MIPI-CSI2ブリッジ)、出力MIPIクロック:297MHz(実測値)
インターフェース: CSI0 (mipi_csi_0 @ 0x32e40000)、2レーン、500 Mbps/レーン、FHD30 (1920x1080@30)
パイプライン: TP2860 -> MIPI D-PHY -> CSIS -> (MediaMix Gasket) -> ISI0 -> /dev/video2

v4l2パイプラインは問題ないようです(添付のpipeline_info.txtを参照)。

関連する(フラット化された)デバイスツリー情報はdevicetree.txtに添付されています。


DPHYSTATUSは0xC2(すべてのレーンがHS)を報告しますが、
CSISフレーム開始カウンタは常にゼロです(実際、mxc-mipi-csi2.0カウンタはすべてゼロです)。

NXPのAN13857を読みましたが、いくつか質問があります。

  • TP2860は、バースト間(連続クロックモード)でMIPIクロックレーンをHSに維持します。これは、ドライバのs_stream有効化の前後両方でCSIS DPHYSTATUS = 0xC2となることで確認できます。

=> CSISレジスタダンプ(CSISベース0x32e40000):
CSIS_CMN_CTRL [0x04] = 0x00004105 (ENABLE=1、LANE_NR=1->2レーン、HDR_MODE=0)
CSIS_DPHYCTRL [0x24] = 0x13000007 (hs_settle=0x13、D-PHY有効)
CSIS_DPHYSTATUS [0x20] = 0x000000C2 (HSCLK=1、HSDAT1=1、STOPSTATE_CLK=0)
CSIS_INTSRC [0x14] = 0x00000000 (割り込みは発生していません)

=> CSIS_DPHYSTATUS[0x20] = 0x000000C2
ビット7:HSCLK = 1(HSのクロックレーン)
ビット6:HSDAT1 = 1(HSのデータレーン1)
ビット1:ULPS_CLK = 0(ULPSではない)
ビット0:STOPSTATE_CLK = 0(LP-11停止状態では決して0にならない)

これはNXPのAN13857警告と一致します。
i.MX 8MM、 i.MX 8MN、およびi.MX 8MPでは、接続されたカメラがLP状態で動作する必要があります。
Rx DPHYを有効にする前に。しかし、カメラが連続クロックモードで動作する場合、クロック
レーンは常にHSモードになっている可能性があります。この場合、Rx DPHY は HS モードを検出せず、
誤って停止状態またはULPS状態にとどまっている。


TP2860レジスタのI2C経由のストリーミング時の読み出し:
0x40 -> 0x08 (s_streamの後にドライバによって選択されたMIPIページ)
0x02 -> 0x7d (MIPI_EN0=1、全ビットがセット)
0x28 -> 0x00 (STOP_CLK=0、ULPM=0)
0x10 -> 0x20 (MIPI TX有効、リセット状態ではない)
0x29 -> 0x00 (データレーン停止/ULPS: なし)

アナログエンコーダーの経路を除外するために、TP2860の内部BT.1120テストパターンを有効にしてみました。

0x40 -> 0x08 (MIPIページ)
0x22 -> 0x80 (TP_ENA=1: アナログデコーダをバイパスし、デジタルパターンを送信)

しかし、それでは状況は改善しない。


TP2860の設定は以下のとおりです。

  1. 0x02=0x3d、0x03=0x35、0x04=0x35 を書き込む <-- MIPI_ENx=0 (レーンオフ)

  2. タイミング: 0x2B=0x09 (T_PREP リセットデフォルト)、0x2C=0x0a

  3. デコーダPLLリセット: REG 0x06 |= 0x80、msleep(10)

  4. MIPI PLLリセット: REG 0x14 |= 0x80、msleep(10)、deassert

  5. msleep(50) (PLLロックのための拡張セトル)

  6. 0x02=0x7d、0x03=0x75、0x04=0x75 <-- レーンを有効化(LP→HSをクリーンアップ)


質問:

  • iMX8MP Rx D-PHYをカメラと連続クロックモード(STOPSTATE_CLKが常に0)で使用するための、サポートされているBSPメカニズムはありますか?CSIS / D-PHY は
    HS-RXイネーブルをアサートする前にクロックレーン上のLP-11を監視することに依存しないモードはありますか?

  • iMX8MPにおいて、連続クロックMIPI-CSI2ソースを使用したCSIS動作に関して、AN13857以外に既知の正誤表やアプリケーションノートはありますか?

  • TP2860エンコーダーチップを搭載した同じハードウェアは、Boundary Devices i.MX8 MQセットアップでも動作します。

どんなご支援でも大変ありがたく思います。


グラフィックスとディスプレイi.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlusi.MX 8M | i.MX 8M Mini | i.MX 8M NanoLinuxYocto Project
Tags (1)
No ratings
Version history
Last update:
Friday
Updated by: