网站首页 > 资源文章 正文
快速刷屏
最近的一个项目用到了2.4寸TFT LCD屏,分辨率为240*320,其中客户对屏幕的响应速度不太满意,后来做了优化,结果尚可。
一 硬件平台介绍
主芯片采用新唐NUC126芯片,64PIN,主频72MHz,内部Flash为256KB,内部RAM为20KB。
TFT LCD屏控制器为ST7789,屏幕采用8位并口。
由于图片资源较多,使用了8M字节 SPI Flash保存图片数据。图片像素是RGB565格式保存,一个像素占2字节空间。
项目要求:在项目上,界面有全屏的背景图片,该图片保存在SPI Flash,在上层有一些参数,如电池电量、阻值、功率、电压、温度等,是可变的。这些参数是彩色的,甚至有的是透过背景显示的。
二 刷屏接口性能
NUC126 SPI速度,原厂理论上说可以到36Mbps(主频的一半),但实测最高为28.75Mbps = 144M/5.(PLL频率为144M)
因为RAM只有20KB,代码已经使用了10KB左右,剩余的RAM很有限。所以采取的方式是按行读出,读一行刷一行。
刷屏效果很差,能看到显示屏从上到下依次刷数据。
三 刷屏速度优化
1 为了快速将图片数据刷到屏幕上,我使用了DMA控制,建立两个缓存(保存一行像素,各占480字节)以便进行乒乓操作,在将数据写入屏幕端的同时可以继续从SPI Flash读数据,减少了等待时间。
从外部SPI Flash读取数据到刷屏完成 所需要的时间为132MS。很明显能看到刷屏动作。
软件直接通过并口刷全屏单色(不需要从SPI Flash取数据)的时间为28MS。由此可见,大部分的时间消耗在从SPI Flash读取数据。
2 由于图片数据一个像素是RGB565格式保存的,也就是一个像素占2字节,将DMA传输位宽设为16位时,刷一幅全屏图片需要87MS,效果还是明显的;
同样的,将DMA数据宽度设为32位时,刷一幅全屏图片需要68MS。由此可见,DMA数据宽度不同,对传输效果有较大影响的。
3 以上都是按行读取,改为一次读两行数据,耗时65MS,一次读4行,耗时63MS,一行读8行,耗时63MS。最优的是一次读 4行。
四 总结及后续
MCU SPI速度受到了限制,远低于并口速度。通过DMA乒乓操作、DMA的传输优化大大提升了刷屏速度。
后续改善建议:
1 MCU选择SPI速度高的,一般SPI速度理论上可达到主频的一半。如SPI速度达到50Mbps,速度也会有明显提升。
2 MCU选择带有Qaud SPI(4 IO模式)功能的,如果用与NUC126引脚兼容的M452芯片,使用Qaud SPI,从SPI Flash读取数据的速度应该还会有较大提升。
3 在UI设计时,也要尽量考虑到不要全屏切换,全屏切换的数据量很大,对硬件的要求也高,局部刷新,或者大部分区域采用单色。
猜你喜欢
- 2024-09-16 5700刷BIOS变5700XT!性能白捡的操作又来了
- 2024-09-16 Google 宣布 Gemini 1.5 Flash 每天免费提供 15 亿 Token,开发者狂喜!
- 2024-09-16 《拳皇》山崎龙二有多嚣张,从饿狼传说揍到拳皇就没吃过亏
- 2024-09-16 Flash多媒体课件在企业培训中的应用及优势
- 2024-09-16 站内优化之H标签 图片 nofollow flash的优化
- 2024-09-16 伊原六花 FLASH杂志4月号 ヒロインは春の光とともに
- 2024-09-16 浏览器上传文件提示flash插件未安装
- 2024-09-16 Adobe Flash Player电脑版(flash player pc版)
- 2024-09-16 制作flash动画都有哪些优势特点(制作flash动画都有哪些优势特点和不足)
- 2024-09-16 为什么有些网页的图片和视频不能正常显示
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)