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.

DM365 RGB888的颜色显示



我使用的是DM365平台, 通过串口方式接的LCD屏, 现在color bar已经正常显示了,但是想在启动的时候加入LOGO, LOGO的图片显示却不正常。左右两边死活显示不了东西。 屏是320x240的, xsize寄存器的值也是按照320设置的。

  • 你好,

    你使用的是VPFE的LCD接口接的LCD屏么?你能否提供你使用的屏的输入时序图和你的OSD/VENC的配置?

    我怀疑是你使用的屏是320x240的,但由于是串行屏(LCD只有8根数据线,上面需要先出R,再出G,再出B),OSD需要配置大小是960x240.

  • 你好, 谢谢你的回复, 现在才看到。

    logicpd_encoder.c 文件中logicpd_encoder_configuration的配置如下

    屏的分辨率是320x240的, 我写的也是 960x240。

    VMOD寄存器也配成了串口模式的, 

    static void davinci_enc_set_srgb(struct vid_enc_mode_info *mode_info)

    {

    dispc_reg_out(VENC_VIDCTL, 0x141);

    /* set VPSS clock */
    davinci_writel(0x1a, SYS_VPSS_CLKCTL);
    dispc_reg_out(VENC_DCLKCTL, 0);
    dispc_reg_out(VENC_DCLKPTN0, 0);

    /* Set the OSD Divisor to 1. */
    dispc_reg_out(VENC_OSDCLK0, 1);
    dispc_reg_out(VENC_OSDCLK1, 2);

    /* Clear composite mode register */
    dispc_reg_out(VENC_CVBS, 0);

    /* DM365 pinmux */
    //使能编码器和LCD的时钟
    dispc_reg_out(VENC_CLKCTL, 0x11);
    davinci_cfg_reg(DM365_VOUT_FIELD_G81, PINMUX_RESV);
    davinci_cfg_reg(DM365_VOUT_COUTL_EN, PINMUX_RESV);
    davinci_cfg_reg(DM365_VOUT_COUTH_EN, PINMUX_RESV);

    //设置基地址
    davinci_writel(mode_info->left_margin,
    (DM365_OSD_REG_BASE + OSD_BASEPX));
    davinci_writel(mode_info->upper_margin,
    (DM365_OSD_REG_BASE + OSD_BASEPY));

    //dispc_reg_merge(VENC_VIDCTL, 1 << 14,
    // VENC_VIDCTL_VCLKP);

    //VCLKE使能
    dispc_reg_merge(VENC_VIDCTL, 1 << VENC_VIDCTL_VCLKE_SHIFT,
    VENC_VIDCTL_VCLKE);
    //VCLK输出
    dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_VCLKZ_SHIFT,
    VENC_VIDCTL_VCLKZ);
    //HSYNC
    dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_SYDIR_SHIFT,
    VENC_VIDCTL_SYDIR);
    //YOUT输出
    dispc_reg_merge(VENC_VIDCTL, 0 << VENC_VIDCTL_YCDIR_SHIFT,
    VENC_VIDCTL_YCDIR);
    //使能ENC时钟
    dispc_reg_merge(VENC_DCLKCTL,
    1 << VENC_DCLKCTL_DCKEC_SHIFT, VENC_DCLKCTL_DCKEC);

    dispc_reg_out(VENC_DCLKPTN0, 0x1);

    //设置时序
    davinci_enc_set_display_timing(mode_info);

    //设置水平同步和垂直同步使能,并且低有效
    dispc_reg_out(VENC_SYNCCTL,
    (VENC_SYNCCTL_SYEV |
    VENC_SYNCCTL_SYEH | VENC_SYNCCTL_HPL
    | VENC_SYNCCTL_VPL));

    dispc_reg_out(VENC_VMOD, 0x3011);

    }

    还有其他地方需要设置吗? 先谢谢了。

  • 我的印象中,怎么是设置output[0]这个啊~