General flash memory question

Guest
I'm interested in using a flash chip for some datalogging applications,
however am not sure if it's practical to integrate. EEPROMs are nice
(and easy), but I would like to get something with more than just 32kB
of memory.

Can flash memory only be written one sector at a time? Is it possible
to do single-byte-only writes?

If not, are there any other memory storage options (in a single chip
solution) that can store at least, say, 64kB? What about 256kB?
Thanks,
Dave
 
On 12 Jan 2005 10:50:46 -0800, dave.harper@gmail.com wrote:

I'm interested in using a flash chip for some datalogging applications,
however am not sure if it's practical to integrate. EEPROMs are nice
(and easy), but I would like to get something with more than just 32kB
of memory.

Can flash memory only be written one sector at a time? Is it possible
to do single-byte-only writes?
Yes, as long as the sector has previously been erased.
For datalogging, this is often not a problem as the flash can be fully erased after emptying the
log. For continuous-wrap type logs it just means you need to erase a new sector before you use it.
 
dave.harper@gmail.com wrote:
I'm interested in using a flash chip for some datalogging applications,
however am not sure if it's practical to integrate. EEPROMs are nice
(and easy), but I would like to get something with more than just 32kB
of memory.

Can flash memory only be written one sector at a time? Is it possible
to do single-byte-only writes?

If not, are there any other memory storage options (in a single chip
solution) that can store at least, say, 64kB? What about 256kB?
Thanks,
Dave
I'm currently using Atmel's 64kB serial EEPROM on a project, and I know
they have a 128kB one as well.
 
Subject: Re: General flash memory question
From: Rob Gaddi rgaddi@bcm.YUMMYSPAMtmc.edu
Date: 12/01/2005 21:08 GMT Standard Time
Message-id: <cs43ei$oj5@gazette.corp.bcm.tmc.edu


Can flash memory only be written one sector at a time? Is it possible
to do single-byte-only writes?
You can write to flash 1 byte at a time, most of the big ones have single
sector erease (1Mb and above). Some micros have on board flash that can be used
in the same way. Flash has a limited number of alloweble write cycles per byte,
100k is the norm, seems a lot but soon runs out if your not careful.
 
Mike Harrison wrote:
On 12 Jan 2005 10:50:46 -0800, dave.harper@gmail.com wrote:

I'm interested in using a flash chip for some datalogging
applications,
however am not sure if it's practical to integrate. EEPROMs are
nice
(and easy), but I would like to get something with more than just
32kB
of memory.

Can flash memory only be written one sector at a time? Is it
possible
to do single-byte-only writes?

Yes, as long as the sector has previously been erased.
For datalogging, this is often not a problem as the flash can be
fully erased after emptying the
log. For continuous-wrap type logs it just means you need to erase a
new sector before you use it.

Great, thanks for the insight. This means once a sector is erased, I
can write a single byte at a time without affecting neighboring bytes
on the same sector? One of the chips I was looking at was one from
Amtel:

http://www.atmel.com/dyn/resources/prod_documents/doc0291.pdf

I was planning on connecting the address and data pins through
serial-to-parallel converters to free up pins on my microcontroller.
Would this chip and this concept work?

Thanks,
Dave
 
In article <1105625524.829086.55180@f14g2000cwb.googlegroups.com>,
dave.harper@gmail.com says...
Mike Harrison wrote:
On 12 Jan 2005 10:50:46 -0800, dave.harper@gmail.com wrote:

I'm interested in using a flash chip for some datalogging
applications,
however am not sure if it's practical to integrate. EEPROMs are
nice
(and easy), but I would like to get something with more than just
32kB
of memory.

Can flash memory only be written one sector at a time? Is it
possible
to do single-byte-only writes?

Yes, as long as the sector has previously been erased.
For datalogging, this is often not a problem as the flash can be
fully erased after emptying the
log. For continuous-wrap type logs it just means you need to erase a
new sector before you use it.

Great, thanks for the insight. This means once a sector is erased, I
can write a single byte at a time without affecting neighboring bytes
on the same sector?
Sure.

One of the chips I was looking at was one from
Amtel:

http://www.atmel.com/dyn/resources/prod_documents/doc0291.pdf

I was planning on connecting the address and data pins through
serial-to-parallel converters to free up pins on my microcontroller.
Would this chip and this concept work?
For some reason my browsers can't get to the web today, so I can't look
at that particular DS. But, look at the programming cycle. What you
propose will likely be somewhere between "incredibly clumsy" and
"virtually impossible".

--
Keith
 
Typically when you write to a flash chip, you MUST write to the entire
sector (128 bytes usually) within a specified window. These bytes are
written into a buffer on the chip, and only if you are within the window
time, does the chip *itself* write the bytes. Hence, if you only write ONE
byte, the other 127 in that sector are reset to FFh. Thus if you expect ot
write one byte, wait a while, then another byte etc, only 1 of your valid
data bytes will ever be present in the sector, all other bytes will be FFh.

