STM32F429 SDRAM跑emWin稳定传送门吗

【招聘_】-前程无忧
抱歉,该职位已经过期或者不存在!
无忧工作网版权所有(C)51job.com(沪ICP备)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。
暂时不试STemWim的图形库了,接下来搞一下摄像头驱动OV7640,然后搞下网络协议,CAN协议就先不看了,然后就要研究DSP的使用了。
没有更多推荐了,41个例程 STM32F429 EMWIN例程下载
[问题点数:0分]
本版专家分:0
结帖率 38.56%
CSDN今日推荐
匿名用户不能发表回复!|
其他相关推荐查看: 543|回复: 4
现在跑ucos+emwin的实验和学习遇到的问题
主题帖子精华
中级会员, 积分 307, 距离下一级还需 193 积分
在线时间17 小时
现在跑ucos+emwin的实验和学习遇到的问题;每个实验都跑了一片,感觉emwin能做什么项目,没头绪,能做什么产品出来,迷茫中,求大神赐教,怎样在原子的例程该程序,能编程自己所需要的产品出来?
先做简单的,自己给自己出题目就是&&了
做自己喜欢做的东西,比如一个按钮,一个闹钟界面....
反正就是要实现自己的想法,
电子产品小店 http://fight-tech.taobao.com,承接各种电子产品设计开发,软件为主,QQ: ,欢迎咨询!!!
主题帖子精华
金钱129352
在线时间1159 小时
先做简单的,自己给自己出题目就是&&了
做自己喜欢做的东西,比如一个按钮,一个闹钟界面....
反正就是要实现自己的想法,
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
主题帖子精华
在线时间1487 小时
emwin能做的项目很多,就看你怎么用,简单的UI界面都可以做
开往春天的手扶拖拉机
主题帖子精华
中级会员, 积分 307, 距离下一级还需 193 积分
在线时间17 小时
回复【2楼】zuozhongkai:
---------------------------------
你有没有做好的项目参考一下,学习一下,谢谢!!!,用的原子例程感觉无从下手
电子产品小店 http://fight-tech.taobao.com,承接各种电子产品设计开发,软件为主,QQ: ,欢迎咨询!!!
主题帖子精华
中级会员, 积分 307, 距离下一级还需 193 积分
在线时间17 小时
哈哈&多谢前辈的建议
电子产品小店 http://fight-tech.taobao.com,承接各种电子产品设计开发,软件为主,QQ: ,欢迎咨询!!!
"原子哥”推荐 /1
资料包括正点原子开发板全套视频,源码,手册等。原子粉丝请关注公众号。
Powered by【STM32F429开发日志】用SDRAM做内存 - ST开发工具 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 28603|回复: 14
【STM32F429开发日志】用SDRAM做内存
在线时间24 小时
该用户从未签到主题帖子精华
中级会员, 积分 434, 距离下一级还需 66 积分
探索套件的SDRAM有8MB,比较可观,用好才可以使stm32f429的性能得到最大发挥。下面简单说下。
第一部分,硬件连接情况
STM32F429探索套件内含64Mbit大小的SDRAM。有12根复用地址线(12根ROW,8根Column)表示一个bank有1M地址空间,一共有4个bank,通过BA0,BA1区分每个块。有16根数据线。板卡中的芯片是IS42S16400J,其管脚定义如下所示。
SDRAM_PIN.jpg (300.67 KB, 下载次数: 93)
16:54 上传
其中,说下CKE表示时钟使能,高电平有效,低电平表示低功耗状态,自我刷新状态,时钟挂起状态等等。LDQM和UDQM分别表示低字节和高字节有效的信号,与STM32的NBL0/1相对应。BA0/1是选择块的和stm32的BA是对应的。
再说下SDRAM和STM32F429的连接情况,如下图。
SDRAM.jpg (376.82 KB, 下载次数: 82)
16:53 上传
这里要说下SDRAM的片选接到了STM32的FMC的SDNE1:SDRAM Bank 2 Chip Enable,接到了stm32的BANK2。这个bank和上面的bank不同,注意区分。
第二部分 软件设置情况
探索套件的固件例程里,在system_stm32f4xx.c有个DATA_IN_ExtSDRAM宏。定义这个宏,并且将变量定义到SDRAM的空间,会在访问这个变量时进入硬fault。这是因为SystemInit_ExtMemCtl函数并没有根据探索套件里的硬件进行设置(尽管函数说明里是这么说的)。简单的方法是用探索套件里SDRAM_Init函数代替SystemInit_ExtMemCtl函数即可。复杂的就要牵涉到内部一些寄存器的设置。主要过程是配置GPIO,开相关时钟,配置SDCR和SDTR(配置时序)寄存器。开SDRAM时钟,等待完成。全部预充电,等待完成。自动刷新设置,等待完成。设置MRD寄存器等待完成,设置自动刷新计数,关闭写保护。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间3 小时
该用户从未签到主题帖子精华
新手上路, 积分 49, 距离下一级还需 1 积分
回复:【STM32F429开发日志】用SDRAM做内存
在线时间24 小时
该用户从未签到主题帖子精华
中级会员, 积分 434, 距离下一级还需 66 积分
SDRAM 做内存运行,非常不稳定,我做过实验,同一个硬件,同一个代码,内部SRAM 做内存,不会出现HardFault ...
是不是硬件电路设计的不好呢
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间5 小时
该用户从未签到主题帖子精华
初级会员, 积分 62, 距离下一级还需 138 积分
回复:【STM32F429开发日志】用SDRAM做内存
感谢分享,也正在学习这块,按照您的介绍进行设置,还是有问题,希望指导一下,我现在的操作是这样的,不知道哪里出现的问题:
1、在system_stm32f4xx.c开启DATA_IN_ExtSDRAM宏;
2、在SystemInit_ExtMemCtl函数中删除原来的内容,调用已经调试成功的SDRAM初始化函数;
3、修改连接文件,将文件中的以下两项进行修改:
define symbol __ICFEDIT_region_RAM_start__& & = 0xD0000000;
define symbol __ICFEDIT_region_RAM_end__& && &= 0xD07FFFFF;
4、然后在文件中定义一个2M的数组,uint8_t Buffer[2*];
编译仿真依旧直接进入HardFault_Handler中断,
在线时间2 小时
该用户从未签到主题帖子精华
新手上路, 积分 31, 距离下一级还需 19 积分
RE:【STM32F429开发日志】用SDRAM做内存
e e& && && && && && && & e e
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间13 小时
该用户从未签到主题帖子精华
初级会员, 积分 194, 距离下一级还需 6 积分
RE:【STM32F429开发日志】用SDRAM做内存
这个好,最近在用FPGA控制SDRAM,感觉时序比较复杂
在线时间77 小时
该用户从未签到主题帖子精华
金牌会员, 积分 1172, 距离下一级还需 3828 积分
RE:【STM32F429开发日志】用SDRAM做内存
这个好,最近在用FPGA控制SDRAM,感觉时序比较复杂
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间9 小时
该用户从未签到主题帖子精华
初级会员, 积分 150, 距离下一级还需 50 积分
回复:【STM32F429开发日志】用SDRAM做内存
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 4, 距离下一级还需 46 积分
回复:【STM32F429开发日志】用SDRAM做内存
你好,请问你这个问题解决了吗?我也遇到相同的问题了,可以指导一下嘛?谢谢~
回复第 5 楼 于 17:27:06发表:
感谢分享,也正在学习这块,按照您的介绍进行设置,还是有问题,希望指导一下,我现在的操作是这样的,不知道哪里出现的问题:
1、在system_stm32f4xx.c开启DATA_IN_ExtSDRAM宏;
2、在SystemInit_ExtMemCtl函数中删除原来的内容,调用已经调试成功的SDRAM初始化函数;
3、修改连接文件,将文件中的以下两项进行修改:
define symbol __ICFEDIT_region_RAM_start__& & = 0xD0000000;
define symbol __ICFEDIT_region_RAM_end__& && &= 0xD07FFFFF;
4、然后在文件中定义一个2M的数组,uint8_t Buffer[2*];
编译仿真依旧直接进入HardFault_Handler中断,
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 8, 距离下一级还需 42 积分
SDRAM 做内存运行,非常不稳定,我做过实验,同一个硬件,同一个代码,内部SRAM 做内存,不会出现HardFault_Handler中断, 如果定义外部SDRAM 为emwin系统运行内存,运行就不稳定,连续快速执行JPG解压显示函数,频繁访问SDRAM并刷屏 就出现HardFault_Handler中断,而且是不确定时间的出现。 如果修改程序访问慢一点SDRAM, 刷一屏,停一会,就不会出现HardFault_Handler中断。如果把emwin系统运行内存定义到内部SRAM ,一样执行原代码,运行2天SDRAM 都不会报错。&&我估计还是硬件SDRAM 访问不稳定。& &
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by

我要回帖

更多关于 资源站最稳定的资源站 的文章

 

随机推荐