|
H753_CPP_AS6C4008_FMC_DaughterBoard_02
|
This project began as a port of the working STM32F439 AS6C4008 FMC daughterboard design to the STM32H753 Nucleo platform.
The board-level electrical model remained largely reusable, but the H753 required one important system-level change before structured external SRAM accesses behaved correctly: the FMC SRAM window had to be configured through the MPU as non-cacheable, non-bufferable, and shareable.
The external SRAM window at 0x60000000 must be configured in main.c through MPU_Config() before HAL_Init() runs.
The required attributes are:
The MPU region size is configured as:
MPU_REGION_SIZE_512KBThis matches the physical capacity of the AS6C4008 SRAM device.
A larger MPU region, such as 1 MB, can still function if the base address is aligned correctly, but it needlessly covers address space beyond the actual SRAM footprint. Using 512 KB keeps the H753 MPU configuration aligned with the physical device size and with the validated project memory map.
Before the MPU region was configured correctly, the H753 project showed:
With the MPU correctly configured:
SramValidation_RunAll() PASSExternal FMC SRAM on Cortex-M7 requires explicit MPU configuration. This requirement does not exist on STM32F4 and is the primary architectural difference between the F439 and H753 implementations in this project family.