MT8766 LCD调试全攻略
一、 调试准备工作三步走方案1. 硬件连接确认基础中的基础在动代码前必须确保硬件供电和信号路通电压 (VCC/VSP/VSN)检查屏幕的数字供电通常 1.8V/3.3V以及偏置电压通常 pm 5V 或 pm 5.5V。Reset 信号确认 Reset 引脚在开机瞬间有从低到高的电平跳变。背光 (PWM/EN)确认背光使能信号是否拉高PWM 是否有波形。MIPI 信号示波器测量时Clock 线在点屏瞬间应有高频信号Data 线应有突发数据包。2. 软件配置路径驱动代码vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/ (LK 阶段) 和 kernel-x.x/drivers/misc/mediatek/video/common/lcm/ (内核阶段)。项目配置device/mediateksample/[project]/ProjectConfig.mk 中的 CUSTOM_LK_LCM 需指定驱动名。DTS 配置检查设备树中的 dispsys 节点和对应的引脚复用GPIO 控制。二、 关键参数配置表 (lcm_params_t)参数类别核心字段注意事项模式选择.dsi.modeCMD_MODE或SYNC_PULSE_VDO_MODE。时钟频率.dsi.PLL_CLOCK参考前文公式计算。params-dsi.PLL_CLOCK (H_active * V_active * FPS * 24 / lanes / 2) * 1.25CMD 模式需预留 20% 以上余量。时序参数hactivevactivehbphfpvbpvfp必须严格匹配 LCD Spec 中的 Timing 图否则会导致偏屏或无法同步。通道数.dsi.LANE_NUMMT8766 常用 4 Lanes。初始化序列push_table()必须确认寄存器设置尤其是 0x11 Exit Sleep 和 0x29 Display On。三、 一般问题排查方向 (Troubleshooting)1. 黑屏 (Black Screen)排查顺序背光 - 供电 - 复位 - MIPI 时钟。Log 检查adb shell dmesg | grep -i lcm。看是否有 Wait TE timeout (CMD 模式常用)。看是否有 mtk_dsi_wait_for_idle timeout (MIPI 链路不通)。2. 花屏/绿屏/噪点 (Static/Noise)原因 AMIPI Clock 频率过高超出了硬件走线的物理极限。对策适当调低 PLL_CLOCK。原因 B初始化序列Setting不对屏幕 IC 未进入正确状态。原因 C驱动能力 (Driving Current) 不足。对策修改 DSI 驱动强度参数。3. 屏幕撕裂 (Tearing)现象快速滑动时画面断层。原因TE 信号不同步或时钟偏慢。对策检查 LCM_DSI_CMD_MODE 宏是否开启确认 te_edge 是上升沿还是下降沿触发。4. 闪屏 (Flickering)原因刷新率FPS太低或 V-blanking 设得不合理。对策调整 V_total 或 H_total 确保 FPS 维持在 60Hz 左右。四、 调试注意事项避坑指南DSI 状态机死锁MTK 平台如果 MIPI 信号在初始化时被干扰可能会导致 DSI 控制器挂死后续任何写命令都无效。休眠唤醒一致性必须测试多次 Suspend/Resume。有些屏幕在 Resume 时需要比第一次开机更长的 Reset 延时。ESD 保护在车载或工业环境下如果屏幕偶尔黑屏但在重新插拔后恢复考虑是否触发了屏幕 IC 的 ESD 保护需要在驱动中增加Check ID的机制进行自动复位。LP 模式与 HS 模式某些指令如初始化命令必须在低功耗LP模式发送而像素数据在高速HS模式。检查 params-dsi.intermediate_transport_mode 的配置。