野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21858|回复: 16

模仿RA8875/RA8876做个图形LCD控制器,STM32跑emWin接VGA显示器测试OK

[复制链接]
发表于 2016-6-5 01:19:46 | 显示全部楼层 |阅读模式
本帖最后由 glcd 于 2016-6-11 23:16 编辑

   图形LCD控制器的系统主构架是:FPGA+DDR2+Nand-FlashFPGA里面还跑了个8051,因为要做指令缓冲、FAT32文件系统、Nand-Flash驱动程序,这三样东西没有C语言单靠FPGA基本是没法实现的,其实这也是图形LCD控制器和RA8875/RA8876最大不同的地方
image001.jpg
   LCD控制器的Nand-Flash可以储存字库和图片,支持FAT32文件系统管理,通过N-LINK下载线连接电脑USB,就可以和U盘一模一样使用(使用系统自带驱动,写速度是3.2Mbytes/S,读速度是5.6Mbytes/S)
image003.jpg
这样用的话其实就是一个SLC颗粒的U盘。。。
这个是用图形LCD控制器做好的GVGA显示卡,可以接大尺寸的VGA显示器,目前最大支持24位色1280*800@60Hz分辨率:
image005.jpg
  两个2.54简牛插座一个是SPI接口的,另一个是Intel 8080接口的,VGA插座旁边那个是PS/2键盘和鼠标接口,再过去那个42.54排针是触摸屏插座,鼠标、键盘、触摸屏的触发事件是通过指令回传给CPU,鼠标的光标是由图形LCD控制器内部产生的。
  对于具备2D图形加速和指令缓冲功能的LCD控制器来说,其实用SPI接口发送指令显示图形、文字、图片就足够了,没必要用Intel 8080总线,麻烦而且显示速度基本一样。
目前具备的功能和特征:
1) 基于emWin应用,可实现组态、拖放式人机用户界面设计。
2) 硬件2D图形加速协处理器,以硬件DMA的方式显示BMP图片、文字、矩形、圆形、直线、点、区域填充、区域拷贝、显存拷贝等等
3) Nand-Flash作为字库和图片的储存器(结合N-LINK下载线U盘一模一样使用)
4) 双显存自动管理设计,避免屏幕更新时出现”拉窗帘”现象。
5) 24位色(RGB888)显示,带VGA时序输出。
6) 基于FAT/FAT32文件系统管理字库和图片,支持多级文件夹(子目录)
7) 可自行制作BIN字库,支持多种字库工具生成的字库。
8) 字库显示编码格式支持ASCIIGB2312GBKBIG5UNICODE(等宽/非等宽),并且支持文字剪切显示。
9) 支持16bbp(RGB565)/24bbp(RGB888)BMP格式位图,可实现图片裁剪、透明显示。
10) 支持SPI(串行) 或者Intel 8080(并行)通信接口。
11) 支持4线电阻触摸屏、PS/2鼠标、PS/2键盘、4×6矩阵键盘、RTC时钟显示、背光亮度调节、文本光标、蜂鸣器。
  注意了,以下功能是没有2D图形加速的:文字放大/缩小、文字旋转、图片放大/缩小、图片旋转、图片半透明显示、图层半透明叠加、图层淡入淡出
  因为图形LCD控制器具备图形2D加速功能,而且可储存并显示BIN字库和BMP图片,因此拿它做emWin的显示屏再合适不过了,因为emWin底层驱动已经预留了图形LCD控制器的接口,只要把LCD驱动移植好,显示速度是飞快的,而且不需要担心没有ROM储存字库和图片,还可以用emWinSkinning方式实现位图皮肤,做位图皮肤时可以整幅图片贴图,而不再需要对整幅图片进行切片分解,界面贴图非常方便、快捷!测试的硬件连接图:
image007.jpg

以下是800×600分辨率下点亮12寸VGA显示器的效果:
image009.jpg
看的出是emWin做的界面吗?

image011.jpg

image013.png

image015.png

图形LCD控制器还有一个比RA8875/RA8876好的地方就是能实现文字剪切显示:
image017.jpg

做个列表对RA8876SSD1963图形LCD控制器做个比较:
tab.PNG

最后奉献上emWin通过Skinning方式实现位图皮肤的源代码
GLCD-EMWIN模拟器效果演示.rar (497.4 KB, 下载次数: 21)
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.part001.rar (1000 KB, 下载次数: 27)
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.part002.rar (1000 KB, 下载次数: 24)
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.part003.rar (1000 KB, 下载次数: 16)
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.part004.rar (1000 KB, 下载次数: 22)
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.part005.rar (233.1 KB, 下载次数: 22)

回复

使用道具 举报

发表于 2016-6-6 00:09:14 | 显示全部楼层
楼主厉害,赞。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-6 01:21:24 | 显示全部楼层
本帖最后由 glcd 于 2016-6-11 22:43 编辑
b_wolf 发表于 2016-6-6 00:09
楼主厉害,赞。。。。。。。。。。。。。。。

