搜索
bottom↓
回复: 61

2.4彩色英寸液晶一帧刷新过慢的问题

[复制链接]

出0入0汤圆

发表于 2008-5-13 16:02:01 | 显示全部楼层 |阅读模式
最近论坛上ILI9320控制芯片的液晶玩的人挺多,正好我也用到了,可是发现用16位sys interface下刷新一帧画面慢的的要死,估计花0.5s左右,我用的是ARM STM32 48M内核,开发板直接拽出1侧的GPIO控制Lcd,所以16位数据总线很BC,用3个PORT拼成的,底层执行时左移几位,右移几位,再左移几位……估计对速度也有不小的影响
使用过这种控制芯片同志们,刷一满屏65k色的数据要150K,最快能不能做到肉眼不察觉出延迟(估计得5到6帧以上每秒才能有这效果把)

补充:这液晶我们不做视频处理,主要是做菜单,开机那么一刷屏半秒有点太说不过去了,所以想把速度做上去

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-5-13 17:38:35 | 显示全部楼层
直接挂到mem bus上,当sram用,gpio模拟的速度太慢太慢……

出0入0汤圆

 楼主| 发表于 2008-5-13 19:38:22 | 显示全部楼层
我们用的是STM103 不支持外扩ROM和RAM,晕死,还有什么提高速度的办法么?

出0入0汤圆

发表于 2008-5-13 20:15:39 | 显示全部楼层
要是支持SPI的话直接使用硬件SPI速度很快的
我用Mega128,14M晶振,硬件SPI,能达到3帧的速度

出0入0汤圆

 楼主| 发表于 2008-5-13 20:27:50 | 显示全部楼层
又是晕,我们这液晶不支持SPI……  难道并行16位GPIO口速度这么有限么?如果是真的,可能我们项目得做调整

出0入0汤圆

发表于 2008-5-15 21:33:37 | 显示全部楼层
GPIO模拟总线,速度确实不行的。别指望了,换液晶吧。换带SPI的还可以,当然,如果分辨率比较高的,超过640*480,SPI的速度也不行的,还是要并行总线的。

出0入0汤圆

发表于 2008-5-31 15:24:35 | 显示全部楼层
我用S3C44B0X(60M)速度超快!

出0入0汤圆

发表于 2008-5-31 15:40:08 | 显示全部楼层
to 【6楼】 liuweiele
你用的是总线驱动吗?44B0的总线有多快呢?谢谢了

出0入0汤圆

发表于 2008-6-1 09:38:51 | 显示全部楼层
44b0有lcd控制器,6楼说的估计是这个。

出0入0汤圆

发表于 2008-6-17 16:30:20 | 显示全部楼层
模拟的速度好象的确比行
我以前用lpc214x的arm7点一个2inch的屏(220*176)

几乎可以看到刷新的全过程.

出0入0汤圆

发表于 2008-6-21 23:06:11 | 显示全部楼层
我用 44BO 挂 16位总线 , 感觉速度可以 怎么形容啊 , 就是我觉的要是做东西 应该没问题 , 速度可以

出0入0汤圆

发表于 2008-6-27 10:27:02 | 显示全部楼层
用3个PORT拼成的,底层执行时左移几位,右移几位,再左移几位
--------------------------------------------------------------------
问题就在这里,我做过AT91SAM7S64的接TFT 240*320
用普通GPIO来驱动
数据总线不规则,即非连续16位,
刷屏也是0.5s一帧
后改硬件适用连续数据线
没做优化
1s六帧

出0入0汤圆

发表于 2008-7-23 23:16:17 | 显示全部楼层
ILI9320最高读写速度约为12MHZ,之前本人做一个项目.用S3C44B0x总线方式驱动ILI9320(240*320),在Cache打开的情况下,刷屏速度超快,眼睛几乎看不出有延时.前提是必须打开Cache,否则,就算是用266MHZ的2410也同样会闪烁的.以上是本人经验.

出0入0汤圆

发表于 2008-7-24 00:32:08 | 显示全部楼层
你说的 cache 是那里的 ? 在 ili9320上的吗 ? 说说 liuweiele

