Dragonboard 410c Android 7寸屏HDMI调试

最近入手了一款树莓派的7寸电容触摸显示屏,用来接我的Dragonboard 410c板做显示器和触摸控制使用。

Dragonboard 410c Android 7寸屏HDMI调试

Dragonboard 410c Android 7寸屏HDMI调试

这款显示屏在linux下能都正常显示和触摸使用,但切换到Dragonboard 410c Android版本时,却无法正常显示,开机后花屏出现竖条纹,画面显示不全等。

Dragonboard 410c Android 7寸屏HDMI调试

Dragonboard 410c Android 7寸屏HDMI调试

使用wm命令查看屏幕分辨率,发现默认分辨率是1920x1080

Dragonboard 410c Android 7寸屏HDMI调试

而这款显示屏的分辨率是1024x600,因此用wm命令修改一下龙板的输出分辨率

Dragonboard 410c Android 7寸屏HDMI调试

修改后重启,发现同样有显示条纹,画面显示错位情况。

Dragonboard 410c Android 7寸屏HDMI调试

使用wm overscan等其他命令进行修改后也不起作用。

后面仔细分析了一下,应该跟HDMI的输出有关。而Dragonboard 410c板是用ADV7533芯片MIPI转HDMI输出的,查看代码发现ADV7533在这里只支持1080P和720P输出。

但是在Linux系统下显示又正常,去查了一下linux系统kernel部分的ADV7533驱动代码,发现这里的驱动齐全多了,支持各个分辨率的输出,但由于涉及不同分辨率时有不同时序和不同寄存器设置,无法直接简单移植到Android平台。

网上一直没有搜索到ADV7533具体的寄存器相关文档,因此只能尝试在Android版本上修改默认输出分辨率为720P。

找到DT文件中ADV7533的配置

Dragonboard 410c Android 7寸屏HDMI调试

Dragonboard 410c Android 7寸屏HDMI调试

可以看到,默认使用的是1080P的输出,修改为720P输出

Dragonboard 410c Android 7寸屏HDMI调试

Dragonboard 410c Android 7寸屏HDMI调试

修改后发现正常显示了!!!

Dragonboard 410c Android 7寸屏HDMI调试

用wm命令查看下分辨率

Dragonboard 410c Android 7寸屏HDMI调试

触摸屏也能正常使用

OK,后面有机会的话看看怎么设置ADV7533的寄存器值,直接修改到对应屏幕分辨率。