查看: 1356|回复: 0
打印 上一主题 下一主题

SSD2828驱动小米屏调试记录

[复制链接]
跳转到指定楼层
沙发
发表于 2016-3-22 16:18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用SSD2828驱动小米屏,没有代码,没有技术支持,自己写代码反复调试,整死我了,目前已经能正常显示图片,做个总线跟大家分享一下,说的不对的地方欢迎大家批评指正.
要点:
1. 小米3屏的分辨率是1920*1080, 24bit, 行列像素点为1080*1920, 默认显示方式为从左->右,上->下,这个可以通过DCS指令修改.
2. SSD2828手册上说SSD2828一行最大可显示1920个像素点(60Hz),而官网上说SSD2828的最大分辨率为1920x1200,所以我一直认为SSD2828
   行像素最大可设置为1920,列最大像素可设置为1200,实际上驱动小米3屏时,行列分别设置为1080*1920.         
3. 要用SSD2828最新的手册,目前能找到的是V1.3,旧版本有些地方是错的,误导人.
4. SSD2828 RGB接口和MIPI接口的位数是一起设置的(通过B6寄存器设置),即没有RGB为24bit,MIPI为16bit的这种情况.
5. SSD2828可支持的16,18,24bit的屏,而有的屏不支持16bit的,如小米3的屏就不支持,这个要看清楚.
6. 屏的data lane和SSD2828设置的要一致
7. SSD2828的VBP, VFP, HBP, HFP,和CPU这端设置不能一致,显示不正常,我也不知道为什么.

驱动初始化包括SSD2828,LCD屏的初始化
1. SSD2828初始化主要有设置PLL, 设置LCD参数(分辨率,VBP, VFP, HBP, HFP).
   CPU这端的Pclk设置为90~120MHz, SSD2828 PLL output为800MHz左右,900以上有些危险,干扰大(跟PCB有关系咯)
2. SSD2828提供给CPU接口,通过DCS设置LCD的一些参数,这个要看LCD手册有哪些参数要设置,最主要的是0x29,0x11指令,
  让LCD exit sleep mode和display on.

屏不显示可能有几种情况
1. 0x29,0x11指令发送不对,LCD没收到,一直在sleep状态.
2. 屏要显示,data lane上肯定有波型,如果data lane波型都没有,那就是ssd2828都没有配置好,跟CPU这端没有关系.
3. data lane有波型,可能跟C9, CA, CB,这几个寄存器有关,随便设置几个值试一下(最大,最小,中间值),我调试了一周,就是C9没有设置对,所以一直没显示

屏幕抖动可能跟VBP, VFP, HBP, HFP,这几个参数有关,修改SSD2828和CPU LCD controler的这几个参数试一下
颜色过度失真,右能跟B6寄存器中的PCLK_P和0xDB中的CLK_DELAY_SEL有关,我设置PCLK_P为1, CLK_DELAY_SEL为0,显示图片就好了.
不行可修改CLK_DELAY_SEL试一下,再不行我也没办法了.

除了必须设置的参数外,对显示有影响的寄存器主要有:
C9, CA, CB, DB, DD, ED, 调试中主要修改了这些寄存器






本帖转载于他站、仅供同学学习使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表