出0入0汤圆

发表于 2008-7-24 09:24:33 | 显示全部楼层
记号

出0入0汤圆

 楼主| 发表于 2008-7-24 14:31:43 | 显示全部楼层
ili9320有catch??那里有?我PDF从头到尾看了一遍也没看见catch的影子,请liuweiele 指点

出0入0汤圆

发表于 2008-7-24 15:50:50 | 显示全部楼层
我分析 liuweiele 说的是 44bo 上的cache吧

出0入0汤圆

发表于 2008-7-24 15:50:51 | 显示全部楼层
我分析 liuweiele 说的是 44bo 上的cache吧

出0入0汤圆

发表于 2008-7-25 00:30:52 | 显示全部楼层
不好意思,没说清楚.是打开44B0X的cache

出0入0汤圆

发表于 2008-7-25 00:36:53 | 显示全部楼层
另外,要想提高刷屏速度和避免闪烁,还有两种方法:
1.使用DMA代替软件数据传输
2.使用帧缓冲技术(内存设备)

出0入0汤圆

 楼主| 发表于 2008-7-25 21:35:56 | 显示全部楼层
有个小白的问题要问liuweiele兄,请问怎么关于:“2.使用帧缓冲技术(内存设备)”是怎么实现?帮我简要介绍一下,ILI9320的PDF我全看了一遍,芯片本身只有18位*320*240的RAM,如果外挂cache的话(也就是帧缓冲),刷新图片前先将图像数据写入cache中,可是cache也是在芯片外面,要显示的话还是得往芯片中写操作,这个过程还是需要GPIO操作的,速度肯定降下来了,本人刚毕业没什么见识,这方面我不太理解,介绍一下相关资料也可以,谢了

出0入0汤圆

 楼主| 发表于 2008-7-25 22:14:52 | 显示全部楼层
首先,我对cache的理解:ILI9320内部有一个最大18位*320*240的RAM,cache就是在外面用SRAM画出一个同样大小的区域,当要写入数据时不向现在正在显示的ILI9320内部RAM中写,而是向外部写,而写入过程完成后,将cache数据一下子导入内部RAM,也就防止看到写入过程,也就是闪烁。

但是我要问的问题本质是:44b0驱动ili9320如果不用cache的话是用GPIO16位16位的向里面写,如果用了cache,catch也是在ILI9320外面的啊!还是要往里面写,这个过程不会比直接写快多少吧?(其实这样的话cache仅仅是躲过了写入数据中的判断转移运算过程, 我觉得最最耗时的GPIO模拟操作过程还是没有躲过)这是我的疑问,因为我现在做的是一个低档产品,320240的液晶能看到刷屏也就算了,但是马上要用Cortex M3内核的STM32做一个高档产品,肯定不能容忍人眼能看到的刷屏操作。

出0入0汤圆

发表于 2008-7-25 22:16:17 | 显示全部楼层
使用帧缓冲是指:开辟一块内存作为显示缓存,将绘图过程在内存中完成后,再一次性地更新到LCD上,这样对于那些复杂和费时的图像处理
,能非常有效地避免画面闪烁的问题.

出0入0汤圆

发表于 2008-7-25 22:23:28 | 显示全部楼层
对于ILI9320的接口方面,最好使用16位并行总线方式.用IO口模拟的速度实在是太慢太慢.用66MHZ的44B0X总线驱动ILI9320(240*320 16位色),打开CPU的Cache后,刷屏速度可以达到普通手机(QVGA屏)的效果.

出0入0汤圆

 楼主| 发表于 2008-7-25 22:25:47 | 显示全部楼层
其实就是躲过了绘图的运算过程,而实际GPIO操作没法躲过,这也是我一直担心的地方,如果16位GPIO写入过程过慢就彻底没招了,请问你用44B0多少跑M开了缓冲能几乎看不到刷屏过程, 我现在用STM103没有缓冲跑72M刷16位色的320240分辨率屏幕很慢很慢,不过STM32的72M速度有不少水分,如果遇到大量跳转指令或者连续的32位指令速度估计也就40M以下

出0入0汤圆

