STM32 TFTLCD原理与驱动与指令介绍

发布者:MysticGlow最新更新时间:2021-12-01 来源: eefocus关键字:STM32  TFTLCD  驱动  指令介绍 手机看文章 扫描二维码
随时随地手机看文章

一,TFTLCD简介

TFTLCD : 薄膜晶体管液晶显示器


液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT)

克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,提高图像质量


TFTLCD优点:

亮度好,对比度高,层次感强,颜色鲜艳,是目前最主流的LCD显示器

广泛用于电视,手机,电脑,平板等各种的电子产品


二,ALINETEK 2.8寸 TFTLCD模块介绍

TFTLCD

240*320分辨率

16位真彩显示(65536色)

自带电阻触摸屏

自带背光电路


三,ALINETEK 2.8寸 TFTLCD模块原理图

TFTLCD原理图

1,2.8寸LCD引脚

2.8寸LCD引脚

2,TFTLCD 为对外接口,引出2*17排针

TFTLCD对外接口

3,电阻触摸屏驱动XPT2046

XPT2046

4,触摸屏信号控制

触摸屏信号连接

TFT2.8 12-15引脚 X+ Y+ X- Y- 为电阻触摸屏信号,连接到XPT2046,再由TFTLCD引出


5,LCD的兼容处理

LCD兼容

IM0:兼容不同LCD的兼容处理,由于2.8寸屏不支持8或16位设置,所以此处R1,R2未焊接

LEDA为LCD背光控制,背光电压可以选择3.3V或来自BL_VDD

BL_VDD来自TFTLCD的BL_VDD,可不接,开发板上接5V

此处R3焊接,R4未焊接,所以BL_VDD无用,LEDA=3.3V


6,LCD背光控制电路

LCD背光控制电路

通过TFTLCD的BL_CTR引脚,控制S8050三极管,从而控制背光是否点亮,R6-R9为限流电阻


三,ALINETEK 2.8寸 TFTLCD对外接口说明(16位80并口)

TFTLCD对外接口

LCD_CS:LCD片选信号

LCD_WR:LCD写信号

LCD_RD:LCD读信号

DB[17:1]:16位双向数据线。

LCD_RST:硬复位LCD信号

LCD_RS:命令/数据标志 (0:命令,1:数据)

BL_CTR:背光控制信号

T_MISO/T_MOSI/T_PEN/T_CS/T_CLK,触摸屏接口信号


注意:DB1~DB8,DB10~DB17,共16引脚,总是按顺序连接MCU的D0~D15


如果我们只是要点亮LCD,不使用触摸屏可不接相关引脚(29-34)


四,ALINETEK 2.8寸 TFTLCD 16位80并口驱动

模块的8080并口读/写的过程为:


1,先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令)

2,拉低片选CS,选中ILI9341

3,根据读/写数据,将置RD/WR置低


4-1.读数据:在RD的上升沿, 读取数据线上的数据(D[15:0])

TFTLCD读数据

4-2.写数据:在WR的上升沿,使数据写入到ILI9341里面

TFTLCD写数据

五,ILI9341驱动的几个重点时序

ILI9341驱动时序

1,读ID低电平脉宽(trdl)     ID指LCD的ID号

trdl低电平最小持续时间需要45ns

2,读ID高电平脉宽(trdh)

trdl低电平最小持续时间需要90ns

读ID时序

3,读FM低电平脉宽(trdlfm)     FM指帧缓存,即:GRAM

读取FM低电平脉宽最小持续时间trdlfm需要355ns


4,读FM高电平脉宽(trdhfm)

读取FM高电平脉宽最小持续时间trdlfm需要90ns


结论:

    读FM低电平时速度比较慢,高电平和读ID相同都是90ns


5,写控制低电平脉宽(twrl)

写LCD低电平最小持续时间15ns


6,写控制高电平脉宽(twrh)

写LCD高电平最小持续时间15ns


结论:

    写LCD速度较快


4个读时序(主要用于配置FSMC的读时序)和2个写时序(主要用于配置FSMC的写时序)


如果开发板没有FSMC,可以使用IO模拟的方式实现,此时不需要关注时序,因为一定会大于最小时间


六,TFTLCD驱动流程

TFTLCD驱动流程

硬复位:

    1,连接到MCU复位引脚,随MCU一起复位

    2,连接到MCU的IO引脚,先拉低,延迟,再拉高实现复位

初始化序列:

    由LCD厂家提供,不同厂家不同型号都不相同

写GRAM:

    0X2C指令,详见后续

读GRAM:

    0X2E指令,详见后续


