历史上的今天
返回首页

历史上的今天

今天是:2025年03月02日(星期日)

2021年03月02日 | STM32直接驱动RGB接口的TFT数字彩屏

2021-03-02 来源:eefocus

引言

随着工业技术的不断发展,人机界面的开发及应用空前火热,为了具有比较友好的人机界面,TFT数字彩屏被广泛的应用,但是TFT彩屏通常都不带有控制器,所以现在驱动彩屏的方案大致有2种:

①采用ARM9或者更高级别的平台,芯片上带有TFT控制器,可以直接挂接TFT数字屏。

②采用低端CPU处理器平台,外加TFT控制器模块,再挂接TFT数字屏。

对于方案①来说,系统的复杂度会莫名地增加,再加上该类的平台中主MCU多为BGA封装,对于需求很多小量多样化产品的客户来说,较难以接受这样的方案;而 ②方案平白无故添加了一个LCD控制器。这两种方案无论哪一种都增加了硬件成本,本文提出了一种由STM32的FSMC总线直接挂载RGB接口屏的方案,直接由一片 CPU(STM32F103VC)来完成TFT屏的显示而且不会占用全部的CPU时间,从而节约了产品的成本。


1 总体方案与硬件整体架构

现在,TFT屏的价格与传统的单色液晶模块的价格几乎相当,甚至比一些尺寸差不多的单色屏还要便宜;而从客户和厂商的角度来看,很多设备/仪器/小型工业装备的制造商也纷纷寻求彩色TFT的设计方案,以提升产品的竞争力和显示效果。基于以上原因,笔者以STM32处理器的FSMC接口挂载RGB接口数字屏并结合DMA传输的方式设计出了一种驱动RGB数字屏的方法。DMA即直接存储器,存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。本文采用STM32F103VCT6外部挂接ISSI的25616 SRAM 512 KB的静态RAM用作显存,再使用DMA的Memory to Memory模式从外部显存往FSMC的数据线不停地送数据来刷新彩屏,无需CPU的干预。其整体硬件方案如图1所示。



2 软件部分设计及实现

本方案的所有功能都是在STM32内部实现,软件部分主要是对系统、FSMC、DMA、定时器部分的初始化以及参数的设置,同时为了满足RGB数字屏对接口时序的严格要求,本方案采用STM32自带的定时器来产生精确的定时,满足屏接口对时序的严格要求。由DMA的MEMORY TO MEMORY模式完成从SRAM到屏数据接口的数据传输以完成对屏的刷新。


2.1 系统初始化

Syslemlnit();

GPIOInit();

2.2 FSMC模块介绍以及初始化程序

FSMC即灵活的静态存储控制器,是内置有大容量STM32F10XXX的外部存储控制器。使用这个控制器,STM32F10XXX微控制器可以与许多存储器连接,包括SRAM、NOR闪存和NAND闪存等。FSMC模块如图2所示。



本文FSMC同时挂载SRAM和RGB接口屏,并且数据接口复用,因此对程序中数据总线的时间配置提出了严格的要求,以防止数据总线使用冲突。


FSMC初始化部分代码如下:

2.3 DMA模块介绍及初始化代码

本文采用存储器到存储器之间的数据传输模式,由外部显存SRAM传输数据到FSMC接口来完成数据更新。DMA部分初始化代码如下所示:

2.4 屏接口时序的实现

由于RGB接口数字屏对时序要求相对来说比较苛刻,所以采用STM32103VCT6的高级定时器来产生精确的时间单位,并以此为最小的时间单位来产生相应的接口时序,STM32由定时器来控制对TFT的扫描,以保证足够的刷新率。扫描时,STM32的CPU仅仅参与对DMA的设置和显存的操作,由DMA控制器来直接从显存中读取显示数据并送至连接RGB数字总线上,不停地读写。这都是由DMA控制器来完成的,占用CPU的时间是有限的,从而有足够的时间来实现用户程序代码。


结语

经实际证明,本方案是可行的,能保证320×240点阵的TFT的刷新率,且留有足够CPU时间给用户程序。但是对于分辨率较高的彩屏,由于STM32主频的限制,刷屏速度会很慢,达不到应用要求,但是对于一些分辨率适当的彩屏还是能胜任的。


推荐阅读

史海拾趣

Display Elektronik GmbH公司的发展小趣事

Display Elektronik GmbH始终将产品质量放在首位。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到成品检测,每一个环节都严格把关。这种对品质的坚持让Display Elektronik GmbH的产品在市场上赢得了良好的口碑,也为其赢得了众多知名客户的信赖。

Allied Controls Incorporated公司的发展小趣事

Display Elektronik GmbH公司自创立之初,就致力于显示技术的研发与创新。在21世纪初,公司推出了一款采用全新显示技术的液晶显示屏,其高分辨率、低功耗和长寿命的特点迅速赢得了市场的认可。随着技术的不断迭代,Display Elektronik GmbH逐步确立了在显示技术领域的领先地位。

