AC52 系列动态设置屏寄存器翻转问题处理说明文档
📎 原始文档:https://www.kdocs.cn/l/cmXxR8ccCtJt AC52 系列动态设置屏寄存器翻转问题处理说明文档
目 录
TOC \o "1-3" \h \u HYPERLINK \l _Toc11323 一、问题说明 PAGEREF _Toc11323 \h 2
HYPERLINK \l _Toc16176 二、排查过程 PAGEREF _Toc16176 \h 3
HYPERLINK \l _Toc10854 三、解决方法 PAGEREF _Toc10854 \h 4
问题一:设置屏寄存器不生效问题
一、问题说明
DV15 1.1.6版本SDK,部分板子出现动态设置寄存器翻转不生效问题。使用的屏是9503V,调用的设置屏寄存器的接口是dcs_send_short_p1,设置的寄存器为B1寄存器,根据不同的使用需求,正常情况下调用dcs_send_short_p1(0xB1,0X10)和dcs_send_short_p1(0xB1,0X13)能够实现屏幕的180度旋转。出现问题时,则设置不生效。

EMBED Package
二、排查过程
由于该问题属于非共性问题,并无固定复现步骤,故在此汇总当时的排查思路与过程。
①排查客户主控端(DV15)软件写寄存器流程,流程正常
②使用逻辑分析仪确认主控已经发送寄存器命令,逻辑分析仪抓取主控有正常发送命令,且寄存器地址正确,需要写入的参数正确。
③按照屏厂提供思路在写寄存器前,重写一遍初始化寄存器序列最开始的一行寄存器,此处为{0xF0, 5, {0x55, 0xAA, 0x52, 0x08, 0x00},不同屏初始化序列不同,需要注意。测试仍复现问题。
③写命令前写关闭显示、进入休眠寄存器(0x10,0x28),写入命令后再写打开显示,退出休眠寄存器(0x11,0x29),测试个别机器可以,但换台机器仍复现问题
④拉reset脚重新初始化,测试能正常翻转但有黑屏现象客户不接受
⑤写命令前写屏软件复位寄存器(0x01)并重写初始化序列的所有寄存器,测试有切屏现象,底层同事评估较难修改,尝试绕过。
⑥寻找其他流程上(非屏流程)是否有其他绕过问题的方法,后与底层同事配合,建议客户在从机摄像头上做旋转180度,主机发送命令即可。此为方法1。
⑦后测试发现在初始化序列最开始加入,0x00,0x00,0x01寄存器(软件复位流程),测试后续直接发送命令可以生效,此为方法2。
最终,与底层同事讨论,推测应该是每次硬件复位后,屏有寄存器的初始状态不固定导致的。
三、解决方法
①主机发送命令给从机摄像头,从机上做旋转180度。
或
②在初始化序列最开始加入,0x00,0x00,0x01寄存器(屏软件复位寄存器)。
问题二:屏旋转180度需要设置两个寄存器时,直接设置寄存器有一帧图像闪过问题
需要在设置屏寄存器之前,使用dsi_task_con |= BIT(7);停止MIPI数据发送,设置完屏寄存器之后,使用dsi_task_con |= BIT(6);再次开启,这样能解决在设置两个屏寄存器过程中,屏显图像未稳定的问题。
杰理科技 2024.03.06