从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板绘制水平在高频应用中出现问题。 ' b2 A$ ?3 ?# w0 |4 b& z 该板子配置如下 1. 2M的Flash。 2. 一个USB OTG FS,一个USB OTG FS/HS,可以同时连接U盘和上位机 3. 有LCD-TFT控制器,可以直接驱动液晶屏,不过需要扩展SDRAM作为显存,可以支持到32位色1024*768分辨率 4. 支持扩展SDRAM,作为显存和通用内存,开发板上是8M字节的SDRAM,型号为IS42S16400。 如图配置,生成程序就行。 注意一点是,CUBEMX生成的程序只是对MCU芯片内部的SDRAM控制和时序寄存器进行了初始化,对SDRAM芯片内部的控制寄存器另外需要初始化。可能很多人不知道SDRAM内部本身是有控制器的,需要对其进行设置才能正常工作,这也是SDRAM比SRAM应用麻烦的地方。 对SDRAM的操作网络上介绍的很多,这里就不啰嗦,上传一个附件大家看看。 |
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
STM32固件库分享,超全系列整理
STM32F4中文用户手册
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
1、无所谓在外面还是在内部,都可以,内外走线都要打孔。表层信号紧临地平面就不怕干扰,但要注意外表面空气介电常数不如隔绝空气的内部稳定,在一些湿度,温差大的地方的设备最好走内部,外部走地层,不过这样成本高。) y! X3 ^2 l0 Z4 ^# s+ K( x
$ ?% ]# W w( W2 C" A% k) ?
2、等长不是目的,目的是满足建立保持时间,同频同相,采样正确。SDRAM是公共时钟模式,只关心建立时间,不关心保持时间。* d# `* _( T& K1 b8 {* g* C' n3 \
. {1 q$ n6 I E4 ~% }! Q/ w
SDRAM数据引脚是50欧姆阻抗,我就用50欧姆阻抗的同轴线试试呗。
110M,仍然没问题;120M,也没问题;125M,又出错了。。。* L9 Z5 A4 {7 k
这样的板子,SDRAM跑到120M,你还想怎样?还想怎样!。。。- I* a4 `" b# L$ ]) O) e
SDRAM为系统二分频,此时,系统时钟为240M。。。。
单独测试GD32F450,可以稳定跑到250M,再高频率无法设置了,因为GD32F450倍频最高500,再二分频,最高就是250M。
429和450一样的呀,程序都是CUBEMX按照STM32F429生成的,你说呢?
新手来学**!+ g* |$ Y+ g/ n