近来有业余项目将用到2.4寸的lcd彩屏,刚好手上有吃灰多年的meizu M6 sp;加上之前对这款机器屏幕进行过更换,手上算是搜集了一点资料(话说市面上成熟产品lcd的资料真的难搞,有机会后面再继续吐槽吧)。 简单归纳一下,得知市面的sp存在有两个硬件版本:v7和v8;刚好我都有这两个版本的机器, v7对应的屏为LTS241QV-F08,而v8对应LMS241GF06-001;资料称sp版本为samsung的屏幕(tp为toshiba屏),而此两款屏查询到的资料也确实是三星,但是没有驱动型号可查,看样子是要藏着掖着啊!查到sp可能有一款驱动ic为s6d0139,但不知道是v7还是v8,亦或者还有其它的可能。 回到自己手上的测试实验,因为这两款屏的接口位置和规格都一样,斗胆交换一下屏幕测试一下,然而结果均白屏,换回原机后又正常显示。好家伙,固件还不兼容,但从官网的固件看并未针对sp的硬件版本区分固件,而且官网目前sp也只有一个最终版本可下载,难道后期固件做了统一? 但当前显示白屏说明两款屏的驱动ic不兼容;
推测1)s6d0139对应了lms241gf06 s6d0139确实是三星240x320的屏幕驱动方案,这一点是能对应上。 sp v7的原理图上中lcd屏幕为35p 0.3mm间距、20V led背光、3.0V vcc供电、rgb666、spi接口。 该有的都有了,按理照线序lay块板薅jlc个羊毛,再拿手册写个驱动直接完美!是不是感觉快要大结局了?实际上真正的好戏才刚刚开始… ---------------------------------------------------------------------------------------------------------------------------- 那就先假设这厮就是s6d0139吧。从35p的spi接口说起,它就特殊在是三线(cs/scl/sdi),没有sdo就不能通过spi读取lcd寄存器,也就不能验证屏幕驱动ic是不是0x0139,只能往里面写命令或数据,甚至写成功没有都不知道。好一个魅族,这是要定制防抄袭啊?通过s6d0139的ds手册可知,spi接口写入数据时需要先写一个8bit的校验字节,其中的ID位是由驱动ic的外围配置IM【3:0】中的IM0决定,这里面就有两种可能性了(0或1)。
推测2)lcd屏的工作方式为spi+vsync 这两个屏幕都有可能是s6d0139,也有小概率都不是。
这个时候就要分析时序了,只分析8个通道的关键数据,RGB就不管了。先拿SP V8开刀(对应LMS241GF06 spi的数据倒是很像s6d0139的spi接口,都是8+16位的结构; 在图二中当然也确实只有写控制寄存器、RAM数据。ID值可见为1(高电平)
但比较特殊的是第一条指令: 它是一条读指令;暂时不知道原因
统计了一下初始化的配置字,见下表:
仍然有规律可见,图三整体上分为两段。而在第二段开始时RGB数据同时开始输出:
到此推测2)已经没有悬念,但推测1)比较悬;因为配置字里面对应的操作很多跟s6d0139寄存器描述对应不上。 在图一中另外一款s6d0154的SPI校验字节同s6d0319一样,所以也不能以此为判定依据。难道推测1)就只能验证到这?
SPI的时钟频率大概是350kHz左右,想要近一步验证推测2)得从SPI去初始化。此时就要祭出手边的stm32了!
---未完待续,期待两款lcd初始化时序分析之进阶
|