用CPLD做TFT驱动,用什么型号RAM好?
想用CPLD做TFT的控制器,请问用什么型号?如480*272,24位真彩,那一屏空间就是480*272*3=391680字节.那最起码要要能存两屏切换,那就是需要1M容量的,有什么型号能满足要求? 应是三片RAM,628128比较适合。24bit的LCD啊! 【1楼】 cock :
628128是128K的RAM,要3片呀,有没有一片和者别的方案呢?SDRAM可以么?
还有628128什么价位呢? 还有最好是低压型的,因为LCD和CPLD都是2.5V(或者1.5V,1.8V,2V,2.5V,3V,3.3V等电压) MRAM SDRAM的驱动不好做,能做就强了 【4楼】 xuyuyong :
MRAM?能列个型号吗?
【5楼】 sufeila :
是呀,CPLD挂SDRAM是有难度 这里还真有人用MRAM啊?
MRAM是Freescale的磁存储器,非易失,35ns读写,管脚和SRAM一样的
4M的型号是MR2A16A,千片价格200RMB吧。。。
SDRAM的话,CPLD还是算了吧 千片200RMB?是一千片200还是一千片量的单价200?
应该是后者吧?
那还是算了吧 当然是千片单价200RMB,还不算关税,毕竟人家新技术嘛 好象有点大材小用,我就是做显存,看来还是用128K的RAM搞3片拼 我用的是IS61LV25616AL
3.3V ,512K的,16位接口,
我计划是读三个数据,48位,然后发PSP两次,但由于我硬件上的设计没考虑那么多,结果现在有些麻烦,而且自己知道的太少关于CPLD,越往后,发现越麻烦,前几天把程序写好,结果错误一堆~现在还在调试,不知道能不能成功,从没做过RAM读写,第一次做还用不熟悉的CPLD,不知道行不行,发现有时CPLD逻辑上行的通,但实际上却不行~晕~还在研究中~不过唯一的好处就是有学到了一些关于CPLD的知识~ 【11楼】 ppa2001 :
IS61LV25616AL 只能存储一屏数据,如果外部刷新较慢会看见刷新过程,很难看,一般是有两屏RAM空间轮换刷新切换显示.
IS61LV10248是1M的RAM,不知道价格是多少,你的25616多少钱一片? 我的买的好象是30左右把,感觉贵了,被宰了又,我现在用的是类似流水线的写入方式,写RAM,和发数据给PSP,由于时钟不一样,几乎是并行的,且不会冲突,~不管有没有数据写入RAM,PSP都在刷新,从现在计算来看,外部写入的数据应该最大应该可以支持到10M/每次以上 16位接口的,采用54M晶阵,换更高的晶阵写如的速度可以更快,这都是因为硬件设计的问题,我才被迫想到这方法的,不知道可以行不?我目前只能说理论可行,还没严正,但现在以发现了一个问题,就是写RAM,我可以做的快,但读RAM时,就麻烦了,要求外部单片机能快速读出数据,不然由于用了类似流水线的方式.第一次读出的数据会被下次的读出的数据覆盖,CPLD可不会等MCU响应,头疼.不过希望我现在光写RAM,不读可以成功~还有很多要做的,昨晚测试PSP显示数据,看一条条的彩线,头都昏了! 怎么处理写数据和读数据 还是上次那样,CPLD管理.是否可行有待于验证,可是我不会CPLD.
这样MCU还必须设置一些命令,
比如:
1.X,Y镜象,
2.水平,垂直象素
3.还有无效同步脉冲数量
3.反色
等等 恩,自己的CPLD学的还很差,昨晚又碰到个问题,不知道怎么解决,不知道的太多了.逻辑是对的,但语法上实现就有问题,接着研究,今天买了144脚的EPM570,40远,很100脚的EPM570价格竟然一样,晕!从画个板子可以解决引脚复用问题,这样程序会简单许多~不过原来的板子还继续实验,从理论上说,即使有复用的脚,也没有问题,终究是我懂的太少,希望新的板子和现在的扳子都可以最后搞定~ 我也用EPM7128做了一块测试板可以点亮LM32C041这个屏!这个屏只能显512色的!但做个实验已足够了。显示只是RGB三色的东东还没有实则的东西来以点出来!楼上的可以切初切初一下哦呵呵 一般不需要读RAM,如果要读就做忙标志,外部MCU判忙标志.
【16楼】 ppa2001 :
如果外部MCU速度很慢,刷新一屏时间比较长,那LCD上的画面不是能看见刷新过程了.比如用AVR读BMP图片5秒换一张,那刷新时能看见2张图片逐行切换过程啊.怎么处理? to Oliver
应该不会的,我是这样想的,PSP的刷新是有9M时钟控制的,写如RAM是有54M,时钟,在PSP空闲时写如RAM数据,两者并行的
MCU给CPLD一个下降沿,CPLD读入数据,放入一个数据积存器~它的运行也是并行的
CPLD在PSP空闲时,读入数据积存器,写入RAM,不管数据有没更新,CPLD都会以一定的速度读数据积存器,写入RAM
由于这三者都是并行的,所以外面的数据如果很快,PSP也只是会有丢失部分点数据,PSP的刷新还是60HZ~
即使我想在PSP空闲时写一个数据点进去,(PSP一个发两个点,空闲写一个点,现在是这样的),图象的是刷新也因该有30HZ,
但如果用144脚的570,由于没有了引脚复用~写入RAM的数据应该可以比刷新PSP的速度还快的~两个PSPSCK,发两个点给屏,但我可以在
两个PSPSCK中写入三个点到RAM~应该没问题,至少逻辑上OK.
不过现在语法有问题,还没成功,读RAM,也不知道有没有读出来~晕~ 关键是要处理好MCU通过CPLD写RAM,和CPLD读RAM刷行TFT 原来也有人在做CPLD驱动TFT屏啊,呵呵找到同伴了!
不过我驱动的不是那个PSP上的屏,是西铁城的一款频,好象小俊在做他mp4项目时用的那种。
我现在做完成了60%左右。
我是这样设计的,总体分成4个模块: 读SRAM,写SRAM,FIFO,扫屏控制。
读SRAM模块负责在FIFO空的时候去将SRAM内数据读入FIFO
写SRAM模块受外部单片机控制,接收单片机发来的数据写入SRAM
FIFO 提供扫屏模块所需数据
扫屏模块 向FIFO接收数据后,以80帧/S的速度去刷新屏
现在前面3个模块以在软件防真中基本调试成功。不知道大家认为我以上的思路有没有不对的地方。。
点击此处打开ourdev_179128.jpg(文件大小:444K,只有300K以内的图片才能直接显示) 【19楼】 ppa2001:
CPLD,RAM,TFT这里应该没有问题的,设计上大同小异.
我是说假如用AVR从SD读出BMP数据发送给CPLD,由于AVR速度慢,那把一屏数据发送给CPLD比如需要0.5S,这0.5S内画面就会看见你改图片的过程(就是AVR通过CPLD刷新RAM的过程),如果速度快,当然看不出了.
哦,还有你的RAM是16位的,TFT是24位的,空间分配感觉怪怪的,
用户MCU口你是多少位?8位的话,那RGB要分别刷新了,16位的话感觉程序上好别扭.
最直观是24位了,一对一.不然的话如果只修改一部分象素点,搞不好还要把下一个数据点读出来逻辑处理后再写回去(因为RAM是16位,TFT是24位,用户接口往往是8位或者16位,对吧?).不知道我表达清楚没有.
另外IS61LV25616大概23-30元.51216就厉害了,70-80. 我是指外部MCU更新RAM的速度很慢,慢得眼睛能感觉到,
这样如果有2屏幕空间做轮流切换就爽了,
这也是为什么很多LCD的显存都比较大呢,比一屏大好几倍,目的就是做后台切换.
【20楼】 ilan2003 小松工程:用21楼的方法,没问题吧? 一般都作成8bit的颜色 即把24位做成256色的屏
我很想早就想做这个一直没时间
自己考虑的和21差 不多
具体没操作过。 那有什么意思,浪费了啊.近期军备买RAM去. 有的时候不需要这么多的颜色,比如工业控制 但是伪彩的屏供货是个问题 只能这样了 【21楼】 kimiyang 四叶草
现在我还什么都不会,那种画图模块化设计也不会.现在我程序有语法上的错误,头大,慢慢实验了,不知道读RAM也怎么验证它成功了?RAM数据是否准确读出了呢?
TO Oliver
我对外的接口是16位的,因为我想RAM是16位的这样好些写~因为想显示图片,而现在的取模软件是8位数组的,所以我想16位也正好,数据反正按顺序写入RAM就好了~
如果因为MCU速度慢~导致刷新慢~那就没办法了~不过可以换快的MCU~ 【28楼】 ppa2001 :
"因为想显示图片,而现在的取模软件是8位数组的,所以我想16位也正好,数据反正按顺序写入RAM就好了~ "
上传一个取模软件,感觉相当不错.希望大家喜欢(我还没见过有人上传个这个软件)
点击此处下载ourdev_179150.rar(文件大小:181K) S3C2410自带TFT控制器,请问它使用的是什么内存?
SRAM还是SDRAM,是内置的还是外挂的啊? http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179227.gif
in system memory应该是片内自带的 反正是系统内存,驱动原理和我们设想一样,FIFO通过DMA不断获取下一时间段内需要显示的数据.这是突发性的,时间短,系统访问内存随时可以.但访问速度没有DMA快 我上面得设计 好像EPM240放不下了,得换570 了!
还有帮我看下下面这块屏是多少色的 我怎么看来看去是8色的啊,好像没有灰度控制!
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_179235.jpg 是8色的,
对应RAM第一字节为(D7-D0):R,G,B,R,G,B,R,G
第二字节为(D7-D0):B,R,G,B,R,G,B,R
................
RAM空间为320*240*3/8=28800bytes SDRAM确实太麻烦,可价格超便宜,64M bits才7块钱.型号:HY57V641620
使用时每64ms要全行刷新一次,共4096行,也就是说必须15.625us内就要刷新一行. toppa2001 我有个疑惑,想请教一下
你说CPLD在PSP空闲时,读入数据积存器,写入RAM,不管数据有没更新,CPLD都会以一定的速度读数据积存器,写入RAM
由于这三者都是并行的
既然你是边发送数据给PSP,边将数据写RAM,也就是说可以直接用FPGA给PSP发送数据,那么你还要RAM干什么呢?RAM的作用是什么? 关注一下!
页:
[1]