七,TFTLCD驱动原理-指令

1,RGB565


模块对外接口采用16位并口,颜色深度为16位,格式为RGB565

RGB565

2,ILI9341指令


指令格式:

    ILI9341所有的指令都是8位(高8位无效)

    参数除了读写GRAM的时候是16位,其他操作参数也都是8位的


重要指令


1,0XD3-读ID4指令


读取LCD控制器ID,可根据ID执行不同的LCD驱动初始化,实现多屏幕兼容

0XD3-读ID4指令

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0xD3,高8位无效

2,RS=1数据,WR=1为读取,在RD上升沿读取参数1,为无效参数

3,RS=1数据,WR=1为读取,在RD上升沿读取参数2,为00H

4,RS=1数据,WR=1为读取,在RD上升沿读取参数3,为93H

5,RS=1数据,WR=1为读取,在RD上升沿读取参数4,为41H


结论:由参数3和参数4,组成LCD控制器ID-9341,确定执行9341的驱动代码


2,0X36-储存访问控制指令


可以控制ILI9341控制器的读写方向,即GRAM指针自增方向,从而控制显示

0X36-储存访问控制指令

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x36,高8位无效

2,RS=1数据,RD=1为写入,在WR上升沿写入参数数据,高8位无效


参数D5-D7位,控制GRAM自增方向,配置如下:

0X36参数

3,0X2A-列地址(X轴)设置指令


用于设置横坐标,默认从左到右,从上到下,由0x36指令设置储存访问控制

0X2A-列地址(X轴)设置指令

发送一个指令0X2A+四个参数确定两个坐标分别是SC和EC

SC和EC是列地址的起始值和结束值,所以SC必须小于EC

LCD分辨率是240*320,所以SC/EC不能大于240(0-239)


一般设置X坐标值,EC无变化(初始化已设置),只需设置SC(参数1和参数2)即可


4,0X2B-页地址(Y轴)设置指令


用于设置纵坐标,默认从左到右,从上到下,由0x36指令设置储存访问控制

0X2B-页地址(Y轴)设置指令

与列地址设置指令相似:

    发送一个指令0X2B+四个参数确定两个坐标分别是SP和EP

    SP和EP是页地址的起始值和结束值,所以SP必须小于EP

    LCD分辨率是240*320,所以SC/EC不能大于320(0-319)


一般设置Y坐标值,EP无变化(初始化已设置),只需设置SP(参数1和参数2)即可


应用:使用0X2A和0X2B指令可以在LCD屏进行开窗


5,0X2C指令-写GRAM指令


发送该指令后可向LCD-GRAM写入颜色数据,支持连续写入,地址自增,由0x36指令设置储存访问控制

0X2C指令-写GRAM指令

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x2C,高8位无效,随后可以写入颜色数据

2,RS=1数据,WD=1为写入,在WR上升沿可连续写入n个颜色参数,参数长度为16为即RGB565


6,0X2E指令-读GRAM指令


用于读取ILI9341的显存GRAM,支持连续读取,地址自增,由0x36指令设置储存访问控制

0X2E指令-读GRAM指令

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x2E,高8位无效,随后可以读取颜色数据

2,ILI9341收到0x2E指令后,第一次输出为dummy,即无效参数,从第二次开始为有效GRAM数据

3,RS=1数据,WR=1为读取,在RD上升沿可连续读取n个颜色参数,参数长度为16为即RGB565


如图所示,输出规律:

如:第一次输出R1G1,第二次输出B1R2->G2B2->R3G3->B3R4...


修改记录:

20161210-勘误-修改错别字,及部分逻辑

关键字:STM32  TFTLCD  驱动  指令介绍 引用地址:STM32 TFTLCD原理与驱动与指令介绍

上一篇:STM32定时器中断实验
下一篇:意法半导体推出下一代安全微控制器

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

