modm API documentation
|
#include <modm/platform/fsmc/fsmc.hpp>
Classes | |
struct | AsynchronousTiming |
struct | SynchronousTiming |
Public Types | |
enum | Region { CHIP_SELECT_1 = 0, CHIP_SELECT_2 = 1, CHIP_SELECT_3 = 2, CHIP_SELECT_4 = 3 } |
enum | WaitPolarity { WAIT_HIGH_ACTIVE, WAIT_LOW_ACTIVE } |
enum | BusType { NO_MULTIPLEX_8BIT = 0, NO_MULTIPLEX_16BIT = FSMC_BCR1_MWID_0, ADDRESS_DATA_MULIPLEX_8BIT = FSMC_BCR1_MUXEN, ADDRESS_DATA_MULIPLEX_16BIT = FSMC_BCR1_MUXEN | FSMC_BCR1_MWID_0 } |
enum | MemoryType { SRAM_ROM = 0, PSRAM = FSMC_BCR1_MTYP_0, NOR = FSMC_BCR1_MTYP_1 } |
enum | AccessMode { MODE_A = 0, MODE_B = FSMC_BTR1_ACCMOD_0, MODE_C = FSMC_BTR1_ACCMOD_1, MODE_D = FSMC_BTR1_ACCMOD_0 | FSMC_BTR1_ACCMOD_1 } |
enum | ExtendedMode : uint32_t { Disable = 0, Enable = FSMC_BCR1_EXTMOD } |
Static Public Member Functions | |
static void | resetRegion (Region region) |
static void | enableRegion (Region region, bool enable=true) |
static void | configureSynchronousRegion (Region region, BusType multiplex, MemoryType memoryType, SynchronousTiming timing) |
static void | configureAsynchronousRegion (Region region, BusType multiplex, MemoryType memoryType, AccessMode accessMode, AsynchronousTiming timing, ExtendedMode extended=ExtendedMode::Enable) |
static void | enableAsynchronousWait (Region region, WaitPolarity polarity=WAIT_LOW_ACTIVE) |
template<typename T > | |
static constexpr T * | getRegionPointer (Region region) |
Configure NOR-Flash or (P)SRAM
NOR non-multiplexed
NOR multiplexed
(P)SRAM
Options:
Mode 1 (SRAM/CRAM)
Mode A (CRAM)
Mode D
Mode muxed
Async wait: only data phase stage is prolonged, address setup and address hold are not affected.
Memory Type (MTYP):
Corresponds to NE1..4.
|
static |
Configure a region of Bank 1 for synchronous access.
The region is disabled afterwards and has to be enabled via enableRegion().
|
inlinestaticconstexpr |
Get mapped memory address of a region.
Each region is 64 MB in size.