Pages: [1]   Go Down
Author Topic: How do you calculate total EEPROM memory?  (Read 1641 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 16
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I purchased a few  EEPROMs and I'm having a hard time grasping how they come up with the size of total memory.

The eeprom chips I purchased were model 24AA00 from here:
http://www.mouser.com/Search/ProductDetail.aspx?R=24AA00-I/Pvirtualkey57940000virtualkey579-24AA00-I/P

It lists things like this on the product page:
Memory Size:   16 Kbit   
Organization:   16 K x 8
and in the datasheet it says:  Organized as 16 bytes x 8 bits.

The datasheet says the address size is 1 byte but the high-order bits are don't-care bits so the eeprom ultimately uses the lower-order bits for the address. This gives 24 = 16 addresses to use.
Then I have 1 byte of data storage for each address. So, how do they take these two values and get a 16 Kilobits of memory size?  I think I'm missing something fundamental here.
« Last Edit: April 07, 2011, 06:03:15 am by eco » Logged

Offline Offline
Edison Member
*
Karma: 3
Posts: 1001
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The 24AA00 part is only 16 bytes total. The issue seems to be with the Mouser online listing being incorrect (specifications are correct in their PDF catalog). I don’t know how common this is, but it is probably not unique.
Logged

Central MN, USA
Offline Offline
Tesla Member
***
Karma: 73
Posts: 7198
Phi_prompt, phi_interfaces, phi-2 shields, phi-panels
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey if you want a decent sized well-arduino-community-supported EEPROM, I suggest 24LC256 (32KB) and 24LC512 (64KB).
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 16
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The 24AA00 part is only 16 bytes total. The issue seems to be with the Mouser online listing being incorrect (specifications are correct in their PDF catalog). I don’t know how common this is, but it is probably not unique.
Thanks for looking at the datasheet for me Ben. 4bits of address space = 16 addresses for one byte of storage each equals 16 bytes total. Makes sense.   smiley-lol



Hey if you want a decent sized well-arduino-community-supported EEPROM, I suggest 24LC256 (32KB) and 24LC512 (64KB).
I know but sometimes when I choose the well supported parts, I get a little lazy and just use all the examples. When I'm learning a new topic, I2C in this case, choosing a more obscure part has a couple advantages. First, I'll have to motivate myself to really understand the part if I want to work with it, and the second being that they are usually cheaper.

Let me ask you the same question about the 24LC256 (32KB) part then.

According to the datasheet:
16 bits for addressing is 216 = 256 addresses
1 byte per address
So, doesn't that mean it's a 256 byte chip?
Why does the datasheet use Kilobit in the datasheet title "256K I2C™ CMOS Serial EEPROM"?
Why do you say it's 32KB?

Thanks again guys.
« Last Edit: April 07, 2011, 02:36:40 pm by eco » Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 302
Posts: 26332
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
16 bits for addressing is 216 = 256 addresses
Some new batteries for the calculator, perhaps?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Central MN, USA
Offline Offline
Tesla Member
***
Karma: 73
Posts: 7198
Phi_prompt, phi_interfaces, phi-2 shields, phi-panels
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The 24LC256 has 256KiloBits. Since each Byte is 8 Bits, then 256KiloBits/8Bits per Byte=32KiloBytes=32KB The address size doesn't represent the size of the storage. It only represents the maximal size of storage for this entire line of products. So 24LC512 will be using all that 2^16=65536 bytes address space or 64KB. The 24LC256 only uses half of the address space.

I agree with you on what to do when trying to learn. If you choose a popular model, you can still work all you want on it and still have the option to look at others' work to better yourself or help you when you're stuck. If you use unpopular parts, you will receive less help. Also time is limited, so I prefer trying more ICs than spending all my time learning all the details of one IC. Just my 2 cents.
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 16
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

AWOL as usual was correct, my math was horribly wrong.

The 24LC256 uses 15 bits (the 16th is a don't-care bit) for the address which is (oh god i hope this is correct) 32768 total addresses to use (215).
One byte per address is (32768 * 8 ) = 262144 bits.
Then you 262144/1024 = 256Kbit labeled memory for the chip.

If this is correct, then I now understand. Thanks for all your help.
« Last Edit: April 07, 2011, 08:36:04 pm by eco » Logged

Pages: [1]   Go Up
Jump to: