we used to use serial flash 25P80 from ST, but seems not making it anymore. Micron does have a whole series of serial flash, they have th 25P series upto 2Gb.
SDCARD is a natural for data logging. emFile component in
This is for PSOC 4 -
One thing to look out for is block size. When working with flash memory, one usually needs to write full block (for the large ones this is typically 4k). So you would need to collect data in RAM to be able to write out one block at a time. Otherwise you need to read the block, add the new data and write it back (in effect this writes the block multiple times, wearing it faster).
For sizes up to 2MBit there are EEPROMs available, that can to byte-based writes (only delete needs to be done block-wise). The Cypress FRAMs and NVRAMs should be much better in that regard, too.
The 25pe series has PAGE WRITE that you can program one byte upto one block. The rest of the block would be copied back with the new byte after the block being erased. Yes, it would means using one erase cycle, but that means you don't need to do operation of yourself, it is all taking care of by the chip.
Typically, the page size corresponds with the memory size. For the single MBit versions its most times like 128 or 256 bytes, for e.g. the 64MBit its in the 4k range.
OTOH the PAGE_WRITE functionality is surely nice and very helpful. In that regard this chips works more like an EEPROM...
Yes, it is handly but the downside is it takes a bit longer then EEPROM. So it is a trade off by the designer.
Also need to remember that the Erase/write cycle of flash is normally lower than EEPROM. Both type has pros and cons.
Luckly，I find the M25P32. But I don't know how to use the chip with psoc5.
Would you please give me some example project about the M25P32?
There are a number of sample projects available for how to use I2C on the PSoC5. Just right-click on the component (in the component selector).
The read the datasheet for the M25P32, it explains in detail how to communicate with it (maybe start by reading the ID, the write something and read it back)
The m25p series uses SPI.
1. Control ths cs signal yourself. Do not use that from the compoment.
2. Make sure it is the right mode.
3. Try use slower speed first. Change it to a higher speed later.
4. Remember the dummy access for the 1st read.
5. Try to do read the id first as suggested by hli. Do the read/write later.
How to make PSoC to boot and read program instructions from external ROM?
I think I need bootloader which will prepare memory read functions or remap address ranges.
Actually I don't know how.
The only way you could do this is load code segment into RAM and execute from
there with an ASM jump.
PSOC does not allow for internal address space to be exposed externally to
permit an address mapping decoding scheme.
Or a boot loader as you suggested.
http://www.cypress.com/?rID=50230 AN68272 UART BL PSOC 3, 4, 5LP
http://www.cypress.com/?rID=41002 AN60317 I2C BL PSOC 3, 5LP
http://www.cypress.com/?rID=57561 AN73503 USB HID BL with GUI Host PSOC 3, 5LP
http://www.cypress.com/?rID=56014 PSoC® 3, PSoC 4, and PSoC 5LP Introduction To Bootloaders
http://www.cypress.com/?rID=83293 AN86526 - PSoC® 4 I2C Bootloader
http://www.cypress.com/?rID=50230 AN68272 - PSoC® 3, PSoC 4 and PSoC 5LP UART Bootloader