blob: c306da4aec67a1da7e8b430cb1166d636124b315 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#ifndef __SWM341_SDRAM_H__
#define __SWM341_SDRAM_H__
typedef struct {
uint8_t Size; // SDRAM 容量,SDRAM_SIZE_2MB、SDRAM_SIZE_8MB、SDRAM_SIZE_16MB、SDRAM_SIZE_32MB
uint8_t ClkDiv; // SDRAM 时钟分频,SDRAM_CLKDIV_1、SDRAM_CLKDIV_2
uint8_t CASLatency; // 列地址到有效数据输出间隔,SDRAM_CASLATENCY_2、SDRAM_CASLATENCY_3
uint8_t TimeTRP; // Row precharge delay,Precharge命令到另一个命令间延时
uint8_t TimeTRCD; // Row to column delay,行地址到列地址间延时,也即Activate命令到读写命令间延时
uint8_t TimeTRFC; // Refresh Cycle
} SDRAM_InitStructure;
//rowaddr bankaddr coladdr
#define SDRAM_SIZE_2MB 3 //HADDR[20:10] HADDR[9] HADDR[8:1]
#define SDRAM_SIZE_8MB 0 //HADDR[22:11] HADDR[10:9] HADDR[8:1]
#define SDRAM_SIZE_16MB 1 //HADDR[23:12] HADDR[11:10] HADDR[9:1]
#define SDRAM_SIZE_32MB 2 //HADDR[24:12] HADDR[11:10] HADDR[9:1]
#define SDRAM_CLKDIV_1 0
#define SDRAM_CLKDIV_2 1
#define SDRAM_CASLATENCY_2 0
#define SDRAM_CASLATENCY_3 1
#define SDRAM_TRP_1 0
#define SDRAM_TRP_2 1
#define SDRAM_TRP_3 2
#define SDRAM_TRP_4 3
#define SDRAM_TRCD_1 0
#define SDRAM_TRCD_2 1
#define SDRAM_TRCD_3 2
#define SDRAM_TRCD_4 3
#define SDRAM_TRFC_4 3
#define SDRAM_TRFC_5 4
#define SDRAM_TRFC_6 5
#define SDRAM_TRFC_7 6
#define SDRAM_TRFC_8 7
#define SDRAM_TRFC_9 8
#define SDRAM_TRFC_10 9
#define SDRAM_TRFC_11 10
#define SDRAM_TRFC_12 11
#define SDRAM_TRFC_13 12
#define SDRAM_TRFC_14 13
#define SDRAM_TRFC_15 14
#define SDRAM_TRFC_16 15
void SDRAM_Init(SDRAM_InitStructure * initStruct);
void SDRAM_Enable(void);
void SDRAM_Disable(void);
#endif //__SWM341_SDRAM_H__
|