00001
00051 #include "avr_compiler.h"
00052 #include "ebi_driver.h"
00053
00054
00055 #define TESTBYTE 0xA5
00056
00058 #define SDRAM_SIZE 0x800000UL
00059
00065 #define MEMORY_BLOCK 1
00066
00068 #define SDRAM_ADDR (SDRAM_SIZE * MEMORY_BLOCK)
00069
00070
00093 int main( void )
00094 {
00095
00096 uint32_t SDRAM_ERR = 0;
00097
00098
00099 PORTH.DIR = 0xFF;
00100 PORTK.DIR = 0xFF;
00101 PORTJ.DIR = 0xF0;
00102
00103
00104 EBI_Enable( EBI_SDDATAW_4BIT_gc,
00105 EBI_LPCMODE_ALE1_gc,
00106 EBI_SRMODE_ALE12_gc,
00107 EBI_IFMODE_3PORT_gc );
00108
00109
00110 EBI_EnableSDRAM( EBI_CS_ASPACE_8MB_gc,
00111 SDRAM_ADDR,
00112 false,
00113 true,
00114 EBI_SDCOL_10BIT_gc,
00115 EBI_MRDLY_2CLK_gc,
00116 EBI_ROWCYCDLY_1CLK_gc,
00117 EBI_RPDLY_1CLK_gc,
00118 EBI_WRDLY_2CLK_gc,
00119 EBI_ESRDLY_1CLK_gc,
00120 EBI_ROWCOLDLY_1CLK_gc,
00121 0x001F,
00122 0x00C8 );
00123
00124
00125 for (uint32_t i = 0; i < 0x40000; i++) {
00126 __far_mem_write(i+SDRAM_ADDR, TESTBYTE);
00127 }
00128
00129
00130 for (uint32_t i = 0; i < 0x40000; i++) {
00131 if (__far_mem_read(i+SDRAM_ADDR) != TESTBYTE){
00132 SDRAM_ERR++;
00133 }
00134 }
00135
00136
00137
00138 if (SDRAM_ERR == 0) {
00139 while(true) {
00140
00141 nop();
00142 }
00143 }
00144 else {
00145 while(true) {
00146
00147 nop();
00148 }
00149 }
00150 }