总结了许多网友的发言:
1。TFT 屏不能用AVR单片机直接驱动,基本上是这样,但也有看到例外。只是不太适合
2。建议用CPLD FPGA 或者DSP做驱动。但是用CPLD做最经济,网上有用EPM3128+RAM做的
3。参考了SHARP的LQ104V1DG51的屏分析TFT驱动时序
LQ104V1DG51资料
点击此处打开armok01154042.pdf
LQ104V1DG51引脚描述
CK 点时钟
Hsync 行同步信号
Vsync 帧同步信号
ENAB 不好翻译,反正是显示的使能信号,不能固定接高电平
R/L 以下的两个不考虑,作用是设置屏幕的方向,可以固定为一电平。
U/D 可以通过程序控制,使屏幕上下左右对调。
TFT驱动要不断有点时钟驱动,它的每一个点的信息是24bit(三种颜 {MOD}),每一种颜 {MOD}信息需要8bit容量,这样就有256*256*256的颜 {MOD}。TFT需要从第一行的第一点开始,不停的对每一点的进行刷新,刷新的顺序是,第一行的第一点,第一行的最后一点,然后是第2行。。。。。这样 一直到最后一行的最后一点。所以如果是320*240的屏幕,每一屏幕(每一帧)就需要刷新320*240个点。
刷新每一行需要有Hsync 来进行同步
刷新每一屏需要有Vsync 来进行同步
所以如果是320*240的屏幕,那么刷新每一屏幕(每一帧),就需要240个Hsync信号,但是只需要一个Vsync ,每次Vsync 来,下一个刷新的点就是屏幕的第一个刷新的点。
一般TFT的刷新频率为60HZ.从datasheet上的数据可以计算,刚好的59.9***HZ
这个TFT驱动的时序图
实际上并不是每个点时钟就刷新一个点,很多的点时钟都是没有用的。
从datasheet上的数据显示,详细见下面的“时序特性图”
仔细看图,每次Hsyns来一个负脉冲,经过THe的时间,ENAB需要设置高电平,(LQ104V1DG51是640*480的屏幕)这以后的640个点时钟的下降沿锁存数据。数据则是颜 {MOD}信息。640个点完成之后的数据都无效,直到下一个Hsyns的来临。所以见“时序特性图”,TH的时间(每一行的点时钟数典型值是800CLK,并不是640).
在看Vsync,其实也并不是每一帧有480个Hsyns,实际上要多一些,见“时序特性图”,典型值是525个Hsyns,时序特性图中所要的典型时钟为25.18MHZ,那么刷新频率是25.18*10e6 /525/800=59.95HZ,
现在你明白了吗?(未经过实践证实)如有什么理解错误的地方请指正,谢谢。
verilog HDL学的不精,程序未写。请高手赐教。
这个是时序特性图
-----
此内容被ilan2003于2007-05-13,23:02:07编辑过
-----
此内容被ilan2003于2007-05-13,23:03:27编辑过
Vsync 帧同步信号 每一屏扫描时用到,但实际上一直在用它,脉冲
ENAB 不好翻译,反正是显示的使能信号,不能固定接高电平,这个信号一般是硬件上接个固定电平
R/L 以下的两个不考虑,作用是设置屏幕的方向,可以固定为一电平。
U/D 可以通过程序控制,使屏幕上下左右对调。
R/L U/D是决定扫描方式的,从上到小 从下到上,从左到右,从右到做方式扫描.
同时LCD 的分辨率越大,缓冲区需要越大,1024*768*16/2(1024*768 18bit的LCD需要这么大),这样以来,刷一屏有很大的数据,而ARM的外部总线来刷新缓冲区(SDRAM),这样就把ARM的数据带宽占用了很多,这个时候ARM就干不了其它的事情了.这也是为什么ARM驱动不了大尺寸的LCD,或者驱动的时候不是很理想的原因. ATMEL的SAM9261(外频100MHz),cirrus logic EP9315 EP9307外频率100MHz ,三星的s3c2410外频66MHz 而三星 的2440外频率是133MHz。
三星的2410外频是100MHZ吧,不知道是否正确??
一周热门 更多>