STM32串口+DMA的使用2
uint8_t UART4_Rx_buffer ,UART4_Rx_num; void UART4_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; DMA_InitTypeDef DMA_InitStructure; // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //选择NVIC优先级分组0 R
[单片机]
STM32电机矢量控制】记录14——霍尔传感器
霍尔传感器: 霍尔传感器是可以识别转子磁场极性的传感装置;霍尔传感器根据其面对的 磁极,输出逻辑电平0或1,因此霍尔传感器必须按装在转子上。 通常在三相永磁电机中安装三个霍尔传感器,用来反馈转子位置信息。它们 通常间隔120 °或者60°。 由于 STM32F103xx 具有通用定时器(TIMx)功能,微控制器与三个霍尔传感器接口非常简单。事实上,当寄存器TIMx_CR2 的TI1S 位被设定时,在TIMx_CH1,TIMx_CH2 和TIMx_CH3引脚的三个信号进行异或运算,由此产生的信号输入到逻辑运行TIMx输入捕获中。这样,速度的测量转换成一个方波的周期测量,频率比真正的电频率高出三倍。唯一的例外的是转动方向无法
[单片机]
【<font color='red'>STM32</font>电机矢量控制】记录14——霍尔传感器
高效驱动LED离线式照明
在路灯应用中,一种可行的配置是创建 300V/0.35 安培负载的 80 个串联的 LED。在选择电源拓扑结构时,需要制定隔离和功率因数校正 (PFC) 相关要求。隔离需要大量的安全权衡研究,其中包括提供电击保护需求和复杂化电源设计之间的对比权衡。在这种应用中,LED 上存在高压,一般认为隔离是非必需的,而 PFC 才是必需的,因为在欧洲 25 瓦以上的照明均要求具有 PFC 功能,而这款产品正是针对欧洲市场推出的。   就这种应用而言,有三种可选电源拓扑:降压拓扑、转移模式反向拓扑和转移模式 (TM) 单端初级电感转换器 (SEPIC) 拓扑。当 LED 电压大约为80 伏特时,降压拓扑可以非常有效地被用于满足谐波电流要求。在这
[电源管理]
高效<font color='red'>驱动</font>LED离线式照明
STM32开发笔记69: 外设启动的先后次序
单片机型号:STM32F070F6P6 今天,在程序框架中增加了Timer16定时器驱动,但程序不能正常运行,本篇日志记录其原因。 驱动程序框架,定义了回调函数Timer16_InterruptFunction,写在main.cpp中用于逻辑层设计。Timer16_InterruptFunction调用的间隔为1ms,具体程序如下: void Timer16_InterruptFunction(void) { Target.HAL.L2.Turn(); } 此程序完成以1ms为间隔L2闪烁的程序,但是将此程序烧写到目标板后,程序不能正常运行。经过调试,最后将问题锁定在启动顺序上,看一下程序外设的启动顺序,具体程序
[单片机]
STM32的GPIO口的8种配置模式
一、 STM32的输入输出管脚有下面8种(4输入+2输出+2复用输出)可能的配置: ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要
[单片机]
采用3.3V电源电压的片上2 Vrms线路驱动
2008 年 10 月 13 日 , Cirrus Logic 公司宣布推出 24 位数模转换器 CS4353 ,拓展其领先的数字音频应用音频转换器 IC 系列。 CS4353 是 Cirrus Logic 公司的第三代音频数模转换器产品,集成了 2Vrms 线路驱动器,并通过减少对多个系统元件的需求来简化模拟输出区间段电路设计,从而节省成本。 CS4353 是唯一一款具备由单 3.3V 电源电压支持的片上 2.1 Vrms 线路驱动器的数模转换器,可以在 RC 滤波器后实现 2Vrms 的电压。而其他采用线路驱动器的数模转换器往往要求噪声较大的高压电源。这些转换器输出的电压也往往较低,不能满足当今众多消费电
[模拟电子]
开漏输出和推挽输出
概述 在STM32或者GD32中,普通的输出GPIO输出方式主要是开漏输出和推挽输出,下面我们开始讲解这2种模式的区别。 下图是GPIO内部的结构示意图。 在上图中,P-MOS带了一个⚪,说明是低电平导通。 上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。 模拟文件下载 https://download.csdn.net/download/qq_24312945/85250172 推挽输出 推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。 当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。 当输出低电平时
[单片机]
开漏输出和推挽输出
STM32定时器输出比较(PWM)
前言: 1.本博文基于ARM Cortex-M3内核的STM32F103ZET6处理器芯片和标准3.5.0库函数; 2.不介绍PWM的基础概念,但是需要知道一点的是,PWM是输出比较的一种特例; 3.如有不足指出,还望前辈多多指教; 4.要想学会这个知识点,必须要掌握下面这位博友写的博客里的几个概念,不然后来很有可能会懵逼; http://blog.sina.com.cn/s/blog_3ba262a10101esd1.html Ⅰ 定时器和PWM (1)8个定时器中,除了TIM6和TIM7,其他定时器都可以产生PWM输出; (2)高级定时器TIM1和TIM8可以同时输出7路PWM(CH1~7,共7个通道),通用定时器同时可产
[单片机]
<font color='red'>STM32</font>定时器输出比较(PWM)
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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