STM32f429-SDRAM+LTDC总结

发布者:ArtisticSoul最新更新时间:2018-07-19 来源: eefocus关键字:STM32f429  SDRAM  LTDC 手机看文章 扫描二维码
随时随地手机看文章

买了块STM32F429I-DISC1准备搞点稍微复杂点东西,比如LCD驱动,摄像头驱动,DSP之类。

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


关于了解SDRAM的一些常识,看了一篇doc,“高手进阶,终极内存技术指南——完整.doc”,里面讲了很多SDRAM的时序和参数。

SDRAM原理:有行地址,列地址,地址线等等。还有读取每个区块就是Bank的时候先定位行地址然后定位列地址等等,已经读写的一些时序和一些关键参数的设置:

如tRCD、CAS Latency、tRP、tWR等等,这些在代码里都要配置的,根据SDRAM的数据手册(DISC1用的IS42S16400J)

具体代码工程配置:

1.FMC的配置,就是SDRAM的IO配置(地址线、CS信号、数据线、Bank选择线、CLK等等)可以用CubeMx直接生成,可以配内存地址、Bank数量、多少行多少列,还有CAS,TRCD等都是以时钟信号为单位的。

2.时钟配置FMC_SDRAM_CMD_CLK_ENABLE

3.PALL预充电存储区域FMC_SDRAM_CMD_PALL

4.自刷新FMC_SDRAM_CMD_AUTOREFRESH_MODE

5.设置一堆如模式寄存器、突发长度、等等...

6.刷新率设置(刷新率是64ms ÷(4096行) = 15.7us SDRAM使用108MHz,刷新周期为:15.7us × 90MHz count = 1413-20)

就这样设玩,SDRAM就可以随意读写了。然后就可以给LTDC和DMA2D使用了。


LCD屏幕驱动就是RGB驱动方式的配置,就是配置LTDC接口,这个可以在CubeMX中配置

RGB驱动方式原理其实也挺简单的,RGB三色,每个最多8位就是RGB888,16位就是RGB565,刷新方式就是一个VSYNC一个HSYNC一个是一帧,一个是一行。

F429分一个背景层,2个用户图层,配置相应的参数即可显示,若果显示不全调整参数即可。

但是光设置LTDC是点不亮开发板的屏幕的,原因是STM32F429I-Disc1开发板上LCD带有驱动IC-ILI9341,所以要用SPI给它下一些初始化的命令,就可以点亮了,这个具体可以参考官方出厂的例程。

我也不明白,为什么这个屏不能单独用RGB的方式驱动,用了RGB的方式还是要去初始化驱动IC才行。

最后用ST自带的工具生成一张image.h用DMA2D显示到屏幕上,测试OK。


关键字:STM32f429  SDRAM  LTDC 引用地址:STM32f429-SDRAM+LTDC总结

上一篇:STM32F767 TF卡与FAT文件系统研究
下一篇:STM32定时器---正交编码器模式详解

推荐阅读最新更新时间:2024-03-16 16:09

