极海APM32对SDRAM的支持
一、变化
极海数据手册APM32没有FSMC的描述,而是改为EMMC,功能相同,操作方式没有变化;目的增加控制存储器的类型,简单来说是对SDRAM的支持

二、支持SDRAM的MCU型号
目前极海MCU有APM32F103ZE,APM32F103VET6S,APM32E103ZET6,APM32E103T6S和APM32F407等系列;尾缀加S是指合封芯片,暨将MCU晶圆和SDRAM晶圆合封成一个芯片,这里先讲讲外挂SDRAM的方式,下图是外挂SDRAM的开发板:
三、外挂SDRAM如何驱动
看原理图和SDRAM手册,看起来时序非常的复杂,控制非常困难;实际APM32集成了SDRAM控制器之后,软件配置操作就简化很多了,下面会分布讲讲。
(1)外设时钟、GPIO初始化操作
         根据引脚表配置对应的IO口即可。
(2)时序初始化操作
         时序主要是参考SDRAM提供的时序表配置中的参数

 
 

(3)读写操作
 
确定外挂的SDRAM大小,规划合理的读写空间。可以支持Word 、Halfword和Byte方式写入和读出操作。
#define SDRAM_START_ADDR ((uint32_t)0x60000000)
#define SDRAM_END_ADDR  ((uint32_t)0x60200000)
 
*(__IOM uint32_t* ) address = data;
*(__IOM uint16_t* ) address = data;
*(__IOM uint8_t*  ) address= data;