STM32F429i-DISCO 液晶模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wowocpp/article/details/82383606

STM32F429i-DISCO 液晶模块
HSD-8189J-E8

STM32F429ZIT6 芯片手册 datasheet:
https://my.st.com/content/my_st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f4-series/stm32f429-439/stm32f429zi.html
参考手册:
RM0090
Reference manual
STM32F405/415, STM32F407/417, STM32F427/437 and
STM32F429/439 advanced Arm®-based 32-bit MCUs
https://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf

ILI9341 — LCD 驱动官网
http://www.ilitek.com/index.aspx?lang=CN
LCD-TFT controller (LTDC) characteristics

这里写图片描述

这里写图片描述
111
这里写图片描述
222

这里写图片描述
上图的板子丝印标记错误,应该是R35 与R36 交换一下。

这里写图片描述

这里写图片描述

SF-TC240T-9370-T

STMPE811QTR

你的屏是24位(RGB)40个引脚,STM32F429 DSICOVERY 的屏SF-TC240T-9370A-T是18位48引脚,好像不能直接接,我今天也在找4.3"18位48引脚的屏,没找到。

扫描二维码关注公众号,回复: 3286601 查看本文章

SF-TC240T-9370A-T_规格书_IC-ILI9341.pdf
这里写图片描述

这里写图片描述

这里写图片描述

3 液晶显示

  ******************************************************************************
  * @file    stm32f429i_discovery_lcd.c
  * @author  MCD Application Team
  * @version V1.0.1
  * @date    28-October-2013
  * @brief   This file includes the LCD driver for ILI9341 Liquid Crystal 
  *          Display Modules of STM32F429I-DISCO kit (MB1075).
  ******************************************************************************

开发板基于STM32F429ZIT6设计
144引脚,LQFP封装

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
板子上面没有焊接连接到一块

这里写图片描述

这里写图片描述

这里写图片描述

4 ILI9341管脚作用

这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

5

STM32F10x的LCD(ILI9320)显示
https://blog.csdn.net/gaojinshan/article/details/11737741

我们采用LCD模块为显尚光电的DST2001PH TFTLCD,它的控制器为ILI9320,
它采用26万色的TFT屏,分辨率为320×240,采用16位的80并口与外部连接。
该模块的80并口有如下一些信号线:
CS/PC9:TFTLCD片选信号。 片选拉低时,表示选中。
RS/PC8:命令/数据标志(0,读写命令;1,读写数据)。
WR/PC7:向 TFTLCD写入数据。在WR的上升沿,使数据写入到LCD芯片里;
RD/PC6:从 TFTLCD读取数据。 在RD的上升沿,使数据锁存到数据线上;
D[15:0]:16位双向数据线。
RST:硬复位TFTLCD。
RST信号线,是直接接到 STM32的复位脚上,并不由软件控制,这样可以省下来一个IO端口。
另外,还需要一个背光控制线来制TFTLCD的背光。所以,总共需要的IO口数目为21个。
控制器自带显存,其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。

2、TFTLCD的操作分为两种:

A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。

B、对显存寄存器的读写操作(即读写LCD显存寄存器)。

3、TFTLCD有一个索引寄存器,对控制寄存器操作前,需要对索引寄存器进行定入操作,用以指明

  寄存器读写是针对那个寄存器的,具体操作步骤如下:

RS为低电平状态下,写入两个字节的数据,第一个字节为零,第二个字节为寄存器索引值。

RS为高电平状态下,读取两个字节数据,第一个字节为高八位,第二个字节为低八位

这里写图片描述

先搞得是LCD驱动,F429提供了LTDC接口,就是可以直接可以用RGB的方式驱动屏幕,而用RGB方式就需要有比较大的RAM,但一般MCU的板载RAM都是很小的,都是通过外接SDRAM的方式来进行的,而SDRAM就是跟电脑外接DDR内存的原理是一样的。F429板载了一颗8Mbyte的SDRAM。

stm32f429及stm32f439已经带有LTDC控制器,意味着可以输出RGB888及RGB565的图像信号,这与以往的单片机CPU8080接口LCD有很大不同,也是入手STM32F429-DISCO的原因,价格不贵,mouser上不含税150,淘宝180,非常适合学习。

