13#ifndef __SDPK1_SDRAM_H
14#define __SDPK1_SDRAM_H
16#if defined (TARGET_SDP_K1)
26#include "stm32f4xx_hal.h"
35#define SDRAM_OK ((uint8_t)0x00)
36#define SDRAM_ERROR ((uint8_t)0x01)
38#define SDRAM_DEVICE_ADDR ((uint32_t)0xC0000000)
39#define SDRAM_DEVICE_SIZE ((uint32_t)0x1000000)
43#define SDRAM_MEMORY_WIDTH FMC_SDRAM_MEM_BUS_WIDTH_32
45#define SDCLOCK_PERIOD FMC_SDRAM_CLOCK_PERIOD_2
51#define REFRESH_COUNT ((uint32_t)0x0569)
53#define SDRAM_TIMEOUT ((uint32_t)0xFFFF)
56#define __DMAx_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE
57#define __DMAx_CLK_DISABLE __HAL_RCC_DMA2_CLK_DISABLE
58#define SDRAM_DMAx_CHANNEL DMA_CHANNEL_0
59#define SDRAM_DMAx_STREAM DMA2_Stream4
60#define SDRAM_DMAx_IRQn DMA2_Stream4_IRQn
61#define BSP_SDRAM_DMA_IRQHandler DMA2_Stream4_IRQHandler
64#define SDRAM_MODEREG_BURST_LENGTH_1 ((uint16_t)0x0000)
65#define SDRAM_MODEREG_BURST_LENGTH_2 ((uint16_t)0x0001)
66#define SDRAM_MODEREG_BURST_LENGTH_4 ((uint16_t)0x0002)
67#define SDRAM_MODEREG_BURST_LENGTH_8 ((uint16_t)0x0004)
68#define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL ((uint16_t)0x0000)
69#define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED ((uint16_t)0x0008)
70#define SDRAM_MODEREG_CAS_LATENCY_2 ((uint16_t)0x0020)
71#define SDRAM_MODEREG_CAS_LATENCY_3 ((uint16_t)0x0030)
72#define SDRAM_MODEREG_OPERATING_MODE_STANDARD ((uint16_t)0x0000)
73#define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000)
74#define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE ((uint16_t)0x0200)
77#define SDRAM_A0 GPIO_PIN_0
78#define SDRAM_A1 GPIO_PIN_1
79#define SDRAM_A2 GPIO_PIN_2
80#define SDRAM_A3 GPIO_PIN_3
81#define SDRAM_A4 GPIO_PIN_4
82#define SDRAM_A5 GPIO_PIN_5
83#define SDRAM_A6 GPIO_PIN_12
84#define SDRAM_A7 GPIO_PIN_13
85#define SDRAM_A8 GPIO_PIN_14
86#define SDRAM_A9 GPIO_PIN_15
87#define SDRAM_A10 GPIO_PIN_0
88#define SDRAM_A11 GPIO_PIN_1
89#define SDRAM_A12 GPIO_PIN_2
90#define SDRAM_A13 GPIO_PIN_3
91#define SDRAM_A14 GPIO_PIN_4
92#define SDRAM_A15 GPIO_PIN_5
93#define SDRAM_D0 GPIO_PIN_14
94#define SDRAM_D1 GPIO_PIN_15
95#define SDRAM_D2 GPIO_PIN_0
96#define SDRAM_D3 GPIO_PIN_1
97#define SDRAM_D4 GPIO_PIN_7
98#define SDRAM_D5 GPIO_PIN_8
99#define SDRAM_D6 GPIO_PIN_9
100#define SDRAM_D7 GPIO_PIN_10
101#define SDRAM_D8 GPIO_PIN_11
102#define SDRAM_D9 GPIO_PIN_12
103#define SDRAM_D10 GPIO_PIN_13
104#define SDRAM_D11 GPIO_PIN_14
105#define SDRAM_D12 GPIO_PIN_15
106#define SDRAM_D13 GPIO_PIN_8
107#define SDRAM_D14 GPIO_PIN_9
108#define SDRAM_D15 GPIO_PIN_10
109#define SDRAM_D16 GPIO_PIN_8
110#define SDRAM_D17 GPIO_PIN_9
111#define SDRAM_D18 GPIO_PIN_10
112#define SDRAM_D19 GPIO_PIN_11
113#define SDRAM_D20 GPIO_PIN_12
114#define SDRAM_D21 GPIO_PIN_13
115#define SDRAM_D22 GPIO_PIN_14
116#define SDRAM_D23 GPIO_PIN_15
117#define SDRAM_D24 GPIO_PIN_0
118#define SDRAM_D25 GPIO_PIN_1
119#define SDRAM_D26 GPIO_PIN_2
120#define SDRAM_D27 GPIO_PIN_3
121#define SDRAM_D28 GPIO_PIN_6
122#define SDRAM_D29 GPIO_PIN_7
123#define SDRAM_D30 GPIO_PIN_9
124#define SDRAM_D31 GPIO_PIN_10
125#define SDRAM_NBL0 GPIO_PIN_0
126#define SDRAM_NBL1 GPIO_PIN_1
127#define SDRAM_NBL2 GPIO_PIN_4
128#define SDRAM_NBL3 GPIO_PIN_5
129#define SDRAM_SDCLK GPIO_PIN_8
130#define SDRAM_N_CAS GPIO_PIN_15
131#define SDRAM_N_RAS GPIO_PIN_11
132#define SDRAM_SDCKE0 GPIO_PIN_2
133#define SDRAM_SDNE0 GPIO_PIN_3
134#define SDRAM_N_WE GPIO_PIN_5
140uint8_t SDP_SDRAM_Init(
void);
141uint8_t SDP_SDRAM_DeInit(
void);
142void SDP_SDRAM_Initialization_sequence(uint32_t RefreshCount);
143uint8_t SDP_SDRAM_ReadData_8b(uint32_t pAddress, uint8_t *pData, uint32_t dataSize);
144uint8_t SDP_SDRAM_ReadData_16b(uint32_t pAddress, uint16_t *pData, uint32_t dataSize);
145uint8_t SDP_SDRAM_ReadData_32b(uint32_t pAddress, uint32_t *pData, uint32_t dataSize);
146uint8_t SDP_SDRAM_ReadData_DMA(uint32_t pAddress, uint32_t *pData, uint32_t dataSize);
147uint8_t SDP_SDRAM_WriteData_8b(uint32_t pAddress, uint8_t *pData, uint32_t dataSize);
148uint8_t SDP_SDRAM_WriteData_16b(uint32_t pAddress, uint16_t *pData, uint32_t dataSize);
149uint8_t SDP_SDRAM_WriteData_32b(uint32_t pAddress, uint32_t *pData, uint32_t dataSize);
150uint8_t SDP_SDRAM_WriteData_DMA(uint32_t pAddress, uint32_t *pData, uint32_t dataSize);
151uint8_t SDP_SDRAM_Sendcmd(FMC_SDRAM_CommandTypeDef *SdramCmd);
155void SDP_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram,
void *Params);
156void SDP_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram,
void *Params);