我是靠谱客的博主 犹豫季节,最近开发中收集的这篇文章主要介绍[MTK] [LCM]ili9806c和ili9805c开启ESD机制使用过程概率性出现上方闪线,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

[DESCRIPTION]
ili9806c和ili9805c在开启ESD机制使用过程中概率性出现闪线,闪线颜色和当前屏幕最下方颜色类似,而关闭ESD,则不会复现问题
 
[SOLUTION]
 
该问题原因是ILITEK这两颗video mode IC在停掉数据后会内部启count报Hsync,再开启ESD机制后,read完寄存器后,其内部Hsync有可能会撞到第一次的Vsync,这样就会导致HS的第一条line异常,采用最后一条line去补到第一条line。
 
可以如下修改:
 
mediatekplatformmt6572kerneldriversvideodsi_drv.c
 
添加如下红色部分code
 
DSI_STATUS DSI_StartTransfer(bool isMutexLocked)
{
……
        DSI_WaitForEngineNotBusy();
       
#if 1 //3 add by MTK haitao for send Hsync package
        while(DSI_REG->DSI_INTSTA.BUSY);  
        OUTREG32(&DSI_REG->DSI_INTSTA, 0x0);
 

        DSI_clk_HS_mode(1);

        DSI_BackUpCmdQ();

        DSI_SetMode(CMD_MODE);

        UTREGBIT(DSI_INT_ENABLE_REG,DSI_REG->DSI_INTEN,RD_RDY,0);  

        UTREGBIT(DSI_INT_ENABLE_REG,DSI_REG->DSI_INTEN,CMD_DONE,0);

 

        OUTREG32(&DSI_CMDQ_REG->data[0], 0x00002100);

        OUTREG32(&DSI_REG->DSI_CMDQ_SIZE, 1);

       

        OUTREGBIT(DSI_START_REG,DSI_REG->DSI_START,DSI_START,0);
        OUTREGBIT(DSI_START_REG,DSI_REG->DSI_START,DSI_START,1);

       

        while(DSI_REG->DSI_INTSTA.CMD_DONE == 0);
        OUTREGBIT(DSI_INT_STATUS_REG,DSI_REG->DSI_INTSTA,CMD_DONE,0);

 

        UDELAY(20);

 

        OUTREG32(&DSI_CMDQ_REG->data[0], 0x00003100);

        OUTREG32(&DSI_REG->DSI_CMDQ_SIZE, 1);

       

        OUTREGBIT(DSI_START_REG,DSI_REG->DSI_START,DSI_START,0);
        OUTREGBIT(DSI_START_REG,DSI_REG->DSI_START,DSI_START,1);

       

        while(DSI_REG->DSI_INTSTA.CMD_DONE == 0);
        OUTREGBIT(DSI_INT_STATUS_REG,DSI_REG->DSI_INTSTA,CMD_DONE,0);

 

 

        OUTREGBIT(DSI_INT_ENABLE_REG,DSI_REG->DSI_INTEN,RD_RDY,1);      

        OUTREGBIT(DSI_INT_ENABLE_REG,DSI_REG->DSI_INTEN,CMD_DONE,1);
        DSI_RestoreCmdQ();

        DSI_SetMode(lcm_params->dsi.mode);

       

        DSI_clk_HS_mode(1);
       

#endif
 
    // To trigger frame update.
    DSI_Start();
……
}

 

最后

以上就是犹豫季节为你收集整理的[MTK] [LCM]ili9806c和ili9805c开启ESD机制使用过程概率性出现上方闪线的全部内容,希望文章能够帮你解决[MTK] [LCM]ili9806c和ili9805c开启ESD机制使用过程概率性出现上方闪线所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部