Maker Pro
Maker Pro

Testing Flash Memory Question

P

panfilero

I am purchasing a Nand-Flash memory chip.... just stand alone only
flash... not a microcontroller or anything. I was wondering if anyone
knew of any interfaces or test boards (maybe they are called flash
controllers? I'm not sure) that I could use to test the memory...
basically I will write a little code to read and write, and then check
that the memory is ok. So far I have found this:
http://download.micron.com/pdf/technotes/nand/tn2905.pdf which seems
about right, except that I would prefer to have an ethernet output
instead of rs-232. Does anyone know of any other boards like this? Or
if there is a way to convert RS232 to Ethernet?

Thanks
 
M

mike

panfilero said:
I am purchasing a Nand-Flash memory chip.... just stand alone only
flash... not a microcontroller or anything. I was wondering if anyone
knew of any interfaces or test boards (maybe they are called flash
controllers? I'm not sure) that I could use to test the memory...
basically I will write a little code to read and write, and then check
that the memory is ok. So far I have found this:
http://download.micron.com/pdf/technotes/nand/tn2905.pdf which seems
about right, except that I would prefer to have an ethernet output
instead of rs-232. Does anyone know of any other boards like this? Or
if there is a way to convert RS232 to Ethernet?

Thanks
None of my business, but WHY do you need to test it? It's a rhetorical
question...

"a" chip? like quantity one?
And if you test it according to vendor specs, how do you expect to get
anything other than the vendor results?

Test it in the (mis)application. Your results are likely to be affected
more by your wear leveling algorithms, noise, timing margins, etc. than
anything the vendor did.

While you can easily come up with many counter-examples, the majority of
vendor parts meet vendor specs when used in conforming environments.

Ethernet is a horribly complex way to go to test one chip...or any
number of chips for that matter. USB to RS232 is a lot easier.

You can buy a USB interface with drivers and everything for dirt cheap.
Comes with the flash aready installed.
Called a thumb drive.


And if you're really talking about vendor qualification to buy zillions
of 'em,
the problem is a LOT more complex than you appear to understand.
mike
 
P

panfilero

None of my business, but WHY do you need to test it? It's a rhetorical
question...

"a" chip? like quantity one?
And if you test it according to vendor specs, how do you expect to get
anything other than the vendor results?

Test it in the (mis)application. Your results are likely to be affected
more by your wear leveling algorithms, noise, timing margins, etc. than
anything the vendor did.

While you can easily come up with many counter-examples, the majority of
vendor parts meet vendor specs when used in conforming environments.

Ethernet is a horribly complex way to go to test one chip...or any
number of chips for that matter. USB to RS232 is a lot easier.

You can buy a USB interface with drivers and everything for dirt cheap.
Comes with the flash aready installed.
Called a thumb drive.

And if you're really talking about vendor qualification to buy zillions
of 'em,
the problem is a LOT more complex than you appear to understand.
mike

Well... I just want to test a few, it's for research... I might test
maybe 10 ICs total. I'm planing on buying several Flash ICs from
digikey they come in TSOP packages I'll probally get 48pin
packages.... so, what I'm looking for (and having a hard time finding)
is something I can plug a Flash IC into and read and write to the IC.
And I can probally program a microcontroller or something at this
point to carry out my testing algorithm.... (I hear FPGA might be good
for this but I'm not familiar with FPGAs).... I'm guessing I need some
kind of memory controller (I don't know anything about memory
controllers) if I try to build this myself... I just want a way to
read and write and perform some error code correction to an individual
Flash IC.

Thanks
 
B

Bob

panfilero said:
Well... I just want to test a few, it's for research... I might test
maybe 10 ICs total. I'm planing on buying several Flash ICs from
digikey they come in TSOP packages I'll probally get 48pin
packages.... so, what I'm looking for (and having a hard time finding)
is something I can plug a Flash IC into and read and write to the IC.
And I can probally program a microcontroller or something at this
point to carry out my testing algorithm.... (I hear FPGA might be good
for this but I'm not familiar with FPGAs).... I'm guessing I need some
kind of memory controller (I don't know anything about memory
controllers) if I try to build this myself... I just want a way to
read and write and perform some error code correction to an individual
Flash IC.

Thanks
how about a flash programmer? We use a Needhams EMP-20. Program it;
erase it; program it; erase it. The programmer checks for failed bits.
Bob
 
M

mng

Well... I just want to test a few, it's for research... I might test
maybe 10 ICs total. I'm planing on buying several Flash ICs from
digikey they come in TSOP packages I'll probally get 48pin
packages.... so, what I'm looking for (and having a hard time finding)
is something I can plug a Flash IC into and read and write to the IC.
And I can probally program a microcontroller or something at this
point to carry out my testing algorithm.... (I hear FPGA might be good
for this but I'm not familiar with FPGAs).... I'm guessing I need some
kind of memory controller (I don't know anything about memory
controllers) if I try to build this myself... I just want a way to
read and write and perform some error code correction to an individual
Flash IC.

Thanks

The protocol for accessing Flash is pretty straightforward. Just take
a look at the datasheet. I've done a simple storage board using a PIC.
Writes to Flash are pretty slow, so speed is not so much an issue.

But what exactly are you trying to test? Block failure rates?
 
P

panfilero

how about a flash programmer? We use a Needhams EMP-20. Program it;
erase it; program it; erase it. The programmer checks for failed bits.
Bob

This sounds interesting, I can't find any documentation about it
though.
 
P

panfilero

The protocol for accessing Flash is pretty straightforward. Just take
a look at the datasheet. I've done a simple storage board using a PIC.
Writes to Flash are pretty slow, so speed is not so much an issue.

But what exactly are you trying to test? Block failure rates?

Yes I'd like to look at failure rates, see which bits aren't flipping,
implement an ECC, be able to test with different checkboard patterns
and things like this.... I'm looking for some kind of test board where
I could put different Flash packages to be tested....
 
Yes I'd like to look at failure rates, see which bits aren't flipping,
implement an ECC, be able to test with different checkboard patterns
and things like this.... I'm looking for some kind of test board where
I could put different Flash packages to be tested....

Depending on the sophistication of the IC, there may be substantial
smarts in between the external interface and the actual memory cells
which may get in the way of your tests.

Also, if you are testing to failure you may need a fast interface, or
be prepared to
wait a long, long time.
 
P

panfilero

Depending on the sophistication of the IC, there may be substantial
smarts in between the external interface and the actual memory cells
which may get in the way of your tests.

Also, if you are testing to failure you may need a fast interface, or
be prepared to
wait a long, long time.

Right, I was thinking that I would have to use a mocrocontroller and
expand its memory, to inlcude the flash and then I could apply my test
and verify bits and try out an ECC algorithm.... I've been told FPGAs
could also be used, and would be favorable... but I have no experience
with FPGA.... if I go the microcontroller route I would need some kind
of interface woudln't I? A memory Flash controller or something?
 
Right, I was thinking that I would have to use a mocrocontroller and
expand its memory, to inlcude the flash and then I could apply my test
and verify bits and try out an ECC algorithm.... I've been told FPGAs
could also be used, and would be favorable... but I have no experience
with FPGA.... if I go the microcontroller route I would need some kind
of interface woudln't I? A memory Flash controller or something?

The easy way is to find a microcontroller (or I/O expander) that gives
you enough
pins, and then talk the flash device's protocol in software. However,
that's likely
to be too slow if you expect to wear out a device in less than
calendar time.

To go faster you may need some dedicated flash interface logic,
either purchased or
built into an FPGA. The FPGA route can be fairly painful, because
interfacing it
to a higher level test controller isn't necessary easy, but it is
doable.
 
M

mng

Right, I was thinking that I would have to use a mocrocontroller and
expand its memory, to inlcude the flash and then I could apply my test
and verify bits and try out an ECC algorithm.... I've been told FPGAs
could also be used, and would be favorable... but I have no experience
with FPGA.... if I go the microcontroller route I would need some kind
of interface woudln't I? A memory Flash controller or something?

First of all, you should look at a Flash chip datasheet. Learn the
interface. Look at the timing. You'll have to do the low-level control
yourself if you want access to the bits, and it's really not as
complicated as your hesitation suggests it is. Just read the datasheet.
 
Top