Re: Question about strange flash problem




"Paul Carpenter" <paul$@pcserviceselectronics.co.uk> wrote in message
news:20070423.2010.328295snz@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Monday, in article <f0iohf$poo$1@xxxxxxxxxxxxxxxxxxx>
andrewdotqueisser@xxxxxx "andrew queisser" wrote:

Hi all,

I'm seeing a strange bug with a flash chip. So far it's isolated but I was
wondering if anyone has opinions about what might be happening here:

Chip: Spansion 32MBit
http://www.spansion.com/datasheets/s29al032d_00_a8_e.pdf

When I program certain sectors (3f8000,3fa000,3fc000,3fe000) they act like
RAM. I can write data and read data back but when I power cycle the device
the data is back to 0xFFFF...

I can think of a few explanations but I don't know enough about the inner
workings of flash to know which ones to eliminate:

1) The chip is defective and acts like a RAM chip on those sectors
2) The sectors in question are write-protected and act therefore act like
RAM
3) There's a defect on our PCB and I actually am writing to the SRAM chip
sharing the address bus
4) There's a defect on the chip that causes the sectors to be erased each
time the device powers up

Some background:
- It's an FPGA based system with flash and SRAM sharing the bus.
- We don't have any high voltages hooked up to the flash chip so our only
way of programming are the in-system CFI routines.
- The programming routines include a normal SRAM-like write cycle at the
end
so that would explain how it could look like SRAM
- So far only one of several devices exhibit the problem, all others work
fine.

How are you sure that it is acting as SRAM?

If you

write to one of these locations with no other devices on the bus,
then WRITE the invereted pattern to a non-existant device on that bus
then read the original location

What do you get?

Hmm, haven't studied it to that depth. I should do some pattern testing
although the data I have written and read was pretty random.

I suspect you think it is acting as SRAM when actually you have bus
capacitance causing the last pattern to stay on the bus for a 'long' time
so you are reading the old bus value back and the device is not actually
being read at all. I.E. nothing is driving the bus at that time.

Considering how regular the pattern is I would suspect that there are
addressing/data line problems as 3f8xxx is a problem and I assume
3f9xxx is OK.

Suggesting that A12 (on 8 bit wide addressing) is shorted to something.
or similar, which suggests a PCB fault or FPGA programme fault.

I've written whole sectors with test data, not just individual locations.
I've used both application data (some tables that drive device behaviour) as
well as test data from files so I'm pretty sure that the device is acting
like RAM.

What I haven't done, and this is my next test, is to search the actual RAM
space to see if I find the test data I thought I had written to flash.

Andrew


.


Loading