发表于 2008-7-25 22:31:46 | 显示全部楼层
如果你是GPIO模拟的话,是很难再提高速度了.我曾经用266MHZ的S3C2410操作320*240的16位LCD,在关闭Cache的情况下,刷屏速度都慢得难以忍受.

出0入0汤圆

发表于 2008-7-25 22:34:27 | 显示全部楼层
44B0X只要40MHZ并打开Cache就能满足要求了.本人亲自试验过.

出0入0汤圆

发表于 2008-7-25 22:35:04 | 显示全部楼层
我用 S3C44BO 和 at91sam7se32  把 ILI9320 挂在16位总线上 , 没有用缓冲 也没有在内存里面运行主程序 , 我觉得速度 是不错的 , 做低端的东西 肯定没问题 , 每屏刷新 我看到的是闪过 这样的速度是不错的 !  如果 缓冲 在 加上在内存里面运行主程序 哈哈 速度还会提高 , 我用at91sam7se32在总线上操作 主频在一定的程度 , ILI9320就死了 跟不上速度 , 这时要调整SMC参数 lcd才能运行 , 估计ILI9320最大速度不到20M吧    调整好参数 我觉得还是相当不错的

   我天天在线 可以交流 !

出0入0汤圆

发表于 2008-7-25 22:39:18 | 显示全部楼层
要想提高刷屏速度,需要丛以下两方面改进:
1.改用总线方式驱动(最好是16位,8位的约慢一半)
2.使用带Cache的CPU(如S3C44B0X,HMS30C7210)

出0入0汤圆

 楼主| 发表于 2008-7-25 22:47:51 | 显示全部楼层
“我用 S3C44BO 和 at91sam7se32  把 ILI9320 挂在16位总线上” 你说的是什么16位总线呢?我的就是用一个16位普通的GPIO口操作,取来2个byte拼成16位,也就是一像素的色彩,然后用将这个word写到GPIO上,周而复始。。(这就叫GPIO模拟吧?)ILI9320不是只支持8位 9位 16位 SPI还有个什么P的动态影像接口,能用什么接口提速呢?

出0入0汤圆

 楼主| 发表于 2008-7-25 22:48:52 | 显示全部楼层
不太明白你指的总线方式是什么?

出0入0汤圆

 楼主| 发表于 2008-7-25 22:52:00 | 显示全部楼层
我还没用过外扩RAM和FLASH的ARM,现在刚工作用的是内置128k FLASH和20K SRAM的STM103

出0入0汤圆

发表于 2008-7-25 22:56:21 | 显示全部楼层
我说的总线是指intel8080总线,也就是44B0X外接FlashROM的那种接口.用到了地址线,数据线,读写信号和片选.

出0入0汤圆

发表于 2008-7-25 22:58:04 | 显示全部楼层
为什么一定要用STM32呢?好像这款ARM不太适合这个项目呢.

出0入0汤圆

 楼主| 发表于 2008-7-25 23:00:23 | 显示全部楼层
哦,我现在的CPU上没这接口。。。不过高档产品用的STM103能外扩RAM和FLASH,应该没大问题了, 谢谢大侠指点啊, 哈哈

出0入0汤圆

发表于 2008-7-25 23:02:41 | 显示全部楼层
如果没有CPU Cache的话,也是一个大问题呢.

出0入0汤圆

 楼主| 发表于 2008-7-25 23:10:50 | 显示全部楼层
你的意思是我如果ILI9320占用了总线 外扩FLASH和RAM的总线就没法接FLASH和SRAM了??

出0入0汤圆

发表于 2008-7-25 23:15:41 | 显示全部楼层
不是,在给LCD分配地址时,不要和Flash或SRAM相重叠.最好使用带Cache的ARM.否则,速度也不会太理想的.

出0入0汤圆

发表于 2008-7-25 23:25:02 | 显示全部楼层
我用avr  mega162 把ili9320 挂 8位总线 , 我感觉速度也行了 凑合了 哈哈哈  

这个lcd 挂总线是正统 , 要不没什么意义

出0入0汤圆

发表于 2008-7-25 23:29:16 | 显示全部楼层
单显示一整屏图像速度还可以接受,如果做复杂的菜单界面的话,就可能会出问题了.

