1 #ifndef __SWM320_SDRAM_H__
2 #define __SWM320_SDRAM_H__
3 
4 typedef struct {
5     uint8_t CellSize;           // SDRAM颗粒的容量,SDRAM_CELLSIZE_16Mb、SDRAM_CELLSIZE_64Mb、SDRAM_CELLSIZE_128Mb、SDRAM_CELLSIZE_256Mb
6     uint8_t CellWidth;          // SDRAM颗粒的位宽,SDRAM_CELLWIDTH_16、SDRAM_CELLWIDTH_32
7     uint8_t CASLatency;         // 列地址到有效数据输出间隔,SDRAM_CASLATENCY_2、SDRAM_CASLATENCY_3
8     uint8_t RefreshTime;        // 刷新时间,单位 ms,在这个时间内 SDRAM 必须完成一次整片刷新,通常为 64ms
9 
10     uint8_t TimeTMRD;           // MRS to New Command
11     uint8_t TimeTRRD;           // Activate to activate on different banks
12     uint8_t TimeTRAS;           // Self refresh time,最小Self-refresh周期
13     uint8_t TimeTRC;            // Row cycle delay,Activate to activate on same bank
14                                 // 若 SDRAM 颗粒除了 tRC,还有 tRFC 或 tRRC 参数,则按照二者中较大的计算 TimeTRC
15     uint8_t TimeTRCD;           // Row to column delay,行地址到列地址间延时,也即Activate命令到读写命令间延时
16     uint8_t TimeTRP;            // Row precharge delay,Precharge命令到另一个命令间延时
17 } SDRAM_InitStructure;
18 
19 #define SDRAM_CELLSIZE_16Mb     3
20 #define SDRAM_CELLSIZE_64Mb     0
21 #define SDRAM_CELLSIZE_128Mb    1
22 #define SDRAM_CELLSIZE_256Mb    2
23 
24 #define SDRAM_CELLBANK_2        0
25 #define SDRAM_CELLBANK_4        1
26 
27 #define SDRAM_CELLWIDTH_16      0
28 #define SDRAM_CELLWIDTH_32      1
29 
30 #define SDRAM_CASLATENCY_2      2
31 #define SDRAM_CASLATENCY_3      3
32 
33 #define SDRAM_TMRD_3            3
34 #define SDRAM_TMRD_4            4
35 #define SDRAM_TMRD_5            5
36 #define SDRAM_TMRD_6            6
37 #define SDRAM_TMRD_7            7
38 
39 #define SDRAM_TRRD_2            2
40 #define SDRAM_TRRD_3            3
41 
42 #define SDRAM_TRAS_2            2
43 #define SDRAM_TRAS_3            3
44 #define SDRAM_TRAS_4            4
45 #define SDRAM_TRAS_5            5
46 #define SDRAM_TRAS_6            6
47 #define SDRAM_TRAS_7            7
48 
49 #define SDRAM_TRC_2             2
50 #define SDRAM_TRC_3             3
51 #define SDRAM_TRC_4             4
52 #define SDRAM_TRC_5             5
53 #define SDRAM_TRC_6             6
54 #define SDRAM_TRC_7             7
55 #define SDRAM_TRC_8             8
56 #define SDRAM_TRC_9             9
57 #define SDRAM_TRC_10            10
58 #define SDRAM_TRC_11            11
59 #define SDRAM_TRC_12            12
60 #define SDRAM_TRC_13            13
61 #define SDRAM_TRC_14            14
62 #define SDRAM_TRC_15            15
63 
64 #define SDRAM_TRCD_3            3
65 #define SDRAM_TRCD_4            4
66 #define SDRAM_TRCD_5            5
67 #define SDRAM_TRCD_6            6
68 #define SDRAM_TRCD_7            7
69 
70 #define SDRAM_TRP_3             3
71 #define SDRAM_TRP_4             4
72 #define SDRAM_TRP_5             5
73 #define SDRAM_TRP_6             6
74 #define SDRAM_TRP_7             7
75 
76 
77 
78 void SDRAM_Init(SDRAM_InitStructure * initStruct);
79 
80 void SDRAM_Enable(void);
81 void SDRAM_Disable(void);
82 
83 #endif //__SWM320_SDRAM_H__
84