File tree Expand file tree Collapse file tree 3 files changed +7
-3
lines changed
Expand file tree Collapse file tree 3 files changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -141,6 +141,7 @@ extern struct _spi_bdev_t spi_bdev;
141141
142142#define MICROPY_HW_SDRAM_BURST_LENGTH 1
143143#define MICROPY_HW_SDRAM_CAS_LATENCY 2
144+ #define MICROPY_HW_SDRAM_FREQUENCY_KHZ (90000) // 90 MHz
144145#define MICROPY_HW_SDRAM_COLUMN_BITS_NUM 8
145146#define MICROPY_HW_SDRAM_ROW_BITS_NUM 12
146147#define MICROPY_HW_SDRAM_MEM_BUS_WIDTH 32
@@ -150,6 +151,7 @@ extern struct _spi_bdev_t spi_bdev;
150151#define MICROPY_HW_SDRAM_RBURST (1)
151152#define MICROPY_HW_SDRAM_WRITE_PROTECTION (0)
152153#define MICROPY_HW_SDRAM_AUTOREFRESH_NUM (8)
154+ #define MICROPY_HW_SDRAM_REFRESH_CYCLES 8192
153155
154156// See pins.csv for CPU pin mapping
155157#define MICROPY_HW_FMC_SDCKE0 (pyb_pin_FMC_SDCKE0)
Original file line number Diff line number Diff line change @@ -111,6 +111,7 @@ void STM32F7DISC_board_early_init(void);
111111
112112#define MICROPY_HW_SDRAM_BURST_LENGTH 1
113113#define MICROPY_HW_SDRAM_CAS_LATENCY 2
114+ #define MICROPY_HW_SDRAM_FREQUENCY_KHZ (90000) // 90 MHz
114115#define MICROPY_HW_SDRAM_COLUMN_BITS_NUM 8
115116#define MICROPY_HW_SDRAM_ROW_BITS_NUM 12
116117#define MICROPY_HW_SDRAM_MEM_BUS_WIDTH 16
@@ -120,6 +121,7 @@ void STM32F7DISC_board_early_init(void);
120121#define MICROPY_HW_SDRAM_RBURST (1)
121122#define MICROPY_HW_SDRAM_WRITE_PROTECTION (0)
122123#define MICROPY_HW_SDRAM_AUTOREFRESH_NUM (8)
124+ #define MICROPY_HW_SDRAM_REFRESH_CYCLES 8192
123125
124126#define MICROPY_HW_FMC_SDCKE0 (pin_C3)
125127#define MICROPY_HW_FMC_SDNE0 (pin_H3)
Original file line number Diff line number Diff line change @@ -245,15 +245,15 @@ static void sdram_init_seq(SDRAM_HandleTypeDef
245245 /* Send the command */
246246 HAL_SDRAM_SendCommand (hsdram , command , 0x1000 );
247247
248- /* Step 8: Set the refresh rate counter
248+ /* Step 8: Set the refresh rate counter.
249+ Assuming 90MHz frequency, 8192 refresh cycles and 64ms refresh rate:
249250 RefreshRate = 64 ms / 8192 cyc = 7.8125 us/cyc
250-
251251 RefreshCycles = 7.8125 us * 90 MHz = 703
252252 According to the formula on p.1665 of the reference manual,
253253 we also need to subtract 20 from the value, so the target
254254 refresh rate is 703 - 20 = 683.
255255 */
256- #define REFRESH_COUNT (MICROPY_HW_SDRAM_REFRESH_RATE * 90000 / 8192 - 20)
256+ #define REFRESH_COUNT (MICROPY_HW_SDRAM_REFRESH_RATE * MICROPY_HW_SDRAM_FREQUENCY_KHZ / MICROPY_HW_SDRAM_REFRESH_CYCLES - 20)
257257 HAL_SDRAM_ProgramRefreshRate (hsdram , REFRESH_COUNT );
258258
259259 #if defined(STM32F7 ) || defined(STM32H7 )
You can’t perform that action at this time.
0 commit comments