出0入0汤圆

 楼主| 发表于 2008-7-25 23:30:10 | 显示全部楼层
你的意思是我要想要速度的话,必须找个内置RAM大于150K的作为ILI9320的cache?不是有外扩RAM么,外扩的不能做帧缓冲么?

出0入0汤圆

 楼主| 发表于 2008-7-25 23:41:30 | 显示全部楼层
之所以用STM32因为除了菜单等处理不谈,其他功能非常适合我们的项目,简直就是太合适,12位可以硬件触发的内置双AD是选他做这个低端产品的关键,基本所有我们需要的外围都省了

出0入0汤圆

发表于 2008-7-26 00:08:24 | 显示全部楼层
关键是 你要用彩屏的LCD+stm32 来做项目 , 你可以想一下 lcd为什么要用16位数据口 , 那就是因为数据量大啊 lcd的本意就是要你挂接到总线上 因为他就是8080总线的 , 你在看看 stm32 没有对lcd很好的支持 你用iO口模拟 速度肯定是限制的 , 这个搭配本身就不太好了 在怎么控制 就给了缓冲也够呛 , 在着这缓冲要求可不小啊 你可以计算一下 , stm32的ram都很小的 根本不行   

ILI9320 正统就是挂总线来操作 , 要不速度不行 。

你们的项目可以选用 数据量小的lcd来显示 并口使用 例如 1.6寸的屏 目的是减少数据量, 还有那些简单的串口屏  3300 3310 5110 等等 ...... 这样速度就没有问题了

出0入0汤圆

 楼主| 发表于 2008-7-26 00:20:09 | 显示全部楼层
我现在用的是128K FLASH和20RAM的STM32,做一个低端东西, 能看见刷屏也就算了

但是最关心的是下一个高级项目, 用的STM32能外扩FLASH和RAM, 也就是支持8080总线, 那么用了外扩RAM的STM32我的问题基本就没有了吧,因为总线接口和帧缓冲都解决了
还有个问题, 外扩RAM和FLASH后液晶屏会加大。。。。比较高级东西计划弄个10英寸的液晶呢。。。主要不做复杂菜单,就是追求一屏幕把所有东西都显示下,因为是电力行业,买的人都是有钱的主,一般都是懒得要死,做的简单漂亮点人家愿意掏钱啊,不过我有点担心,10英寸不就是笔记本电脑了。。。。。

出0入0汤圆

发表于 2008-7-26 00:24:54 | 显示全部楼层
stm32 外扩sram 8位的 ?  那速度还是上不去啊

出0入0汤圆

 楼主| 发表于 2008-7-26 00:27:29 | 显示全部楼层
不知道外扩SRAM的位数,我还没仔细看过呢,反正STM32内置FLASH应该是16位的,根据这个判断外置FLASH也是16位的说得通么?

出0入0汤圆

发表于 2008-7-26 00:30:27 | 显示全部楼层
缓冲一帧 153K字节 数据 , 你要是外扩内存 得扩充多少啊 ?  好大

10英寸的液晶 你用单片机自己来控制显示 数据量太大 太费劲 , 这样的话买个 显示控制的模块了吧 单片机送数据就行了 , 模块接收数据来显示就行了

出0入0汤圆

发表于 2008-7-26 00:31:32 | 显示全部楼层
我知道 stm32 的出了 能外扩的了 , 我印象是 8位吧  这个你得看看了

出0入0汤圆

 楼主| 发表于 2008-7-26 00:33:50 | 显示全部楼层
晕,32位cpu干嘛用8位RAM。。。。。我得看看,谢谢了

出0入0汤圆

发表于 2008-7-26 00:35:41 | 显示全部楼层
挂在总线上,不用缓存也还可以接受吧...模拟总线肯定会慢了...我用51模拟,STC 40M的运行速度,也要0.5-1S才能刷完...幸亏我的要求不高,就显示一下图片而已,哈哈...

出0入0汤圆

