Skip to main content
slawcus
Associate II
April 9, 2008
Question

EMI with 8bit data and 24 bit address

  • April 9, 2008
  • 2 replies
  • 667 views
Posted on April 10, 2008 at 01:55

EMI with 8bit data and 24 bit address

This topic has been closed for replies.

2 replies

slawcus
slawcusAuthor
Associate II
May 17, 2011
Posted on May 17, 2011 at 09:48

Hi!

Is is possible to use EMI with 8bit data and 24 bit address? Usermanual doesn't say anything about this configuration.

kim1417
Associate II
May 17, 2011
Posted on May 17, 2011 at 09:48

Hi.

It is possible.

I used EMI by 8bit Data, 18bit(A0~A17) Address.

I write my source code for EMI Initialize.

-------------------------------------------------------------------

/***

EMI Initialize : External memory interface

Bank0 (nCS0) : SRAM

Bank1 (nCS1) : TL16C554 4EA

Bank2 (nCS2) : W5100(WIZNET)

*/

void EMI_Initialize(void)

{

SCU_AHBPeriphClockConfig(__EMI, ENABLE);

SCU_AHBPeriphClockConfig(__EMI_MEM_CLK, ENABLE);

SCU_AHBPeriphReset(__EMI,ENABLE);

SCU_AHBPeriphReset(__EMI_MEM_CLK,ENABLE);

EMI_DeInit();

GPIO_EMIConfig(ENABLE);

SCU_EMIBCLKDivisorConfig(SCU_EMIBCLK_Div2);

SCU_EMIModeConfig(SCU_EMI_MUX);

SCU_EMIALEConfig(SCU_EMIALE_LEN2,SCU_EMIALE_POLHigh);

GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ;

GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Disable;

GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2;

GPIO_Init (GPIO8, &GPIO_InitStructure);

GPIO_Init (GPIO9, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_7; //P7.7[CS0]

GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ;

GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Disable;

GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2;

GPIO_Init (GPIO7, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; // P7.6[CS1]

GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ;

GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Disable;

GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt3;

GPIO_Init (GPIO7, &GPIO_InitStructure);

EMI_StructInit(&EMI__InitStructure);

EMI__InitStructure.EMI_Bank_IDCY = 0x0F; //0~0x0f

EMI__InitStructure.EMI_Bank_WSTRD = 0x1F; //0~0x1f;

EMI__InitStructure.EMI_Bank_WSTWR = 0x1F; //0~0x1f;

EMI__InitStructure.EMI_Bank_WSTROEN = 0x0F; //0~0x0f

EMI__InitStructure.EMI_Bank_WSTWEN = 0x0F; //0~0x0f;

/// Bank0

EMI__InitStructure.EMI_Bank_MemWidth = EMI_Width_Byte; //8 bit

EMI__InitStructure.EMI_Bank_WriteProtection = EMI_Bank_NonWriteProtect;

EMI__InitStructure.EMI_Burst_and_PageModeRead_TransferLength = EMI_Read_8Data;

EMI__InitStructure.EMI_Burst_and_PageModeRead_Selection = EMI_NormalMode;

EMI_Init( EMI_Bank0,&EMI__InitStructure); //Bank0-->SRAM

/// Bank1

EMI__InitStructure.EMI_Bank_MemWidth = EMI_Width_Byte; //8 bit

EMI__InitStructure.EMI_Bank_WriteProtection = EMI_Bank_NonWriteProtect;

EMI__InitStructure.EMI_Burst_and_PageModeRead_TransferLength = EMI_Read_8Data;

EMI__InitStructure.EMI_Burst_and_PageModeRead_Selection = EMI_NormalMode;

EMI_Init( EMI_Bank1,&EMI__InitStructure); //Bank1-->TL16C554

/// Bank2

// EMI__InitStructure.EMI_Bank_MemWidth=EMI_Width_Byte; //8 bit

// EMI__InitStructure.EMI_Bank_WriteProtection=EMI_Bank_NonWriteProtect;

// EMI__InitStructure.EMI_PageModeRead_TransferLength=EMI_8Data;

// EMI__InitStructure.EMI_PageModeRead_Selection=EMI_NormalMode;

// EMI_Init( EMI_Bank2,&EMI__InitStructure); //Bank2-->W5100

}