初学SDRAM笔记5--配置FMC的SDRAM初始化结构体

大概搞清了一些比较重要的时序后,SRM32F429的FMC还有个SDRAM初始化结构体需要配置。这里面的参数我们一个一个来看。

初学SDRAM笔记5--配置FMC的SDRAM初始化结构体

1、FMC的SDRAM存储区域,可以选区域1或区域2。

         下面是资料上的:

         FMC把SDRAM的存储区域分成了Bank1和Bank2两块,这个的Bank与SDRAM芯片内部的Bank是不一样的概念,只是FMC的地址区域划分而已。每个Bank有不一样的起始地址,且有独立的寄存器、时钟使能信号线等。

         FMC_SDCKE0和FMC_SDCLK0对应存储区域1的地址范围是0xc0000000-0XCFFF FFFF,而FMC_SDCKE1和FMC_SDCLK1对应的存储区域2的地址范围是0XD000 0000-0XDFFF FFFF。当程序里控制内核访问这些地址的存储空间时,FMC外设即会产生对应的时序,对它外接的SDRAM芯片进行读写。

初学SDRAM笔记5--配置FMC的SDRAM初始化结构体

2、定义SDRAM的行地址宽度、列地址宽度、数据宽度、内部Bank数目。

         这个要查看对应的SDRAM芯片手册。查表可知,行地址12位宽,列地址8位宽。

数据宽度16,内部有4个Bank

初学SDRAM笔记5--配置FMC的SDRAM初始化结构体

3、CL读取潜伏期时钟个数

         这个参数在模式寄存器里面介绍过,读取潜伏期是读取命令后,要等2或3个时钟周期。

 从数据手册上这个图来看,应该选2。因为SDRAM的时钟是90MHz。

回头试试CAS Latency等于3是什么情况。

初学SDRAM笔记5--配置FMC的SDRAM初始化结构体

4、FMC_SDClockPeriod。这个参数上次说过,就是给HCLK分频用的,可以选2或者3,。这里我们2分频,让SDRAM的时钟能有90MHz。

5、FMC_ReadPipeDelay。定义在CAS延迟后,再等待多少个时钟周期才能读取数据。

         在确保正确的前提下,这个值越小越好。可配置成0、1、2

下面是配置好的参数的截图

初学SDRAM笔记5--配置FMC的SDRAM初始化结构体