microblaze and flash access

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

Reply to
axr0284
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.