1846172_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1846172_ja-JP

1846172_ja-JP

(TC358748) CSI2ビデオブリッジの並列接続に問題があります

こんにちは、

私は、FPGAを当社独自のi.MX8MPボードに接続する必要があるプロジェクトに取り組んでいます。私はtc358746(Parallel -> CSI2)ドライバをYocto lf-5.15.71バージョンにサポートしようとしています。

今のところ、ビデオパイプライン (FPGA (YUV4:2:2) -> ブリッジ (YUV4:2:2/4-lane) -> mipi_csi0 -> isi0) から YUV4:2:2 フォーマットで 1920x1080@30Hz を出力したいのですが、Gstreamer や v4l2-ctl を使用してフレームをキャプチャすることができません。

v4l-subdev1はv4l2デバイスリストに表示されません

ブリッジのmedia-ctl出力とdmesgログを探してください。問題のトラブルシューティングに関するご意見をいただけると大変ありがたいです。

root@:~$ media-ctl -p
Media controller API version 5.15.71

Media device information
------------------------
driver          mxc-md
model           FSL Capture Media Device
serial          
bus info        
hw revision     0x0
driver version  5.15.71

Device topology
- entity 1: mxc_isi.0 (16 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
        pad0: Sink
                <- "mxc-mipi-csi2.0":4 [ENABLED]
        pad1: Sink
        pad2: Sink
        pad3: Sink
        pad4: Sink
        pad5: Sink
        pad6: Sink
        pad7: Sink
        pad8: Sink
        pad9: Sink
        pad10: Sink
        pad11: Sink
        pad12: Source
                -> "mxc_isi.0.capture":0 [ENABLED]
        pad13: Source
        pad14: Source
        pad15: Sink

- entity 18: mxc_isi.0.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
        pad0: Sink
                <- "mxc_isi.0":12 [ENABLED]

- entity 22: mxc-mipi-csi2.0 (8 pads, 2 links)
             type Node subtype V4L flags 0
             device node name /dev/v4l-subdev0
        pad0: Sink
                <- "tc358748 2-000e":0 [ENABLED,IMMUTABLE]
        pad1: Sink
        pad2: Sink
        pad3: Sink
        pad4: Source
                -> "mxc_isi.0":0 [ENABLED]
        pad5: Source
        pad6: Source
        pad7: Source

- entity 31: tc358748 2-000e (1 pad, 1 link)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
        pad0: Source
                [fmt:UYVY8_2X8/1920x1080@1/30 field:none colorspace:srgb]
                -> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]
root@:~$ v4l2-ctl --list-devices
 ():
        /dev/v4l-subdev0

mxc-isi-cap (platform:32e00000.isi:cap_devic):
        /dev/video2

FSL Capture Media Device (platform:mxc-md):
        /dev/media0

vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video1

vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video0
root@:~$ v4l2-ctl --device /dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar

    [3]: 'YUYV' (YUYV 4:2:2)
         Size: Discrete 1920x1080
         Interval: Discrete 0.033s (30.000 fps)
         Interval: Discrete 0.033s (30.000 fps)
root@:~$ v4l2-ctl -d /dev/video2 --all
Driver Info:
        Driver name      : mxc-isi-cap
        Card type        : mxc-isi-cap
        Bus info         : platform:32e00000.isi:cap_devic
        Driver version   : 5.15.71
        Capabilities     : 0x84201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04201000
                Video Capture Multiplanar
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : mxc-md
        Model            : FSL Capture Media Device
        Serial           : 
        Bus info         : 
        Media version    : 5.15.71
        Hardware revision: 0x00000000 (0)
        Driver version   : 5.15.71
Interface Info:
        ID               : 0x03000014
        Type             : V4L Video
Entity Info:
        ID               : 0x00000012 (18)
        Name             : mxc_isi.0.capture
        Function         : V4L2 I/O
        Pad 0x01000013   : 0: Sink
          Link 0x02000021: from remote pad 0x100000e of entity 'mxc_isi.0' (Video Pixel Formatter): Data, Enabled
Priority: 2
Format Video Capture Multiplanar:
        Width/Height      : 1920/1080
        Pixel Format      : 'RGBP' (16-bit RGB 5-6-5)
        Field             : None
        Number of planes  : 1
        Flags             : 
        Colorspace        : sRGB
        Transfer Function : Default
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Full Range
        Plane 0           :
           Bytes per Line : 3840
           Size Image     : 4147200