STM32F429 >> 6. RCC-使用HSE, HSI 配置时钟
本工程板级支持包文件适用于野火stm32f429 开发板。 编程要点 开启HSE/HSI,并等待HSE/HSI 稳定 设置AHB, APB2, APB1 的预分频因子 设置PLL 的时钟来源,设置VCO 输入时钟分频因子PLL_M,设置VCO 输出时钟倍频因子PLL_N,设置PLLCLK 时钟分频因子PLL_P,设置OTGFS, SDIO, RNG 时钟分频因子PLL_Q 开启PLL,并等待PLL 稳定 把PLLCLK 切换为系统时钟SYSCLK 读取时钟切换状态位,确保PLLCLK 被选为系统时钟 bsp_clk.c /** ************************************************
[单片机]
<font color='red'>STM32F429</font> >> 6. RCC-使用HSE, HSI 配置时钟
S3C2440开发板中SDRAM \NOR FLASH\ NAND FLASH地址分配
TQ2440 开发板的NOR FLASH是16bit数据位宽,选择从NOR FLASH启动,所以OM0接VDD,OM1接VSS,NOR FLASH接的是ngcs0,也就是接在BANK0.因为选择的NOR FLASH是2Mbyte,所以NOR FLASH的地址范围是0x0000 0000 --- 0x001f ffff。上电时,程序会从Norflash中启动,ARM直接取Norflash中的指令运行。 NAND FLASH 以页为单位读写,要先命令,再给地址,才能读到NAND的数据。NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在8个BANK中分配地址。如果S3C2440被配置成从Nand Flash
[单片机]
s3c2440中断程序(烧录到NORFlash,运行在SDRAM中)
现在正在看韦东山的《嵌入式Linux应用开发完全手册》,看到了中断部分。书上是将程序烧录到NANDFlash中,由于当mini2440板子从NANDFlash启动的时候,会自动将其中的前4KB程序拷贝到CPU内部的SRAM(4KB大小)中,并且将该SRAM的起始地址映射为0x0。所以当中断发生的时候,PC指针指向0x0+offset(如:IRQ就是0x18),可以找到中断服务程序的入口。 但是有4KB的限制,加上U-BOOT一般都烧录到NORFlash中,再将程序搬移到SDRAM中再运行的,恰好手底下有JLINK设备,所以决定写一个烧录到NORFlash,运行在SDRAM中的中断测试程序。 先说一下整体思路:将系统启动时寻找的八个
[单片机]
ARM JTAG仿真器调试方法之SDRAM
之前介绍了使用ARM JTAG仿真器将映像文件加载到ARM处理器内部SRAM中进行程序调试的方法,而在实际操作中,将映像文件加载到外部SDRAM中进行调试的方式更为常见。 要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。 对于PXA270处理器,初始化SDRAM的工作
[单片机]
第43章 STM32F429LTDC应用之汉字小字库和全字库制作
43.1 初学者重要提示 学习本章节前,务必优先学习第42章,需要对点阵字体字符编码有个认识。 LTDC驱动设计和相关问题在第41章有详细说明。 本章节为大家讲解的小字库和全字库方法,简单易用,是直接以C文件格式存储到内部Flash的。支持12点阵,16点阵,24点阵和32点阵的ASCII以及GB2312编码汉字显示。 本章节用到的字库软件下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=202 。 43.2 使用MakeDot小软件生成C文件格式小字库方法 生成方法比较简单,这里做个介绍: 43.2.1 第1步,准备好显示的字符 比如要显示如下字符,采用
[单片机]
第43章 <font color='red'>STM32F429</font>的<font color='red'>LTDC</font>应用之汉字小字库和全字库制作
STM32F429LTDC和DMA2D
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显示图像,一般
[单片机]
uboot-2011.12移植到S3C2440(四)——SDRAM初始化之后,卡在board.c的memset不动
按照转载的(四序)中设置SDRAM,并且修改uboot.lds之后,程序走到memset不再运行,无法解决。暂停。这应该是NANDFLASH代码挪窝的问题,说是2410和2440不兼容。研究中。 uboot-2010.09和201112这两个版本的memset不同,在2011.12版本中,将memset写成汇编语言了,这个比较难整,等待N人解决吧。 这一部分,csdn有csuwzc进行了201103的版本的移植,简单看了下,发现做的很好,我出错的原因大致就在于栈设置不正确,以及其它的小细节,我不打算继续深究,我现在以uboot-2010.09为模板移植。
[单片机]
SDRAM在任意波形发生器中的应用
任意波形发生器在雷达、通信领域中发挥着重要作用,但目前任意波形发生器大多使用静态存储器。这使得在任意波形发生器工作频率不断提高的情况下,波形的存储深度很难做得很大,从而不能精确地表达复杂信号。本文介绍的基于动态存储器(SDRAM)的设计能有效解决这一问题,并详细讨论了一种简化SDRAM控制器的设计方法。 1 任意波形发生器的总体方案 工作频率、分辨率和存储长度是任意波形发生器最关键的三个性能参数。高的工作频率意味着高的输出信号频率和带宽,高的分辨率通常意味着高的信噪比,而存储长度决定了信号的精确程度。下面介绍的方案是笔者实际开发的一款任意波形发生器/卡(如图1所示),它的工作频率为300MHz,分辨率为14位,存储长度为8
[测试测量]
<font color='red'>SDRAM</font>在任意波形发生器中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved