Shop OBEX P1 Docs P2 Docs Learn Events
Propeller EEPROM Upgrade ? — Parallax Forums

Propeller EEPROM Upgrade ?

Areal PersonAreal Person Posts: 197
edited 2006-12-21 17:04 in Propeller 1
Ok,

I'm trying to upgrade·my single 32k·EEPROM (DIP) on my breadboard setup
to 4-64k Ramtron FRAM chips. They come in SOIC and DFN.

I checked on prices for SOIC to DIP converters and there $7.00 each.

What should I do to be able to use the FRAM chips on my breadboard ?

Whats the best solution ?

-Areal

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I have a tree growing out of my head, but

what do you expect ? I'm a programmer.

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2006-12-20 18:34
    The Ramtron I2C devices run off 5V, so you need to look at the sticky thread on connecting 5V devices to the Propeller. You basically need two MOSFETs in a voltage converter circuit you can get in that thread or from Philips' I2C web pages. Philips also makes an IC that does the same thing. You will need a little daughter-board that plugs into the DIP socket with a short cable. There are only 4 wires that need to be connected from the DIP socket .. SDA, SCL, Vcc (+3.3V), and Vss (ground). You'll also need a separate wire to supply +5V. The SDA and SCL signals go through the voltage converter to all of the SDA and SCL pins of all 4 FRAM chips. The ground gets connected to all the grounds of the voltage converter and the FRAM chips. The +3.3V connects to the voltage converter and the +5V connects to the FRAM chips. On the 64K Ramtron chips, A0 is not connected. The A1 and A2 address selects should be connected to either ground or +5V so that each chip has a different address select code.

    This is a bit of work, but should be straightforward. Both the sticky thread and the Philips website discuss in great detail what you have to do to use a mixture of +5V and +3.3V I2C devices.
  • rokickirokicki Posts: 1,000
    edited 2006-12-20 18:43
    Which makes the SD alternative look even more attractive. For SD all you need is a few resistors and a socket. And if you do not need a
    file system, you can almost treat the SD card as just one big 512MB EEPROM.
  • Mike GreenMike Green Posts: 23,101
    edited 2006-12-20 18:57
    I mostly agree with rokicki. If you need to add memory to a Propeller circuit and you're very limited on I/O pins, you can piggyback additional storage on the existing boot I2C bus. The routines required to access this are already available in both SPIN and assembly. If you have the extra pins for an SPI bus, an SD card is the way to go, either using a commercial FAT file system controller or rokicki's SD drivers. The difficulty is that the interface routines are not yet polished and ready for 'drop in' use. This will change over the next few weeks as a number of participants in these forums are all working on using different commercial controllers (DOSonChip, Vinculum, uALFAT, etc.) and rokicki is finishing the direct SD drivers.

    The uALFAT device does talk I2C and the DOSonChip and Vinculum devices are supposed to have this capability some time in the future.


    Post Edited (Mike Green) : 12/20/2006 7:13:37 PM GMT
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-12-20 18:58
    Areal Person said...


    I checked on prices for SOIC to DIP converters and there $7.00 each.
    Is $1.95 more palatable? http://www.sparkfun.com/commerce/product_info.php?products_id=494

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • Areal PersonAreal Person Posts: 197
    edited 2006-12-20 19:21
    Yea, Paul ! Thanks much for that !

    Thanks everyone !

    I thought I could just plug in the·Ramtron FM25CL64-G 64k (2-wire) SOIC-8
    with a (SOIC to DIP adapter) ? they 2.7v - 3.6v that will work
    with 3.3v ? Right ? idea.gif

    The bigger chips are 5v - Mouser has them in stock.

    2-Wire is the same as I2C Correct ?

    -Areal

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I have a tree growing out of my head, but

    what do you expect ? I'm a programmer.

    Post Edited (Areal Person) : 12/20/2006 7:27:02 PM GMT
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-12-20 19:27
    Areal Person said...

    2-Wire is the same as I2C Correct ?

    -Areal

    In Ramtron's case, yes. The adapter board, if you are placing it in a breadboard you should use machined pin headers, it will make placing it in the board much easier. If you are placing in perfboard, the standard square post headers are fine.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • Mike GreenMike Green Posts: 23,101
    edited 2006-12-20 20:12
    Be careful. The size of these chips is described in bits, not bytes. The 25CL64 is 64K bits or 8K bytes ... not what you want.
    The 24LC256 is 32K bytes. The 24LC512 is 64K bytes.
  • Areal PersonAreal Person Posts: 197
    edited 2006-12-20 20:35
    Ha..., Ha... Yea Boy Mike! freaked.gif

    Gotta remember, some folks are green rolleyes.gif

    -Areal Sad Situation cry.gif

    I was wanting fast r/w memory·so I could start working with pointers yeah.gif

    Now, I gotta bunch of 8k byte chips.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I have a tree growing out of my head, but

    what do you expect ? I'm a programmer.

    Post Edited (Areal Person) : 12/20/2006 8:40:35 PM GMT
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-12-20 20:46
    You can string 4 of the together [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • Areal PersonAreal Person Posts: 197
    edited 2006-12-20 20:56
    What is the largest single high speed memory chip that I can hook up ?

    I dont care what kind of memory, as long as it's FAST, wont ware out
    and I can hook it up to the Propeller ?

    Simple as possiable. However, I know that may be impossiable.
    I think I'm back to DRAM.

    I got a·BIG stick that runs on 3.3v

    http://www.datasheetcatalog.net/datasheets_pdf/H/Y/B/3/HYB39S64400AT-8B.shtml

    How hard to hook that up one of the chips on this ?
    I would desolder it first. It has multi banks

    -Areal

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I have a tree growing out of my head, but

    what do you expect ? I'm a programmer.

    Post Edited (Areal Person) : 12/20/2006 9:07:56 PM GMT
  • rokickirokicki Posts: 1,000
    edited 2006-12-20 21:16
    For fastest *access* from the propeller, you'll probably be best served by using a bunch of pins and hooking up a
    large static RAM like the Cypress 62167. It's got 18 address pins and 16 data pins but you can use it in a x8
    configuration if you want. With a chip like this, you slam the address on one set of pins, set the direction of the
    data lines to read, toggle a few control lines and *bam* your data is ready to read.
  • Areal PersonAreal Person Posts: 197
    edited 2006-12-20 21:32
    Sounds good, now if I can just find one.
    I'm still gonna hook up one of the 8kbyte FRAM chips
    ...(As I spent ALL my money on a ton of them)

    But I'm going to need somthing bigger.

    The dream was fun while it lasted [noparse];)[/noparse]

    I think I need a·to read some instructions on how to drive
    RAM chips, I dont know how to hook up the Pins, I never
    did·that before, I would like to learn how.

    Any advise ?

    Thanks all
    -Areal

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I have a tree growing out of my head, but

    what do you expect ? I'm a programmer.

    Post Edited (Areal Person) : 12/20/2006 9:51:33 PM GMT
  • IAI-CaptainIAI-Captain Posts: 33
    edited 2006-12-21 09:36
    ·Hi, Areal person,
    I have some help 4 U!

    Here·are some Pics of a of my simple Fram hook up:

    I'm using a Framtron: FM18L08-70-PG256K.
    Mouser Part# 877-FM18L08-70-PG
    This Fram is a·256K, (32K x 8bit), 70ns Access time, 140ns Cycle time, 3 volt, 15mA Active current, 15uA Standby current, Parallel FRAM hooked up to a PropStick.
    in other words it is a 32 Kilo byte storage device. I will explain.
    I hope you don't mind this Lesson, but it sounds like you could use the help. smile.gif

    1st:
    ··· ·When reading Memory storage amounts you must be aware of (B), verses, (b). Almost all descriptions are going to be in (b, Kb, Mb, Gb), But in·amounts larger than (b), (K, M, G), they often drop the (b)·this means that you must do some basic Math: divide the # of (bs) by 8, (IE, 64Mx8 (64 Mega Bits) = 64/8 =·8 Mega bytes of storage, NOT 64 Mega Bytes.)

    Note!
    ·In all digital electronic memories·8 is the magic number! hear's how it goes:

    1· bit = A bit······ (A single Switch or·Transistor, 1 wire Parallel buss)
    4· bit = A nibble· (4 transistors, 4 wire Parallel buss)
    8· bit = A Byte * (The most common Buss Size for older CPUs and current Micros. I.E. Basic Stamps, SX chips ect.., 8 bit Buss)
    16 bit = A Word·· (Basic Stamp P40 and SX 52, 16 bit Buss)
    32 bit = A Long·· (***** Propellers******, 32bit Buss)

    So, it is a good practice to divided the stated Storage amt by the buss size to gain an idea of how large the storage area is. (E.g.. If you had a 64k x 1b then 64/1=64k bits you would need 8 of them in parallel to make 64K Bytes, this is what most of us are used to when we buy Memory).
    ··So lets assume that·you need 1Gig, (1,024 Million Bytes = buss size 8b or larger), for·a laptop so·you go out and·buy a 1 Gig DDR DIM, but if you look at the Dim you will see some arrangement of 2, 4, or 8 ICs that have the same part#(these are the Ram). You may find·one or two chips that don't have the same part#(these are the Address and control busses).
    So, in order to get the right amt of storage on the DIMM they must have used some arrangement of (1024/8b= 1024/1B) Think about it:
    1 Gig / 32bit buss = 1024/32 = 32 Million Longs or if we want to work by groups of 8bits then; Some how they must·use an arrangement of 1024MB/8bits / 32bit buss?, Not so! they could use 32 ICs but that would take up a huge space. there is an easer way!

    Let's go back and look at the Number of ICs on the DIMM:
    · 8 ICs = 128MB each IC (8x128=1024)
    · 4 ICs = 256MB (4x256=1024)
    · 2 ICs = 512MB (2x512=1024)

    If you see Ram like: 1Mb bytewide ram: then Bytewide refers to the buss size in bits and we know that a Byte is 8 bits so Bytewide means·1 Byte·= 8 bits wide at one time. So, all this Brakes down to mean that:
    1Mb Bytewide RAM = 1024Mb/8bits= 128K x 8bit buss = 128K x 1byte = 128K bytes of Actual Storage! NOT 1 Megabyte!

    So, you see that all this talk of Micro controllers is really talk of small scale·CPUs, But the Propeller has broken down the wall of bit, Byte, Buss, Oppression. Every time I read the boards for any Micro I am always amazed by what has be misconstrued. I guess the fact that the Micros have most often been used to Interface directly to I/O has some how made every one forget that no matter what brand or scale the Micro may be, it is still just a CPU that wants to hook up to RAM and·other mass storage, but·it has been·made user friendly thanks to hard work on the part of the IDE Engineers. Now!·You and I don't have to learn Mnemonics or ASM unless we want or need to!
    whew!
    Enough of that!!
    Here are the pics:



    In the pics you will see, (if you look close):

    · 11 Black wires are·Address Buss, (11 bits wide = A0-A10 on the Fram).
    · 8·· Red Wires are the Data Buss, (8 bits wide = D0-D7 on the Fram)
    · 3·· Green Wires are Control Buss, (3 control lines CE=Chip Enable, WE=Red/Write Enable, OE=Output Enable).
    In one of the pics is a Propeller pin out with the·Framtron Buss connections Annotated in Red ink. (I hope you can read it)


    Timing is simple, and fairly straight forward! (Although I've not yet had the time to finish programing my·FRam I/O spin Object, I do have the basics in· place.) for there are two ways to write to the fram and there is a R/W pre charge to consider, but It's still simple!
    READ from Fram:
    1)·Make sure WE·is High (to prevent an automatic write cycle)
    2) bring the CE from·Low·to High (Pre charge)
    3) load all the·Address, 11 bits at a time, onto the address buss. (If you use less than 11bits, then you can't·address the whole Fram)
    4) bring the CE from·High·to·Low (Start Read)
    5) bring the OE from·High·to·Low (Make FRAM Data Buss·an Output·so as to write Data out to the Propeller waiting for the Inputs on 8 bits.)
    6) Fram will load data stored at Address#X·onto the Data Buss in sets of 8 bits at a time. (The Prop should Be waiting to receive Data in 8 bit increments) (how you do that is up to you)
    7) bring the CE from·Low·to High (Pre charge), (get ready for next operation)
    8) bring the OE from·Low·to·High (Make FRAM Data Buss·a tri state·Output·so as to·ignore the Data buss·with the Propeller, on all·8 bits.)

    Write To FRAM in CE controlled mode: (safer than WE controlled mode)
    1) bring the CE from·Low·to High (Pre charge), (NOTE! the State of OE does not matter once this step is done.)
    2)·bring WE·Low (to·Set up an automatic write cycle)
    3) load all the·Address, 11 bits at a time, onto the address buss. (If you use less than 11bits, then you can't·address the whole Fram)
    6) load data·from the Prop onto the Data Buss in sets of 8 bits at a time. (This timing is up to you, but it should be tied to CE, OE·& WE)
    4) bring the CE from·High·to·Low (Start write)
    5) The Data on the Data Buss should now automatically have been Latched into the FRam and stored for ever at that address unless you over write it.)

    Well there it is!!!!!!
    Hope it helps you,
    HAPPY Holidays to all,burger.gif
    IAI CAPTIAN·scool.gif·

    P. S. Here·are links to Ramtron.com Data sheets:
    http://ramtron.com/doc/Products/Library/Literature.asp?ID=1

    Here is the link direct to the FM18L08 (PDF):
    http://ramtron.com/doc/Products/Nonvolatile/Detail.asp?ID=13&gr=6




    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    IAI (Indigenous Alien Intelligence),
    The New View on Machine Intelligence.
    Because There is nothing Artificial about it!
    1280 x 1024 - 145K
    1280 x 1024 - 137K
    1280 x 1024 - 151K
    1280 x 1024 - 157K
  • Areal PersonAreal Person Posts: 197
    edited 2006-12-21 17:04
    Thanks Captain !

    I really needed that, it really helps a TON, you explained that very well.
    I'll need to review and study the information over and over again. but, I'm
    going to do that setup as soon as I can get a FRAM chip.

    That is really a nice example.

    Thank you very much for that.
    -Areal

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I have a tree growing out of my head, but

    what do you expect ? I'm a programmer.
Sign In or Register to comment.