Crop Capability Video Output:
        Bounds      : Left 0, Top 0, Width 1920, Height 1080
        Default     : Left 0, Top 0, Width 1920, Height 1080
        Pixel Aspect: 1/1
Selection Video Output: compose, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Selection Video Output: compose_default, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Selection Video Output: compose_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0

User Controls

                horizontal_flip 0x00980914 (bool)   : default=0 value=0
                  vertical_flip 0x00980915 (bool)   : default=0 value=0
                alpha_component 0x00980929 (int)    : min=0 max=255 step=1 default=0 value=0
[ 15.547696] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 26.966015] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
.
.
.
[ 26.968164] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 26.968181] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 26.968195] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 26.968210] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 26.971188] mxc_isi.0: Not match format, set default
[ 26.971199] mxc_isi.0: Not match format, set default
[ 27.305025] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.305150] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.305352] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.305392] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.305442] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.305507] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.309455] enter tc358748_s_power = ON
[ 27.309471] tc358748 2-000e: tc358748_enable_hw
[ 27.311682] tc358748 2-000e: tc358748_set_pad_format
[ 27.311696] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.311705] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.316716] bypass csc
[ 27.316724] input fmt YUV4
[ 27.316728] output fmt YUYV
[ 27.667770] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.667876] tc358748 2-000e: tc358748_set_pad_format
[ 27.667882] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.667889] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.672900] bypass csc
[ 27.672909] input fmt YUV4
[ 27.672912] output fmt YUYV
[ 27.672922] enter tc358748_s_power = OFF
[ 27.672929] tc358748 2-000e: tc358748_disable_hw
[ 27.701511] enter tc358748_s_power = ON
[ 27.701530] tc358748 2-000e: tc358748_enable_hw
[ 27.703406] tc358748 2-000e: tc358748_set_pad_format
[ 27.703418] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.703427] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 27.708440] bypass csc
[ 27.708451] input fmt YUV4
[ 27.708456] output fmt YUYV
[ 28.035292] tc358748 2-000e: [tc358748_stream,1152]: Stream enable ...
[ 28.035309] tc358748 2-000e: tc358748_set_pll
[ 28.035313] tc358748 2-000e: tc358748_calc_pll
[ 28.035382] tc358748 2-000e: PLL: refclk 10000000, fbd 88, prd 0, frs 1
[ 28.035388] tc358748 2-000e: PLL: pll_clk: 445000000, CSIClk 222500000, CSIByteClk 55625000
[ 28.035393] tc358748 2-000e: PLL: pclk 74166666 (FPGA(Hardcode=>: 74250000MHz))
[ 28.037869] tc358748 2-000e: tc358748_sw_reset
[ 28.038566] tc358748 2-000e: tc358748_apply_misc_config
[ 28.038902] tc358748 2-000e: DATAFMT: 0x60
[ 28.039301] tc358748 2-000e: CONFCTL[PDATAF]: 0x0
[ 28.039642] tc358748 2-000e: FIFOCTL: 0x20
[ 28.039976] tc358748 2-000e: WORDCNT: 0xf00
[ 28.039984] tc358748 2-000e: tc358748_enable_csi_lanes: 1
[ 28.040454] tc358748 2-000e: CLW_CNTRL: 0 0x140
[ 28.040777] tc358748 2-000e: D0W_CNTRL: 0 0x144
[ 28.041158] tc358748 2-000e: D1W_CNTRL: 0 0x148
[ 28.041538] tc358748 2-000e: D2W_CNTRL: 0 0x14c
[ 28.041899] tc358748 2-000e: D3W_CNTRL: 0 0x150
[ 28.041908] tc358748 2-000e: tc358748_apply_dphy_config
[ 28.041912] tc358748 2-000e: dsiclk_nsk: 4494
[ 28.041916] tc358748 2-000e: ui_nsk: 2247
[ 28.041920] tc358748 2-000e: csibclk_nsk: 17977
[ 28.041924] tc358748 2-000e: phy_delay_nsk: 26965
[ 28.042278] tc358748 2-000e: LINEINITCNT: 0x15ba
[ 28.042661] tc358748 2-000e: LPTXTIMECNT: 0x2
[ 28.043043] tc358748 2-000e: TCLK_HEADERCNT: 0xa03
[ 28.043456] tc358748 2-000e: TCLK_TRAILCNT: 0xffffffff
[ 28.043803] tc358748 2-000e: THS_HEADERCNT: 0xffffee03
[ 28.044156] tc358748 2-000e: TWAKEUP: 0x49e0
[ 28.044535] tc358748 2-000e: TCLK_POSTCNT: 0x7
[ 28.044914] tc358748 2-000e: THS_TRAILCNT: 0x1
[ 28.045298] tc358748 2-000e: HSTXVREGEN: 0x1f
[ 28.045307] tc358748 2-000e: tc358748_enable_csi_module: 1
[ 28.045680] tc358748 2-000e: STARTCNTRL: 0x1
[ 28.046025] tc358748 2-000e: CSI_START: 0x1
[ 28.046407] tc358748 2-000e: CSI_CONFW_REG: 2734719110 (0x518)
[ 32.176687] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 32.176772] tc358748 2-000e: tc358748_get_pad_format code=0x2006, w/h=(1920,1080), colorspace=8, field=1
[ 32.178272] tc358748 2-000e: [tc358748_stream,1152]: Stream disable ...
[ 32.240654] enter tc358748_s_power = OFF
[ 32.240673] tc358748 2-000e: tc358748_disable_hw
[ 60.422080] imx-sdma 30bd0000.dma-controller: firmware found.
[ 60.422080] imx-sdma 30e10000.dma-controller: firmware found.
[ 60.422326] imx-sdma 30bd0000.dma-controller: loaded firmware 4.6
[ 66.531400] cfg80211: failed to load regulatory.db

