MIPIのOmniVision OS05A20センサを使用しています。
imx6sベースのボードが破損したフレームを受信しました。
イメージセンサーにテストパターンを起動しました。フレームサイズは640×480です。ピクセル値は0x00または0xFFである必要があります。
想定されるフレーム:
受信した画像:
予想フレームはOmniVisionセンサー評価ボードに記録されました。
興味深いことに、破損したフレームでは、480個の要素のうち約355個しか埋められていない。期待されるフレームでは、行内の隣接するピクセルが0xFFと0x00を交互に繰り返します。コロップフレームでは、同じピクセルが8つずつグループに入り、他のピクセルがドロップした場合と同じ値を持っています。後半部分では、ピクセルの破損の仕方が少し異なる。
両方のセンサはレーン数以外は同じ構成で動作しており、評価ボードは4レーン、私のボードは2レーンです。
センサーのMIPIは544Mbps、内部ピクセルクロックは68MHzで動作しています。
MIPI_CSI_PHY_TST_CTRL1は0x14(800~850MHz)に設定されます。
これは、すべてのピクセルが飽和状態になった実際のピクセル読み出しフレームです(カメラレンズは取り外されています)。
この問題の原因について何かアイデアはありますか?
よろしくお願いします。
ドライバーがフレーム開始を逃す原因になったことは、@gennadiykiryukh見つかりましたか?私もOmnivisionセンサで似たような現象を経験しています。
>OmniVisionセンサに設定が必要なものはありますか?この件についてもっと知っている方はいらっしゃいますか?
セクション6.1.2を見てみましょうOmnivision Camera i.MX Linux リファレンスマニュアル
ドライバー/メディア/プラットフォーム/MXC/キャプチャ/ov5640_mipi.Cでサポートされているフォーマット
よろしくお願いします
イゴール
既にその項で説明されている通りにクロック周波数を確認済みです。画像センサ内のPLLは、センサのPHY CLKが544MHzに設定されています。MIPI_CSI_PHY_TST_CTRL1レジスタは0x14に設定され、これは849MHzに相当します。セクション3.4の最初の式によると…
MIPIデータレート = (MIPIクロック * 2) * レーン数 >= ピクセルクロック * ピクセルあたりのビット数
MIPIクロックは最小値以上である必要があります。私の場合は時間がずっと長かったです。センサーのクロックに近い値(0x2E、600MHz)に設定しようとしましたが、同じ結果でした。悪い信号の可能性を完全に排除するわけではありませんが、破損パターンは非常に再現可能で、バイトシーケンスを抽出して画像の一部を再構築できるほどです。
フレームの性質を解明するために、カメラの水平視野の半分をカバーして「ハーフフレーム」を取得しました。良いフレームであれば、左半分は暗く、右半分は明るく(彩度が高く)なり、彩度は640ピクセルごと(新しい行ごとに)繰り返されるだろう。破損した画像では、彩度が入っていないピクセルが160ピクセルごとに繰り返され、幅の4分の1にあたります。また、そのデータピクセルの流れは、144個の黒いピクセルの連続によって中断される。実際のデータ288ピクセルごとにピクセルストリームが中断されるようです。
「破損」のパターンは、約240行後に変化するようです。その後、汚職の発生頻度は2倍に増加する。彩度パターンは現在80ピクセルで、黒ピクセルバーストの長さは72ピクセルです。
フレームの半分を過ぎたあたりで画像データが圧縮されているのを見たことがあるのは、YUV422とYUV420フォーマットだけです。それは関係があるのでしょうか?センサはバイヤーフォーマットです。
考えられる可能性の一つは、受信側がデータを「理解」するのに苦労しているということだ。上記文書の表1では、パケットを定義するために使用されるデータ型について説明しています。プロセッサが期待する実際の値は一覧にされていません。これはOmniVisionセンサが設定する必要があるものでしょうか?この件についてもっと詳しい情報をお持ちの方はいらっしゃいますか?
こんにちは、ゲンナジー
データ破損の問題については、以下のクロック設定を考慮することができます。
セクション3.4MIPI D-PHYクロック AN5305 MIPI–CSI2 ペリフェラル(i.MX6 MPU搭載)
よろしくお願いします
イゴール
-----------------------------------------------------------------------------------------------------------------------
注:この記事があなたの質問への回答になっている場合は、「正解」ボタンをクリックしてください。ありがとう!
-----------------------------------------------------------------------------------------------------------------------