LT9211支持mipi转lvds,参考原理图如下,先拿到代码移植好后,接上屏幕看效果。
一开机,屏幕在不断的刷红绿蓝的图片,参考lcd的datasheet,如果没有检测到lvds信号,就在屏幕的测试模式。
说明,背光和lcd的电源已控制正确。
再来看看lt9211的工作状态,能读到id,i2c能正常通信。但就是不能检测到mipi信号的时序,读出来的hfp,hbp,hsync,vfp,vbp,vysnc都是0。先让ic进入自测试模式,看输出信号是否正确。测试后,发现屏幕依然在刷红绿蓝的图片。先来排查下座子跟屏的引脚能否对的上,也拿万用表量了,引脚没有错误。直觉告诉我,问题出在了ic端,ic的前端和后端都工作不起来。量了一下ic的各路电源,都没发现异常。25M的晶振也正常起振。量了下lvds的输出信号,发现lvds的时钟输出正常,但信号不对。
拿原厂给的参考原理图对了下,也没发现异常。就这样耗了2天,都没发现其他异常。无意中发现6.04k的参考电阻没贴,但原理图上是有画的,查看bom表,发现没有这颗电阻。后来发现是整理bom的人弄错了,导致没贴。实在不应该。
把参考电阻贴上后,ic自测试显示正常。
能ic正常工作,屏幕也能正常点亮。
但显示界面不稳定,随机黑屏。量到mipi这边的数据和时钟都是正常的,lvds的时钟也正常,但数据会随机的消失,然后又出现。
通过线程不断读pcr寄存器(每隔200ms读一次),发现黑屏时,pcr是不稳定的 ,后来fae通过修改pcr相应的参数来改善。
lvds的时钟信号:,兼容二供屏时,发现进系统花屏,使用ic的自测模式也无法点亮屏幕,但休眠唤醒后能正常点亮屏幕。
后来发现是上电时序的缘故。解决方法是先拉低lvds的5v使能脚,初始化lt9211一半后,再拉高lvds的5v使能脚,然后再初始化lt9211。
lvds_5v_en_low
lt9211_init1
lvds_5v_en_high
lt9211_init2