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

MIPI CSI-2 RX Subsystem と MIPI D-PHY RX IPのはじめてデバッグ手順

karnanl
Xilinx Employee
Xilinx Employee
4 0 1,578

こんにちは、

MIPI CSI-2 RX Subsystem, MIPI D-PHY RX IPを使用されるお客様から

IPが期待通り動作しない場合、何を確認すれば良いか分からないと連絡を受けております。

まずはMIPI IPの各ドキュメントに実機デバッグに関する情報があります。

PG232には “Appendix B” のHardware Debug
PG202には “Appendix B” のHardware Debug

PICT00.png

に基本確認項目が記載されており、最初の問題切り分けには役立つと思います。

せひ一度はご確認ください。

上記のドキュメント (PG232/PG202) “Appendix B”の補足するために、今回のブログを作成致しました。

3つのカテゴリーに分けてデバッグ確認項目を紹介したいと思います。

  (A) 初期化の問題
  (B) 物理的接続の問題
  (C) 設定/互換性の問題

 

(A) 初期化の問題

初期化時の問題はまずは以下の3つの信号のステータスを確認して頂きたいです。

PICT02.png

PLL_LOCK = 1 になっていますか?

PLL_LOCK = 1の場合は、内部PLLがロックしている状態なので問題はありません。
PLL_LOCK = 0の場合は dphy_clk_200M周波数が200MHzでない可能性があり、デザイン上のクロック設定や外部PLL ICが出力するクロック周波数をを再度確認してください。

Clocking.png

INIT_DONE = 1 になっていますか?

INIT_DONE = 1の場合初期化シーケンスが正しく実行されたことを意味しています。
INIT_DONE = 0の場合はMIPI IP初期化時、dphy_clk_200Mが不安定状態になっていないか?周波数が200MHzでない可能性があり?また初期化される際にクロック信号が停止していないか?

 

SYSTEM_RST_OUT = 0 になっていますか?

SYSTEM_RST_OUT=1の場合 MIPI D-PHY IPの初期化が完了していない可能性があります。
MIPI IPはリセットされたままでしょうか? または PG232/PG202に記載されたリセットシーケンスを実施されていますか?
RESET.png

MIPI IPのレジスタインターフェース
MIPI IPのレジスタ値を読み出すことで様々な情報を得ることができ、基板デバッグする際に各MIPI IPのレジスタ値の情報を把握することは欠かせません。
以下の図面で示したように、GUIでMIPI CSI-2 RX IP生成する際にまずは “Register Interface”をenableにすることを推奨致します。(基板上で MIPI IPが期待通りに動作したと確認されてから, “Register Interface” をdisableしても問題ありません)

Register.png

video_out_tvalid=0
MIPI CSI-2 RX IPが正しくリセットされない場合、video_out_tvalidの出力がlowのままになっている可能性もあります。MIPI CSI-2 RX IPが正しくリセットされても、video_out_tvalidの出力がlowのままの場合は、MIPI D-PHY RXがHS(High-speed)モードに入らないと考えらえます。
MIPI D-PHY RX レジスタを確認すると良いでしょう。CL_STATUS/DL_STATUSレジスタを何回かサ読み出しして頂き、クロックレーンと各データレーンの STOP_STATEとMODEを確認することでHSモードに入ったかを確認することができます。
STOP_STATE_MODE.png

また、PKT_CNT(=Packet Counter)というDL_STATUSレジスタのビット[31:16]を確認することで、MIPI TX対向側から送信されたHS packetが正しく受信することが確認できます。
MIPI RX IPが複数のデータレーン構成の場合、全データレーンのPKT_CNTを確認することが重要です。あるデータレーンのPKT_CNTの数値だけ、他のデータレーンの数値よりも小さい場合、そのデータレーンに不具合が発生する可能性があります。
PKT_CNT.png

RESETに関する注意

 UltraScale+ デバイスをご使用の場合、同じHP IO bankに複数のMIPI IPを実装されている場合があるかと思います。その際、すべてのMIPI IPに対して同時にリセット解除して頂く必要があります。詳細内容に関してはAR#71374の説明をご確認ください。

(B) 物理的な接続の問題

