AT91SAM9261的LCD控制器学习笔记

原创 2011年01月24日 10:17:00

  通过近期的摸索,终于完全了解了此lcd控制器的各个寄存器的意义以及配置,现在将其特别需要的注意的地方记录如下:

一、时序问题:

有三个寄存器LCDCON1LCDTIM1LCDTIM2设置很重要

 

寄存器LCDCON1中有二个域BYPASSCLKVAL,其中如果BYPASS1代表着LCD屏的像素时钟为LCD内核时钟,也即主控时钟;如果BYPASS0代表着LCD屏的像素时钟为如下公式计算:

Pixel_clock=system_clock/(clkval+1)×2

其中:system_clock代表的是lcd内核时钟,也就是主控时钟

      Pixel_clock代表的是lcd屏的像素时钟,也即是信号LCDDOTCK的时钟

 

寄存器LCDTIM1LCDTIM2这二个的设置要根据具体的lcd屏的数据手册来设置,手册上面已经说的很清楚了。

其中LCDTIM1中需要根据手册设置的域为:VFPVBPVPWVHDLY

其中LCDTIM2中需要根据手册设置的域为:HBPHFPHPW

 

二、图片格式问题:

9261lcd控制器可以驱动16位或24位的数字TFT液晶屏,其中16位屏的图片格式为:555格式,且从低位到高位依次为颜色:红,绿,蓝。

 

三、lcd的像素时钟频率与lcd帧刷新频率的关系:

lcd的像素时钟频率为:LCDDOTCK的频率

lcd帧刷新频率为:LCDVSYNC的频率

其关系为公式:

 

其中HOZVAL为水平像素个数;LINEVAL为垂直像素个数

 

     四、9261lcd控制器配置LCD屏时序的步骤:

         我使用的lcd屏是群创公司生产的AT070TN83 V.1型号的7寸数字液晶屏其主要的参数如下:

 VFP=132VBP=22VPW=1, HBP=45, HFP=210, HPW=1,其中VHDLY好像没有说明,其分辨率为800*480 Lcd像素时钟频率为32.4MHZ~43MHZ,其推荐值为40MHZ

首先,利用屏的资料把VFPVBPVPWHBPHFPHPW设置好,VHDLY可以先不要设置

其次,根据屏的数据手册可以得出lcd屏的最佳分辨率为60HZ,它是通过这样计算出来的:

查屏的数据手册可以得知:一个LCDHSYNC周期为1056(推荐值)LCDDOTCK周期,一个LCDVSYNC周期为635(推荐值)个LCDHSYNC周期。

当屏的刷新频率为60HZ时,得到的LCDDOTCK的频率为:

60*1056*635=40233600HZ,大约等于40MHZ,等于其推荐的lcd像素时钟频率。

注意:但在lcd控制器上设置lcd像素时钟频率时,不要设置成为40MHZ,其设置公式为:lcd像素时钟频率=屏的刷新频率×HOZVAL×LINEVAL

  其中,屏的刷新频率也就是LCDVSYNC信号的频率,HOZVALlcd屏的宽度像素大小,LINEVALlcd屏的水平像素大小

  我设置的是60*800*480,大约等于:23MHZ.

所以设置的时候,并不要在lcd控制器上把LCDDOTCK像素时钟设置成为40MHZ,只要设置为23MHZ就可以了。LCD屏数据手册上的推荐频率40MHZ是针对1056*635个像素周期的,而9261lcd控制器上的23MHZ是针对800*480个像素周期的。但它之间的联系是60HZ

  还有VHDLY的设置可以通过下面这个公式来计算:

 

其中PCLK_PERIODLCDC时钟周期中测量的LCDDOTCK的信号周期,也就LCDDOTCK的周期,DPATH_LATENCY为数据路径延迟。其值为下面的表:

这个表是at91sam9261的数据手册中的,根据这个表以及lcd屏的数据手册,我们就可以确定VHDLY的值了。

我的屏的VHDLY的值为1,因为HBP=45HPW=1,已经大于9了,这里只要把VHDLY设置成1就符合要求了。

 

 

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

嵌入式Linux驱动学习之LED控制:基于AT91SAM9261EK

最近移植成功了基于AT91SAM9261EK的UBI根文件系统,移植了ftp服务器功能,因此,打算开始驱动的学习,首先写个最简单的基于Linux 的LED驱动,根据网上的例子,修改一下。然后成功运行!...

嵌入式Linux驱动学习之USART串口控制:基于AT91SAM9261EK

普通单片机的串口操作比较容易,但是基于Linux系统的串口操作难不难呢?其实,基于Linux操作系统的串口操作分过两部分:串口驱动(注册设备)与串口的应用程序,一般厂家或是Linux内核已经提供了基于...

at91sam9261的AIC学习

At91sam9261的AIC学习总结 1. 中断源使能 对于每一个中断源,包括中断源0中的FIQ,可以通过命令寄存器AIC_IECR(中断使能命令寄存器)和AIC_IDCR(中断禁用命令寄存器)...

at91sam9263学习笔记

  • 2013年11月23日 08:26
  • 425KB
  • 下载

交叉编译openssh到at91sam9261开发板

交叉编译交叉编译的过程参考OpenSSH移植到ARM Linux教程

基于AT91SAM9261EK的嵌入式Linux+Cramfs根文件系统移植成功

硬件开发环境: AT91SAM9261EK开发板,NandFlash启动。使用最新的AT91Bootstrap 3.8.2+Uboot 2014.04。 因为NandFlash是128M的,需要修改U...

基于AT91SAM9261EK的嵌入式Linux2.6.32+Yaffs2 根文件系统移植成功

经过几天的尝试与摸索,终于把yaffs2根文件系统移植到AT91SAM9261EK上,移植中出现了一些问题,经过查找网络资源并分析,总结,终于测试成功。 (1)Bootstrap V3.8.5 :官方...

AT91SAM9261的LINUX2.6 GPIO与GPIO中断

关于LINUX对926X中断的实现(LINUX2.6.24中试用)  一,926X中断的描述  对于926X有先进中断控制器控制中断具体对应的中断有0~310为FIQ,1为系统,2~31对应设备....

at91sam9261 arm芯片uboot移植记录。

at91sam9261    arm芯片uboot移植记录。 这几天,为了学习uboot在arm上的移植,就下载个最新版的uboot-2011.12版本的uboot。打算烧写到atmel公司...
  • hygzxf
  • hygzxf
  • 2012年02月05日 18:17
  • 3030
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AT91SAM9261的LCD控制器学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)