微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 有没哪位同仁做过屏的的cmd模式转vdo模式的?

有没哪位同仁做过屏的的cmd模式转vdo模式的?

时间:10-02 整理:3721RD 点击:
在75和89上,做了两个屏的cmd转vdo模式,都是启动时没logo和开机动画,启动过程中一直黑屏,启动完了也是黑屏,需要唤醒才能正常亮!纠结啊!

请将你的
static void lcm_get_params(LCM_PARAMS *params)
发上来给大家看看
怀疑 是这个东西配置有问题。
我在75与89上都没有做过MIPI所以不清楚
在72上做MIPI接口的,没有你说的问题。

这个是75上的,用的屏是科迪的 fwvga,IC ili9806
static void lcm_get_params(LCM_PARAMS *params)
{
                memset(params, 0, sizeof(LCM_PARAMS));
       
                params->type   = LCM_TYPE_DSI;
                params->width  = FRAME_WIDTH;
                params->height = FRAME_HEIGHT;
                // enable tearing-free
                params->dbi.te_mode                                 = LCM_DBI_TE_MODE_DISABLED;
                params->dbi.te_edge_polarity                = LCM_POLARITY_RISING;
#if (LCM_DSI_CMD_MODE)
                params->dsi.mode   = CMD_MODE;
#else
                params->dsi.mode   = SYNC_PULSE_VDO_MODE;
#endif
       
                // DSI
                /* Command mode setting */
                params->dsi.LANE_NUM                                = LCM_TWO_LANE;
                //The following defined the fomat for data coming from LCD engine.
                params->dsi.data_format.color_order = LCM_COLOR_ORDER_RGB;
                params->dsi.data_format.trans_seq   = LCM_DSI_TRANS_SEQ_MSB_FIRST;
                params->dsi.data_format.padding     = LCM_DSI_PADDING_ON_LSB;
                params->dsi.data_format.format      = LCM_DSI_FORMAT_RGB888;
                // Highly depends on LCD driver capability.
                // Not support in MT6573
                params->dsi.packet_size=256;
                // Video mode setting               
                params->dsi.intermediat_buffer_num = 2;
                params->dsi.PS=LCM_PACKED_PS_24BIT_RGB888;
                params->dsi.word_count=480*3;
#if 0
                params->dsi.vertical_sync_active                                = 10;
                params->dsi.vertical_backporch                                        = 10;
                params->dsi.vertical_frontporch                                        = 10;        // 2
                params->dsi.vertical_active_line                                = FRAME_HEIGHT;
                params->dsi.horizontal_sync_active                                = 50;
                params->dsi.horizontal_backporch                                = 50;
                params->dsi.horizontal_frontporch                                = 50;
                params->dsi.horizontal_active_pixel                                = FRAME_WIDTH;
#else
                params->dsi.vertical_sync_active                                = 4;
                params->dsi.vertical_backporch                                        = 17;
                params->dsi.vertical_frontporch                                        = 17;        // 2
                params->dsi.vertical_active_line                                = FRAME_HEIGHT;
                params->dsi.horizontal_sync_active                                = 17;
                params->dsi.horizontal_backporch                                = 49;
                params->dsi.horizontal_frontporch                                = 57;
                params->dsi.horizontal_active_pixel                                = FRAME_WIDTH;
#endif
                // Bit rate calculation
                params->dsi.pll_div1=28;                // fref=26MHz, fvco=fref*(div1+1)        (div1=0~63, fvco=500MHZ~1GHz)
                params->dsi.pll_div2=1;                 // div2=0~15: fout=fvo/(2*div2)
                /* ESD or noise interference recovery For video mode LCM only. */
                // Send TE packet to LCM in a period of n frames and check the response.
                params->dsi.lcm_int_te_monitor = FALSE;
                params->dsi.lcm_int_te_period = 1;                // Unit : frames
                // Need longer FP for more opportunity to do int. TE monitor applicably.
                if(params->dsi.lcm_int_te_monitor)
                        params->dsi.vertical_frontporch *= 2;
               
                // Monitor external TE (or named VSYNC) from LCM once per 2 sec. (LCM VSYNC must be wired to baseband TE pin.)
                params->dsi.lcm_ext_te_monitor = FALSE;
                // Non-continuous clock
                params->dsi.noncont_clock = TRUE;
                params->dsi.noncont_clock_period = 2;        // Unit : frames
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
这个是湘航的,QHD,IC otm9608a,
static void lcm_get_params(LCM_PARAMS *params)
{
                memset(params, 0, sizeof(LCM_PARAMS));
       
                params->type   = LCM_TYPE_DSI;
                params->width  = FRAME_WIDTH;
                params->height = FRAME_HEIGHT;
                // enable tearing-free
                params->dbi.te_mode                                 = LCM_DBI_TE_MODE_DISABLED;
                params->dbi.te_edge_polarity                = LCM_POLARITY_RISING;
#if defined(LCM_DSI_CMD_MODE)
                params->dsi.mode   = CMD_MODE;
#else
                params->dsi.mode   = SYNC_PULSE_VDO_MODE;
#endif
       
                // DSI
                /* Command mode setting */
                params->dsi.LANE_NUM                                = LCM_TWO_LANE;
                //The following defined the fomat for data coming from LCD engine.
                params->dsi.data_format.color_order = LCM_COLOR_ORDER_RGB;
                params->dsi.data_format.trans_seq   = LCM_DSI_TRANS_SEQ_MSB_FIRST;
                params->dsi.data_format.padding     = LCM_DSI_PADDING_ON_LSB;
                params->dsi.data_format.format      = LCM_DSI_FORMAT_RGB888;

       
                params->dsi.intermediat_buffer_num = 0;//because DSI/DPI HW design change, this parameters should be 0 when video mode in MT658X; or memory leakage
        params->dsi.PS=LCM_PACKED_PS_24BIT_RGB888;
       
   // params->dsi.word_count=FRAME_WIDTH*3;        //DSI CMD mode need set these two bellow params, different to 6577
    //params->dsi.vertical_active_line=FRAME_HEIGHT;
   // params->dsi.compatibility_for_nvk = 0;                // this parameter would be set to 1 if DriverIC is NTK's and when force match DSI clock for NTK's
                params->dsi.vertical_sync_active                                = 4;
                params->dsi.vertical_backporch                                        = 8;
                params->dsi.vertical_frontporch                                        = 8;
                params->dsi.vertical_active_line                                = FRAME_HEIGHT;
                params->dsi.horizontal_sync_active                                = 6;
                params->dsi.horizontal_backporch                                = 37;
                params->dsi.horizontal_frontporch                                = 37;
                params->dsi.horizontal_active_pixel                                = FRAME_WIDTH;
   
    params->dsi.pll_div1=1;                // div1=0,1,2,3;div1_real=1,2,4,4
    params->dsi.pll_div2=1;                // div2=0,1,2,3;div2_real=1,2,4,4
    params->dsi.fbk_div =33;                // fref=26MHz, fvco=fref*(fbk_div+1)*2/(div1_real*div2_real)               

                // Need longer FP for more opportunity to do int. TE monitor applicably.
                if(params->dsi.lcm_int_te_monitor)
                        params->dsi.vertical_frontporch *= 2;

                // Monitor external TE (or named VSYNC) from LCM once per 2 sec. (LCM VSYNC must be wired to baseband TE pin.)
                params->dsi.lcm_ext_te_monitor = FALSE;
                // Non-continuous clock
                params->dsi.noncont_clock = TRUE;
                params->dsi.noncont_clock_period = 2; // Unit : frames
}

你的初始化中有没有一个0X35的寄存器?

89平台上点的那个屏没有,75点的屏上面有,这和TE有关么?

最好关掉吧。

ok
试试看

试了下  关掉也没用

发个log上来看看,开机黑屏

lcd背光亮了吗?  另外既然你唤醒可以,那你可以看看你resume干了些什么?


背光 亮了  在cmd模式下是ok的

小编:请教下,下面这两个参数是配置什么的,刚接触屏调试,不太懂;
params->dsi.vertical_sync_active                                = 4;
params->dsi.horizontal_sync_active                                = 6;

水平和垂直同步信号脉冲宽度

嗯嗯,学习了,非常感谢!

请问        params->dsi.mode   = BURST_VDO_MODE;跟params->dsi.mode   = SYNC_PULSE_VDO_MODE;有什么区别,怎么确定该填哪个值。

小编,请问你这个问题解决了吗,如果解决了能否告知是如何解决的?

上一篇:MT6311
下一篇:MT8163 SD卡热插拔

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top