Reply by Matthias Weingart December 6, 20042004-12-06
On Fri, Dec 03, 2004 at 02:37:45PM -0800, bcl@bcl@... wrote:

> > But I wonder why everybody is using the
(sometimes hard to get) proprietary
> > Atmel flashs. The 25xx series (SPI serial flash e.g. from st.com)
seems to
> > become a standard. I have found at least 5 manufactures for this
(sst.com,
> > nexflash, pmcflash, amd?, st.com, (mxic.com.tw has funny parts with
only 100
> > erase cycles)). But the limit today seems to be 4 or 8 MBits (in SO8).
> 
> I'll have to look at those, I hadn't come across them in my
searches for
> larger SPI 8-soic devices. Parts with lots of sources are always a good
> thing. Are they all pin compatible with each other? With the Atmel parts?

No they are not compatible to Atmel, but seems to be compatible to each
other (have not looked deeply in the datasheets, probably there are some
differences).

        Matthias

Beginning Microcontrollers with the MSP430

Reply by Alexandre Umino Spin December 4, 20042004-12-04
I'm using this code for AT45DB161B. 
If you have any questions, I response. I work which this memory.

SPIN



On Fri, 3 Dec 2004 11:41:37 -0800, bcl@bcl@...
<bcl@bcl@...> wrote:
> 
> Has anyone used the Atmel Dataflash? AT45DB021B? I'm working on
porting my
> eeprom code over to it and their description of the addressing is a bit
> confusing.
> 
> It has a 24 bit address. The low 9 bits address the bytes within a page,
> the next 11 address the specific 264 byte page (yes, 264 not 256). The top
4
> are for larger parts and are 0 in this case.
> 
> What I haven't sorted out yes is whether the addressing is contiguous,
or if
> when the page address bits increment the byte address gets reset?
> 
> Is anyone familiar enough with this part to set me in the right direction?
> 
> Thanks,
> 
> Brian
> 
> --
> ---[Office 67.2F]--[Fridge 36.8F]---[Fozzy 81.4F]--[Coaster 67.8F]---
> Linux Software Developer                     http://www.brianlane.com
> 
> 
> 
> 
> .
> 
> 
> Yahoo! Groups Links
> 
> 
> 
> 
>





Reply by onestone December 3, 20042004-12-03
The reason people use them is because, until recently, small serial 
flashes above 1Mbit were extremely hard to find. Atmels Dataflash range 
has been around for a LONG time, and has had up to 32Mbit. They are 
quirky, I used them for a while though, but then went for memory cards.

Al

Matthias Weingart wrote:

> On Fri, Dec 03, 2004 at 11:41:37AM -0800,
bcl@bcl@... wrote:
> 
> 
>>Has anyone used the Atmel Dataflash? AT45DB021B? 
>>
>>It has a 24 bit address. The low 9 bits address the bytes within a page,
>>the next 11 address the specific 264 byte page (yes, 264 not 256). The
top
>>4 are for larger parts and are 0 in this case.
>>
>>What I haven't sorted out yes is whether the addressing is
contiguous, or
>>if when the page address bits increment the byte address gets reset?
> 
> 
> I simply dropped the additional 8 bytes and used 256bytes per sector.
> The only disadvantage is that you cannot use the continous read command
> in this case. But if you read in blocks this is no problem. The address
> calculation is much simpler. Probably the reason for the additional bytes
is
> data protection (reed-solomon)? 
>  A tip: create a function that transfers a linear address into the two
parts
> for the dataflash (page number and adr in sector). Make migration to bigger
> parts easier.
> 
> But I wonder why everybody is using the (sometimes hard to get) proprietary
> Atmel flashs. The 25xx series (SPI serial flash e.g. from st.com) seems to
> become a standard. I have found at least 5 manufactures for this (sst.com,
> nexflash, pmcflash, amd?, st.com, (mxic.com.tw has funny parts with only
100
> erase cycles)). But the limit today seems to be 4 or 8 MBits (in SO8).
>  
>         Matthias
> 
> 
> 
> .
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 


Reply by bcl...@... December 3, 20042004-12-03
On Fri, Dec 03, 2004 at 10:24:24PM +0100, Matthias Weingart wrote:
> 
> On Fri, Dec 03, 2004 at 11:41:37AM -0800, bcl@bcl@... wrote:
> 
> > Has anyone used the Atmel Dataflash? AT45DB021B? 
> > 
> > It has a 24 bit address. The low 9 bits address the bytes within a
page,
> > the next 11 address the specific 264 byte page (yes, 264 not 256). The
top
> > 4 are for larger parts and are 0 in this case.
> > 
> > What I haven't sorted out yes is whether the addressing is
contiguous, or
> > if when the page address bits increment the byte address gets reset?
> 
> I simply dropped the additional 8 bytes and used 256bytes per sector.
> The only disadvantage is that you cannot use the continous read command
> in this case. But if you read in blocks this is no problem. The address
> calculation is much simpler. Probably the reason for the additional bytes
is
> data protection (reed-solomon)? 
>  A tip: create a function that transfers a linear address into the two
parts
> for the dataflash (page number and adr in sector). Make migration to bigger
> parts easier.

