屏所使用的driver ic的配置需求。一般一款driver IC会用于多种尺寸的多款lcd屏(几种分辨率),然后driver IC的spec上会列出支持的大分辨率,大分辨率以下的其他分辨率可以通过寄存器配置,可以固化在firmware的OTP上。
一般屏幕生产时会把driver IC和panel做成一套。而panel的分辨率是固定某个值。针对这个屏,因为屏参数固定了,有很多屏内部会有nvram保存固化的参数(即OTP—one time programable存储方式),这样driver IC的配置直接根据OTP的参数设置,不需要外面spi进行设置。
如果你们的屏没有OTP,那么请给出具体的spi初始化命令和时序。
注意区分文档是针对此屏内的driver IC的,还是针对屏本身的。
在调试S2D13V40 epson图像校正芯片时,遇到一个问题,就是i2c通信正常(而且VIO电源、vcore电源,其他电源都正常),即能收到S2D13V40的i2c ack回应,读写都有ack,但是寄存器0x02 pid寄存器却读取到0x0000的值,示波器测量i2c信号是正常了,各路电源也是正常的,但是读取寄存器数据就是为0,写也报ack,但写完再读取,还是0,而不是写的值,对比datasheet,发现i2c完全按照spec手册要求的顺序和方式,波形测量和数据也是符合datasheet的,但是就是不行,而且lvds显示也不通。后来检查芯片外接的晶振,频率是对的26MHz,但是后来发现晶振的电压只有1v,而手册要求是3v左右。也就是对于此芯片来说震不起来,所以function功能部分就工作不正常,虽然i2c部分工作正常,所以读取都是0.
通过这个经验,总结就是,如果很简单的东西,软件正常,但是就是硬件不工作。由于现在设计的硬件都是分模块的,所以总线接口io有模块、功能有独立模块。所以你一定要仔细检查硬件的电源、晶振、等等每一个管脚,看是否正常。对比手册,不要漏掉一个细节。
关于黑屏的问题分析:
1)先检查黑屏时,背光是否亮,找个暗的地方看。
2)如果背光亮,看屏幕的kernel log,看屏是否mipi dsi初始化出错,或者屏的上电出问题。
3)如果没有异常,看看是否因为home,即android的launcher没有正常启动或反复crash了。导致没有在framebuffer上画东西。通过启动setting可以看到,如果setting应用起来,能出现显示,那么就是home本身问题了,或者通过logcat log看。
对于jpeg压缩,需要记住,对于有损压缩,那么就会出现图像的线条旁边出现魔鬼点,即锐利度不够,变差。即所谓的图像细看,线条旁边出现虚幻的旁条。可以保存图片,看看压缩后的原图是怎么样的,再看display panel的显示是怎么样的。 另外看看bmp图来显示的效果,做对比。
具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html
另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。