the EMIF_NWE signal wrong
i use the EMIF asyschronous (CS3), which start address is 0x64000000.
#define SHAR (0x64000000 + 0x08)
#define SHAR0 SHAR
#define SHAR1 (SHAR + 1)
#define SHAR2 (SHAR + 2)
#define SHAR3 (SHAR + 3)
#define SHAR4 (SHAR + 4)
#define SHAR5 (SHAR + 5)
void main(void)
{
/* USER CODE BEGIN (3) */
gioInit();
hetInit();
muxInit();
emif_SDRAMInit();
emif_ASYNC1Init();
emif_ASYNC2Init();
emif_ASYNC3Init();
IINCHIP_WRITE(SHAR, ((uint16)(mac[0]<<8)&0xFFFF)+(uint16)mac[1]); //(step1)
IINCHIP_WRITE(SHAR2,((uint16)(mac[2]<<8)&0xFFFF)+(uint16)mac[3]);//(step2)
IINCHIP_WRITE(SHAR4,((uint16)(mac[4]<<8)&0xFFFF)+(uint16)mac[5]);//(step3)
while(1);
}
void IINCHIP_WRITE(uint32 addr,uint16 data)
{
(*((vuint16*)addr)) = data;
}
when debug from step1 to step2, the EMIF_RnW(bule) and EMIF_CS3(green) signal is show inthe figure.
i think the EMIF_CS3 signal is right while the EMIF_RnW signal is wrong, because i only write once but there are
three write process. is that right?