Image
Image

programmable

+ 关注

粉丝 0     |     主题 28     |     回帖 394

STM32硬件基础--FMC读写片外SDRAM
2020-7-10 16:21
  • ST MCU
  • 47
  • 2745
  请注意,例程 FMC_SDRAM  中的 CAS Latency 是2,对应地设置SDRAM模式寄存器时也是2。而我们在CUBEMX中将 ...  
  先找到STM32CUBE的F7库的安装目录,然后进入F746G-DISCO 的项目目录,在例子中有关于FMC的例程。从 FMC_SDR ...  
  但仍有捷径可走 ---- 找ST官方的例子:  
  至此,FMC的配置全部结束,程序可以编译、通过,但还不能正确读写SDRAM,因为SDRAM在正式工作之前,还需要 ...  
  MX_FMC_Init() 函数实现对FMC的配置,它调用了stm32fxx_hal_sdram.c文件中的 HAL_SDRAM_Init() ,后者首先 ...  
  然后,生成KEIL工程。main.c中,  
  最后,别忘了把时钟配置到200MHz:  
  修改PC3的功能为 FMC_SDCK0:  
  现在来修改图二十一中的管脚配置,同时介绍一个配置GPIO复用功能的小技巧。因为PH2不是我们想要的pin,需要 ...  
  而在图二十一中,是按开发板来配置的,CUBEMX知道板子的具体型号,就可以按实际的管脚来正确分配 FMC_SDCK ...  
  可见,图五中的管脚配置是“正确”的。但图二十一的配置也可以理解(不是CUBEMX的bug):因为是按选择芯片 ...  
  开发板上到底是用的哪个pin?原理图上找答案:  
  注意,FMC的信号线 FMC_SDCK0 分配给了 PH2 这个管脚。再来看之前提到的那个图五中的“关子”: FMC_SDCK0 ...  
  重要的问题来了:我们来看看CUBEMX为FMC自动分配的IO管脚:  
  重点是FMC:  
  为了方便调试,配置板子上的LED(PI口的PIN1):  
  图四最下面是SDRAM时序的参数,这里暂时先跳过,我们先按CUBEMX的参数,照猫画虎,自己动手配置FMC。新建一 ...  
  MCU的HCLK配置成了200MHz,图四中,SDRAM的CLK是HCLK/2(SDRAM common clock 为 2 HCLK clock cycles),即 ...  
  CL不能小于18ns,换算成SDRAM的CLK是多少呢?首先要看一下CUBEMX中配置的时钟频率: ...  
  再看图四下方的参数,重点讨论一下 CAS latency(SDRAM规范文档中的标识符为:CL),SDRAM文档中称为“读取 ...  
2
3
近期访客