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

RA8875相信大家都熟悉吧?我们很多工程师都热衷于STM32+RA8875+emWin做界面显示,去年瑞佑又推出了同系列新产品RA8876/RA8877。

图形LCD控制器的系统主构架是:FPGA+DDR2+Nand-Flash,FPGA里面还跑了个8051,因为要做指令缓冲、FAT32文件系统、Nand-Flash驱动程序,这三样东西没有C语言单靠FPGA是没法实现的,其实和RA8875/RA8876最大的不同就是这三个功能,可以说在某些方面是RA8875/RA8876的升级版!当然成本也没法和RA8875/RA8876比,毕竟我没有能力去做流片或者去做邦定!还是先上图:

图形LCD控制器框架图:

其中I2C控制器是接外部RTC时钟芯片和触摸屏芯片用的,PWM控制器和蜂鸣器控制器其实就是1个I/O输出。

LCD控制器的Nand-Flash可以储存字库和图片,支持FAT32文件系统管理,通过N-LINK下载线连接电脑USB,就可以和U盘一模一样使用(使用系统自带驱动,写速度是3.2Mbytes/S,读速度是5.6Mbytes/S)

不会有人想拿来当U盘用吧?还是SLC颗粒的,哈哈。。。

这个是用图形LCD控制器做好的GUI2VGA图形卡:

两个2.54简牛插座一个是SPI接口的,另一个是Intel 8080接口的,VGA插座旁边那个是PS/2键盘和鼠标接口,因为市面上大部分USB鼠标和键盘都兼容PS/2,所以索性做成了USB插座;再过去那个4脚2.54排针是触摸屏插座,可以接15寸以上的4线电阻触摸屏都没问题,因为触摸屏程序是经过优化的,误差和跳动非常小!鼠标、键盘、触摸屏的触发事件是通过指令回传给CPU;屏幕上有鼠标光标显示,像电脑鼠标一样。

对于具备2D图形加速和指令缓冲功能的LCD控制器来说,其实用SPI接口发送指令显示图形、文字、图片就足够了,没必要用Intel 8080总线,麻烦而且显示速度基本一样,因为不管是自己做的图形库还是emWin,写像素操作都是非常少的,更何况20MHz的SPI接口写像素速度并不会慢。

特征:

1) 硬件2D图形加速协处理器,快速执行绘图、显示功能。

2) Nand-Flash作为字库和图片的储存器(结合N-LINK下载线和U盘一模一样使用),字库/图片随便用,非常方便。

3) 双显存自动管理设计,避免屏幕更新时出现”拉窗帘”现象。

4) 24位色(RGB888)显示,网络素材直接用,画面绝不失真。

5) 基于FAT/FAT32文件系统管理字库和图片,支持多级文件夹(子目录),在字库和图片数量非常多时,管理非常方便。

6) 可自行制作字库,支持多种字库工具生成的字库。

7) 字库显示编码格式支持ASCII、GB2312、GBK、BIG5、UNICODE(等宽/非等宽)。

8) 只支持16bbp(RGB565)/24bbp(RGB888)的BMP格式位图,可实现图片裁剪、透明显示。

9) 支持画点、线、圆、矩形和多边形等常用GUI功能。

10) 支持SPI(串行) 或者Intel8080(并行)通信接口。

11) 经优化的高精度四线电阻触摸屏支持。

12) 支持PS/2鼠标和PS/2键盘。

13) 支持4×6矩阵键盘。

14) RTC时钟显示。

15) 16级背光亮度调节。

16) 支持文本光标。

17) 带蜂鸣器。

注意了,以下功能是没有图形加速的:字体放大/缩小、字体旋转、图片放大/缩小、图片旋转、图片半透明显示、图层半透明叠加、图层淡入淡出;因为若要实现这些功能, FPGA成本可能要翻倍!

以下是1024×768分辨率下点亮32寸VGA显示器的效果:

除了EDIT控件以外,其他地方都贴了24位色的BMP图片,以下是这个界面的测试情况:

除了EDIT控件和下拉列表控件以外,其他地方都贴了24位色的BMP图片,以下是这个界面的测试情况:

现在的STM32F207VET6是裸跑emWin的,如果改成跑操作系统,加上其他任务的执行时间,STM32F207VET6的耗时势必也会增加;比如,假如其他任务的执行时间总共是100ms,那么STM32F207VET6的耗时将是229ms,图形LCD控制器的耗时还是272ms;假如其他任务的执行时间总共是200ms,那么STM32F207VET6的耗时将是329ms,图形LCD控制器的耗时将会和STM32F207VET6一样都是329ms。

在这里分析一下指令缓冲机制对整个显示系统的影响:

若显示设备使用的是传统TFT液晶屏时,CPU除了要运行用户程序之外还需要负责液晶图形绘制工作,“程序执行“和“图形绘制”只能是先后关系而不能并行执行,但如果“图形绘制”使用的是DMA机制,“程序执行“和“ 图形绘制”有时是并行执行,有时是先后执行:

若显示设备使用的是图形LCD控制器时,CPU在执行液晶图形绘制时是把所有的绘图操作在极短的时间内通过指令传输给图形LCD控制器,然后接着运行用户程序;这样在CPU运行用户程序的同时,图形LCD控制器也在执行绘图操作,所以“程序执行“和“ 图形绘制”是并行执行的:

指令缓冲还有个好处是提高图形LCD控制器的显示速度,比如用户CPU发了一条显示矩形的指令给LCD控制器,LCD控制器总要检查矩形有没有超出显示区吧?这个工作LCD控制器可以在DMA等待时间去处理,对显示时间没有影响;但如果没有指令缓冲机制的话,这些工作是要花显示时间的!

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

