EmbeddedRelated.com
Forums

microblaze and flash access

Started by axr0284 April 13, 2009
Hi,
 I am trying to access a flash device from a microblaze processor on a
Spartan 3E device. In Xilinx XPS, I instantiated the IP "External
Memory Controller" with the following attributes

BEGIN xps_mch_emc
 PARAMETER INSTANCE = flash_16Mx8b
 PARAMETER HW_VER = 2.00.a
 PARAMETER C_NUM_BANKS_MEM = 1
 PARAMETER C_NUM_CHANNELS = 0
 PARAMETER C_MEM0_WIDTH = 8
 PARAMETER C_MAX_MEM_WIDTH = 8
 PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1
 PARAMETER C_TCEDV_PS_MEM_0 = 75000
 PARAMETER C_TAVDV_PS_MEM_0 = 75000
 PARAMETER C_THZCE_PS_MEM_0 = 25000
 PARAMETER C_THZOE_PS_MEM_0 = 120000
 PARAMETER C_TWC_PS_MEM_0 = 1200000
 PARAMETER C_TWP_PS_MEM_0 = 1200000
 PARAMETER C_TLZWE_PS_MEM_0 = 0
 PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 62500000
 PARAMETER C_MEM0_BASEADDR = 0x80000000
 PARAMETER C_MEM0_HIGHADDR = 0x80ffffff
 BUS_INTERFACE SPLB = mb_plb
 PORT RdClk = sys_clk_s
 PORT Mem_A = flash_16Mx8b_Mem_A
 PORT Mem_DQ = flash_16Mx8b_Mem_DQ
 PORT Mem_WEN = flash_16Mx8b_Mem_WEN
 PORT Mem_OEN = flash_16Mx8b_Mem_OEN
 PORT Mem_CEN = flash_16Mx8b_Mem_CEN
END

The flash documentation states that Write cycle should be a minimum of
60 ns so I put 120 ns for C_TWC_PS_MEM_0 just in case

In the code, I use the following to try to write to the Flash
XIo_Out8(FLASHBASEADDR,0x0090); // Request Device ID

I then probed the WE# input pin of the flash with an oscilloscope but
I see a low pulse of only 16 ns. I tried changing the parameters but
nothing seems to affect the time the WE# signal is held low.

Why doesn't the parameters I set up affect the time the WE# signal is
held low?
Thanks for any answer
Amish