STM32F429与之前的系列强大之处就在于增加了LTDC个功能,从手册上看STM32F429的LTDC可以用于驱动1024x768分辨率的LCD屏幕。

LTDC其实就是TFT LCD控制器的意思,在arm9/arm11/cortex-A系列CPU当中,这个是必须有的外设,在小型单片机中,有这个功能的不多。

LCD控制器的功能就是生成LCD像素时钟,将GRAM中的数据搬运到LCD屏幕上去显示。

    在一般的小型LCD模块一般都集成了一个LCD控制器,如常用的ili9320/ili9325等型号,这些LCD模块同时还集成了几百KB大小的RAM,用于显示;

这种方案,不需要占用单片机的RAM就可以稳定地驱动LCD显示图像,一般地MCU先通过8080接口或SPI向控制器发送命令,配置LCD参数,

然后向集成的RAM中写入数据就可以显示,是低成本项目的首选方案。

   而STM32F429自带的LTDC也是LCD控制器,与ili9320相比,支持的分辨率更高,功能更多,但是LTDC只负责产生LCD需要的时序,并没有集成RAM,

如640x480x16bpp的屏幕,需要600KB的RAM,在单片机中600KB的内存,已经是天文数字了,所以需要外扩一片SDRAM来充当GRAM。

Library 08- ILI9341 LCD for STM32F4

http://stm32f4-discovery.net/2014/04/library-08-ili9341-lcd-on-stm32f429-discovery-board/
https://github.com/MaJerle/stm32f429#

On STM32F429 Discovery board there is LCD with ILI9341 controller. It has 240 x 320 pixels resolution and 16bit or 18bit color depth, what gives you 65536 or 262144 different colors.

什么是 RGB接口

嵌入式开发板的LCD接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式、RGB模式、SPI模式、VSYNC模式、MDDI模式、DSI模式和MCU模式。只有TFT模块才有RGB接口。
但应用比较多的就是MUC模式和RGB模式,区别有以下几点:

1.MCU接口:会解码命令,由timing generator产生时序信号,驱动COM和SEG驱器。
RGB接口:在写LCD register setting时,和MCU接口没有区别。区别只在于图像的写入方式。

2.用MCU模式时由于数据可以先存到IC内部GRAM后再往屏上写,所以这种模式LCD可以直接接在MEMORY的总线上。
用RGB模式时就不同了,它没有内部RAM,HSYNC,VSYNC,ENABLE,CS,RESET,RS可以直接接在MEMORY的GPIO口上,用GPIO口来模拟波形.

3.MCU接口和RGB接口主要的区别是:
MCU接口方式:显示数据写入DDRAM,常用于静止图片显示。
RGB接口方式:显示数据不写入DDRAM,直接写屏,速度快,常用于显示视频或动画用。

所以天嵌科技的板子基本上使用的是RGB接口方式,用排线的方式进行连接,如:

大屏采用较多的模式,数据位传输也有6位,16位和18位,24位之分。连线一般有:VSYNC,HSYNC,DOTCLK,CS,RESET,有的也需要RS,剩下就是数据线。它的优缺点正好和MCU模式相反。

     MCU-LCD屏它与RGB-LCD屏主要区别在于显存的位置。RGB-LCD的显存是由系统内存充当的,因此其大小只受限于系统内存的大小,这样RGB-LCD可以做出较大尺寸,象现在4.3"只能算入门级,而MID中7",10"的屏都开始大量使用。而MCU-LCD的设计之初只要考虑单片机的内存较小,因此都是把显存内置在LCD模块内部.然后软件通过专门显示命令来更新显存,因此MCU屏往往不能做得很大。同时显示更新速度也比RGB-LCD慢。显示数据传输模式也有差别。RGB屏只需显存组织好数据。启动显示后,LCD-DMA会自动把显存中的数据通过RGB接口送到LCM。而MCU屏则需要发送画点的命令来修改MCU内部的RAM(即不能直接写MCU屏的RAM)。所以RGB显示速度明显比MCU快,而且播放视频方面,MCU-LCD也比较慢。

    对于RGB接口的LCM,主机输出的直接是每个象素的RGB数据,不需要进行变换(GAMMA校正等除外),对于这种接口,需要在主机部分有个LCD控制器,以产生RGB数据和点、行、帧同步信号。

3.MPU接口方式:显示数据写入DDRAM,常用于静止图片显示。

