NetBurner 3.5.8
PDF Version
MIMXRT10xx/include/semc.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
9
10#ifndef __SEMC_H
11#define __SEMC_H
12
13#include <predef.h>
14#include <stdint.h>
15#include <cpu_pins.h>
16
17
476
477
491enum class SEMC_BusWidth_t : uint8_t {
494};
495
514enum class SEMC_AddrMux_t: uint8_t {
515 Mux = 0,
516 AdvMux = 1,
517 Bus = 2
518};
519
560
607enum class SEMC_ClkMode_t : uint8_t {
608 Async = 0,
609 Sync = 1
610};
611
660enum class SEMC_Burst_t : uint8_t {
668};
669
670
807 union {
808 struct {
809 SEMC_BusWidth_t busWidth : 1;
810 SEMC_ClkMode_t clkMode : 1;
811 uint8_t RESERVED0 : 2;
812 SEMC_Burst_t burstLen : 3;
813 uint8_t RESERVED1 : 1;
814 SEMC_AddrMux_t muxMode : 2;
815 bool advPol : 1;
816 bool advHoldLvl : 1;
817 SEMC_ColAddrWidth_t colAddrWidth : 4;
818 };
819 uint32_t CR0;
820 };
821
829 union {
830 struct {
831 uint32_t cs_setup : 4;
832 uint32_t cs_hold_min : 4;
833 uint32_t addr_setup : 4;
834 uint32_t addr_hold : 4;
835 uint32_t wr_en_lo : 4;
836 uint32_t wr_en_hi : 4;
837 uint32_t rd_en_lo : 4;
838 uint32_t rd_en_hi : 4;
839 };
840 uint32_t CR1;
841 };
842
850 union {
851 struct {
852 uint32_t wr_dat_setup : 4;
853 uint32_t wr_dat_hold : 4;
854 uint32_t addr_wr_hold : 4;
855 uint32_t turnaround : 4;
856 uint32_t latency : 4;
857 uint32_t rd_cycle : 4;
858 uint32_t cs_min_intv : 4;
859 uint32_t rd_hold : 4;
860 };
861 uint32_t CR2;
862 };
863
866};
867
868
869// Symbol for the Base Address of the SEMC memory region
870extern uint8_t SEMC_Base[];
871extern uint8_t _s_data_bus[];
872extern uint8_t _e_data_bus[];
873
874
1036void ConfigureSEMC(uint32_t baseAddr, uint32_t siz, SEMC_cfg_t &&cfg);
1037
1038
1039
1040
1041
1198void ConfigureSEMC(uint32_t baseAddr, uint32_t siz, SEMC_cfg_t &cfg);
1199
1200 // groupSEMC
1202
1203
1204#endif /* ----- #ifndef __SEMC_H ----- */
1205
GPIO Pin Class.
Definition coldfire/cpu/MCF5441X/include/cpu_pins.h:44
SEMC_ClkMode_t
Clock mode configuration for SEMC interface.
Definition MIMXRT10xx/include/semc.h:607
SEMC_AddrMux_t
Address multiplexing mode configuration.
Definition MIMXRT10xx/include/semc.h:514
SEMC_BusWidth_t
Data bus width configuration for SEMC interface.
Definition MIMXRT10xx/include/semc.h:491
SEMC_Burst_t
Burst transfer length configuration.
Definition MIMXRT10xx/include/semc.h:660
SEMC_ColAddrWidth_t
Column address width configuration for memory devices.
Definition MIMXRT10xx/include/semc.h:546
void ConfigureSEMC(uint32_t baseAddr, uint32_t siz, SEMC_cfg_t &&cfg)
Configure a Chip Select for the external data bus with rvalue reference configuration.
@ Async
Asynchronous mode. Timing based on fixed delays. No clock synchronization required....
Definition MIMXRT10xx/include/semc.h:608
@ Sync
Synchronous mode. All signals synchronized to SEMC clock. Supports burst transfers....
Definition MIMXRT10xx/include/semc.h:609
@ AdvMux
Advanced multiplexed mode. Enhanced multiplexing with additional control signals for complex timing.
Definition MIMXRT10xx/include/semc.h:516
@ Bus
Non-multiplexed bus mode (write only). Separate address and data buses. Reads are performed as AD-Mux...
Definition MIMXRT10xx/include/semc.h:517
@ Mux
Multiplexed address/data mode. Address and data share the same pins. Requires ADV signal to latch add...
Definition MIMXRT10xx/include/semc.h:515
@ Width_8
8-bit data bus (D[7:0]). Suitable for 8-bit memory devices or low pin-count designs.
Definition MIMXRT10xx/include/semc.h:492
@ Width_16
16-bit data bus (D[15:0]). Suitable for 16-bit memory devices. Provides 2x throughput compared to 8-b...
Definition MIMXRT10xx/include/semc.h:493
@ Burst_8
8-beat burst transfer. Address once, transfer 8 consecutive data words. Optimal for cache line fills ...
Definition MIMXRT10xx/include/semc.h:664
@ Burst_32
32-beat burst transfer. Address once, transfer 32 consecutive data words. Maximum sequential performa...
Definition MIMXRT10xx/include/semc.h:666
@ Burst_4
4-beat burst transfer. Address once, transfer 4 consecutive data words. Common burst length for many ...
Definition MIMXRT10xx/include/semc.h:663
@ Burst_16
16-beat burst transfer. Address once, transfer 16 consecutive data words. High-performance sequential...
Definition MIMXRT10xx/include/semc.h:665
@ Burst_1
Single-beat transfer. No burst mode. Each access requires full address cycle. Use for random access o...
Definition MIMXRT10xx/include/semc.h:661
@ Burst_2
2-beat burst transfer. Address once, transfer 2 consecutive data words. Minimal burst mode.
Definition MIMXRT10xx/include/semc.h:662
@ Burst_64
64-beat burst transfer. Address once, transfer 64 consecutive data words. Extreme burst length for sp...
Definition MIMXRT10xx/include/semc.h:667
@ Width_10
10-bit column address (A[9:0]). Common for standard SDRAM configurations.
Definition MIMXRT10xx/include/semc.h:549
@ Width_0
No column addressing. Do not configure address pins for column mode. Use for simple SRAM/NOR Flash wi...
Definition MIMXRT10xx/include/semc.h:558
@ Width_5
5-bit column address (A[4:0]). Very limited column addressing.
Definition MIMXRT10xx/include/semc.h:554
@ Width_9
9-bit column address (A[8:0]). Used in some SDRAM and synchronous memory devices.
Definition MIMXRT10xx/include/semc.h:550
@ Width_7
7-bit column address (A[6:0]). Used in specialized or smaller memory configurations.
Definition MIMXRT10xx/include/semc.h:552
@ Width_3
3-bit column address (A[2:0]). Extremely limited addressing, rarely used.
Definition MIMXRT10xx/include/semc.h:556
@ Width_4
4-bit column address (A[3:0]). Minimal configuration for small burst regions.
Definition MIMXRT10xx/include/semc.h:555
@ Width_6
6-bit column address (A[5:0]). Minimal column addressing for compact devices.
Definition MIMXRT10xx/include/semc.h:553
@ Width_11
11-bit column address (A[10:0]). Common for medium-density SDRAM.
Definition MIMXRT10xx/include/semc.h:548
@ Width_2
2-bit column address (A[1:0]). Minimal burst addressing capability.
Definition MIMXRT10xx/include/semc.h:557
@ Width_12
12-bit column address (A[11:0]). Maximum column address width, suitable for large SDRAM devices.
Definition MIMXRT10xx/include/semc.h:547
Configuration structure for SEMC (Smart External Memory Controller) interface.
Definition MIMXRT10xx/include/semc.h:799
PinIO clkPin
Definition MIMXRT10xx/include/semc.h:864
PinIO csPin
Definition MIMXRT10xx/include/semc.h:865