1 #ifndef __SWM341_SDRAM_H__ 2 #define __SWM341_SDRAM_H__ 3 4 typedef struct { 5 uint8_t Size; // SDRAM 容量,SDRAM_SIZE_2MB、SDRAM_SIZE_8MB、SDRAM_SIZE_16MB、SDRAM_SIZE_32MB 6 uint8_t ClkDiv; // SDRAM 时钟分频,SDRAM_CLKDIV_1、SDRAM_CLKDIV_2 7 uint8_t CASLatency; // 列地址到有效数据输出间隔,SDRAM_CASLATENCY_2、SDRAM_CASLATENCY_3 8 uint8_t RefreshTime; // 刷新时间,单位 ms,在这个时间内 SDRAM 必须完成一次整片刷新,通常为 64ms 9 10 uint8_t TimeTRP; // Row precharge delay,Precharge命令到另一个命令间延时 11 uint8_t TimeTRCD; // Row to column delay,行地址到列地址间延时,也即Activate命令到读写命令间延时 12 uint8_t TimeTRC; // Row cycle time, Activate to Activate on same bank 13 // 若 SDRAM 颗粒除了 tRC,还有 tRFC 或 tRRC 参数,则按照二者中较大的计算 TimeTRC 14 } SDRAM_InitStructure; 15 16 // rowaddr bankaddr coladdr 17 #define SDRAM_SIZE_2MB 3 // HADDR[20:10] HADDR[9] HADDR[8:1] 18 #define SDRAM_SIZE_8MB 0 // HADDR[22:11] HADDR[10:9] HADDR[8:1] 19 #define SDRAM_SIZE_16MB 1 // HADDR[23:12] HADDR[11:10] HADDR[9:1] 20 #define SDRAM_SIZE_32MB 2 // HADDR[24:12] HADDR[11:10] HADDR[9:1] 21 22 #define SDRAM_CLKDIV_1 0 // 支持的 CPU 频率范围:80MHz--125MHz 23 #define SDRAM_CLKDIV_2 1 // 支持的 CPU 频率范围:20MHz--160Mhz 24 25 #define SDRAM_CASLATENCY_2 0 26 #define SDRAM_CASLATENCY_3 1 27 28 29 #define SDRAM_TRP_1 0 30 #define SDRAM_TRP_2 1 31 #define SDRAM_TRP_3 2 32 #define SDRAM_TRP_4 3 33 34 #define SDRAM_TRCD_1 0 35 #define SDRAM_TRCD_2 1 36 #define SDRAM_TRCD_3 2 37 #define SDRAM_TRCD_4 3 38 39 #define SDRAM_TRC_4 3 40 #define SDRAM_TRC_5 4 41 #define SDRAM_TRC_6 5 42 #define SDRAM_TRC_7 6 43 #define SDRAM_TRC_8 7 44 #define SDRAM_TRC_9 8 45 #define SDRAM_TRC_10 9 46 #define SDRAM_TRC_11 10 47 #define SDRAM_TRC_12 11 48 #define SDRAM_TRC_13 12 49 #define SDRAM_TRC_14 13 50 #define SDRAM_TRC_15 14 51 #define SDRAM_TRC_16 15 52 53 54 void SDRAM_Init(SDRAM_InitStructure * initStruct); 55 56 void SDRAM_Enable(void); 57 void SDRAM_Disable(void); 58 59 #endif //__SWM341_SDRAM_H__ 60