i.MX 8M | i.MX 8M Mini | i.MX 8M NanoRe: Trouble with (TC358748) Parallel to CSI2 video bridge

@shaswath
問題は解決できましたか?可能であれば、TC358748カーネルドライバーコードと最新のDevicetreeファイルを共有していただけませんか?私も同じ問題で困っています。どうもありがとうございます

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

任意のフォーマットを選択できるわけではありません。ブリッジ側の設定によります。TC358748レジスタを確認し、そこに設定したフォーマットを確認してから、imx8mp側の正しいフォーマットを選択してください。

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

こんにちは、

返信が遅くなり申し訳ありません。ご提案のフォーマットを使いましたが、添付のサンプルからもCANが見えるように、いくつかのデータが見えます。まだ完璧ではない。MEDIA_BUS_FMTとV4L2_PIX_FMTをいろいろ試してみたり、周波数もいろいろ試してみたりしました(23.98、50、60など)。

MEDIA_BUS_FMT_YUYV8_1X16 / UYVY8_1X16 / 2X8。

V4L2_PIX_FMT_YUYV / UYVY / YUV422P。

しかし、dmesgログからもわかるように、CRCエラーが多くあります。また、media-ctl -pからはブリッジノード以外にフォーマット情報が一切表示されていないことに気づきました。

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

フォーマットを考慮する必要があるかもしれません。CHNL_IMG_CTRLを確認したところ、100000バイトのYUV422_1P8Pで、カラーコンポーネントごとに8ビット、1プレーン、YUVインターリーブパックバイトでした。

https://github.com/nxp-imx/linux-imx/blob/lf-5.15.y/drivers/staging/media/imx/imx8-isi-fmt.c

ヤージュ
。名前= "YUYV-16",
.fourcc= V4L2_PIX_FMT_YUYV、
。深さ= { 16 }、
。色= MXC_ISI_OUT_FMT_YUV422_1P8P、
.memplanes= 1、
.colplanes= 1、
.align= 3、
.mbus_code= MEDIA_BUS_FMT_YUYV8_1X16、
}

ISI のこのフォーマットをデフォルトとして選択し、ブリッジ側も確認してください。

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

TC358748のdtsファイル設定で4データレーンを確認しましたが、ログファイルには1レーンしか表示されていません([ 39.473097] tc358748 2-000e: tc358748_enable_csi_lanes: 1)。もう一度確認してください。

--> これは関数呼び出しを示すためのもので、その下のラインは4つのデータレーンと1つのクロックレーンを有効にしています。

tc358748 2-000e: CLW_CNTRL: 0 0x140
tc358748 2-000e: D0W_CNTRL: 0 0x144
tc358748 2-000e: D1W_CNTRL: 0 0x148
tc358748 2-000e: D2W_CNTRL: 0 0x14c
tc358748 2-000e: D3W_CNTRL: 0 0x150

csi&isi dump.txt では、[ 58.212425] tc358748 2-000e: PLL: pclk 218750000 (FPGA(ハードコード=>: 74250000MHz))

