I'm trying to implement an 8 bit SRAM interface on the SEMC with a modified RT1020EVK. I have it configured for 4K of memory. I am using the following SRAM config:
sram.cePinMux = kSEMC_MUXCSX0;
sram.addr27 = kSEMC_MORA27_NONE;
sram.address = SRAM_ADDR;
sram.memsize_kbytes = 4 * 1024;
sram.advActivePolarity = kSEMC_AdvActiveLow; // kSEMC_AdvActiveLow kSEMC_AdvActivehigh
sram.addrMode = kSEMC_AdvAddrdataMux; // kSEMC_AddrDataMux kSEMC_AdvAddrdataMux
sram.burstLen = kSEMC_Sdram_BurstLen1;
sram.portSize = kSEMC_PortSize8Bit; // kSEMC_PortSize8Bit kSEMC_PortSize16Bit
with the pin config:
/*
* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
BOARD_InitPins:
- options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'}
- pin_list:
- {pin_num: '101', peripheral: LPUART1, signal: RX, pin_signal: GPIO_AD_B0_07, open_drain: Disable}
- {pin_num: '105', peripheral: LPUART1, signal: TX, pin_signal: GPIO_AD_B0_06, open_drain: Disable}
- {pin_num: '18', peripheral: SEMC, signal: 'DATA, 00', pin_signal: GPIO_EMC_00, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '17', peripheral: SEMC, signal: 'DATA, 01', pin_signal: GPIO_EMC_01, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '16', peripheral: SEMC, signal: 'DATA, 02', pin_signal: GPIO_EMC_02, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '15', peripheral: SEMC, signal: 'DATA, 03', pin_signal: GPIO_EMC_03, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '14', peripheral: SEMC, signal: 'DATA, 04', pin_signal: GPIO_EMC_04, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '13', peripheral: SEMC, signal: 'DATA, 05', pin_signal: GPIO_EMC_05, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '12', peripheral: SEMC, signal: 'DATA, 06', pin_signal: GPIO_EMC_06, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '10', peripheral: SEMC, signal: 'DATA, 07', pin_signal: GPIO_EMC_07, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '1', peripheral: SEMC, signal: 'BA, 1', pin_signal: GPIO_EMC_14, slew_rate: Fast, open_drain: Disable, speed: MHZ_200, drive_strength: R0_4, pull_keeper_enable: Disable}
- {pin_num: '129', peripheral: SEMC, signal: 'ADDR, 12', pin_signal: GPIO_EMC_27}
- {pin_num: '130', peripheral: SEMC, signal: 'ADDR, 11', pin_signal: GPIO_EMC_26}
- {pin_num: '91', peripheral: SEMC, signal: 'CSX, 0', pin_signal: GPIO_AD_B1_01}
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
*/
The upper 4 address bits (11-8) are always zero. I cannot seem to find any information on the advanced MUX mod to help understand the problem. If I use normal mux mode I do not get the second ADV signal for the upper address lines.
Attached is a screen shot from my logic analyzer:
Yellow trace chip select
1 ADV
2 OE
3 WE
4 A/D0
5 A/D1
6 A/D2
7 A/D3
It is a write to location 0xFFE. The lower 8 address lines work fine. I can never get any of the upper address lines to work. I have also looked at the upper four bit of the address and get the same results.
Is there any information on implementing an 8 bit interface on SEMC?