多谢支持,没什么技术含量,献丑了!
GLCD主要是为了让emWin可以像串口屏、组态屏一样方便使用字库和图片而设计的。emWin容易上手,组态、拖放式开发,控件、窗体、页面、消息管理很方便,既能做简单界面应用也能胜任更复杂的情况...
回复 支持 反对

使用道具 举报

发表于 2016-6-7 10:31:53 | 显示全部楼层
流畅吗?楼主可以发一个测试视频看看,哈哈
回复 支持 反对

使用道具 举报

发表于 2016-6-11 22:06:17 | 显示全部楼层
做的界面很好看,你这个对MCU有要求么?emwin难不难学?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-13 12:19:23 | 显示全部楼层
b_wolf 发表于 2016-6-7 10:31
流畅吗?楼主可以发一个测试视频看看,哈哈

最近太忙了,没时间做这个,以后拍了视频再放上来。不过FPGA的速度和稳定性没什么值得怀疑的!哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-13 12:25:24 | 显示全部楼层
zc6683 发表于 2016-6-11 22:06
做的界面很好看,你这个对MCU有要求么?emwin难不难学?

单片机是肯定跑不了emWin了,至少要48Kbytes的SRAM,还要有1个16位硬件SPI接口做通信,现在的CPU ROM一般都很大,没什么问题。emWin两天肯定可以入门,不是吹的,前提是你要会用C语言。可以看看这篇文章:http://www.neqee.com/content/?149.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-13 12:53:24 | 显示全部楼层
发个emWin界面效果演示:
GLCD-EMWIN模拟器效果演示.rar (497.4 KB, 下载次数: 22)
回复 支持 反对

使用道具 举报

发表于 2016-6-14 15:55:30 | 显示全部楼层
这板子做的那是相当的漂亮啊,cool   ,你这个方案都是通过SPI接口相连的吧               
回复 支持 反对

使用道具 举报

发表于 2016-6-14 15:57:52 | 显示全部楼层
我请教两个问题:

1、现在F429也带了LTDC的控制器,那做的核心板或者开发板上在已经有SDRAM的基础上有没有必要再加一块NANDFLASH

2、如果有必要加一块NANDFLASH,那这个NANDFLASH主要用在什么地方

3、还有一个是NANDFLASH的程序是不是很复杂,涉及到自校验啥的
回复 支持 反对

使用道具 举报

发表于 2016-6-14 16:02:50 | 显示全部楼层
补充:  我看楼主的 Nand-Flash 主要是作为字库和图片的储存器,这个也可以用串行的FLASH来代替,比如16MB的W25Q128,现在F746还增加了个QSPI接口,比普通的SPI还快了4倍,所以不是特别强调需要用NANDFLASH的地方,我都会偏向于用串行的FLASH,硬件简单,软件开销小
回复 支持 反对

使用道具 举报

发表于 2016-6-14 16:04:30 | 显示全部楼层
先把资料下载下来再说,感谢无私分享
回复 支持 反对

使用道具 举报

发表于 2016-6-14 16:38:51 | 显示全部楼层
效果很炫~支持楼主~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 16:54:05 | 显示全部楼层
本帖最后由 glcd 于 2016-6-14 17:00 编辑
fire 发表于 2016-6-14 15:57
我请教两个问题:

1、现在F429也带了LTDC的控制器,那做的核心板或者开发板上在已经有SDRAM的基础上有没 ...

F429加NAND FLASH意义不大,SDRAM和NAND FLASH同时用会有问题,NAND FLASH对LCD肯定是有影响了,但对其他外设应该没什么影响,可以看看这个帖子:
http://bbs.armfly.com/read.php?tid=19454
而且NAND FLASH驱动复杂,如果你是做开发板,做这部分划不来。但也不排除有很多其他应用场合会用到NAND FLASH,这我不敢断言
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 16:58:45 | 显示全部楼层
fire 发表于 2016-6-14 16:02
补充:  我看楼主的 Nand-Flash 主要是作为字库和图片的储存器,这个也可以用串行的FLASH来代替,比如16MB ...

挂个串行FLASH是好主意
回复 支持 反对

使用道具 举报

发表于 2016-6-14 19:09:08 | 显示全部楼层
glcd 发表于 2016-6-14 16:54
F429加NAND FLASH意义不大,SDRAM和NAND FLASH同时用会有问题,NAND FLASH对LCD肯定是有影响了,但对其他 ...

1、NANDFLASH跟LTDC是不能同时用,这个我知道是芯片的问题,我们无法解决,我想知道的是哪些带了NANDFLASH的核心板,主要是把NANDFLASH用在什么地方去了

2、我们的开发板挂的就是8MB的SDRAM和16MB的串行FLASH
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 19:29:41 来自手机 | 显示全部楼层
Nand还是有很大优势的,特别是flashFS出来之后,用户使用上方便很多很多,擦除太慢和成本是串行flash的硬伤,很多场合并不太想用,串行flash可以考虑做个掉电保护作为亮点,我有个项目用的是两个串行flash做掉电保护,但一个应该也能实现
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-17 06:27 , Processed in 0.057302 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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