mini2440 X35 移植LCD驱动

友善之臂mini2440配套的X35 LCD显示屏可谓是比较蛋疼,说是sony的,但是没有找到相关手册,从裸机编写程序就一直有问题。为了让以后的广大同胞少走弯路,在此将我遇到的一些问题做一些总结:

相关的裸板和驱动程序见链接http://t.cn/RyPU3dV

LCD pin : GPC,GPD,GPG :GPD[0:15] = VD[8:23] ;GPC[8:15] = VD[0:7] ; GPG4为LCD_PWREN引脚,X35 LCD没有背光引脚,MINI2440的背光电路是通过GP4引脚来开启的。

                   GPC[0:7]即为LCD控制引脚,设置为LCD模式即可GPC

LCD控制器寄存器介绍:

      重点的是 :

                1)  (VBPD,VFPD,HBPD,HFPD需要根据自己的屏幕进行调整,我当时就是一点一点的调整到最佳的)

                 2) VDEN 一定要翻转,否则无图像

寄存器介绍如下,按照下面操作进行就没问题了。

/*bit[17:8] : VCLK = HCLK / [(CLKVAL+1) x 2]    
    *             (10MHZ) 100ns = 100MHZ / [(CLKVAL+1) * 2]
    *            CLKVAL = 4;
    *  bit[6:5]  :PNRMODE = TFTLCD ;
    *  bit[4:1]  :BPPMODE = 0b1100  (16BPP)
    *  bit[0]     : 0  disable the video output and the LCD control signal....
    */
    lcd_regs->lcdcon1 = (4<<8)  |  (3<<5)  |  (0x0c<<1) ;  
    /*
    *  垂直方向的时间参数
    *  bit[31 : 24] : VBPD, VSYNC 之后再过多长时间才能发出第一行数据,LCD手册 T0 - T2 -T1
    *              VBPD = 0
    *  bit[23 : 14] : 多少行,320 行, LINEVAL = 320 - 1 = 319
    *  bit[13 : 6 ]    : VFPD 发出最后一行数据之后,再过多长时间才能发出VSYNC,LCD 手册T2 - T5
    *              VFPD = 0
    *  bit[5  :  0 ]  :VSPW ,VSYNC信号的脉冲宽度,LCD手册= 1,所以VSPW = 1-1=0
    *              VSPW =      9;
    *  
    */
    lcd_regs->lcdcon2 = (0<<24)  |  (319<<14)  |  (0<<6)  |  (9<<0);
    /*
    *  水平方向的时间参数
    *  bit[25:19]: HBPD, HSYNC 之后再过多长时间才能发出第一个像素的数据T0 - T2 -T1
    *              HBPD = 25
    *  bit[18:8]  : 多少列,240 ,HOZVAL = 240 -1 =239        
    *  bit[7  :0]  : HFPD =0
    *
    */
    lcd_regs->lcdcon3 = (25<<19) | (239<<8) | (0<<0);
    /*
    *  水平方向时间参数
    *  bit[7:0]  :  HSPW,HSYNC信号的脉冲宽度,T7-1
    */
    lcd_regs->lcdcon4 = 4;
    /*
    *  信号的极性
    *  bit[11] : 1 = 565 format
    *  bit[10] : 1 = The video data is fetched at VCLK rising edge             此处有差别
    *  bit[ 9]  : 1 = HSYNC 信号要反转, 即低电平有效
    *  bit[ 8]  : 1 = VSYNC 信号要反转, 即低电平有效       
    *  bit[ 6]  : 1 = VDEN 反转                                  一定要翻转,否则无图像
    *  bit[ 0]  : 1 = BSWP: HWSWP = 0:1  2440手册 P413    
    *
    */
    lcd_regs->lcdcon5 = (1<<11) | (0<<10) | (1<<9) | (1<<8) |(1 << 6)  | (1<<0);

   lcdsaddr1 -3 为显存寄存器,用来存储将要在LCD上显示的信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值