双屏的模式有很多种,本篇文章介绍的是用于AR/VR场景的双目同步异显。
我们使用的是两个规格完全一样的显示屏,分辨率为640*480,RGB565(bpp16),刷新率为60fps。
这种方式在显示内容上具有很强的相关性。从上层的角度看只创建了一个buffer(1280*480),硬件上连接了两路mipi dsi,且每路都使用了两lane数据线。SOC上对buffer数据采用的是左右切割的模式,就是说同一张图,左半边用一路mipi dsi传输,同时右半边用另一路mipi dsi传输,如下图:
以下分别从UEFI和kernel两个方面讲讲这种连接的软件配置。
建议优先配置UEFI,因为
①UEFI中的phy timing是自动计算的,这就解决了因为timing不对导致的异常问题。
②UEFI在开机阶段就可以验证屏幕是否正常显示,不用等开机或开机后亮灭屏这么久。
一、UEFI
①在 boot_images/QcomPkg/SDM670Pkg/Library/MDPPlatformLib/MDPPlatformLib.c 中找个高通默认dual dsi video的屏幕配置,这里我选的是Truly_TFT2P2827_E_video_xmldata。
②根据自己实际屏幕参数修改分辨率和porch大小,因为我们要求Vbalnk和Hblank时mipi要在LP模式,且时间要足够长,所以Hblank配置的很大。