CPLD驱动TFT交流.
CPLD驱动TFT, EPM24O使用54M晶振.如何写18M写入与读出速度的8080总线接口,带片选使能。 http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_611460RSW6B4.jpg(原文件名:img0116_202504191.jpg)
上海众贤的屏达到了18M的读入与写入速度.本人测试了一下。有懂的人交流一下。 回复【楼主位】widesoft1
cpld驱动tft, epm24o使用54m晶振.如何写18m写入与读出速度的8080总线接口,带片选使能。
-----------------------------------------------------------------------
又见54M晶振,看来是有什么讲究。
54M时钟,27M刷屏的时钟
54M/18M=3 点击此处下载 ourdev_611614H9VSP4.pdf(文件大小:1.22M) (原文件名:AT043TN24资料.pdf)
这个是4.3寸的屏. 点击此处下载 ourdev_611616HUI6F9.rar(文件大小:732K) (原文件名:TFT4.3寸(群创).rar)
EPM240驱动群创TFT4.3成功. 此VHDL程序缺点就是外部8080总接口速度只有10M.按道理是可以实现18M的.我只实现了10M.高手指点一下。 mark! cpld 驱动4.3TFT 我是上海众贤的.
请问楼主是用哪家公司名义购买了我们的产品.是要仿照自己生产还是学术研究啊. 回复【8楼】Oliver 老易(TFT产品)
-----------------------------------------------------------------------
哈哈,你要完了!快点加密!呵呵! 制版费太贵了,把你的液晶屏当学习板了。 STM32的测试代码部分的FMSC设置改一下.
p.FSMC_AddressSetupTime = 0;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 2;//上海众贤为1,
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B; 上海众贤的兄弟,此液晶屏内部CPLD程序就是3楼附的文档.交流才有进步。 【9楼】 TigerRay:
呵呵,有道理.
【12楼】 widesoft1 :
这种事我们也挡不住,不过如果您动了我们产品的话,保修是没有了. 我已经查到您是哪一家"公司"的了. 回复【14楼】Oliver 老易(TFT产品)
我已经查到您是哪一家"公司"的了.
-----------------------------------------------------------------------
查户口的来了。 这个做学习板好吗?好的话买个 呵呵,我也知道楼主是哪家公司的了。 这么好的贴子怎么没人顶,我顶 我们公司是会继续购买你的产品。 说实在话,上海众贤的CPLD驱动TFT作为学习板真的很好.要是把JTAG口引出,另外TFT的信号做几个测试点就好了,方便大家学习。如果想仿制的话就不会交流代码了。 我把写SRAM的时序贴出来:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_611791AEVOTV.gif
(原文件名:ourdev_584364.gif)
图上可以看出WE=0后SRAM的DB会维持一个时间的输出.问题就出在这里了.
写SRAM通常是通过状态机实现.
在写数据时刻:
ADD=写地址,
DB_BUS=写数据,
DB_BUS=输出,
WE=0;
而这时SRAM的DB口还处于输出状态,会持续输出5ns,这个时间和CPLD的DB口输出打架,造成冲突.
(SRAM由空闲转入写则无这个问题,只会出现在读SRAM状态下直接切换到写).
至于加大电源就好些就比较好理解了.
我现在的解决方法也很简单.
原来为:assign sram_db = (sram_db_out_oe) ? sram_db_out:16'hz;
改为:assign sram_db = (sram_db_out_oe && !clk) ?sram_db_out:16'hz;
时钟54MHZ,半周期9ns,可以躲过5ns的输出状态,只让在写周期的后半周期输出总线数据.
学习上海众贤的先进经验.代码中的一个进程作了一点修改.只让在写周期的后半周期输出总线数据.
--内部SRAM总线控制
process (SysRst,InBusOut,RamTriState,Clk54)
variable TriSw : std_logic_vector (1 downto 0);
begin
TriSw := (RamTriState & Clk54);
case TriSw is
when "00"=>
RamDataBus <= InBusOut;
when others=>
RamDataBus <= (others => 'Z');
end case;
-- if RamTriState = '0' then
-- RamDataBus <= InBusOut;
-- else
-- RamDataBus <= (others => 'Z');
-- end if;
end process; 仔细看了,坛子里 Oliver 老易(TFT产品)的帖子,较有感触,我的这个程序虽然表面上实现了他的所有功能.但是在8080总线读入这块,可靠性还不是很高. 哪位兄弟研究一下总线读入.打2拍的方案是初学级的,练练手的,有哪位兄弟跟上高级的异步总线读入。 没有verilog的版本吗? VHDL更像C语言,本人喜欢这种风格.verilog本人能看懂,但重来没写过啊。 走入误区了,多打两拍保证时序是最可靠的方法,试图通过某种方法凑时序是相当不可靠的,不断改变整体设计,使各个子逻辑部分协调统一才是正道
曾经也做过能达到1/2写速率的刷屏程序,重写了4次才搞定,要点是照着时序写程序,不是写好了再凑时序…… 数据写WR与RD,CS,这三个都是异步时钟.如何高速、用较少的宏单元,可靠处理。直接上代码大家才明白。讲讲大道理帮不了大家,直接上代码给大家研究。 直接让Oliver出代码吧,我等代码不材,现在自己都看不懂细节了……你说你能看懂,佩服佩服!
WR、RD、CS不需要看作时钟,可看作为不同时域的信号,直接用本地时钟同步就可以,之前Oliver有个贴子讨论过,你找找看(论坛里有的东西自己都不知道好好去找!类似的还有华为及大唐西安的内部交流资料下载)。
CS一定程度上只控制总线,甚至可以不用同步CS,但同步CS的好处在于可以提前为读写操作调整好状态机,这样有利于降低功耗(很小,但仍是值得注意的细节)
天_朝的朝情是饭都吃不上,没几个人有闲功夫分析你的代码 第一次听说VHDL像c的…… 27楼的。 arodnap
Oliver 液晶板是54M晶振,而WR信号是低平脉宽是 1/72M. 比主时钟还快,照样能写入数据。关键是想了解这种技术。 汗一个……
还是不同时域的信号同步问题,Oliver怎么做的不知道,但都大差不差
WR进CPLD之后,并不是直接就被同步到本地时域的,而是先进行了缓冲处理:将WR信号当作时钟,WR有跳变时触发器动作,相当于打了一个
跳变标志,等本地状态机反应过来时,处理这个标志,然后才把以WR为锁存时钟、并在WR跳变时锁存了总线上数据的寄存器中的数据转移到了RAM中
低电平多长无所谓,只要满足570的时钟条件就可以了,10ns都OK,关键是两次WR之间的间隔肯定不能超过54M,除非加入FIFO逻辑
-------------------------
ps:
原来Oliver的屏也用这了种方式,应该和Oliver握握手,同道中人啊! 了解又如何?理解又如何?能写能复制能抄能生产又如何?
理解市场需求,不要把心思花在书本和电脑屏幕上.
在疯狂的当今社会每个人都该为自己的将来想想,不然难说了...
看我说了一堆废话... 回复【30楼】arodnap
汗一个……
还是不同时域的信号同步问题,oliver怎么做的不知道,但都大差不差
wr进cpld之后,并不是直接就被同步到本地时域的,而是先进行了缓冲处理:将wr信号当作时钟,wr有跳变时触发器动作,相当于打了一个
跳变标志,等本地状态机反应过来时,处理这个标志,然后才把以wr为锁存时钟、并在wr跳变时锁存了总线上数据的寄存器中的数据转移到了ram中
低电平多长无所谓,只要满足570的时钟条件就可以了,10ns都ok,关键是两次wr之间的间隔肯定不能超过54m,除非加入fifo逻辑
-------------------------
ps:
原来oliver的屏也用这了种方式,应该和oliver握握手,同道中人啊!
-----------------------------------------------------------------------
说得好 【31楼】 Oliver 老易(TFT产品)
——————————————————————
说得好! 回复【31楼】Oliver 老易(TFT产品)
了解又如何?理解又如何?能写能复制能抄能生产又如何?
理解市场需求,不要把心思花在书本和电脑屏幕上.
在疯狂的当今社会每个人都该为自己的将来想想,不然难说了...
看我说了一堆废话...
-----------------------------------------------------------------------
将来难测,又能如何?除了书本和电脑,啥都不会。 兄弟们都要接受洗脑了。 上海有各种各样的培训会,一般来说1200元/天,去听听会有感受的。
各种各样的能力要提前准备,但准备好了不一定能用到。 有市场没技术,有技术没市场都是扯谈。 回复【26楼】widesoft1
数据写wr与rd,cs,这三个都是异步敝?如何高佟⒂媒仙俚暮甑ピ煽看怼V苯由洗氪蠹也琶靼住=步泊蟮览戆锊涣舜蠹遥苯由洗敫蠹已芯俊?
-----------------------------------------------------------------------
对,我也很困惑
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612098FPNJ9L.JPG
(原文件名:异步同步微分.JPG)
这个图片我是网上看到然后我自己画了下。大家点图片看
红框是打2次触发器,蓝框是个微分电路(也不知道哪里看来的,说是微分,还上升沿下降沿微分什么的)
GCLK是高频时钟,打2次触发器来同步,红框里面的就是打2次,说能减少亚稳态什么的,记得IC设计基础书里有说这个 网上有 MTBF即平均无故障时间有计算公式 也是过2次触发器 不知道这个和亚稳态什么关系? 数值相等?
蓝框是一个边沿检测的东西,有边沿发生会输出,平时WR RD多是1的,所以这个蓝框输出的多是0,这个电路时WR从1到0,再从0到1,会输出一个高电平脉冲
然后就回0了,我没有记错的话,有本台湾的书上叫这个是微分电路
我们还是得看看IC设计方便和结构方面的书,现在遇到问题基本=傻眼 回复【24楼】widesoft1
vhdl更像c语言,本人喜欢这种风格.verilog本人能看懂,但重来没写过啊。
-----------------------------------------------------------------------
说反了吧! 回复【25楼】arodnap
走入误区了,多打两拍保证时序是最可靠的方法,试图通过某种方法凑时序是相当不可靠的,不断改变整体设计,使各个子逻辑部分协调统一才是正道
曾经也做过能达到1/2写速率的刷屏程序,重写了4次才搞定,要点是照着时序写程序,不是写好了再凑时序……
-----------------------------------------------------------------------
不是说跨时钟域请用 FIFO,FIFO是最可靠的? 32楼的 eworker
汗一个……
还是不同时域的信号同步问题,oliver怎么做的不知道,但都大差不差
wr进cpld之后,并不是直接就被同步到本地时域的,而是先进行了缓冲处理:将wr信号当作时钟,wr有跳变时触发器动作,相当于打了一个
跳变标志,等本地状态机反应过来时,处理这个标志,然后才把以wr为锁存时钟、并在wr跳变时锁存了总线上数据的寄存器中的数据转移到了ram中
低电平多长无所谓,只要满足570的时钟条件就可以了,10ns都ok,关键是两次wr之间的间隔肯定不能超过54m,除非加入fifo逻辑
-------------------------
能给出具体的例子吗?
整合好的程序能帮助大家。好多想弄CPLD驱动TFT的,就到上海众贤买块屏,用我的代码进行测试,不足之处,大家提意见再修改。 声明本人未破_解上海众贤芯片,如果损伤到贵公司利益,则表示歉意。 感谢楼主及各位大侠的关注与支持.
希望大家DIY取得更多乐趣,同时也希望大侠们手下留情,不要对我们产品做深层次的解剖,谢谢.
只要是公司产品有需求的可与我联系,提供公司资料后可提供样品.
------------------------
上海众贤电子科技有限公司 主时钟同步wr, 写入一个FIFO缓冲区。
FIFO中有数据则写入SRAM中。
SRAM是100M的速度,54MHZ的主时钟写入18M很正常。 还有剩下的带宽用于刷屏就可以了。 屏点时钟应该是9MHZ就可以了。
具体细节就不说了。。。 mark 最经由于工作需要也开始研究这门技术。学习了 SSD1963一片搞定。成本更底,缺点就是刷屏慢了一点。 学习了 遭遇AVR式的缺货。
公司因生产需要向众贤公司购买1楼图中所示液晶屏,可是此公司此款液晶屏处于缺货状态,怎么办呢?万能的坛支支招吧! 路过的朋友给个建议吧? 多在这里找TFT LCD半年了, 50楼的,你们公司也需要用CPLD驱动TFT。遇到过供应商缺货的情况吗?
产品上需要低成本驱动TFT的朋友都跟个帖吧。学习提高“低端CPLD”应用技术的也跟帖吧。 是找不到屏? 还是驱动板没有呢? MARK mark mark一下 TO:【48楼】 widesoft1
综合本贴此前跟进,及我们多方面了解之信息(贵研究所同行),贵研究所很显然不是我们的目标客户群,当然我们也不符合贵所供货商标准.
如果明知道对方只采购一块样品是为了评估/研究技术性能,再决定是否自己研发,自行生产(不是说贵所开发来对外销售这么个小产品),那我们为什么还要去伸头让人宰呢?
贵处硕大一研究所,根本瞧不上我们这类自足创业的小公司吧,据说贵所连热敏打印机都要参考别人的,然后自己生产,可见贵所势力雄厚,当然也看出贵所极不愿意整合社会资源,更多时候是什么都要自己做.
我们还得养活一二十号人,还得为员工,客户利益考虑,当然我们自身利益也是要的,创业赚钱天经地义嘛.
资本家难道就要被技术DIY所排斥?(我们还不算资本家)
并非我们缺货,我们每月都要为客户供应上K的4.3寸产品,会缺一块样品吗?
我们每个型号最起码都有几十块以上库存.
是我们不敢卖给您了,不敢卖给贵公司,我们毕竟要为我们的员工考虑,如果您们自己生产自己使用我们最多就是牺牲1个客户,如果您们对外肆意传播就是一个行业,历史证明中国人参与的行业都会萎缩得相当快.
我们是专业化公司,只会做这个行业产品,做一款产品也要想想为客户带来了什么价值,也许对于贵公司我们带来的价值只有样品参考?
我相信这里很多大侠伙计也都是公司里的员工,请原谅我们作为一个民营小公司的考虑,谢谢.
您可联系我,我可以为您推荐几个可信,可持续的供货商,本贴里面就有位deng先生,他们产品与我们兼容(具体性能如何我们没评估过,据非企业客户反映比我们便宜,但推广企业客户是我们的特长,我们价格在正规企业里面绝对是最有优势的).
您可考虑. 原来是遇到拒售了。
据说(只是道听途说),
贵所连热敏打印机都要参考别人的,然后自己生产。 (我们电路是公司原创)
本公司产品被克隆之后,没有采用对客户拒售策略,而是提高性价比,提高客户克隆成本。
是朋友就不会误解,否则越解释越误会。
到此打住,这里只谈技术(阿莫规定)。 回复【42楼】Oliver 老易(TFT产品)
-----------------------------------------------------------------------
老易 我们公司 可能要用 相关的产品,不过是平达EL--CPLD--51 与VGA差别不是很大,HS VS为高电平同步,同步时期, 移位时钟无效,无消隐信号。。如有意 与我联系,mcafee.v@139.com 楼主是怎么弄到众贤的源码的? mark make mark 回复【楼主位】widesoft1
-----------------------------------------------------------------------
mark 学习一下 mark 楼主厉害 mark make 还是有点限制的啊。了解一下。 mark! 回复【43楼】cicnx
主时钟同步wr, 写入一个fifo缓冲区。
fifo中有数据则写入sram中。
sram是100m的速度,54mhz的主时钟写入18m很正常。 还有剩下的带宽用于刷屏就可以了。 屏点时钟应该是9mhz就可以了。
具体细节就不说了。。。
-----------------------------------------------------------------------
说的是,我早就做到了:36M读写sram的速度,9M的屏扫描速度,只是加上8点快速写入后,EPM540的容量不够。不好意思,为了不砟老易的饭碗,在这里不具体说了。 怎么不能下载啊? 好东西,支持一下 请教楼主这一句怎么理解啊?你的VHDL代码就这一句看不懂。
SramAddr(12 downto 0) := SramAddr(12 downto 0) - ("0000" & SramAddr(12 downto 4)); 楼主大人在吗? mark mark 回复【74楼】fetish
请教楼主这一句怎么理解啊?你的vhdl代码就这一句看不懂。
sramaddr(12 downto 0) := sramaddr(12 downto 0) - ("0000" & sramaddr(12 downto 4));
--------------------------------------------------------------------
同问,这个地方的减去地址的(12到4)位是啥意思呢? 记号 看来要写好FPGA程序,不仅要理解时序还要懂算法才行啊 MARK 谢谢!兄弟开源精神!表示支持! 虽然现在已经用不到了,但还是顶一下,别说什么盗版,在中国,起码有一半的人在使用盗版的东西,反正你现在又不是为自己谋取金钱利益.
当初也被上海众贤拒售了一次,所以自己狠下心搞了一个玩玩,为此还学了点FPGA.
页:
[1]