STM32直接驱动RGB接口的TFT数字彩屏

发布者:MindfulYogi最新更新时间:2021-03-02 来源: eefocus关键字:STM32  TFT数字彩屏 手机看文章 扫描二维码
随时随地手机看文章

引言

随着工业技术的不断发展,人机界面的开发及应用空前火热,为了具有比较友好的人机界面,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主频的限制,刷屏速度会很慢,达不到应用要求,但是对于一些分辨率适当的彩屏还是能胜任的。


关键字:STM32  TFT数字彩屏 引用地址:STM32直接驱动RGB接口的TFT数字彩屏

上一篇:基于STM32+FPGA的全彩LED显示屏系统的设计
下一篇:STM32单片机的FSMC对TFT的驱动

推荐阅读最新更新时间:2024-11-17 17:27

STM32 TImer几种模式
输入捕获模式 库函数例程位置: STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32F10x_StdPeriph_ExamplesTIMInputCapture 在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中。当捕获事件发生时,相应的CCxIF标志(TIMx_SR寄存器)被置’1’,如果使能了中断或者DMA操作,则将产生中断或者DMA操作。 在捕获模式下,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。 PWM输入模式 库函数例程位置 :STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32
[单片机]
基于STM32微处理器和NaI探测器实现γ能谱仪系统设计
随着对天然辐射场中低能量γ谱学及其应用的深入研究,γ能谱仪不仅在固体矿产勘探、油气普查、水文和工程地质调查等工业生产及科学研究方面,甚至在民用的环境辐射场调查、建材与建筑装饰材料放射性检测方面,都得到广泛的应用,应用场合的复杂多样化对核辐射测量仪器提出新的需求。传统的核辐射测量仪器常采用探头与主控仪器分离的方式,而且主控仪器通常采用32位ARM7处理器甚至8位单片机系统来进行控制,数据采集常采用速度较低的ADC芯片。硬件电路复杂、体积大、集成度低、功能单一。近年ARM公司Cortex—M系列ARM核的推出将微控制器的性能提高到一个崭新的高度,同时功耗与成本大大降低。本文介绍一种主要基于最新Cortex—M3核的STM32微处理器,
[单片机]
基于<font color='red'>STM32</font>微处理器和NaI探测器实现γ能谱仪<font color='red'>的</font>系统设计
stm32移植cJson后数据过长出现解析失败解决
在stm32工程中使用cJSON时解析过长数据出现失败,发现是stm32的heap太小,在内存够用的情况下可以修改icf文件更改heap的大小
[单片机]
<font color='red'>stm32</font>移植cJson后数据过长出现解析失败解决
基于STM32双相步进电机细分驱动器设计
步进电机是一种运用广泛的控制电机,其特征是不使用位置反馈回路就能进行速度控制及定位控制,即所谓的电机开环控制。相对于伺服电机,步进电机有着成本低廉,控制简单等优点,尤其是两相混合式步进电机,在工业运动控制系统中有着广泛的应用。然而,传统的驱动方式,比如单电压驱动、高低电压驱动、斩波恒流驱动等等,虽然已经应用十分成熟,但是只限于低速运行,并且细分度一般限制在1/2步距,无法很好消除低频振荡,以及定位精度差等缺点。细分驱动的出现很好地弥补了这一缺点。 常见的细分控制器一般由MCU、专用逻辑驱动芯片以及功率驱动模块组成,这样的驱动器虽然能满足多细分驱动,但由于细分数量和效果会受到逻辑驱动芯片的影响,并且无法调整细分数和限流值、从而造
[单片机]
基于<font color='red'>STM32</font><font color='red'>的</font>双相步进电机细分<font color='red'>驱动</font>器设计
STM32芯片时钟配置
对STM32进行软件开发时,最基本的就是对STM32芯片进行时钟和端口配置,然后是对项目所用到的片上资源进行配置并驱动,下面给出时钟和端口配置代码,该代码几乎涵盖了片上所有时钟和端口配置项目,可根据自己需要进行删除不必要的配置项: /******************************************************************************* * Function Name : RCC_Configuration 复位时钟控制配置 * Description : Configures the different system clocks. * Input : None * Outp
[单片机]
STM32固件库文件分析
1-汇编编写的启动文件 startup_stm32f10x_hd.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、对用C库函数_main最终去到C的世界 2-时钟配置文件 system_stm32f10x.c:把外部时钟HSE=8M,经过PLL倍频为72M。 3-外设相关的 stm32f10x.h:实现了内核之外的外设的寄存器映射 xxx:GPIO、USRAT、I2C、SPI、FSMC stm32f10x_xx.c:外设的驱动函数库文件 stm32f10x_xx.h:存放外设的初始化结构体,外设初始化结构体成员的参数列表,外设固件库函数的声明 4-内核相关的 CMSIS - Cortex 微控制器软件接
[单片机]
STM32单片机(五)-寄存器地址理解和控制LED闪烁
芯片:stm32f103zet6 1、存储单元一般应具有存储数据和读写数据的功能,一般以8位二进制作为一个存储单元,也就是一个字节.每个单元有一个地址,是一个整数编码,可以表示为二进制整数。 2、stm32是32位单片机,说明基本的寄存器是32位的,4字节。内存地址需要4位 3、基址也就是基础地址,最开始的地址,这个查看芯片手册,是人家规定的。 4、偏移,即偏移地址,一般是正整数,也是增加的数字。比如基址是10,偏移是4,地址就是10+4=14. 下面STM32F10xxx中内置外设的起始地址。 每个外设的起始地址就是,每个外设的基址了,当然这个基址也可以再分解为基址和偏移地址。 比如,GPIOB的起始
[单片机]
<font color='red'>STM32</font>单片机(五)-寄存器地址理解和控制LED闪烁
STM32中DMA使用
一、DMA的定义: DMA,全称为:Direct Memory Access,即直接存储器访问。DMA传输方式无需CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM 与I/O设备开辟一条直接传送数据的通路,能使CPU 的效率大为提高。 二、stm32的DMA1、DMA2功能介绍。 STM32中 DMA1有7个通道,DMA2有5个通道(DMA2 仅存在大容量产品中)。DMA挂载的时钟为AHB总线,其时钟为72Mhz,所以可以实现高速数据搬运。 下面我们就针对DMA1 进行介绍。 下面我们就针对DMA2进行介绍。 三、DMA1初始化。 1、时钟初始化。 RCC_
[单片机]
<font color='red'>STM32</font>中DMA<font color='red'>的</font>使用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved