Memories Forum Discussions
Browse the Community
Nor Flash
The NOR Flash Memory forum discusses critical safety features for automotive and industrial systems, and Semper NOR Flash Memory with ASIL-B compliant and ASIL-D-ready.
Hyper Flash
The HyperFlash NOR Flash memories Forum offers discussions on automotive advanced driver assistance systems (ADAS), automotive instrument cluster, automotive infotainment systems, and communication equipment.
Hyper RAM
HyperRAM™ memory Forum discusses self-refresh DRAM operating on the 12-pin HyperBus interface. With a read throughput up to 333 MB/s, the HyperRAM for SoCs with limited on-board RAM providing external scratch-pad memory for fast read and write operations.
Non Volatile RAM (F-RAM & NVSRAM)
Non-volatile RAM forum discusses Technology such as F-RAM and nvSRAM, which combine non-volatile data storage up to 16Mbit density with the high performance of RAM. These low-power memories offer high endurance, high data retention and instant non-volatility without external battery back-up, enabling system reliability and cost reduction.
Featured Discussions
I was checking out a FM25VN10 FRAM (an SPI device) using a Raspberry Pi, trying to put together some code for a project which will need to access it in a design. I satisfied myself that I could read and write FRAM memory locations, as well as read out the serial number and device ID.
A few days later I ran the same code and found that all the serial number and device ID bytes read out as zero (the device ID 0x7f continuation bytes remained for some reason). Importantly, I saw that my previously-written data was still there. I changed out the chip and ran the same code again on the new chip, and read out a normal serial number and correct device ID.
Can there be an undocumented SPI command which might cause the zeroing of these fields? If so, is there some way to lock-out that functionality?
Show LessHello, I use FPGA to operate flash devices S29GL01GP by writing buffer programing, the system can write 32 words in one programing operation. I intend to write 128K byte data to flash each time, the signal wave in figure write.
But when I read the data from the flash, I can only read first 32 words data. All other data are 0xffff. the signal wave in figure read. Who can tell me this write way is correct or not?
Thanks for your attention and answer !
Show LessHello
Has anyone used an FRAM such as the CY15B104Q-LHXI to program a Xilinx Spartan 6 like the XC6SLX16-2CPG196I (Xilinx will have master SPI controller)?
Has this been successfully done? We rather use the FRAM technology for our product but we are not sure if they are compatible. Please assist.
Thanks
Show LessHello ,
I'm working on S25FS512S QSPI.
I looking for pre program to QSPI.
Do you have third party or suggestion programmer tool.
Thank you
Nattapong,
Show LessWe have been using the S29GL01GP11FFI020 and S29GP0512P11 Flash Memory chips since about 2008. We have a lot of experience with them and have shipped a large number of products with them.
I have been trying to speed our product up, and have been taking detailed measurements of the programming speed.
Which is given in the Data Sheet as "Typ 60us for one word" and "480us for 32 words for Write Buffer Programming".
I'm measuring the chips as being nearly three times slower for single word writes, and 2.4 times faster for Write Buffer operations than those figures, and would like to understand why.
The terminology I'm using below is complicated by our having two FLASH chips in parallel across a 32-bit bus. We're programming them in parallel and monitoring the RY/BY#" pin for completion. So when I write "4 bytes", they're being written as two 16-bit words into the two chips at the same time with the same operation. The "32-word Write Buffer" operation writes 128 bytes.
I've compared single writes and "Write Buffer" operation writing a single word and they seem to take about the same time. It doesn't seem to take longer to program "a buffer with only one valid word in it" than a single word.
Our hardware has a dedicated microsecond counter in the CPU, and I'm disabling all interrupts while taking the following measurements. The first column is a timestamp in seconds and milliseconds. The "764" is the line in the code that is printing. "4" is the number of bytes written (as a single 32-bit write into the two chips in parallel). "A:Bus" means is took "A"us to write the commands and data into the chips, and then it took "B"us until they signaled "Ready".
014.418 flash_write_page:764 4 4:142us
014.498 flash_write_page:764 4 2:77us
014.578 flash_write_page:764 4 2:143us
014.658 flash_write_page:764 4 4:159us
014.738 flash_write_page:764 4 4:142us
014.818 flash_write_page:764 4 2:159us
014.898 flash_write_page:764 4 3:159us
014.978 flash_write_page:764 4 2:160us
014.978 flash_write_page:764 4 3:76us
015.058 flash_write_page:764 4 4:161us
015.138 flash_write_page:764 4 3:176us
015.218 flash_write_page:764 4 2:160us
015.298 flash_write_page:764 4 2:159us
015.378 flash_write_page:764 4 2:159us
016.018 flash_write_page:764 8 4:175us
016.018 flash_write_page:764 4 3:142us
016.098 flash_write_page:764 4 3:175us
016.178 flash_write_page:764 4 3:158us
016.258 flash_write_page:764 4 2:176us
016.338 flash_write_page:764 4 3:161us
016.418 flash_write_page:764 4 3:172us
016.498 flash_write_page:764 4 3:158us
016.578 flash_write_page:764 4 4:158us
016.658 flash_write_page:764 4 3:175us
016.738 flash_write_page:764 4 3:175us
016.818 flash_write_page:764 4 3:159us
016.898 flash_write_page:764 4 3:159us
016.978 flash_write_page:764 4 4:155us
017.058 flash_write_page:764 4 2:143us
017.138 flash_write_page:764 4 2:175us
017.218 flash_write_page:764 4 3:142us
017.298 flash_write_page:764 4 2:143us
017.378 flash_write_page:764 4 3:142us
017.458 flash_write_page:764 4 3:142us
017.538 flash_write_page:764 4 3:174us
017.618 flash_write_page:764 4 3:177us
It gets down to 76us (close to 60us, but still more than that) sometimes. In 576 writes, it only managed around 70us 9 times. That's 1.6%. The rest of the time it averaged around 160us.
Checking the data written, it seems to manage "76us" about half the time when writing all zeros, and always takes a lot longer for other numeric values (with more ones-bits in them).
Does the programming time depend on the number of ones and zeros in the data being written?
Since I've got two chips in parallel, I'm measuring the time to the slowest of the two chips. It only manages to be "fast" when both chips are "fast".
Here's how long it takes to write 128 bytes (full 32-word Write Buffer). The last three values printed are the last words written into the Flash. For this test it is mainly writing all-zeros. It is always a LOT faster than the specified 480us:
004.245 flash_write_page:764 128 10:187us 0 0 0
004.248 flash_write_page:764 128 10:166us 0 0 0
004.248 flash_write_page:764 128 10:195us 0 0 0
004.250 flash_write_page:764 128 10:235us 0 0 0
004.255 flash_write_page:764 128 10:221us 0 0 704
004.258 flash_write_page:764 128 10:210us 0 0 46137344
004.259 flash_write_page:764 128 10:160us 0 0 0
004.261 flash_write_page:764 128 11:168us 0 0 40173568
004.264 flash_write_page:764 128 10:206us 0 0 0
004.267 flash_write_page:764 128 10:205us 0 0 0
004.267 flash_write_page:764 128 10:204us 0 0 0
004.271 flash_write_page:764 128 10:160us 0 0 0
004.274 flash_write_page:764 128 11:196us 0 0 0
004.278 flash_write_page:764 128 10:237us 586 0 0
004.279 flash_write_page:764 128 10:176us 0 0 0
004.281 flash_write_page:764 128 10:164us 0 0 0
004.284 flash_write_page:764 128 10:163us 0 0 704
004.287 flash_write_page:764 128 11:221us 0 0 0
004.287 flash_write_page:764 128 11:200us 0 0 0
004.291 flash_write_page:764 128 11:191us 0 0 0
004.293 flash_write_page:764 128 11:198us 0 0 0
004.293 flash_write_page:764 128 10:166us 0 30736384 0
Can anyone help me with explaining and understanding this variability?
Thanks,
Tom
Hi
I am trying to download the sample driver code for S25FL series, but the website seems to be non-responsive. Can anyone please send me a copy if you have?
Thanks,
Show LessHi all,
I use low level driver to write/read flash S25FL164K OK.
But when i want to rewrite the previously data written then not OK.
When write/read i use function slld_WriteOp/slld_ReadOp.
My write data only 4byte, if i erase (minimum of 4k bytes) then rewrite ok but waste of flash memory.
Is there another solution I make the rewrite??
Thanks you very much for all!
Show LessHi,
I like to know if there is a list of equivalent cypress spi nor flash memories to be used as configuration devices with Altera Cyclone V FPGAs.
Altera has EPCQ16/ 32/ 64/ 128 flash memories. I like to get cypress compatible spi nor flash for that application.
Thanks,
Han
Show Less