liuangliuang 发表于 2013-12-9 00:09:18

cubieboard A10点亮笔记本14寸LVDS液晶屏

本帖最后由 liuangliuang 于 2013-12-9 00:08 编辑

先上图吧

这是官方的配置方法
http://linux-sunxi.org/Cubieboard/LVDS
3.3V电源和12V电源(我的屏用5V也可以点亮,datasheet上说是7.5V-21V)
不能使用cubieboard的电源,液晶屏启动时电流较大,有可能烧坏cubieboard。
接下来就是照着datasheet上的引脚功能把对应的线连接起来。连接好后最好用万用表再检查一遍,我可是在这个上栽了个跟头,淘宝买的转接线颜色不正确,导致我把RX1和RX2的+/-都接反了,有时候还是不能凭经验做事的。
先分析一下官方的配置,根据datasheet的定义连接液晶屏和cubieboard对应管脚


接下来是软件,看datasheet中的时序部分,

根据这个确定垂直有效像素数(480),垂直空白像素数(10~70),垂直总像素数(490~550);水平有效像素数(800),水平空白像素数(130~290),水平总像素数(930~1090);时钟频率(27~33MHz)。
有了这几个参数,就可以配置了
lcd_hbp = 200//水平空白像素数(130~290) lcd_ht = 1055//水平总像素数(930~1090) lcd_vbp = 25   //垂直空白像素数(10~70) lcd_vt = 1050//垂直总像素数*2(490*2~550*2)这个是两个屏幕的垂直总像素
lcd_if = 3      //使用LVDS模式
lcd_lvds_bitwidth = 1//色深18位,RGB666
lcd_dclk_freq = 30   //时钟频率MHz
要配置的重点就是lcd_hbp 、lcd_ht 、 lcd_vbp 、lcd_vt 、lcd_dclk_freq 这5个参数
总结一下有如下关系,一般都是每秒60帧图像
                   时钟频率=水平总像素数 * 垂直总像素数 * 每秒的帧数
            lcd_dclk_freq =lcd_ht    *   ( lcd_vt/2 )*   60
lcd_vbp和lcd_ht是可变参数,不过要保证
lcd_ht >= (lcd_hbp+lcd_x*1+4)
(lcd_vt/2) >= (lcd_vbp+lcd_y+2)说白了就是要给液晶屏留一点时间,保证扫描完
一行后可以移到下一行行首,扫描完一帧后可以移到下一帧帧首。

下面是官方的配置,用的24bit模式
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 1//lcd输出
screen0_output_mode = 4
screen1_output_type = 1
screen1_output_mode = 4
fb0_framebuffer_num = 2
fb0_format = 10
fb0_pixel_sequence = 0
fb0_scaler_mode_enable = 1
fb1_framebuffer_num = 2
fb1_format = 10
fb1_pixel_sequence = 0
fb1_scaler_mode_enable = 1
lcd0_bright = 197
lcd1_bright = 197
lcd0_screen_bright = 50
lcd0_screen_contrast = 50
lcd0_screen_saturation = 57
lcd0_screen_hue = 50
lcd1_screen_bright = 50
lcd1_screen_contrast = 50
lcd1_screen_saturation = 57
lcd1_screen_hue = 50
lcd_used = 1    //使用lcd0
lcd_x = 800      //水平像素数
lcd_y = 480       //垂直像素数 l
cd_dclk_freq = 30      //数据传输频率MHz
lcd_pwm_not_used = 0   //使用pwm
lcd_pwm_ch = 0         //pwm从PB2送出
lcd_pwm_freq = 10000      //pwm信号频率
lcd_pwm_pol = 0         //pwm占空比的极性
lcd_if = 3                        //使用lvds模式
lcd_hbp = 200         //指有效行间
lcd_ht = 1055            //指一行总的dclk 的cycle个数
lcd_vbp = 25         //指场同步信号(vsync)开始,到有效数据行开始之间的行数
lcd_vt = 1050         //指两场的总行数
lcd_hv_if = 0
lcd_hv_smode = 0
lcd_hv_s888_if = 0
lcd_hv_syuv_if = 0
lcd_hv_vspw = 0
lcd_hv_hspw = 0
lcd_lvds_ch = 0
lcd_lvds_mode = 0
lcd_lvds_bitwidth = 0   //颜色深度24bit,rgb888
lcd_lvds_io_cross = 0
lcd_cpu_if = 0
lcd_frm = 0
lcd_io_cfg0 = 268435456
lcd_gamma_correction_en = 0
lcd_gamma_tbl_0 = 0x0
lcd_gamma_tbl_1 = 0x10101
lcd_gamma_tbl_255 = 0xffffff
lcd_bl_en_used = 0
lcd_bl_en = port:PH07<1><0><default><1>
lcd_power_used = 1
lcd_power = port:PH08<1><0><default><1>
lcd_pwm_used = 1
lcd_pwm = port:PB02<2><0><default><default>

开机时可以在串口看输出信息,如果参数不正确会有错误提示的
修改script.fex参考这个
http://forum.cubietech.com/forum.php?mod=viewthread&tid=141&highlight=script
参考资料
http://blog.163.com/zhangmaochu@126/blog/static/373606222011102693859527/
http://bbs.csdn.net/topics/320132577
第一次发帖,有点乱{:soso_e113:}



aaron 发表于 2013-12-25 17:13:08

本帖最后由 aaron 于 2014-2-17 17:16 编辑

       我这边也在调试,LVDS 12.1寸的,背光亮不起来,请问你那边是用5V点亮的么,另外的一种说法是要借助升压板升到AV (800-XK)V,求解楼主


                                                                                       ##问题已经解决

gerrie 发表于 2014-2-15 14:30:12

马克死列宁主义

mumu 发表于 2014-3-20 19:00:19

这个桌面是?(挺好看的)

taff 发表于 2014-7-8 09:17:02

很不错下载下来学习学习

明心清源02 发表于 2014-9-12 11:38:41

先顶个贴,谢谢楼主了

crazyjack 发表于 2015-12-4 11:42:16

:(:(:(:(:(:(:(:(:(:(:(:(
页: [1]
查看完整版本: cubieboard A10点亮笔记本14寸LVDS液晶屏