That's what I ended up doing:
  page = addr / 264; byte = addr % 264;

It appears to be working. I wanted to be able to use the continuous read
function for reads so I don't want to pitch the extra 8 bytes.

> 
> But I wonder why everybody is using the (sometimes hard to get) proprietary
> Atmel flashs. The 25xx series (SPI serial flash e.g. from st.com) seems to
> become a standard. I have found at least 5 manufactures for this (sst.com,
> nexflash, pmcflash, amd?, st.com, (mxic.com.tw has funny parts with only
100
> erase cycles)). But the limit today seems to be 4 or 8 MBits (in SO8).

I'll have to look at those, I hadn't come across them in my searches
for
larger SPI 8-soic devices. Parts with lots of sources are always a good
thing. Are they all pin compatible with each other? With the Atmel parts?

Thanks,

Brian

-- 
---[Office 68.1F]--[Fridge 36.7F]---[Fozzy 82.0F]--[Coaster 68.9F]---
Linux Software Developer                     http://www.brianlane.com





Reply by Matthias Weingart December 3, 20042004-12-03
On Fri, Dec 03, 2004 at 11:41:37AM -0800, bcl@bcl@... wrote:

> Has anyone used the Atmel Dataflash? AT45DB021B? 
> 
> It has a 24 bit address. The low 9 bits address the bytes within a page,
> the next 11 address the specific 264 byte page (yes, 264 not 256). The top
> 4 are for larger parts and are 0 in this case.
> 
> What I haven't sorted out yes is whether the addressing is contiguous,
or
> if when the page address bits increment the byte address gets reset?

I simply dropped the additional 8 bytes and used 256bytes per sector.
The only disadvantage is that you cannot use the continous read command
in this case. But if you read in blocks this is no problem. The address
calculation is much simpler. Probably the reason for the additional bytes is
data protection (reed-solomon)? 
 A tip: create a function that transfers a linear address into the two parts
for the dataflash (page number and adr in sector). Make migration to bigger
parts easier.

But I wonder why everybody is using the (sometimes hard to get) proprietary
Atmel flashs. The 25xx series (SPI serial flash e.g. from st.com) seems to
become a standard. I have found at least 5 manufactures for this (sst.com,
nexflash, pmcflash, amd?, st.com, (mxic.com.tw has funny parts with only 100
erase cycles)). But the limit today seems to be 4 or 8 MBits (in SO8).
 
        Matthias

Reply by dmm December 3, 20042004-12-03
On Fri, 3 Dec 2004 11:41:37 -0800, you wrote:

>
>Has anyone used the Atmel Dataflash? AT45DB021B? I'm working on porting
my
>eeprom code over to it and their description of the addressing is a bit
>confusing.
>
>It has a 24 bit address. The low 9 bits address the bytes within a page,
>the next 11 address the specific 264 byte page (yes, 264 not 256). The top 4
>are for larger parts and are 0 in this case.
>
>What I haven't sorted out yes is whether the addressing is contiguous,
or if
>when the page address bits increment the byte address gets reset?
>
>Is anyone familiar enough with this part to set me in the right direction?
>
>Thanks,
>
>Brian

Have you got Atmel's DOC0842 - "Using Amel's DataFlash"
application note?


Reply by microbit December 3, 20042004-12-03
Hi Brian,

> What I haven't sorted out yes is whether the
addressing is contiguous, or if
> when the page address bits increment the byte address gets reset?

IIRC the address counter wraps around.
It *might* be that it only wraps on the cache RAM (naturally), I think
that if you use the proper instruction, it will allow you to read as many
consecutive
bytes as you want.
PS : the extra 8 bytes are there to store misc stuff like pointers in linked
lists
(Atmel eg. says). Funny thing is that the whole idea of a linked list is to be
able 
to dynamically vary member size, so I'm puzzled as to why that should be
useful
on the DataFlash in that manner... 
I still have some old C code for DB021 and the likes somewhere on another
machine, 
if I have a gap and you'd still need it, I will Email it to you.
It'll still require you to tailor it for your use, so you learn the quircks
of these
parts, but the wasted time reinventing the wheel is gone...

If you do need code, it'd be after the weekend I'd dig it up -
I'd say.

B rgds
Kris





Reply by bcl...@... December 3, 20042004-12-03
Has anyone used the Atmel Dataflash? AT45DB021B? I'm working on
porting my
eeprom code over to it and their description of the addressing is a bit
confusing.

It has a 24 bit address. The low 9 bits address the bytes within a page,
the next 11 address the specific 264 byte page (yes, 264 not 256). The top 4
are for larger parts and are 0 in this case.

What I haven't sorted out yes is whether the addressing is contiguous, or
if
when the page address bits increment the byte address gets reset?

Is anyone familiar enough with this part to set me in the right direction?

Thanks,

Brian


-- 
---[Office 67.2F]--[Fridge 36.8F]---[Fozzy 81.4F]--[Coaster 67.8F]---
Linux Software Developer                     http://www.brianlane.com