4418&6818 mipi屏的艰难之旅

在三星4418&6818平台上,遇到Mipi屏无法点亮的问题,经过排查发现是初始化时直接进入HS模式导致。解决方法是确保初始化时先进入LP模式,完成后才能进入HS模式。关键代码涉及NX_MIPI_DSI_SetClock和NX_MIPI_DSI_SetPhy的参数配置。
摘要由CSDN通过智能技术生成

之前只在mtk的平台上做过,所以拿到三星的4418&6818时是无比懵逼的。这两个平台没有设备树~~~代码有点乱吧,至少对于第一次做三星的来说是乱的。废话不多说。

平台:4418&6818

设备:mipi屏

前面花了一周的时间帮硬件排查问题的过程就不说了,心累。

在确认硬件没有问题之后开始看为什么还是点不亮屏。

clock有,data0有,reset有,各种主板端供出的电都正常,但是为什么还是点不亮呢?

初始化序列?

不可能啊,我当时就坐在fae的公司,他帮我确认了若干遍,并且用示波器和逻辑分析仪都把屏幕端接收的数据读出来对比了,没有错误。

上电时序?

按照fae给的上电时序是上电的,其中delay的时间也是在建议值范围之内。没有问题啊。

之后在一次操作中把reset初始化就拉高,或者只拉高不做高低高,发现屏幕可以亮,但是···有50%几率不亮。

遇到这种情况是疯了,还是要查原因啊。

高潮来了,fae最后慢慢排查我们的上电流程发现,现在中控发出的mipi居然是直接进入HS模式,根据fae的描述他们家的屏幕必须在初始化上电是先进入LP模式,当初始化完才能进入HS,接收video信号。

找呗。

在display_mipi.c中:


static int disp_mipi_setup(int module, int input, struct disp_vsync_info *psync, struct disp_mipi_param *pmipi)
{
    int index = 0;
    int clkid = DISP_CLOCK_MIPI;
    int width  = psync->h_active_len;
    int height = psync->v_active_len;
    int ret = 0;

    int i=0;
    int HFP = psync->h_front_porch;
    int HBP = psync->h_back_porch;
    int HS  = psync->h_sync_width;
    int VFP = psync->v_front_porch;
    int VBP = psync->v_back_porch;
    int VS  = psync->v_sync_width;

    unsigned int pllpms  = pmipi->pllpms;
    unsigned int bandctl = pmipi->bandctl;
    unsigned int pllctl  = pmipi->pllctl;
    unsigned int phyctl  = pmipi->phyctl;

    switch (input) {
    case DISP_DEVICE_SYNCGEN0:    input = 0; break;
    case DISP_DEVICE_SYNCGEN1:    input = 1; break;
    case DISP_DEVICE_RESCONV  :    input = 2; break;
    default:
        return -EINVAL;
    }

    NX_MIPI_DSI_SetPLL(index
            ,CTRUE      // CBOOL Enable      ,
            ,0xFFFFFFFF // U32 PLLStableTimer,
            ,PLLPMS_80MHz     // 19'h033E8: 1Ghz  // Use LN28LPP_MipiDphyCore1p5Gbps_Supplement.
            ,BANDCTL_80MHz    // 4'hF     : 1Ghz  // Use LN28LPP_MipiDphyCore1p5Gbps_Supplement.
         

要快速上手Kingst逻辑分析仪进行MIPI设置,可以按照以下步骤进行操作: 1. 确认所需的MIPI协议类型:MIPI有多种协议类型,如CSI(Camera Serial Interface)和DSI(Display Serial Interface),需要根据具体需求选择。 2. 连接设备和工具:将Kingst逻辑分析仪与待测试的设备通过MIPI接口连接,确保连接稳固。 3. 打开Kingst分析软件:在计算机上打开Kingst分析软件,选择MIPI协议分析模式。 4. 配置MIPI参数:在软件界面中,设置MIPI协议的参数,如时钟频率、传输模式等。根据具体的协议类型和需求,进行相应的配置。 5. 启动分析过程:确认配置参数无误后,点击软件界面上的开始按钮,启动MIPI信号的捕获和分析过程。 6. 观察并分析结果:在分析过程中,使用Kingst逻辑分析仪对MIPI信号进行捕获和解码,将信号波形和数据显示在软件界面上。观察信号的变化和波形特征,进行分析并获取所需的信息。 7. 保存和导出结果:分析完成后,可以将结果保存或导出,以便于后续的数据处理和报告生成。 需要注意的是,针对不同的MIPI协议和设备,可能需要参考相关的协议规范和资料,加深对MIPI工作原理的理解,并根据实际情况进行适当的调整和优化。此外,对于初次使用Kingst逻辑分析仪的用户,可能需要参考使用手册或在线教程,以便更好地理解和掌握操作步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值