TM STM32F4xx Libraries  v1.0.0
Libraries for STM32F4xx devices from Tilen Majerle
tm_stm32f4_sdram.h
1 
30 #ifndef TM_SDRAM_H
31 #define TM_SDRAM_H 130
32 
125 #include "stm32f4xx.h"
126 #include "stm32f4xx_rcc.h"
127 #include "stm32f4xx_fmc.h"
128 #include "defines.h"
129 #include "attributes.h"
130 #include "tm_stm32f4_gpio.h"
131 
132 /* Library supports STM324x9_Eval board too */
133 
141 #if defined(SDRAM_USE_STM324x9_EVAL) || defined(TM_DISCO_STM324x9_EVAL)
142 
143 /* Make define */
144 #ifndef SDRAM_USE_STM324x9_EVAL
145 #define SDRAM_USE_STM324x9_EVAL
146 #endif
147 
153  /* SDRAM start address = FMC peripheral start address */
154  #define SDRAM_START_ADR (uint32_t)0xC0000000
155  /* SDRAM max memory size = 8MB */
156  #define SDRAM_MEMORY_SIZE (uint32_t)0x800000
157  /* SDRAM bank */
158  #define SDRAM_BANK FMC_Bank1_SDRAM
159  /* Bank target command */
160  #define SDRAM_COMMAND_TARGET_BANK FMC_Command_Target_bank1
161  /* Refresh count */
162  #define SDRAM_REFRESH_COUNT 1385
163  /* Number of rows */
164  #define SDRAM_ROWBITS_NUMBER FMC_RowBits_Number_11b
165  /* Data witdh */
166  #define SDRAM_MEMORY_WIDTH FMC_SDMemory_Width_32b
167  /* Read burst */
168  #define SDRAM_READ_BURST_STATE FMC_Read_Burst_Disable
169  /* Register value */
170  #define SDRAM_REG_VALUE 0x0230
171 
174 #else
175 
180  /* SDRAM start address = FMC peripheral start address */
181  #define SDRAM_START_ADR (uint32_t)0xD0000000
182  /* SDRAM max memory size = 8MB */
183  #define SDRAM_MEMORY_SIZE (uint32_t)0x800000
184  /* SDRAM bank */
185  #define SDRAM_BANK FMC_Bank2_SDRAM
186  /* Bank target command */
187  #define SDRAM_COMMAND_TARGET_BANK FMC_Command_Target_bank2
188  /* Refresh count */
189  #define SDRAM_REFRESH_COUNT 680
190  /* Number of rows */
191  #define SDRAM_ROWBITS_NUMBER FMC_RowBits_Number_12b
192  /* Data witdh */
193  #define SDRAM_MEMORY_WIDTH FMC_SDMemory_Width_16b
194  /* Read burst */
195  #define SDRAM_READ_BURST_STATE FMC_Read_Burst_Disable
196  /* Register value */
197  #define SDRAM_REG_VALUE 0x0231
198 
201 #endif /* SDRAM_USE_STM324x9_EVAL */
202 
203 /* Timeout for SDRAM initialization */
204 #define SDRAM_TIMEOUT ((uint32_t)0xFFFF)
205 
223 uint8_t TM_SDRAM_Init(void);
224 
230 #define TM_SDRAM_GetSize() (SDRAM_MEMORY_SIZE)
231 
239 #define TM_SDRAM_Write8(address, value) (*(__IO uint8_t *) (SDRAM_START_ADR + (address)) = (value))
240 
247 #define TM_SDRAM_Read8(address) (*(__IO uint8_t *) (SDRAM_START_ADR + (address)))
248 
256 #define TM_SDRAM_Write16(address, value) (*(__IO uint16_t *) (SDRAM_START_ADR + (address)) = (value))
257 
264 #define TM_SDRAM_Read16(address) (*(__IO uint16_t *) (SDRAM_START_ADR + (address)))
265 
273 #define TM_SDRAM_Write32(address, value) (*(__IO uint32_t *) (SDRAM_START_ADR + (address)) = (value))
274 
281 #define TM_SDRAM_Read32(address) (*(__IO uint32_t *) (SDRAM_START_ADR + (address)))
282 
290 #define TM_SDRAM_WriteFloat(address, value) (*(__IO float *) (SDRAM_START_ADR + (address)) = (value))
291 
298 #define TM_SDRAM_ReadFloat(address) (*(__IO float *) (SDRAM_START_ADR + (address)))
299 
310 uint8_t TM_SDRAM_InitCustomPinsCallback(void);
311 
324 #endif
uint8_t TM_SDRAM_Init(void)
Initializes SDRAM.
uint8_t TM_SDRAM_InitCustomPinsCallback(void)
Initialize custom pins callback. It can be used by user to implement custom pins for application if n...