基板:FRDM-i.MX93 (imx93-11x11-lpddr4x-frdm)
BSP:Linux 6.18.2、ドライバー phy-fsl-imx9-dphy-rx.c (fsl, imx93-dphy-rx)
カメラ:カスタム2レーンセンサーをMAX96717/MAX96714 GMSL2セルデス
データレート:1レーンあたり200 Mbps、2レーン、連続クロック(固定
カメラは変更不可)
問題
時計車線は決して高速走行にはならない。フレームはキャプチャされませんでした。
DPHY_RX_STATUS (0x4ae00000 + 0x48) は CLK_LANE_HS = 0 のままです。
効果的な方法
- GMSL2リンクはロックされています。デシリアライザは、VID_LOCK=1、PKT_DET=1 を報告します。
また、CSI-2出力が有効になっています。
- SoCピンにおけるクロックレーンをスコープで解析しました。時計レーンは
駆動され、LP-11からHSへの移行を行い、連続運転する
ストリーミング配信中。
- 両方のデータレーンは正常に動作しており、i.MX93がそれらをデコードしています。世論調査
タイトなカーネルループ内の DPHY_STOPSTATE (オフセット 0x4c) は約 500 を示しています
各データレーンにおける15ミリ秒あたりの遷移回数。これは1行あたりの料金と一致します
カメラからのデータバーストが出るため、D-PHYの低出力レシーバは
勤務中で、高校の入学申請に従っています。
- メディアパイプラインの設定が完了し、STREAMONが受け入れられます。
うまくいかないこと
- CLK_LANE_HS は決して 1 になりません。私たちは2万回もチェックしました
カーネルループなので、非常に短いパルスでも見られたはずです。
- どこにもエラーは報告されていません。INT_ST_MAIN (0x0c)
INT_ST_DPHY_FATAL (0xe0) と INT_ST_DPHY (0x110) はすべて読み取り
0x00000000。
- 0バイトがキャプチャされました。
ランニングボード上で読み取られるレジスタ値
- hsfreqrange = 0x03(205 Mbpsの行、200 Mbpsの正確)
- cfgclkfreqrange = 28(設定クロックは24 MHz、つまり(24-17)*4 = 28)
- DPHY_STOPSTATE = 0x00000003 アイドル時、両方のデータレーンが停止状態
ドライバに気づいたこと
i.MX93リファレンス・マニュアル(Rev 7、セクション55.3.1)にはD-PHYと記載されています
スタートアップにはHSFREQレンジ、CFGCLKFREQレンジ、そしてosc_freq_targetが必要[11:0]
設定されるべきです。また、counter_for_des_en_config_if の値も提供します。
表541を参照。
phy-fsl-imx9-dphy-rx.c の i.MX93 設定関数
(imx93_dphy_config) は hsfreqrange と cfgclkfreqrange のみを書き込みます。それ
osc_freq_target または counter_for_des_en_config_if は書き込みません。
質問
1.i.MX93では、osc_freq_targetをプログラムする必要がありますか?もしそうなら、どのようにして
書くべきでしょうか?
2. もしそうでなければ、時計レーンがHSに入るのは何なのでしょうか?
3. 連続クロックで200 Mbpsがサポートされている構成ですか?
i.MX93 CSI-2ポート?
よろしくお願いします。