しかし、gst-lauch-1.0.txt では、[ 39.413394] tc358748 2-000e: PLL: pclk 218750000 (FPGA(Hardcode=>: 148500000MHz))

--> 148.5MHzを使用しています。

SO、実際にどの時計をセットしたのですか?DTSを確認しましたが、74.25Mピクセルクロックを設定しています。クロックを測定してhs-settleとclk-settleを設定することをお勧めします

--> hs-settle 値は、(ピクセルレート * ピクセルあたりのビット数) / (レーン数 * 2) に基づいて設定され、148.5 pixclk * 16bpp / 2 * 4 レーン = 475.2Mbits/s となります。SO RX_HS_SETTLEは10です。

また、基板上のデータレーンも入れ替わっていました。SO、この改造の後、Gstreamerやv4l2-ctlでビデオキャプチャを起動すると緑色の画面が出ています [[ ## completed ##]]

gst-launch-1.0 -e \
v4l2src device=/dev/video3 ! \
'video/x-raw,format=YUY2,width=1920,height=1080,framerate=60/1' ! \
videoconvert ! queue ! waylandsink

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:00:09.751003250
Setting pipeline to NULL ...
Total showed frames (544), playing for (0:00:09.750853750), fps (55.790)


green screen.jpggreen screen.jpg

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

TC358748のdtsファイル設定で4データレーンを確認しましたが、ログファイルには1レーンしか表示されていません([ 39.473097] tc358748 2-000e: tc358748_enable_csi_lanes: 1)。もう一度確認してください。

csi&isi dump.txt では、[ 58.212425] tc358748 2-000e: PLL: pclk 218750000 (FPGA(ハードコード=>: 74250000MHz))

しかし、gst-lauch-1.0.txt では、[ 39.413394] tc358748 2-000e: PLL: pclk 218750000 (FPGA(Hardcode=>: 148500000MHz))

SO、実際にどの時計をセットしたのですか?DTSを確認しましたが、74.25Mピクセルクロックを設定しています。クロックを測定してhs-settleとclk-settleを設定することをお勧めします


Re: Trouble with (TC358748) Parallel to CSI2 video bridge

こんにちは、 @joanxie さん

はい、TC358748への入力信号は正常で、TC358748から信号が出力されているのも確認できます。

Gstreamerを使用してキャプチャを開始するには:

gst-launch-1.0v4l2src デバイス=/dev/video2 !video/x-raw、幅=1920、高さ=1080 !自動ビデオシンク

もう一つの問題は、dtsでISIノードを有効にすると、数分後にシステムがハングアップすることです。

6-min.jpg6-min.jpg

5-min.jpg5-min.jpg

  

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

今のところは、Gstreamerやv4l2-ctlを使ってフレームをキャプチャすることができません。

>どのgstreamerコマンドを使っていて、どんなメッセージが出ますか?TC358748からの信号が完全に正常かどうか確認してもらえますか?TC358748側を確認しましたか?

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

登録ダンプファイルはこちらです。

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

imx8mp側から見ると、問題は見当たらず、接続設定も正しく行われています。

[ 7.992257 ] mx8-img-md: 登録センサーサブデバイス: tc358748 2-000e (1)
[ 8.002921] mx8-img-md: 作成されたリンク [mxc_isi.0]=> [mxc_isi.0.capture]
[ 8.018980] mx8-img-md: リンク [mxc-mipi-csi2.0] を作成しました=> [mxc_isi.0]
[ 8.025519] mx8-img-md: リンク [tc358748 2-000e] => [mxc-mipi-csi2.0] を作成しました
[ 8.032634] mxc-md 32c00000.bus:camera:mxc_md_create_links

実際、ISI0はMIPI CSI0用で、MIPI CSI0に port@1 を加えると現在のBSPでエラーが出るはずです。では、MIPIドライバーは変更していますか?しかし正しく設定しているなら、キャプチャには影響しないはずです。FPGA側を確認して、正しいクロック設定やデータ送信をしているか確認し、TC358748のレジスタを再確認し、またmipi csiやISIレジスタもダンプしてエラービットをチェックしてください

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

添付ファイルをご確認ください。

Re: Trouble with (TC358748) Parallel to CSI2 video bridge

ログファイルとDTSファイルを送ってもらえますか?

标记 (1)
无评分
版本历史
最后更新:
3 周之前
更新人: