Skip to content

Commit 52261ed

Browse files
committed
Add support for 64MB SDRAM used as extra heap
1 parent 67fb713 commit 52261ed

File tree

7 files changed

+627
-0
lines changed

7 files changed

+627
-0
lines changed

ports/stm/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,13 @@ ifeq ($(MCU_VARIANT),$(filter $(MCU_VARIANT),STM32F765xx STM32F767xx STM32F769xx
169169
SRC_STM32 += $(HAL_DIR)/Src/stm32$(MCU_SERIES_LOWER)xx_hal_uart_ex.c
170170
endif
171171

172+
ifeq ($(MCU_VARIANT),$(filter $(MCU_VARIANT),STM32H750xx))
173+
C_DEFS += -DHAL_SDRAM_MODULE_ENABLED
174+
SRC_STM32 += st_driver/stm32$(MCU_SERIES_LOWER)xx_hal_driver/Src/stm32h7xx_hal_sdram.c
175+
SRC_STM32 += st_driver/stm32$(MCU_SERIES_LOWER)xx_hal_driver/Src/stm32h7xx_ll_fmc.c
176+
SRC_C += peripherals/sdram.c
177+
endif
178+
172179
SRC_STM32 += boards/system_stm32$(MCU_SERIES_LOWER)xx.c
173180

174181
SRC_C += \

ports/stm/boards/daisy_seed_with_sdram/mpconfigboard.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,40 @@
3131

3232
// for RNG not audio
3333
#define CPY_CLK_USB_USES_AUDIOPLL (1)
34+
35+
// SDRAM -- on FMC controller
36+
37+
#define CPY_SDRAM_REGION MPU_REGION_NUMBER10
38+
#define CPY_SDRAM_REGION_SIZE MPU_REGION_SIZE_64MB
39+
40+
#define CIRCUITPY_HW_FMC_SDCKE0
41+
#define CIRCUITPY_HW_FMC_SDNE0
42+
43+
#define CIRCUITPY_HW_SDRAM_SIZE (64 * 1024 * 1024) // 64 MByte
44+
#define CIRCUITPY_HW_SDRAM_STARTUP_TEST (1)
45+
#define CIRCUITPY_HW_FMC_SWAP_BANKS (0)
46+
47+
#define CIRCUITPY_HW_SDRAM_CLOCK_PERIOD 2
48+
#define CIRCUITPY_HW_SDRAM_CAS_LATENCY 3
49+
#define CIRCUITPY_HW_SDRAM_FREQUENCY_KHZ (100000) // 100 MHz
50+
#define CIRCUITPY_HW_SDRAM_TIMING_TMRD (2)
51+
#define CIRCUITPY_HW_SDRAM_TIMING_TXSR (8)
52+
#define CIRCUITPY_HW_SDRAM_TIMING_TRAS (5)
53+
#define CIRCUITPY_HW_SDRAM_TIMING_TRC (6)
54+
#define CIRCUITPY_HW_SDRAM_TIMING_TWR (3)
55+
#define CIRCUITPY_HW_SDRAM_TIMING_TRP (2)
56+
#define CIRCUITPY_HW_SDRAM_TIMING_TRCD (2)
57+
58+
#define CIRCUITPY_HW_SDRAM_ROW_BITS_NUM 13
59+
#define CIRCUITPY_HW_SDRAM_MEM_BUS_WIDTH 32
60+
#define CIRCUITPY_HW_SDRAM_REFRESH_CYCLES 8192
61+
62+
#define CIRCUITPY_HW_SDRAM_COLUMN_BITS_NUM 9
63+
#define CIRCUITPY_HW_SDRAM_INTERN_BANKS_NUM 4
64+
#define CIRCUITPY_HW_SDRAM_RPIPE_DELAY 0
65+
#define CIRCUITPY_HW_SDRAM_RBURST (1)
66+
#define CIRCUITPY_HW_SDRAM_WRITE_PROTECTION (0)
67+
68+
#define CIRCUITPY_HW_SDRAM_AUTOREFRESH_NUM (8)
69+
#define CIRCUITPY_HW_SDRAM_BURST_LENGTH 4
70+
#define CIRCUITPY_HW_SDRAM_REFRESH_RATE (64) // ms

0 commit comments

Comments
 (0)