File tree 3 files changed +7
-3
lines changed
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;
141
141
142
142
#define MICROPY_HW_SDRAM_BURST_LENGTH 1
143
143
#define MICROPY_HW_SDRAM_CAS_LATENCY 2
144
+ #define MICROPY_HW_SDRAM_FREQUENCY_KHZ (90000) // 90 MHz
144
145
#define MICROPY_HW_SDRAM_COLUMN_BITS_NUM 8
145
146
#define MICROPY_HW_SDRAM_ROW_BITS_NUM 12
146
147
#define MICROPY_HW_SDRAM_MEM_BUS_WIDTH 32
@@ -150,6 +151,7 @@ extern struct _spi_bdev_t spi_bdev;
150
151
#define MICROPY_HW_SDRAM_RBURST (1)
151
152
#define MICROPY_HW_SDRAM_WRITE_PROTECTION (0)
152
153
#define MICROPY_HW_SDRAM_AUTOREFRESH_NUM (8)
154
+ #define MICROPY_HW_SDRAM_REFRESH_CYCLES 8192
153
155
154
156
// See pins.csv for CPU pin mapping
155
157
#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);
111
111
112
112
#define MICROPY_HW_SDRAM_BURST_LENGTH 1
113
113
#define MICROPY_HW_SDRAM_CAS_LATENCY 2
114
+ #define MICROPY_HW_SDRAM_FREQUENCY_KHZ (90000) // 90 MHz
114
115
#define MICROPY_HW_SDRAM_COLUMN_BITS_NUM 8
115
116
#define MICROPY_HW_SDRAM_ROW_BITS_NUM 12
116
117
#define MICROPY_HW_SDRAM_MEM_BUS_WIDTH 16
@@ -120,6 +121,7 @@ void STM32F7DISC_board_early_init(void);
120
121
#define MICROPY_HW_SDRAM_RBURST (1)
121
122
#define MICROPY_HW_SDRAM_WRITE_PROTECTION (0)
122
123
#define MICROPY_HW_SDRAM_AUTOREFRESH_NUM (8)
124
+ #define MICROPY_HW_SDRAM_REFRESH_CYCLES 8192
123
125
124
126
#define MICROPY_HW_FMC_SDCKE0 (pin_C3)
125
127
#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
245
245
/* Send the command */
246
246
HAL_SDRAM_SendCommand (hsdram , command , 0x1000 );
247
247
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:
249
250
RefreshRate = 64 ms / 8192 cyc = 7.8125 us/cyc
250
-
251
251
RefreshCycles = 7.8125 us * 90 MHz = 703
252
252
According to the formula on p.1665 of the reference manual,
253
253
we also need to subtract 20 from the value, so the target
254
254
refresh rate is 703 - 20 = 683.
255
255
*/
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)
257
257
HAL_SDRAM_ProgramRefreshRate (hsdram , REFRESH_COUNT );
258
258
259
259
#if defined(STM32F7 ) || defined(STM32H7 )
You can’t perform that action at this time.
0 commit comments