|
@@ -171,16 +171,17 @@ LCD_CONTROLLER_TypeDef *LCD;
|
171
|
171
|
|
172
|
172
|
void LCD_IO_Init(uint8_t cs, uint8_t rs) {
|
173
|
173
|
uint32_t controllerAddress;
|
|
174
|
+ struct fsmc_nor_psram_reg_map* fsmcPsramRegion;
|
174
|
175
|
|
175
|
176
|
if (fsmcInit) return;
|
176
|
177
|
fsmcInit = 1;
|
177
|
178
|
|
178
|
179
|
switch (cs) {
|
179
|
|
- case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break;
|
|
180
|
+ case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break;
|
180
|
181
|
#if ENABLED(STM32_XL_DENSITY)
|
181
|
|
- case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break;
|
182
|
|
- case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break;
|
183
|
|
- case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break;
|
|
182
|
+ case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break;
|
|
183
|
+ case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break;
|
|
184
|
+ case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break;
|
184
|
185
|
#endif
|
185
|
186
|
default: return;
|
186
|
187
|
}
|
|
@@ -246,13 +247,8 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) {
|
246
|
247
|
gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx
|
247
|
248
|
gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax
|
248
|
249
|
|
249
|
|
- #if ENABLED(STM32_XL_DENSITY)
|
250
|
|
- FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
|
251
|
|
- FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
|
252
|
|
- #else // PSRAM1 for STM32F103V (high density)
|
253
|
|
- FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
|
254
|
|
- FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
|
255
|
|
- #endif
|
|
250
|
+ fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
|
|
251
|
+ fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
|
256
|
252
|
|
257
|
253
|
afio_remap(AFIO_REMAP_FSMC_NADV);
|
258
|
254
|
|