That being said, there may be some Flash chips that do not do this. Atmel
however is not one of them.

The other "dance" mentioned is called a Software Data Protection (SDP)
routine. It is meant to prevent invalid writes from happenning (i.e. hard
for noise to mimic), and it is typicall a 3 byte sequence that must be
written at the start of every page, EVEN if this feature is disabled, most
Flash chips make you use it anyway.

--
Aaron Hughes
urpNOSPAM@canerdian.ca
http://www.canerdian.ca
<dave.harper@gmail.com> wrote in message
news:1105555846.250850.320170@c13g2000cwb.googlegroups.com...
I'm interested in using a flash chip for some datalogging applications,
however am not sure if it's practical to integrate. EEPROMs are nice
(and easy), but I would like to get something with more than just 32kB
of memory.

Can flash memory only be written one sector at a time? Is it possible
to do single-byte-only writes?

If not, are there any other memory storage options (in a single chip
solution) that can store at least, say, 64kB? What about 256kB?
Thanks,
Dave
 
Aaron Hughes wrote:
Typically when you write to a flash chip, you MUST write to the entire
sector (128 bytes usually) within a specified window. These bytes are
written into a buffer on the chip, and only if you are within the window
time, does the chip *itself* write the bytes. Hence, if you only write ONE
byte, the other 127 in that sector are reset to FFh. Thus if you expect ot
write one byte, wait a while, then another byte etc, only 1 of your valid
data bytes will ever be present in the sector, all other bytes will be FFh.
I'm familiar with Atmel flash, and it doesn't all work this way. You can
write a single byte with 'large sector' flash. It's only the small
sector flash that requires one to write an entire sector.

http://www.atmel.com/dyn/resources/prod_documents/doc1026.pdf

see the description. This is a 64kb flash. There are larger ones (I've
used the 4Mb version before) that are the same as this one.

That being said, there may be some Flash chips that do not do this. Atmel
however is not one of them.

The other "dance" mentioned is called a Software Data Protection (SDP)
routine. It is meant to prevent invalid writes from happenning (i.e. hard
for noise to mimic), and it is typicall a 3 byte sequence that must be
written at the start of every page, EVEN if this feature is disabled, most
Flash chips make you use it anyway.

--
Regards,
Robert Monsen

"Your Highness, I have no need of this hypothesis."
- Pierre Laplace (1749-1827), to Napoleon,
on why his works on celestial mechanics make no mention of God.
 
On Tue, 25 Jan 2005 14:46:23 -0800, Robert Monsen wrote:

Aaron Hughes wrote:
Typically when you write to a flash chip, you MUST write to the entire
sector (128 bytes usually) within a specified window. These bytes are
written into a buffer on the chip, and only if you are within the window
time, does the chip *itself* write the bytes. Hence, if you only write
ONE byte, the other 127 in that sector are reset to FFh. Thus if you
expect ot write one byte, wait a while, then another byte etc, only 1 of
your valid data bytes will ever be present in the sector, all other
bytes will be FFh.


I'm familiar with Atmel flash, and it doesn't all work this way. You can
write a single byte with 'large sector' flash. It's only the small sector
flash that requires one to write an entire sector.

http://www.atmel.com/dyn/resources/prod_documents/doc1026.pdf

see the description. This is a 64kb flash. There are larger ones (I've
used the 4Mb version before) that are the same as this one.
I beg to differ. According to the data sheet, "ERASURE: Before a byte
can be reprogrammed, the 64K bytes memory array must be erased."

So I can't really see using it for nonvolatile data storage, unless you
just keep writing until it's full, then download it all and erase the
thing.

Are there chips that act like a nonvolatile RAM?

Thanks,
Rich
 
On Tue, 25 Jan 2005 23:39:47 -0800, Robert Monsen wrote:
Rich Grise wrote:
On Tue, 25 Jan 2005 14:46:23 -0800, Robert Monsen wrote:
Aaron Hughes wrote:
....
expect ot write one byte, wait a while, then another byte etc, only 1
of your valid data bytes will ever be present in the sector, all other
bytes will be FFh.

I'm familiar with Atmel flash, and it doesn't all work this way. You
can write a single byte with 'large sector' flash. It's only the small
sector flash that requires one to write an entire sector.
http://www.atmel.com/dyn/resources/prod_documents/doc1026.pdf
see the description. This is a 64kb flash. There are larger ones (I've
used the 4Mb version before) that are the same as this one.

I beg to differ. According to the data sheet, "ERASURE: Before a byte
can be reprogrammed, the 64K bytes memory array must be erased."

The statement I was objecting to was that one needs to write an entire
sector at once. This is false for 'large sector' flash, as in the
datasheet. However, there ARE some flashes, the 'small sector' flashes,
that require one to write an entire small sector of 128 bytes at once.
OK. I see the difference now. :)

Thanks!
Rich
 

Welcome to EDABoard.com

Sponsor

Back
Top