|
|
View previous topic :: View next topic |
Author |
Message |
Guest
|
looking for code: FM25c256 |
Posted: Wed Nov 16, 2005 8:29 am |
|
|
Did anyone wrote SPI driver for this device ?
Where I can find a working code for it ?? |
|
|
Humberto
Joined: 08 Sep 2003 Posts: 1215 Location: Buenos Aires, La Reina del Plata
|
|
|
treitmey
Joined: 23 Jan 2004 Posts: 1094 Location: Appleton,WI USA
|
|
Posted: Wed Nov 16, 2005 9:44 am |
|
|
My code is I2C, and it is for the FM24C256.
not the FM2 5 C256
Last edited by treitmey on Wed Nov 16, 2005 9:46 am; edited 1 time in total |
|
|
Guest
|
|
Posted: Wed Nov 16, 2005 9:45 am |
|
|
It's I2c and not SPI .. |
|
|
Guest
|
|
Posted: Thu Nov 17, 2005 6:18 am |
|
|
anyone can help here ?? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Nov 17, 2005 2:50 pm |
|
|
They don't call it FM25C256. They call it FM25256 or FM25L256.
http://www.ramtron.com/doc/Products/serial.asp
If you look in the CCS driver directory for all drivers starting with "25",
you see these files:
25C080.C
25040.C
25080.C
25160.C
25320.C
25640.C
If you look in the data sheet for the FM25256, you see that it uses
commands such as WREN, RDSR, etc.
http://www.ramtron.com/lib/literature/datasheets/FM25256ds_r2.1.pdf
Then if you look in the CCS driver files above, the first file 25c080.c
doesn't use those commands. So that's not it. The other ones do.
So then browse all those files and pick the one that has the EEPROM_SIZE
that's closest to the FM25256. That would be the 25640.C file.
It's eeprom size = 8192. That's important because in the FM25256,
the address field requires 2 bytes. So you want a driver that is for
a compatible eeprom that has a 2 byte address field.
Then go to Microchip data sheet finder, select Serial eeproms, and
select 25LC640.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2046
Then download the data sheet for it.
http://ww1.microchip.com/downloads/en/DeviceDoc/21223G.pdf
Compare the data sheets between 25LC640 and FM25256. They look
mostly the same. One obvious difference is the Status Register.
In the 25LC640, bit 0 is the WIP bit. If it's = 1, the eeprom is busy.
In the FM25256, this bit is always a constant 0. ie., for the Ramtron
chip, you don't have to wait for the eeprom to be "ready".
The timing diagrams for the read and write operations look similar.
Then take a quick look at the CCS driver, 25640.C. Check to see
if they're doing any masking operations on the address which might
cause us problems, because the FM25256 uses all 16 address bits.
We don't want any of them to be masked off, as people sometimes
do before they output the address for eeproms that don't use all 16
address bits. Looking at the code, it looks OK. No masking is done.
Then next, look at this CCS routine in 25640.C: ext_eeprom_ready()
This routine reads the status register and returns the inversion of
the WIP bit. ie., if the eeprom is ready, the routine returns a 1.
The Ramtron chip is always "ready". So this routine could be left in place.
It will slow down the code somewhat, because you don't need to check
the WIP bit for the Ramtron part. To increase the driver speed, you
could comment out all checks for eeprom ready. There are a couple
places where it has this statement:
while(!ext_eeprom_ready());
Just comment them out.
So based on this analysis, the 25640.C driver will probably work with
the FM25256. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|