Crowd Supply公司的发展小趣事

近年来,电子行业面临着诸多挑战,如技术更新迅速、市场竞争激烈等。Crowd Supply作为行业的一员,也不可避免地受到了这些挑战的影响。然而,他们并没有因此而退缩,反而通过持续创新和优化平台服务来应对这些挑战。他们不断调整众筹策略,加强项目筛选和风险评估,以确保平台上项目的质量和成功率。同时,他们也积极寻求新的商业模式和合作机会,以拓展业务范围和提升盈利能力。

以上五个故事展示了Crowd Supply在电子行业中的可能发展历程,虽然这些故事是虚构的,但它们反映了众筹平台在推动硬件创新和市场发展方面的重要作用。通过不断创新和优化服务,Crowd Supply有望在未来继续发挥其在电子行业中的领导作用。

国兴(GOODSKY)公司的发展小趣事

近年来,电子行业面临着诸多挑战,如技术更新迅速、市场竞争激烈等。Crowd Supply作为行业的一员,也不可避免地受到了这些挑战的影响。然而,他们并没有因此而退缩,反而通过持续创新和优化平台服务来应对这些挑战。他们不断调整众筹策略,加强项目筛选和风险评估,以确保平台上项目的质量和成功率。同时,他们也积极寻求新的商业模式和合作机会,以拓展业务范围和提升盈利能力。

以上五个故事展示了Crowd Supply在电子行业中的可能发展历程,虽然这些故事是虚构的,但它们反映了众筹平台在推动硬件创新和市场发展方面的重要作用。通过不断创新和优化服务,Crowd Supply有望在未来继续发挥其在电子行业中的领导作用。

DURATOOL公司的发展小趣事

随着环保意识的不断提高,绿色、环保、低碳已成为全球经济发展的重要趋势。DURATOOL公司积极响应这一趋势,致力于研发和生产绿色环保的电子工具产品。公司采用环保材料和工艺生产产品,减少了对环境的污染和破坏。同时,公司还积极开展环保宣传和公益活动,引导消费者树立绿色消费观念。这些举措不仅提升了DURATOOL公司的社会形象,也为其在未来的市场竞争中赢得了先机。

富瀚(Fullhan)公司的发展小趣事
如果保护器上有故障指示灯或显示屏,应仔细查看其显示的故障信息,以便快速定位问题。

问答坊 | AI 解惑

日本常用三极管

这是在我的硬盘里的资料,拿出来共享一下。希望能对大家有参考价值。…

查看全部问答>

iar avr twi 多从机源码

来源于AVR网站 /***************************************************************************** * * Atmel Corporation * * File         : main.c * Compiler       : IAR EWAAVR 2 ...…

查看全部问答>

99SE中写PCB中文字体

1、解压后将此文件放入C盘   2、在放入C盘后,在FONT.EXE文件中编辑你所要放的汉字   3、编辑好汉字后,在PROTEL99SE的PCB状态下,找到你放入PROTELHZ文件夹的路径,导入PCBHZ.LIB文件      采用以上步 ...…

查看全部问答>

网卡驱动

网卡驱动是不是在Linux下编写TCP通讯协议?…

查看全部问答>

飞行体验项目——看看这样的项目谁能作

项目:飞行体验项目 说明:         飞行体验装置由现时屏幕和控制器两部分组成,控制器为飞鸟外形,小朋友们可以俯卧在控制器上操作飞行器,电脑模拟的飞行场景以及小朋友的操作结果会在显示屏幕上显示  &n ...…

查看全部问答>

求智能电源监控管理软件方案(有偿服务)

本方案包括PWM 3路;A/D输入6路;双向I/O口 7路;D/A输出1路。要求用PIC、瑞萨或ATMEL 的八位单片机,如有兴趣请联系18923776056 或QQ1538444360 [ 本帖最后由 vpgpu 于 2011-1-2 19:50 编辑 ]…

查看全部问答>

关于NE555的问题。当输入高电平,输出低电平不够低怎么办?量出来2.7。

做单稳电路。高电平3.7,低电平2.7。 [ 本帖最后由 huang91 于 2011-11-10 15:49 编辑 ]…

查看全部问答>

TI Stellais SSI

Master or slave Master runs up to sys_clk/2 (25Mb @ 50MHz) Slave runs up to sys_clk/12 (4.1667Mb @ 50MHz)  …

查看全部问答>

帮忙看下为什么不产生PWM波啊

我用的芯片是LM3S2B93,Keil4工程,调试PWM时怎么也产生不了PWM,其他功能正常,大家帮忙看下是怎么回事啊~急急!! unsigned long gSysClock = 12000000UL; #define PWM_FREQ    6000           & ...…

查看全部问答>