This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62A7:显示颜色不正确

Guru**** 2393725 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1488098/am62a7-display-color-incorrect

器件型号:AM62A7

工具与软件:

SDK 版本:  10_00_00

我执行 /opt/edgeai-gst-apps/scripts/setup_wallpaper.sh 脚本,显示,但颜色不正确。

为了进一步调查、我 /dev/fb 使用以下命令将的内容捕获为 BMP 文件:
cat /dev/fb > ./fb.bmp

这是 $OOB_demo_assetes_path/ wallpaper.jpg

我还尝试了使用 GStreamer videotestsrc 输出红色/绿色/蓝色图案。 但是、红色和蓝色通道似乎是反向的

如何解决此颜色错误

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否换过了定制硬件上的红色和蓝色引脚? 您的硬件中如何映射数据线路?

    此致、
    Krunal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Krunal、

    感谢您的答复。

    我已查看我的 DTS 并确认其符合硬件设计。

    我认为此问题可能与硬件无关、因为它在帧缓冲区中也不一致。

    此外、我还添加了 DTS 以供参考:

    main_dss0_pins_default: main-dss0-default-pins {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x100, PIN_OUTPUT, 0) /* (V17) VOUT0_VSYNC */
    			AM62AX_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (T18) VOUT0_HSYNC */
    			AM62AX_IOPAD(0x104, PIN_OUTPUT, 0) /* (AA22) VOUT0_PCLK */
    			AM62AX_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (U17) VOUT0_DE */
    			AM62AX_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
    			AM62AX_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (U21) VOUT0_DATA1 */
    			AM62AX_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (U20) VOUT0_DATA2 */
    			AM62AX_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (U19) VOUT0_DATA3 */
    			AM62AX_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (T19) VOUT0_DATA4 */
    			AM62AX_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (U18) VOUT0_DATA5 */
    			AM62AX_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (V22) VOUT0_DATA6 */
    			AM62AX_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA7 */
    			AM62AX_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V19) VOUT0_DATA8 */
    			AM62AX_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (V18) VOUT0_DATA9 */
    			AM62AX_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */
    			AM62AX_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA11 */
    			AM62AX_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (W20) VOUT0_DATA12 */
    			AM62AX_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (W19) VOUT0_DATA13 */
    			AM62AX_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y21) VOUT0_DATA14 */
    			AM62AX_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA15 */
    			AM62AX_IOPAD(0x05c, PIN_OUTPUT, 1) /* (P22) GPMC0_AD8.VOUT0_DATA16 */
    			AM62AX_IOPAD(0x060, PIN_OUTPUT, 1) /* (R19) GPMC0_AD9.VOUT0_DATA17 */
    			AM62AX_IOPAD(0x064, PIN_OUTPUT, 1) /* (R20) GPMC0_AD10.VOUT0_DATA18 */
    			AM62AX_IOPAD(0x068, PIN_OUTPUT, 1) /* (R22) GPMC0_AD11.VOUT0_DATA19 */
    			AM62AX_IOPAD(0x06c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
    			AM62AX_IOPAD(0x070, PIN_OUTPUT, 1) /* (R21) GPMC0_AD13.VOUT0_DATA21 */
    			AM62AX_IOPAD(0x074, PIN_OUTPUT, 1) /* (T20) GPMC0_AD14.VOUT0_DATA22 */
    			AM62AX_IOPAD(0x078, PIN_OUTPUT, 1) /* (T21) GPMC0_AD15.VOUT0_DATA23 */
    		>;
    	};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它的内部结构。  

    请分享您如何检查帧缓冲区不一致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我通过运行 cat /dev/fb > ./fb.bmp 生成的 BMP 文件并将其传输到我的 PC 来捕获帧缓冲区数据。 使用 YUVPlayer、我打开并显示了与设备显示屏上显示的内容完全匹配的图像。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能分享 kmstest 的显示输出吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    kmsprint 和 kmstest 输出:

    root@am62axx-evm:/opt/edgeai-gst-apps# kmsprint
    Connector 0 (40) LVDS-1 (connected)
      Encoder 0 (39) NONE
        Crtc 0 (38) 1920x720@59.25 93.000 1920/72/12/64/? 720/15/6/18/? 59 (59.25) 0x0 0x48
          Plane 0 (31) fb-id: 48 (crtcs: 0) 0,0 1920x720 -> 0,0 1920x720 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12)
            FB 48 1920x720
    root@am62axx-evm:/opt/edgeai-gst-apps# 
    root@am62axx-evm:/opt/edgeai-gst-apps# kmstest
    Connector 0/@40: LVDS-1
      Crtc 0/@38: 1920x720@59.25 93.000 1920/72/12/64/? 720/15/6/18/? 59 (59.25) 0x0 0x48
      Plane 0/@31: 0,0-1920x720
        Fb 49 1920x720-XR24
    press enter to exit
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是、请分享您在运行 kmstest 时在 LVDS 显示屏上看到的内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    运行时 kmstest、显示屏保持空白、仅输出打印消息。

    此外、我尝试 modetest 使用以下命令运行:
    modetest -M tidss -D 0 -a -s 40@38:1920x720p60 -P 31@38:1920x720.
    输出显示如下:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否还可以共享 从 PC 上查看的 cat /dev/fb >./fb.bmp 的输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    运行时 modetest、检查时仅出现黑屏、这有点不寻常  /dev/fb

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于您的 modetest 颜色也是反转的、请将 DTS 放在一边、请检查视频端口输出与面板中的 DPI 的物理连接。 它是否遵循以下规格?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的定制板原理图如下所示。  

    我已经 测试了 lt9211图形输出、颜色正确。

    我认为此问题可能与硬件无关、因为它在帧缓冲区中也不一致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    modetest -M tidss 输出如此所示

    root@am62axx-evm:/opt/edgeai-gst-apps# modetest -M tidss
    Encoders:
    id      crtc    type    possible crtcs  possible clones
    39      38      none    0x00000001      0x00000001
    
    Connectors:
    id      encoder status          name            size (mm)       modes   encoders
    40      39      connected       LVDS-1          353x133         1       39
      modes:
            index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
      #0 1920x720 59.25 1920 1992 2004 2068 720 735 741 759 93000 flags: ; type: preferred, driver
      props:
            1 EDID:
                    flags: immutable blob
                    blobs:
    
                    value:
            2 DPMS:
                    flags: enum
                    enums: On=0 Standby=1 Suspend=2 Off=3
                    value: 0
            5 link-status:
                    flags: enum
                    enums: Good=0 Bad=1
                    value: 0
            6 non-desktop:
                    flags: immutable range
                    values: 0 1
                    value: 0
            4 TILE:
                    flags: immutable blob
                    blobs:
    
                    value:
    
    CRTCs:
    id      fb      pos     size
    38      48      (0,0)   (1920x720)
      #0 1920x720 59.25 1920 1992 2004 2068 720 735 741 759 93000 flags: ; type: preferred, driver
      props:
            24 VRR_ENABLED:
                    flags: range
                    values: 0 1
                    value: 0
            27 CTM:
                    flags: blob
                    blobs:
    
                    value:
            28 GAMMA_LUT:
                    flags: blob
                    blobs:
    
                    value:
            29 GAMMA_LUT_SIZE:
                    flags: immutable range
                    values: 0 4294967295
                    value: 256
    
    Planes:
    id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
    31      38      48      0,0             0,0     0               0x00000001
      formats: AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12
      props:
            8 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 1
            30 IN_FORMATS:
                    flags: immutable blob
                    blobs:
    
                    value:
                            01000000000000001d00000018000000
                            01000000900000004152313241423132
                            52413132524731364247313641523135
                            41423135415232344142323452413234
                            42413234524732344247323441523330
                            41423330585231325842313252583132
                            58523135584231355852323458423234
                            52583234425832345852333058423330
                            59555956555956594e56313200000000
                            ffffff1f000000000000000000000000
                            0000000000000000
                    in_formats blob decoded:
                             AR12:  LINEAR(0x0)
                             AB12:  LINEAR(0x0)
                             RA12:  LINEAR(0x0)
                             RG16:  LINEAR(0x0)
                             BG16:  LINEAR(0x0)
                             AR15:  LINEAR(0x0)
                             AB15:  LINEAR(0x0)
                             AR24:  LINEAR(0x0)
                             AB24:  LINEAR(0x0)
                             RA24:  LINEAR(0x0)
                             BA24:  LINEAR(0x0)
                             RG24:  LINEAR(0x0)
                             BG24:  LINEAR(0x0)
                             AR30:  LINEAR(0x0)
                             AB30:  LINEAR(0x0)
                             XR12:  LINEAR(0x0)
                             XB12:  LINEAR(0x0)
                             RX12:  LINEAR(0x0)
                             XR15:  LINEAR(0x0)
                             XB15:  LINEAR(0x0)
                             XR24:  LINEAR(0x0)
                             XB24:  LINEAR(0x0)
                             RX24:  LINEAR(0x0)
                             BX24:  LINEAR(0x0)
                             XR30:  LINEAR(0x0)
                             XB30:  LINEAR(0x0)
                             YUYV:  LINEAR(0x0)
                             UYVY:  LINEAR(0x0)
                             NV12:  LINEAR(0x0)
            33 zpos:
                    flags: range
                    values: 0 1
                    value: 0
            34 COLOR_ENCODING:
                    flags: enum
                    enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
                    value: 0
            35 COLOR_RANGE:
                    flags: enum
                    enums: YCbCr limited range=0 YCbCr full range=1
                    value: 1
            36 alpha:
                    flags: range
                    values: 0 65535
                    value: 65535
            37 pixel blend mode:
                    flags: enum
                    enums: Pre-multiplied=0 Coverage=1
                    value: 0
    41      0       0       0,0             0,0     0               0x00000001
      formats: AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12
      props:
            8 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 0
            30 IN_FORMATS:
                    flags: immutable blob
                    blobs:
    
                    value:
                            01000000000000001d00000018000000
                            01000000900000004152313241423132
                            52413132524731364247313641523135
                            41423135415232344142323452413234
                            42413234524732344247323441523330
                            41423330585231325842313252583132
                            58523135584231355852323458423234
                            52583234425832345852333058423330
                            59555956555956594e56313200000000
                            ffffff1f000000000000000000000000
                            0000000000000000
                    in_formats blob decoded:
                             AR12:  LINEAR(0x0)
                             AB12:  LINEAR(0x0)
                             RA12:  LINEAR(0x0)
                             RG16:  LINEAR(0x0)
                             BG16:  LINEAR(0x0)
                             AR15:  LINEAR(0x0)
                             AB15:  LINEAR(0x0)
                             AR24:  LINEAR(0x0)
                             AB24:  LINEAR(0x0)
                             RA24:  LINEAR(0x0)
                             BA24:  LINEAR(0x0)
                             RG24:  LINEAR(0x0)
                             BG24:  LINEAR(0x0)
                             AR30:  LINEAR(0x0)
                             AB30:  LINEAR(0x0)
                             XR12:  LINEAR(0x0)
                             XB12:  LINEAR(0x0)
                             RX12:  LINEAR(0x0)
                             XR15:  LINEAR(0x0)
                             XB15:  LINEAR(0x0)
                             XR24:  LINEAR(0x0)
                             XB24:  LINEAR(0x0)
                             RX24:  LINEAR(0x0)
                             BX24:  LINEAR(0x0)
                             XR30:  LINEAR(0x0)
                             XB30:  LINEAR(0x0)
                             YUYV:  LINEAR(0x0)
                             UYVY:  LINEAR(0x0)
                             NV12:  LINEAR(0x0)
            43 zpos:
                    flags: range
                    values: 0 1
                    value: 1
            44 COLOR_ENCODING:
                    flags: enum
                    enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
                    value: 0
            45 COLOR_RANGE:
                    flags: enum
                    enums: YCbCr limited range=0 YCbCr full range=1
                    value: 1
            46 alpha:
                    flags: range
                    values: 0 65535
                    value: 65535
            47 pixel blend mode:
                    flags: enum
                    enums: Pre-multiplied=0 Coverage=1
                    value: 0
    
    Frame buffers:
    id      size    pitch
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    让我来看看它。 这有点奇怪,因为我没有看到这种行为在我的最后
    我们将在下周结束时与您联系。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为了再次确认、您可以使用在后台运行的 ti-apps-launcher 执行以下命令吗:

    ffmpeg -f fbdev -i /dev/fb0 test.png -frames:v 1

    然后将 test.png 复制到您的 PC 并在此处分享。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我通过运行此 cmd 得到了正确的壁纸、这与显示面板不同

    这是由 ffmpeg 获得的 pic

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。

    这确认帧缓冲区的颜色是 一致的、并且您在硬件连接中以某种方式反转了颜色线。

    例如、请查看原理图和面板/桥接器数据表、RD0至 RD7的线是否仅使用蓝线作为输入? 类似地、检查是否有其他线条。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。 我将检查硬件连接问题。

    然而,我仍然有一个问题:为什么结果 cat /dev/fb > fb.bmp 不符合那些捕获的 ffmpeg 从 fbdev?  我在 yuvplayer 中的解析是否存在问题? 我在 yuvplayer 中将 fm.bmp 显示为 RBG24格式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不确定您是如何读取 bmp 文件的、当前我们没有检查该文件的设置。 可能是您使用的格式与解析器预期的格式之间的一些格式转换问题、您必须在社区中进行检查。