完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F429i-DISCO 液晶模块
111 222 上图的板子丝印标记错误,应该是R35 与R36 交换一下。 SF-TC240T-9370-T STMPE811QTR 你的屏是24位(RGB)40个引脚,STM32F429 DSICOVERY 的屏SF-TC240T-9370A-T是18位48引脚,好像不能直接接,我今天也在找4.3“18位48引脚的屏,没找到。 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)显示 我们采用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 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屏使用 使用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了,驱动基本完成。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1848浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
610浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
504浏览 3评论
508浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
489浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:20 , Processed in 0.509047 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号