1. 説明
1)HDMIインターレースディスプレイモードをサポートし、次の形式が検証されました。
CEAフォーマット5:1920x1080i @60Hz
CEAフォーマット6&7:720(1440)x480i @60Hz
CEAフォーマット20:1920x1080i @50Hz
CEAフォーマット21&22:720(1440)x576i @50Hz
2)インターレースディスプレイモード、1920x1080i@50Hz(CEAフォーマット20)のサポートLCDインターフェース
が確認されていました。
2. ファイル一覧
-- 0001-IPUv3-support-interlaced-display-mode.patch
iMX6 ipuv3 のインターレース ディスプレイ出力をサポートするパッチ。
-- 0002-iMX6-HDMI-support-interlaced-display-mode.patch
iMX6 HDMIドライバーのインターレースディスプレイモードをサポートするパッチ。
-- 0003-iMX6-LCD-interface-supports-1920x1080i50-mode.patch
iMX6 LCDインターフェースドライバーのインターレースディスプレイモードをサポートするパッチ。
-- readme.txt
このファイルは、パッチを使用する前に参照してください
3. 必要条件
- iMX6 SabreSDボード。
- L3.0.35_4.1.0_GA_iMX6DQ kernel.
4. 使用方法
-- パッチファイルをカーネルフォルダにコピーします。
$ cd ~/ltib/rpm/BUILD/linux-3.0.35/
$ git apply ./0001-IPUv3-support-interlaced-display-mode.patch
$ git apply ./0002-iMX6-HDMI-support-interlaced-display-mode.patch
$ git apply ./0003-iMX6-LCD-interface-supports-1920x1080i50-mode.patch
-- 新しいカーネルイメージをビルドします。
$ cd ~/ltib/rpm/BUILD/linux-3.0.35
$ export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
$ export ARCH=arm
$ make imx6_defconfig
$ uImageを作る
-- ビデオモードの Uboot パラメータ
HDMIでの出力1080i50ディスプレイモード:
"video=mxcfb0:dev=hdmi,1920x1080Mi@25,if=RGB24,bpp=32"
HDMIで1080i60ディスプレイモードを出力します。
"video=mxcfb0:dev=hdmi,1920x1080Mi@30,if=RGB24,bpp=32"
HDMIで576i50ディスプレイモードを出力します。
"video=mxcfb0:dev=hdmi,1440x576Mi@25,if=RGB24,bpp=32"
HDMIで480i60ディスプレイモードを出力します。
"video=mxcfb0:dev=hdmi,1440x480Mi@30,if=RGB24,bpp=32"
LCDインターフェースの出力1080i50表示モード:
"video=mxcfb0:dev=lcd,lcd-1080I50,if=RGB565,bpp=32"
-HDMIインターレースモードを切り替えます
$ echo S:1920x1080i-50 > /sys/class/graphics/fb0/mode
$ echo S:1920x1080i-60 > /sys/class/graphics/fb0/mode
$ echo S:1440x480i-50 > /sys/class/graphics/fb0/mode
$ echo S:1440x576i-60 > /sys/class/graphics/fb0/mode
5. 問題を知る
1) インターレースディスプレイと別のディスプレイが同じIPUで動作する場合、
空白と空白解除は、インターレースディスプレイに続きます IPU
警告が表示されますが、IPUがエラーから回転できるため、ディスプレイはまだ機能します。
IMX-IPUV3 IMX-IPUV3.0:IPU警告 - IPU_INT_STAT_5 = 0x00800000
IMX-IPUV3 IMX-IPUV3.0:IPU警告 - IPU_INT_STAT_10 = 0x00080000
2015-05-13 update:
4番目のパッチを交換して、インターレース表示モードをCEA-861仕様に準拠させます
パッチ "0004-IPU-fine-tuning-the-interlace-display-timing-for-CEA.patch" は、インターレースモードディスプレイの CEA-861-D 仕様に合わせて微調整されました。このパッチを使用して、古い0004パッチを置き換えてください。
2016-05-20 Update:
3.0.35の場合BSP、パッチを追加
0005-IPU更新-インターレース-ビデオ-モードパラメータ-to-align.patch
インターレース ビデオ モードのパラメーターをプログレッシブ モードに合わせます。
0006-IPU更新-IDMAC-設定-インターレース-ディスプレイ-mode.patch
IDMACの設定をインターレース表示モードに更新し、メモリから奇数フィールドデータを最初に出力し、IPUのDIタイミングに合わせ、奇数フィールドを優先します。
3.14.52 BSP では、新しいパッチ L3.14.52_1.1.0_GA_HDMI_Interlaced_Mode_Patch_2016_05_20.zip を作成しました。
imx6にはLinux3.0.35パッチを追加しますが、HDMIインターレースディスプレイ(1080I50)を使用します 揺さぶり。どうすれば正常にできますか?
HDMIの場合、AVフレームヘッダーのインターレース情報も更新する必要があるかもしれませんが、詳細情報はありません。
Hello,
私は3.14.52カーネルでこのパッチのセットを試しています。HDMIデバイス(TV)が各~2〜3秒で信号の損失を報告するという事実を除いて、問題なく機能しているようです。オフ。その後、すぐに信号を見つけて再びオンにします。
私が試したいくつかの異なるHDMIディスプレイでは、問題なく動作します。この1台のうち3台のテレビだけがこのように動作します。テレビの問題だと思っていたのですが、同時に同じテレビが他のインターレースビデオソースデバイスと問題なく動作します。
この動作は、私が試した3つのインターレースモードすべてで発生します: 1080i@50、576i、480i。プログレッシブモードは問題を引き起こしません。
ここで何が間違っているのか、そしてどのパラメータを変更しようとすることができるのか、何かアイデアはありますか?
こんにちはジョン、「0004-IPU-fine-tuning-the-interlace-display-timing-for-CEA.patch」を試してみてください。私の測定では、信号はCEA-861-D仕様と同じです。
Hello Qiang Li,
残念ながら、まだ問題があるようです。このパッチには、以前の「パッチ4」と同じ問題はありませんが、VSYNC信号が本来あるべき位置から1ピクセルクロックオフセットされるという問題がまだあります。CEA-861仕様では、VSYNCはフィールド1のHSYNC信号プラスマイナスゼロピクセルクロックと完全に位置合わせする必要があると規定されています。フィールド 2 の場合、VSYNC は HSYNC 信号のリーディング エッジから Htotal/2 ピクセル クロックに 0 ピクセル クロックを加算または減算する必要があります。どちらの場合も、VSYNC は 1 ピクセル クロック遅すぎます。
ありがとうございます
ジョン
こんにちは、この問題は新しい「0004-Update-IPU-DI-for-active-field-signal-in-interlace-d.patch」で修正されました。ぜひご確認ください。
私の前の投稿に小さな修正。表示されているH/V値は1101/1で、1100/0である必要があります。
Hello,
インターレース パッチを適用した後、インターレース モードの HDMI コンプライアンス テストを実行しようとすると問題が発生しました。最初の問題は4番目のパッチにあるようです。4番目のパッチを適用すると、HDMI出力は1つおきに無効なフィールドを生成します。フィールドの終わりで行の1つが短く切られているようです。このパッチを元に戻すと、残りの問題は H から V へのオフセットが無効であることのようです。1080i@60で操作すると、HからVの値は1001とフィールドに応じて1になります。VSYNC は HSYNC と同じクロック サイクル中に発生する必要があるため、これらは 1000 と 0 にする必要があります。IPUタイミング生成信号のさまざまなパラメータを操作してみましたが、HからVへのオフセットを補正する方法は見つかりませんでした。何かアイデアはありますか?
ありがとうございます
ジョン
ここ数日、私はそれを機能させようとしてきましたが、成功せず、PDFでそのようなサポートの痕跡も見つかりませんでした:/たぶん、私はPDFからそのような詳細を取得するのが苦手なだけです...
あなたがそれを機能させているかどうか私たちに知らせてください![]()
よろしくお願いいたします!
申し訳ありませんが、ダブルピクセルクロックモードの準備ができていません。しかし、IPUの観点からは、それは支持できると思います。
あなたはそう思いますか-時計を2倍にすることについて?
あなたはそれと言います
DI_SYNC_CLK * 2, /* run_resolution */
クロックは2倍になりますが、
| DI_SYNC_NONE = -1, | |
| DI_SYNC_CLK = 0 です。 | |
| DI_SYNC_INT_HSYNC = 1 です。 | |
| + | DI_SYNC_COUNT_1 = 1 です。 |
| DI_SYNC_HSYNC = 2、 | |
| DI_SYNC_VSYNC = 3, | |
| - | DI_SYNC_DE = 5, |
| + | DI_SYNC_AFIELD = 4 です。 |
| + | DI_SYNC_ALINE = 5, |
| + | DI_SYNC_APIXEL = 6, |
| + | DI_SYNC_COUNT_7 = 7、 |
| + | DI_SYNC_COUNT_8 = 8 です。 |
| + | DI_SYNC_COUNT_9 = 9、 |
したがって、最終的にDI_SYNC_CLK*2を掛けた後、変化は適用されません:-/
現在、1 ピクセルに対して 2 つの CLK サイクル (@27MHz) を持つことに苦労しています。それでも運が悪い。運に恵まれましたか?
よろしくお願いいたします!
ダブルクロックモードは、元のコードは各ピクセルクロックごとに1ピクセルデータを送信し、次のコード更新により、それは720 * 480フレームバッファを使用し、他の表示タイミングパラメータも更新する必要があります、courceの2ピクセルクロックごとに1ピクセルデータを送信するように変更することによって実装することができます。 また、ピクセルクロックは27MHzに保つ必要があります。
/* アクティブピクセル */
_ipu_di_sync_config(ipu,
disp, /* display */
DI_SYNC_APIXEL、/*カウンター*/
0, /* ランカウント */
DI_SYNC_CLK, /* run_resolution */
h_start_width + h_sync_width, /* オフセット */
DI_SYNC_CLK, /* オフセット分解能 */
width, /* リピート回数 */
DI_SYNC_ALINE, /* CNT_CLR_SEL */
0, /* CNT_POLARITY_GEN_EN */
DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
0, /* カウントアップ */
0 /* カウントダウン */
);
へ
/* アクティブピクセル */
_ipu_di_sync_config(ipu,
disp, /* display */
DI_SYNC_APIXEL、/*カウンター*/
0, /* ランカウント */
DI_SYNC_CLK * 2, /* run_resolution */
h_start_width + h_sync_width, /* オフセット */
DI_SYNC_CLK, /* オフセット分解能 */
width, /* リピート回数 */
DI_SYNC_ALINE, /* CNT_CLR_SEL */
0, /* CNT_POLARITY_GEN_EN */
DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
0, /* カウントアップ */
0 /* カウントダウン */
);
では、ダブルクロックモードを使用して576iおよび480i出力を生成するにはどうすればよいですか?
このパッチでは、576i と 480i の出力を生成するためにダブル クロック モードを使用しておらず、1440*576 と 1440*480 のフレームバッファを使用しています。これにより、ビデオ品質の問題が発生する可能性があります。
imx6のパックを追加しましたが、HDMIインターレースディスプレイが正常ではありません。576iおよび480iビデオの表示品質が悪い。
波紋 現象 で映し出された 動画 。私は問題を解決する方法を見つけられませんでした。 何か提案はありますか?感謝