不要以为文字剪切显示是个简单的事情,用逻辑来实现并不那么简单,也许瑞佑觉得这个功能不重要所以没在RA8875/RA8876上实现,但在emWin应用中如果没有文字剪切显示的话就没法做移动窗口了!

最后做个列表对RA8876、SSD1963和图形LCD控制器做个比较:

GUI图形屏产品说明书

第一次使用GUI图形屏_HelloWord例程

GUI图形屏性能测试(SPI接口)

emWin注意事项

emWin驱动移植(上)

emWin驱动移植(下)

emWin使用字库和位图

诺嵌光电

www.neqee.com

时间: 2024-08-07 21:21:07

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

tiny210(S5PV210)LCD控制器RGB配置相关学习记录

最近在弄210LCD的配置,在这里记录下一些学习的东西,有错恳请指正,互相学习. datasheet里面有好多名词,先记录一下一些名词的大概意思: alpha blending:本来采用R.G.B三通道来表示颜色,但是显示控制器分为5个图层,故图层混合时需要按照一定的比例因子来混合以实现图层的透明度,而不至于将背景图层完全覆盖掉,现在增加alpha通道来作为那个颜色混合时的调节因子,配置相关的设置后,透过调节alpha值则可以实现图层间透明度的控制,而所谓的透明度,相当于是两图层的按照不同的合成

S5PV210的LCD控制器详解

1.FIMD结构框图 (1)Samsung的s5pv210的LCD控制器叫做FIMD(也叫显示控制器).Display controller(显示控制器)包括用于将图像数据从相机接口控制器的本 地总线或位于系统存储器(例如:显存)中的视频缓冲器传送到外部LCD驱动器接口的逻辑. LCD驱动接口支持三种接口,即RGB接口,I80接口和YUV 接口.显示控制器使用多达五个覆盖图像窗口(也就是虚拟窗口win0-win4),其支持各种颜色格式,如RGB.YUV. FIMD在内部与AHB总线等相连接,在外

LCD控制器与帧率、刷新率的关系分析

源:LCD控制器与帧率.刷新率的关系分析 LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光

LCD控制器与驱动器

这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍,这样要有电路来控制行和列上的输出电压,这种电路就是 LCD 驱动器;而驱动器的输出又跟图像及 LCD 的工作方式是相关的,驱动器需要接受从图像转换来的控制信号,从而改变行/列上的输出电压,将工作方式及图像位图转换成控制信号的电路就是控制器.控制器 从 MCU 接收位图数据,然后把它转换成控制信号提

iOS项目 -- 模仿花椒直播做的第一层次界面

公最近直播比较火爆,我也跟跟风,自己做一个直播app, 现在打算用金山云直播的,但是去注册的时候,联系那边的工作人员,他们讲使用金山云直播要有公司和他们线下签约才能授权开放直播平台. 怎么办呢?于是我网上查资料,终于发现适合自己的云直播平台(作为一名程序员的我,考验再三,打算使用网易云直播来开放) 这是我找的资料: 视频技术的发展正在推动以直播为代表的视频服务席卷整个互联网,并冲击着传统行业,2016年已然成为了直播元年.同时,视频云服务的元年也悄悄开始,不管是互联网巨头还是初创企业都纷纷进军视

[Symfony2] 在命令或控制器里跑另一个命令的N种方法

或许最容易想到的,是通过system或者exec里执行命令,只不过这么做显得太过粗线条对吧——系统调用函数系列不一定主机提供商允许运行,而且运行命令得重新初始化Symfony2框架运行环境,多浪费计算资源. 这两个问题,最需要解决的是第一个问题.为了安全性,很多环境PHP的系统调用系列函数都被disable掉了.不过这个问题也应该好解决,我们来看看app/console文件到底执行了什么就明白了. 1 2 3 4 5 6 7 8 9 10 11 12 // app/console ... use

控制器一些方法的执行顺序的测试

执行顺序如下: 2015-11-18 10:37:40.877 Test-All[6252:69490] viewWillAppear:2015-11-18 10:37:40.882 Test-All[6252:69490] viewWillLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.882 Test-All[6252:69490] viewDidLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.883 Test-Al

emWin做人机用户界面显示刷屏慢? 试试带2D图形加速的GUI图形屏

1.简介 GUI图形屏是一款“图形LCD控制器 + TFT液晶屏”的液晶显示模块,可作为第三方图形库emWin/ ucGUI.Microchip-GUI.eGUI.StellarisWare-Grlib.Microwindows.uGFX等等的图形显示设备,GUI图形屏和传统TFT液晶屏最大的区别在于其拥有2D图形加速功能以及字库和图片可储存于外部Nand-Flash(不占用CPU微处理器的内部Flash). GUI图形屏集成了2D图形加速器.字库&位图存储器Nand-Flash,用户只需要修改

精美、便捷的emWin界面设计-GLCD(图形屏)

GLCD是英文Graphics Liquid Crystal Display的缩写,即图形液晶屏(简称图形屏).其主要由图形LCD控制器和TFT-LCD组成,GLCD和传统TFT-LCD最大的区别在于其拥有2D图形加速引擎以及集成了Nand-Flash,可储存字库和图片. GLCD可作为emWin/ucGUI.Microchip-GUI等嵌入式GUI图形库的图形显示设备 基于GLCD的emWin界面设计只需要4步,30分钟完成人机界面设计 (1)PC模拟仿真emWin界面程序 (2)美工制作位图