I'm gonna design a board which data logging it's mandatory! I don't think that i have sufficient space in pcb for large parts but i want an embedded flash (dedicated IC). For handling unexpected power downs the system must storing data every time which is determined by some interval value (seconds). Data have string format with undefined lenth. And i need to store that data in an embedded flash memory. Data comes from, sensors and other peripherals such as power supply monitoring.

  • Who memory type is best for that purpose? (NAND or NOR)?

I will glad with a >4MB memory capacity. In a little research i find that NAND flash have small amount of pages with large capacitance and this will consumes more W/E cycles.


  • 1
    \$\begingroup\$ Is your uC/processor powerful enough to support a file system layer? \$\endgroup\$ – Fizz Sep 27 '15 at 12:10
  • 1
    \$\begingroup\$ To give you a quick general answer, NAND is generally preferred for sequential/logging style data... \$\endgroup\$ – Fizz Sep 27 '15 at 12:26
  • \$\begingroup\$ @RespawnedFluff my uC is an ARM Cortex-M7, i think it's powerfull enough. But i will not using some OS, \$\endgroup\$ – MrBit Sep 27 '15 at 12:35

If you're looking for something which can withhold many write cycles you might want to to look at FRAM (e.g. from Cypress). Basically unlimited Write/Erase cycles. Of course, this comes at a cost. If you're looking for large storage, go for NAND but make sure that you do not write to the same sector/page again and again.

  • \$\begingroup\$ en.wikipedia.org/wiki/Ferroelectric_RAM \$\endgroup\$ – Fizz Sep 27 '15 at 12:42
  • \$\begingroup\$ Yes, i know that writing to same page it's a little painful for NANDs (and NORs). I'm between nor and flash memories. How easy it may be the NAND flash interface? \$\endgroup\$ – MrBit Sep 27 '15 at 12:47
  • \$\begingroup\$ Last I looked, FRAM devices were more like 128KB than 4MB ... has that changed? \$\endgroup\$ – Brian Drummond Sep 27 '15 at 19:06
  • \$\begingroup\$ 4MBit are available: cypress.com/products/4-mb-f-ram. 4MByte not, nvSRAM would be another option \$\endgroup\$ – Tom L. Sep 27 '15 at 19:33

I realize you mentioned using a dedicated IC, but I believe the easiest way to add a device for data logging in a reasonably small space is to use a microSD card. The connection to the microcontroller is a four wire SPI bus (CLK, SDI, SDO, and CS). Because of their high volume, they are very inexpensive -- 8 GB for $5 on Amazon, probably less on eBay. These happen to use NAND flash, but that's transparent to the user.

You don't need an operating system, you can just write to it as individual sectors. Because the space is so huge, there is no issue of wearing out the card. The spec for the SPI interface to SD cards is publicly available, and there's also lots of code for writing and reading to the card around.

If you want to add the code to implement a FAT file system, then you could remove the card and read it in a PC. There's a lot of code around to do that also.

  • \$\begingroup\$ I think removable feature of microSD card may cause data corruptions. The memory must stay always attached in system to prevent data loss by unexpected power downs. But i understand the flexibility and useful of that memory type. \$\endgroup\$ – MrBit Sep 28 '15 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.