最近玩全志A33,4核芯片,跑安卓4.4,调了一把LVDS屏,给大家分享下调试过程,也给自己留个底。
1、原理图与管脚定义
咱们这个A33的LVDS使用的是LCD的接口来复用的,具体管脚分布如下,使用的是PD18-PD27这几个引脚;
我这边使用的屏是夏普的屏,型号是LQ121K1LG52,这款屏支持6/8bit 单路lvds接口。信号接口是20PIN的。管脚分布如下图
多说一句,这个20脚的高低电平对于LVDS输出格式有严重影响,8bit模式下,20脚如果接GND或者悬空,则选择NS模式;如果接高电平,则选择JEIDA模式;两种模式的区别如下图:
我这里板子上面,这个引脚接的是VCC,所以,使用的是JEIDA模式。
2、时序分析
在配置A33支持LVDS这一块,全志的BSP做的相当好了,我们只需要在一个叫做sys_config.fex的文件里面进行修改,就可以实现。这个文件在我的bsp里面是在这个目录:vendor/softwinner/tools/pack/chips/sun8iw5p1/configs/dvk3/sys_config.fex
如果使用的BSP版本或者开发板厂家不同,这个路径是有一点变化的。不过这个路径很重要,因为开机LOGO已经开机动画,都在这个目录里面;所以,如果你玩这个,你一定要知道。那么,废话不多说,贴图,上时序分析:
咱们这个屏的时序内容比较少,就这一点。我们看下type里面的内容:
时钟典型值为83.5MHZ,行周期为1680,列周期为831,我们可以算得出来,83.5 * 1000 * 1000 / (1680 * 831) 约等于60HZ。所以,下面对于A33里面的参数进行配置。
A33的LCD屏配置主要是2部分,一个是总配置,一个是具体配置,我们分别介绍:
这部分是主要设置,说重要也不重要,大家知道下就行了,基本上不用改。下面说下重要的具体配置部分了,先看一个解释部分的贴图
这里面最重要的几个参数,在lvds下面的,就是如下:
lcd_if, lcd_x, lcd_y, lcd_dclk_freq, lcd_hbp, lcd_ht, lcd_vbp, lcd_vt, lcd_hspw, lcd_vspw, lcd_lvds_of, lcd_lvds_colordepth, lvd_lvds_mode,主要就是这几个参数,我这边的配置如下,大家可以参考
一些跟时序无关的参数,大家自己对照定义来看就可以了,这里就说下跟时序相关的几个参数;
lcd_ht = 1680这个就是上面时序图里面的行周期
lcd_vt = 831这个是上面时序图里面的列周期
然后lcd_hbp, lcd_hspw怎么设计呢,lcd_hbp + lcd_hspw = 1680 - 1280,然后hbp > hspw,具体的值就随便你设计了。
同样的, lcd_vbp + lcd_vspw = 831 - 800,然后vbp > vspw,具体的也是有你设计。
最下面,还有几个lcd_pwm,以及lcd_en脚,需要对应你的原理图,我的是这样的
基本上,只要你的板子没有问题,然后按照这些提到的知识点来进行配置,LVDS屏就一定搞得定。
3、结尾
这个项目进行到现在,才刚刚开了个头,只是把安卓环境搭建好,LVDS屏搞亮了,后面还要用模拟SPI的方式驱动TSC2046的四线电阻屏,等我调通了,就会发布出我的调试方法给大家,敬请期待。