UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
8,411 Views
Registered: ‎09-15-2014

Spansion serial FLASH write problems (xilisf + axi_quad_spi in Microblaze)

Jump to solution

I'm trying to access an FPGA attached Spansion S25FL064P serial FLASH
memory chip. The hardware is fine: FLASH can be programmed via iMPACT.


After building a MicroBlaze system with xilifs support, I am able to
read entire FLASH content correctly. The chip detection, it's geometry
(pages, sectors) is correctly recognized. Also sector erase operation
(after enabling writes in the memory) works as expected. Only the write
operation always fails in my system and I cannot figure out why.

 

The SPI command stream in the xilifs library when requesting write 

operation on AXI looks reasonably well: XISF_WRITE command followed by
24-bits of address and requested data.

 

I use Xilinx SDK 14.4, axi_quad_spi_spi core 2.00.a and Standalone
board support package in revision 3.08.a. The FPGA is Spartan 6 LX.

 

Entire, compilable project with board support package and
hardware configuration is attached for verification. An extracted
short source file performing FLASH access via xilifs is in a separate
attachment - maybe someone can take a look and quickly spot the error
there.

 

Anyone successfully wrote something to Spansion serial FLASH memories?
Anyone can point what am I doing wrong? Probably it's something
trivial. I already tried different variants of AXI_QUAD_SPI module settings. It

was set to QUAD mode and STANDARD mode, which doesn't seem to make

any difference: reads and erase operations work, while writes don't. The

FLASH family in board support package xilisf configuration is set to
'5'. The description tells that '5' represents Numonyx chips, however
library headers define Spansion family to be number 5. Maybe that's my
incorrect understanding.

 

Any help or suggestion would be highly appreciated.

 

--

Tomek

axi_quad_spi_config.png
bsp_xilisf_config.png
0 Kudos
1 Solution

Accepted Solutions
Newbie gjswalling
Newbie
15,108 Views
Registered: ‎10-15-2014

Re: Spansion serial FLASH write problems (xilisf + axi_quad_spi in Microblaze)

Jump to solution

Hello Tomek,

If f_write_enable is calling WREN to set WEL, then the erase call should clear WEL.  Please add another call between the erase and program operations:

f_write_enable (TRUE);

 

Best Regards,

Gary

 

0 Kudos
2 Replies
Newbie gjswalling
Newbie
15,109 Views
Registered: ‎10-15-2014

Re: Spansion serial FLASH write problems (xilisf + axi_quad_spi in Microblaze)

Jump to solution

Hello Tomek,

If f_write_enable is calling WREN to set WEL, then the erase call should clear WEL.  Please add another call between the erase and program operations:

f_write_enable (TRUE);

 

Best Regards,

Gary

 

0 Kudos
8,040 Views
Registered: ‎09-15-2014

Re: Spansion serial FLASH write problems (xilisf + axi_quad_spi in Microblaze)

Jump to solution

Thank you. That worked. The solution was as simple as you suggested.

 

--

Tomek

0 Kudos