1. MIPI D-PHY RX IPでは差動信号のP/N swap機能がないため、ハードウェア上で MIPI D-PHYのクロックレーンとデータレーンの差動信号を正しく接続することが不可欠です。
P/N信号が逆に接続されてしまうと、MIPI D-PHY RX IPがLP mode⇒HS modeへの移行シーケンスを検出することが出来ないので、常にLPモードに入っており、HSモードに移行することができません。

CLOCK_DATA_LP_to_HS.png

2. データレーンのスワップ(Data Lane Swap)
データレーンのスワップ発生した時、 MIPI D-PHY RXのPKT_CNT(packet counterレジスタ)とMIPI CSI-2 RXのISR(Interrupt Status Register)の挙動を観測することで確認できます。

ISR.png

MIPI D-PHY RXのすべてのデータレーンのpacket counterが正常に動作しているものの、
MIPI CSI-2 RXのISR(Interrupt Status Register)で以下のビットがhighにアサートされる可能性があります。
   Bit[11] : ECC 2-bit error
   Bit[10] : ECC 1-bit error
   Bit[8]  : Unsupported Data Type

(C) 設定/互換性の問題
MIPI CSI-2 RX/MIPI D-PHY RXのIP設定は TXデバイス (またはセンサやカメラ)設定に合わせて使用して頂く必要がございます。
GUI.png

  1. LINE RATE設定

 弊社推奨として、 Sensor (TX側)のline-rateに合わせて、MIPI RX GUIを設定して頂きたいです。以下のARではMIPI D-PHY RXのラインレート設定に対して、どのぐらいのTX信号のラインレートを受信できるか、いわゆるRXラインレート設定のマージンという説明が記載されております。
https://japan.xilinx.com/support/answers/69530.html

2.データレーン数の設定

MIPI RX側のデータレーン数の設定も TX側の設定に合わせて使用して頂く必要がございます。
例えば、センサー側のデータレーンが2レーンでMIPI信号を出力した場合、MIPI RX側が4レーン設定でIP受信されても、MIPIデータ信号が正しく受信できません。
動的にTX側のレーン数を変更しながら、MIPI CSI-2 RXを使用したい場合、GUI上のEnable Active lanesオプションを有効に設定した上でIPを生成してください。
    Enable_Active_Lanes.png

PG232 Chapter3では Active lane設定の変更方法について記載されています。
ここも合わせて確認して頂きたいです。

Enable_Active_Lanes_PG.png

3.video_aclkの設定

多くのユーザーデザインではCPUのAXI4 streamクロックをそのまま MIPI CSI-2 RXのvideo_aclkに接続される場合が多いといです。 適切なvideo_aclk周波数選定も重要なIP設定となります。PG232 Chapter4では詳細なガイダンスが記載されているのでご確認ください。

video_aclk_freq.png

上記で記載されたvideo_aclkの最低周波数よりも遅い周波数を使用された場合,
MIPI CSI-2 RX内部のline bufferがoverflowする可能性があり、IPが出力するビデオデータに異常が見られます( 例えば、ビデオデータのpixel数が足りなかったり、Frame-Endフラグが出力されなかったりする場合もあります)。

4.CSI-2 規格の互換性

TX側がMIPI CSI-2 standard V2.0を対応したデバイスで、VCX(Virtual Channel Extention)やRAW16/RAW20のオプションが必要な場合のみ, “Support CSI spec V2_0” オプションを有効にしてIPを生成してください。
VCX_support.png

MIPI CSI-2 standard V1.2とV2.0では Packet HeaderのECC情報が変わってしまうので、MIPI TX側がV1.2の場合は “Support CSI spec V2_0” オプションを無効のままでIPをご使用ください。
Packet_Header_V2.0.png

5.DATA TYPEのサポート

MIPI CSI-2 RX Subsystem中にはVideo Format Bridge (VFB)モジュールが含まれており、受信したMIPI CSI-2規格のpacked dataをUG934に記載されているのAXI4-stream形式のpixelデータの変換してくれます。
VFB_overview.png

但し、VFBを使用する場合 GUI上で設定されたData TypeとRAW8以外のData Type
フィルタリングされるため、RAW8以外に複数のData Typeを使用される場合VFBオプションを無効にしてIPを生成してください。

VFB.png

以上となりますが、MIPI CSI-2 RX/MIPI D-PHY RXご使用の際、今回の記事がお役に立てれば幸いです。また次回別のMIPI IPのお話も書こうと考えています。それでは。