RGB接口方式:显示数据不写入DDRAM,直接写屏,速度快,常用于显示视频或动画用。

MCU接口和RGB接口主要的区别是:

MCU接口方式:显示数据写入DDRAM,常用于静止图片显示。

RGB接口方式:显示数据不写入DDRAM,直接写屏,速度快,常用于显示视频或动画用。

基于STM32F429的RGB屏使用

https://blog.csdn.net/hducollins/article/details/78471539

使用ST的HAL库进行开发,RGB屏幕是480*272的4.3寸LCD,由于驱动RGB屏幕需要较多的内存,

所以使用了外部SDRAM,内存是32M字节,关于SDRAM的驱动本文不进行讨论。

RGB屏幕常用的像素格式有:ARGB8888、RGB888、RGB565、ARGB1555、ARGB4444等格式,本文讨论RGB565格式的使用。

RGBLCD的信号线如下表:
这里写图片描述

上表共有24根颜色信号线,RGB565格式只用了其中的16根颜色信号线,分别是:R[3:7],G[2:7],B[3:7],共16位,

这样在表示颜色的时候就可以用16位长度的数据进行表示了,增加了数据的传输速度。

RGBLCD接口的原理图如下:
除了16位数据线之外,还有用到如下几个信号线:

LCD_BL:背光;

LCD_DE:数据使能信号;

LCD_VSYNC:垂直同步信号;

LCD_HSYNC:水平同步信号;

LCD_CLK:时钟信号;

STM32F429有自带的RGBLCD外设接口LTDC,可以用来直接驱动RGBLCD,另外配上专用于图像处理的DMA2D,

使得RGBLCD用起来更加方便快速。

下面开始介绍使用到的单片机引脚对应:

PI9     ------> LTDC_VSYNC
PI10     ------> LTDC_HSYNC
PF10     ------> LTDC_DE
PG7     ------> LTDC_CLK
PH9     ------> LTDC_R3
PH10     ------> LTDC_R4
PH11     ------> LTDC_R5
PH12     ------> LTDC_R6
PG6     ------> LTDC_R7
PH13     ------> LTDC_G2
PH14     ------> LTDC_G3
PH15     ------> LTDC_G4
PI0     ------> LTDC_G5
PI1     ------> LTDC_G6
PI2     ------> LTDC_G7
PG11  ------> LTDC_B3
PI4     ------> LTDC_B4
PI5     ------> LTDC_B5
PI6     ------> LTDC_B6
PI7     ------> LTDC_B7 

通过配置STM32CubeMx直接生成的LTDC部分初始化代码如下:

用FSMC刷屏很慢
F429自带LCD控制器,内部的那个ART其实应该说是一个比较简单的DMA传输方式了~
我用过F429驱动800*480的TFT,速度还是比较快的~

如果刷屏要求不高,可以使用FSMC总线,要求高的话,还是使用LCD控制器比较好
我今天看了下资料。虽然我的MCU不带LCD控制器。但是我买的TFT却使用了TFT控制器,而且是RA8875,支持800*480点的。MCU的FSMC直接连接的MCU内部AHB总线,想来速度应该是够了。但是不知道会遇到什么怪异的问题,想先这么做着吧,或者换个主频更高点的M4试试

使用RA8875然后用总线,也不错,我这里有块开发板是STM32F407的,就是使用的RA8875,刷屏效果杠杠的。

也就是说用STM32F429,可以省掉RA8875或SSD1963.

说的直白一些就是,显示的时候有两个图层,一个图层在前端显示,一个图层在后端绘画,等后面的画好了,切换到前面显示,刚刚在前端的放到后端再做更改,来回切换显示,不知道这么说通俗不

FSMC 驱动TFT 需要TFT带有控制器,F429可以直接驱动(F429内部带有TFT控制器)
想用FSMC驱动800*480 TFT 是可以的,选一个带TFT控制器的TFT即可,或者CPLD做的TFT模组

本来差不多已经选定429了,结果采购说很难买,而且价格奇高,>100块,所以放弃了,现在准备用LPC1788了。但是看到1788的开发板驱动液晶时都加入了74hc245,难道1788的驱动能力不够?不加245可以不?

现在已经选用LPC1788了,驱动基本完成

(稍后补充)

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/82383606