31 #ifdef oC_FMC_LLD_AVAILABLE 38 #define _________________________________________CHIP_INITIALIZATION_SECTION________________________________________________________________ 42 static oC_ErrorCode_t Initialize_IS45S16400J (
const void * Config ,
oC_FMC_Context_t Context , oC_Time_t * Timeout );
44 #undef _________________________________________CHIP_INITIALIZATION_SECTION________________________________________________________________ 53 #define _________________________________________CHIPS_SECTION______________________________________________________________________________ 62 .ChipParameters.Name =
"MT48LC4M32B2",
63 .ChipParameters.SDRAM.Size = oC_MemorySize_Mb(128),
64 .ChipParameters.SDRAM.BankSize = oC_MemorySize_Mb(32),
65 .ChipParameters.SDRAM.NumberOfBanks = 4,
66 .ChipParameters.SDRAM.DataBusWidth = oC_FMC_LLD_DataBusWidth_32Bits,
67 .ChipParameters.SDRAM.CasLatencyMask = oC_FMC_LLD_SDRAM_CasLatency_1
68 | oC_FMC_LLD_SDRAM_CasLatency_2
69 | oC_FMC_LLD_SDRAM_CasLatency_3 ,
70 .ChipParameters.SDRAM.CasLatency =
ns(20) ,
71 .ChipParameters.SDRAM.BurstLengthMask = oC_FMC_LLD_SDRAM_BurstLength_1
72 | oC_FMC_LLD_SDRAM_BurstLength_2
73 | oC_FMC_LLD_SDRAM_BurstLength_4
74 | oC_FMC_LLD_SDRAM_BurstLength_8
75 | oC_FMC_LLD_SDRAM_BurstLength_FullPage ,
76 .ChipParameters.SDRAM.AutoPrechargePossible =
true,
77 .ChipParameters.SDRAM.AutoRefreshPossible =
true,
78 .ChipParameters.SDRAM.SelfPrechargePossible =
true,
79 .ChipParameters.SDRAM.AutoRefreshPeriod =
ms(64),
80 .ChipParameters.SDRAM.MaximumClockFrequency =
MHz(167) ,
81 .ChipParameters.SDRAM.NumberOfRowAddressBits = 12 ,
82 .ChipParameters.SDRAM.NumberOfColumnAddressBits = 8 ,
83 .ChipParameters.SDRAM.ActiveToReadWriteDelay =
ns(20),
84 .ChipParameters.SDRAM.PrechargeDelay =
ns(20),
85 .ChipParameters.SDRAM.WriteRecoveryDelay =
ns(14),
86 .ChipParameters.SDRAM.RefreshToActivateDelay =
ns(70),
87 .ChipParameters.SDRAM.MinimumSelfRefreshPeriod =
ns(70),
88 .ChipParameters.SDRAM.ExitSelfRefreshDelay =
ns(70),
89 .ChipParameters.SDRAM.CyclesToDelayAfterLoadMode = 2,
90 .ChipParameters.SDRAM.Advanced.ReadPipeDelay =
ns(0) ,
91 .ChipParameters.SDRAM.Advanced.UseBurstRead = true ,
97 .ChipParameters.Name =
"IS45S16400J",
98 .ChipParameters.SDRAM.Size = oC_MemorySize_Mb(64),
99 .ChipParameters.SDRAM.BankSize = oC_MemorySize_Mb(16),
100 .ChipParameters.SDRAM.NumberOfBanks = 4,
101 .ChipParameters.SDRAM.DataBusWidth = oC_FMC_LLD_DataBusWidth_16Bits,
102 .ChipParameters.SDRAM.CasLatencyMask = oC_FMC_LLD_SDRAM_CasLatency_2
103 | oC_FMC_LLD_SDRAM_CasLatency_3,
104 .ChipParameters.SDRAM.CasLatency =
ns(40) ,
105 .ChipParameters.SDRAM.BurstLengthMask = oC_FMC_LLD_SDRAM_BurstLength_1
106 | oC_FMC_LLD_SDRAM_BurstLength_2
107 | oC_FMC_LLD_SDRAM_BurstLength_4
108 | oC_FMC_LLD_SDRAM_BurstLength_8
109 | oC_FMC_LLD_SDRAM_BurstLength_FullPage ,
110 .ChipParameters.SDRAM.AutoPrechargePossible =
true,
111 .ChipParameters.SDRAM.AutoRefreshPossible =
true,
112 .ChipParameters.SDRAM.SelfPrechargePossible =
true,
113 .ChipParameters.SDRAM.AutoRefreshPeriod =
ms(64),
114 .ChipParameters.SDRAM.MaximumClockFrequency =
MHz(133) ,
115 .ChipParameters.SDRAM.NumberOfRowAddressBits = 12 ,
116 .ChipParameters.SDRAM.NumberOfColumnAddressBits = 8 ,
117 .ChipParameters.SDRAM.ActiveToReadWriteDelay =
ns(180),
118 .ChipParameters.SDRAM.PrechargeDelay =
ns(180),
119 .ChipParameters.SDRAM.WriteRecoveryDelay =
ns(180),
120 .ChipParameters.SDRAM.RefreshToActivateDelay =
ns(180),
121 .ChipParameters.SDRAM.MinimumSelfRefreshPeriod =
ns(180),
122 .ChipParameters.SDRAM.ExitSelfRefreshDelay =
ns(180),
123 .ChipParameters.SDRAM.CyclesToDelayAfterLoadMode = 16,
124 .ChipParameters.SDRAM.Advanced.ReadPipeDelay =
ns(10) ,
125 .ChipParameters.SDRAM.Advanced.UseBurstRead = true ,
126 .InitializationFunction = Initialize_IS45S16400J ,
130 #undef _________________________________________CHIPS_SECTION______________________________________________________________________________ 137 #define _________________________________________CHIP_INITIALIZATION_FUNCTIONS_SECTION______________________________________________________ 146 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
149 oC_Struct_Initialize(data,0);
177 data.Precharge.AllBanks =
true;
178 data.Precharge.BankAddress = 0;
179 data.Precharge.Reserved = 0;
192 data.AutoRefresh.NumberOfAutoRefresh = 8;
193 data.AutoRefresh.Reserved = 0;
194 data.AutoRefresh.Reserved2 =
false;
210 data.AutoRefresh.NumberOfAutoRefresh = 8;
227 data.LoadModeRegister.AllBanks =
true;
228 data.LoadModeRegister.BurstLength = 0;
229 data.LoadModeRegister.BurstType = 0;
230 data.LoadModeRegister.CasLatency = 2;
231 data.LoadModeRegister.OperatingMode = 0;
232 data.LoadModeRegister.WriteBurstMode = 1;
243 static oC_ErrorCode_t Initialize_IS45S16400J(
const void * Config ,
oC_FMC_Context_t Context , oC_Time_t * Timeout )
245 oC_ErrorCode_t errorCode = oC_ErrorCode_ImplementError;
248 oC_Struct_Initialize(data,0);
276 data.Precharge.AllBanks =
true;
277 data.Precharge.BankAddress = 0;
278 data.Precharge.Reserved = 0;
291 data.AutoRefresh.NumberOfAutoRefresh = 8;
292 data.AutoRefresh.Reserved = 0;
293 data.AutoRefresh.Reserved2 =
false;
309 data.AutoRefresh.NumberOfAutoRefresh = 8;
326 data.LoadModeRegister.AllBanks =
true;
327 data.LoadModeRegister.BurstLength = 0;
328 data.LoadModeRegister.BurstType = 0;
329 data.LoadModeRegister.CasLatency = 3;
330 data.LoadModeRegister.OperatingMode = 0;
331 data.LoadModeRegister.WriteBurstMode = 1;
342 #undef _________________________________________CHIP_INITIALIZATION_FUNCTIONS_SECTION______________________________________________________ #define us(time)
Number of us.
The file with interface for FMC driver.
Simple no operation command.
Deactivate a row in a bank (or in all banks)
oC_FMC_LLD_SDRAM_CommandData_t oC_FMC_SDRAM_CommandData_t
stores data for SDRAM commands
static oC_ErrorCode_t Initialize_MT48LC4M32B2(const void *Config, oC_FMC_Context_t Context, oC_Time_t *Timeout)
function that initializes the chip
#define MHz(Freq)
Number of MHz.
The file with prototypes for chips.
const oC_FMC_ChipInfo_t oC_FMC_ChipInfo_MT48LC4M32B2
chip informations for MT48LC4M32B2
#define ms(time)
Number of ms.
The file with interface for the GPIO driver.
Enables the clock (provides a stable CLK signal)
#define ns(time)
Number of ns.
oC_ErrorCode_t oC_FMC_FinishInitialization(const oC_FMC_Config_t *Config, oC_FMC_Context_t Context)
finishes initialization
oC_ErrorCode_t oC_FMC_SDRAM_SendCommand(oC_FMC_Context_t Context, oC_Time_t *Timeout, oC_FMC_SDRAM_Command_t Command, const oC_FMC_SDRAM_CommandData_t *Data)
sends command to SDRAM chips
oC_FMC_LLD_ChipParameters_t ChipParameters
Chip parameters.
stores informations about chip
Configuration command for loading modes registers.
#define NULL
pointer to a zero