请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F429上SDRAM的应用

[复制链接]
涛哥2035 发布时间:2017-7-7 23:31
从2000年玩电脑的时候开始,对CPU频率的追求,对内存和硬盘容量的最求一直都没有停止过。第一台电脑用的赛扬566CPU+64M内存+10G硬盘,一直玩到现在3G赫兹CPU+16G内存+2T硬盘。内存也从SDRAM---DDR---DDR2---DDR3......。
现在玩单片机也从51的128Byte,到AVR-Mega8的1k,Mega128的4k,到STM32F103C8的20k,再到STM32F407ZE的192k+FSMC外扩1M的RAM,然后头脑发热买了个STM32F429ZI-DISC1开发板的外扩8MByte,SDRAM,最后就是目前用的GD32F450Z外扩64MByte,SDRAM。
内存大了以后能在USB,网络,文件系统,图像处理等一些应用上面做更多的事情,这也就是我为啥要学SDRAM的动力。
SDRAM确实比SRAM的使用麻烦的太多了,也幸好买了STM32F429ZI-DISC1开发板,比自制板要少走很多弯路。为啥这样说呢?因为在网络上太多人说STM32F429的SDRAM控制器是个坑的论调,却从来不考虑是不是自己水平不够才出现的软硬件问题,这里主要是硬件问题,直接说就是自己PCB板绘制水平在高频应用中出现问题。
11.png

12.png
该板子配置如下
1.  2M的Flash。
2.  一个USB OTG FS,一个USB OTG FS/HS,可以同时连接U盘和上位机
3.  有LCD-TFT控制器,可以直接驱动液晶屏,不过需要扩展SDRAM作为显存,可以支持到32位色1024*768分辨率
4.  支持扩展SDRAM,作为显存和通用内存,开发板上是8M字节的SDRAM,型号为IS42S16400。
13.jpg
如图配置,生成程序就行。
注意一点是,CUBEMX生成的程序只是对MCU芯片内部的SDRAM控制和时序寄存器进行了初始化,对SDRAM芯片内部的控制寄存器另外需要初始化。可能很多人不知道SDRAM内部本身是有控制器的,需要对其进行设置才能正常工作,这也是SDRAM比SRAM应用麻烦的地方。
14.jpg
对SDRAM的操作网络上介绍的很多,这里就不啰嗦,上传一个附件大家看看。
高手进阶,终极内存技术指南——完整.zip (1.39 MB, 下载次数: 342)
收藏 2 评论10 发布时间:2017-7-7 23:31

举报

10个回答
涛哥2035 回答时间:2017-7-7 23:38:10
SDRAM布线方法
1、无所谓在外面还是在内部,都可以,内外走线都要打孔。表层信号紧临地平面就不怕干扰,但要注意外表面空气介电常数不如隔绝空气的内部稳定,在一些湿度,温差大的地方的设备最好走内部,外部走地层,不过这样成本高。

2、等长不是目的,目的是满足建立保持时间,同频同相,采样正确。SDRAM是公共时钟模式,只关心建立时间,不关心保持时间。

1.SDRAM时钟信号:时钟信号频率较高,为避免传输线效应,按照工作频率达到或超过75MHz时布线长度应在1000mil以内的原则及为避免与相邻信号产生串扰,走线长度不超过1000mil,线宽10mil,内部间距5mil,外部间距30mil,要求差分布线,精确匹配差分对走线,误差允许在20mil以内。
2. 地址、片选及其它控制信号:线宽5mil,外部间距12mil,内部间距10mil,尽量走成菊花链拓补,可有效控制高次谐波干扰,可比时钟线长,但不能短。
3.SDRAM数据线:线宽5mil,内部间距5mil,外部间距8mil,尽量在同一层布线,数据线与时钟线的线长差控制在50mil内。  
4.在重要的控制信号线上一搬串联33的电阻,消除干扰。

仔细查看SDRAM手册后发现一个图,如下
21.png
SDRAM数据引脚是50欧姆阻抗,我就用50欧姆阻抗的同轴线试试呗。
4.jpg
50欧姆的射频同轴电缆,5MM直径,感觉挺细了,拿到手还是感觉太粗。。。,凑合用吧。
把MCU和SDRAM之间的时钟线去掉,换成50欧姆同轴电缆,60M全SDRAM测试通过,90M,没问题,100M,没问题!
110M,仍然没问题;120M,也没问题;125M,又出错了。。。
这样的板子,SDRAM跑到120M,你还想怎样?还想怎样!。。。
SDRAM为系统二分频,此时,系统时钟为240M。。。。
单独测试GD32F450,可以稳定跑到250M,再高频率无法设置了,因为GD32F450倍频最高500,再二分频,最高就是250M。
附上工程文件吧,有需要的朋友拿去。
GD32F450ZGT6-demo.part01.rar (4 MB, 下载次数: 137)
MrJiu 回答时间:2017-7-8 09:50:16
搞了半天在吹GD32F450???
涛哥2035 回答时间:2017-7-8 10:52:31
本帖最后由 whtt 于 2017-7-8 10:54 编辑
MrJiu 发表于 2017-7-8 09:50
搞了半天在吹GD32F450???

429和450一样的呀,程序都是CUBEMX按照STM32F429生成的,你说呢?
wolfgang 回答时间:2017-7-11 13:26:48
挂羊头卖狗肉~~
arenas 回答时间:2017-7-11 13:49:23
当初板子换用SDRAM时候,焊掉SRAM,飞上个SDRAM就行,真不是难事情,程序配置上看手册搞一搞FMC几个数值就好
aoxiangwode2008 回答时间:2018-5-5 21:34:04
膜拜一下。
rockzhouchina 回答时间:2018-9-28 10:50:33
学习了
mqchun 回答时间:2019-5-15 14:49:45
进来看看~~
月明如水 回答时间:2020-8-13 22:32:38
新手上路,膜拜一下!
kong988 回答时间:2021-9-8 17:24:48
涛哥2035 发表于 2017-7-7 23:38
SDRAM布线方法
1、无所谓在外面还是在内部,都可以,内外走线都要打孔。表层信号紧临地平面就不怕干扰,但 ...

新手来学**!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版