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
上图的板子丝印标记错误,应该是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)显示
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了,驱动基本完成
(稍后补充)
上一篇:STM32F429 >> 22. FMC_扩展外部SDRAM(二)
下一篇:stm32f429的u-boot、uclinux内核烧写说明
推荐阅读
史海拾趣
近年来,随着物联网和大数据技术的快速发展,迪贝电子也积极探索将这些新技术应用于其产品中。公司推出了一系列智能气体检测和分析系统,这些系统可以通过物联网技术实现远程监控和数据传输,为用户提供更加便捷、高效的服务。同时,迪贝电子还利用大数据技术对用户的使用数据进行深度挖掘和分析,为产品的研发和优化提供了有力的支持。这些创新举措使得迪贝电子在气体检测及分析领域保持了领先地位,并为其未来的发展奠定了坚实的基础。
在快速发展的过程中,Erocore意识到供应链管理的重要性。公司开始优化供应链流程,降低采购成本,提高生产效率。通过与供应商建立长期稳定的合作关系,Erocore在保证产品质量的同时,实现了成本的有效控制。这一举措为公司在激烈的市场竞争中赢得了更多的优势。
Chipcon AS公司深知人才是企业发展的核心力量。因此,公司一直注重人才的引进和培养。通过与高校和研究机构建立合作关系,公司吸引了大量优秀的研发人才加入。同时,公司还建立了完善的培训体系,为员工提供了广阔的职业发展空间。这些措施使得Chipcon AS公司的研发实力不断增强,为公司的持续发展提供了有力保障。
人才是企业发展的核心驱动力。Excelsys公司高度重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供系统的培训和学习机会;同时,公司还注重团队文化的建设,营造积极向上、团结协作的工作氛围。这些措施为公司的持续发展提供了有力的人才保障。
品质管理是CAT发展的重要保障。公司建立了严格的质量管理体系,从原材料采购到产品制造、检验、包装等各个环节都进行严格的品质控制。CAT还注重与客户的沟通与协作,及时了解客户需求,为客户提供个性化的解决方案和优质的售后服务。这些举措使得CAT赢得了客户的广泛信赖和长期合作。
ESPROS Photonics corp(以下简称ESPROS)于2006年由Beat De Coi先生创立,总部位于瑞士。公司成立之初,就专注于芯片设计、集成与制造领域,依托其独特的光学工艺技术,为客户提供高性能的光电传感器解决方案。在中国上海,ESPROS设立了专门的芯片设计中心及技术支持部门,以更好地服务亚洲市场。
造型请教:有没有可以查询FPGA/CPLD芯片的价格查询网址? 现在在选型FPGA,要用到161个IO,编数组功能单元。 公司没有BGA焊接设备,只能焊引脚能看到的封装 打算用Virtex的,两个TQ144封装的(IO=2*98),或者一个PQ240的(IO=166) 不知道这几种贵不贵,考虑成本,想用几百元的! … 查看全部问答∨ |
|
小弟是计算机网络工程专业学生,和一个团队做了一年的单片机项目(主要是用凌阳61开发物品管理器),一年做下来发现有很多时候需要扎实的电路知识,而我对电路方面不太感兴趣也没什么基础,感觉现在基本上只能做单纯的软件开发(在项目里写了简单文件系统, ...… 查看全部问答∨ |
|
请教各位 想用msp430f149的io中断 硬件上是这样的 用非自锁开关 即按下去又弹起的开关两端分别接有中断功能的P1或P2口、GND;将IO初始化为高电平,按下开关,IO会有一个高电平到低电平的过程,形成下降沿,利用下降沿中断,进行开关的触发。初始化 ...… 查看全部问答∨ |