发表于 2008-7-26 00:37:18 | 显示全部楼层
MCU: ADuC7026/7 是基于ARM7TDMI的控制器集成了12通道12位的ADC(1MSPS)(最多可以有16通道),4通道12位带缓冲的DAC,电压比较器,62KB可在系统中编程(ISP)的片内闪速/电擦除存储器和8KB RAM,串行接口包括UART,SPI和2个I2C,用于下载/调试的JTAG端口,4 个定时器, 三相16位PWM发生器,多达40个通用I/O引脚,片内可编程逻辑阵列(PLA),外部存储器接口,CPU时钟高达45 MHz,片内晶体振荡器和片内PLL,80脚LQFP封装

MCU:STR710FZ2,16/32 bit ARM7TDMI 内核,256K Bytes Program Flash, 64K Bytes RAM, CAN,USB 2.0, RTC, 12 bit ADC, 4x UARTs, 2x I2C,2x SPI, 5x 32bit TIMERS, 2x PWM, 2x CCR, WDT, up to 50MHz operation

出0入0汤圆

 楼主| 发表于 2008-7-26 00:38:40 | 显示全部楼层
我记得ILI9320也支持这个FSMC接口吧
这是STM32上的介绍:
FSMC(可配置的静态存储器控制器)
STM32F103xC、STM32F103xD和STM32F103xE增强型系列集成了FSMC模块。它具有4个片
选输出,支持CF、RAM、PSRAM、NOR和NAND。
功能介绍:
● 三个FSMC中断源,经过逻辑或连到NVIC单元;
● 写入FIFO;
● 代码可以在除PC卡外的片外存储器运行;
● 目标频率为SYSCLK/2,即当系统时钟为72MHz时,外部访问的速度可达36MHz;
系统时钟为48MHz时,外部访问的速度可达24MHz。
  LCD并行接口
FSMC可以配置成与多数图形LCD控制器的无缝连接,它支持Intel 8080和Motorola 6800的模式,并能
够灵活地与特定的LCD接口。使用这个LCD并行接口可以很方便地构建简易的图形应用环境,或使
用专用加速控制器的高性能方案。

出0入0汤圆

发表于 2008-7-26 00:43:08 | 显示全部楼层
哈哈 不讨论了 , 总之挂总线就是了 大家都是为了提高速度 , 还有就是 代码要下功夫优化 这样问题就不大了 !!!!


睡觉了 ..........

出0入0汤圆

发表于 2008-7-26 13:09:22 | 显示全部楼层
最好是使用ARM720T内核的ARM.

出0入0汤圆

发表于 2008-7-26 16:03:40 | 显示全部楼层
这个液晶用7se512驱动过,可以达到27帧

出0入0汤圆

发表于 2008-7-26 19:49:58 | 显示全部楼层
软件用脏矩形算法,提高效率。参考WINDOWS系统或游戏方面的编程。

出0入0汤圆

发表于 2010-2-1 17:33:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-1 17:41:00 | 显示全部楼层
  挂在SEP4020的CS片选上,用地址A0作为RS,使用16位总线模式,没有优化的情况下,整屏刷单色,在80M主频的情况下,大概一秒钟可以刷40多屏(没有开Cache)。
  如果是单纯的刷屏,开不开Cache关系不大,屏所在的地址空间不能使用Cache优化。但是如果有复杂的GUI算法,打开Cache可以提高不少,具体数据还没有测过。另外对于大多数GUI算法来说,一般不需要整屏更新数据,大多是更新局部。
  用下来还是感觉使用处理器自带的LCDC方便,写屏就像写RAM一样,而不是像挂在总线上这种,写一个地址前还要写命令进去...。不过这种屏的优点在于处理器总线占用少,在非更新的情况下不需要占用总线。

出0入0汤圆

发表于 2010-2-2 01:15:56 | 显示全部楼层
不懂。飘过

出0入0汤圆

发表于 2010-2-2 08:38:09 | 显示全部楼层
不要谈什么整屏刷单色了,没啥意义。

出0入0汤圆

发表于 2010-2-2 09:37:55 | 显示全部楼层
刷单色的意义在于确定处理器和屏之间数据交换的极限

出0入0汤圆

发表于 2010-10-28 15:27:33 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 23:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表