View Full Version : How do I add more EEPROM?

02-10-2007, 09:20 AM
I want to add some more eeprom to my propstick USB.·I want to check out the Propeller OS, but the Propstick doesn't have enough memory. Where can I·buy more eeprom·and how can I hook it up to the prop?

Mike Green
02-10-2007, 11:54 AM
You can buy more EEPROM lots of places. Jameco, Digikey, and Mouser all have online stores and will sell small quantities of electronics parts. Microchip and Atmel each have a line of I2C EEPROM chips available in PDIP 8-pin packages in sizes from 32Kx8 to 128Kx8. Download the datasheets for the parts. I recommend using 64Kx8 parts (24LC512). You can attach several of them if you want, each with different address bits. They all have 3 pins that are used for chip selects. The built-in EEPROM uses %000 so values %001 through %111 are available. The SDA lines are all connected together and to the same Propeller pin as the built-in EEPROM's SDA. The same for SCL. All the WP lines are grounded. The Vcc/Vdd pins are all connected to +3.3V and the ground pins are grounded. That's it.

For the address pins, you can connect them to ground for logic zero and to Vcc/Vdd for logic one.

T Chap
02-10-2007, 12:25 PM

I have been puzzled foe some time about storing and accessing memory on the i2c eeproms. Are the bytes that are stored written to a specific location, and if the data is a long for example, does the protocol simply write all 4 bytes starting at the location you set to write at? If so, would you have to keep track of the data locations so as to avoid writing over data accicentally? I am just trying to get a picture of the process.

Mike Green
02-10-2007, 12:34 PM
Look at one of the I2C drivers in the Object Exchange. Both support reading/writing data from/to EEPROM. Typically, you provide the starting address of a variable or group of variables in the Propeller's main memory and a byte count. You also supply a starting EEPROM address and away it goes. If you want to write a single long, pass the address of the long ("VAR long x" you pass "@x") and the number of bytes ("4"). You do need to keep track of what's stored where in the EEPROM. The drivers do not do this for you. If you have only the 32K x 8 EEPROM used for booting, the Propeller program starts at location zero and goes up towards location $7FFF. You can store your first variable there and work downwards (a long would start at $7FFC, the next at $7FF8, etc.). Keep in mind that when you download a new program, the whole first 32K gets loaded and your variables disappear. If you're using additional EEPROM (anything past the first 32K x 8), the downloader doesn't know anything about memory beyond 32K x 8 and will leave it alone.

02-10-2007, 10:07 PM
Okay. I think I'm starting to understand this. I'm looking for a 64Kx8, 2-wire serial EEprom in an eight pin package (the part number above gave me a 512Kb EEPROM on Jameco). I can add up to 7 EEPROM chips to the pins the built-in EEPROM is attached to by using the adress pins, and I need a I2C driver from the object exchange to use them?

Post Edited (Jake11611) : 2/10/2007 3:16:59 PM GMT

02-10-2007, 10:20 PM
Jake11611 said...
Okay. I think I'm starting to understand this. I'm looking for a 64Kx8, 2-wire serial EEprom in an eight pin package (the part number above gave me a 512Kb EEPROM on Jameco).

That IS the correct chip. EEPROMS are usually listed as Kbits, not KBytes, but if you divide 512 by 8bits, you end up with 64.

Don't visit my new website...