Hot answers tagged

74

You can't use a EEPROM or any other storage means that is digital without first converting your signal to digital. Using a microcontroller is the obvious and simple way to do that. However, if you really want to satisfy your inner cave man, acquire one of these: This stores analog data from a few 10s of Hz to a few kHz. You'll have to consult some clay ...


68

The first ROM devices had to have information placed in them via some mechanical, photolithographic, or other means (before integrated circuits, it was common to use a grid where diodes could be selectively installed or omitted). The first major improvement was a "fuse-PROM"--a chip containing a grid of fused diodes, and row-drive transistors that were ...


36

No, you can't store an analog value as-is on a digital storage medium like an eeprom or an SD card. You could do an analog-to-digital conversion (using an appropriate chip) to convert your analog to digital. For the next step, writing to an SD-card practically requires a processor. If you really don't want to use an MCU you would end up designing and ...


28

Spoiler: EEPROM is in fact Flash. As supercat's answer brilliantly pointed out, EEPROM is an evolution of the older UV-eraseable EPROMs (EEPROM's "EE" stands for "Electrically Eraseable"). However, despite it being an improvement to its old pal, today's EEPROM's way of holding information is the exact same of the flash memory. The ONLY major difference ...


28

It is very simple. Number of pins and cost of packaging. EEPROM devices are primarily used to store parametric data or characterization constants for a device. The typical scenario is to write very seldom and read typically once each time the host device boots up. For this type of application the relatively slow writing times of EEPROM are of little ...


26

To be pedantic, FLASH memory is merely a form of EEPROM: There is a marketing / branding aspect here. Typically, the distinction used today is that EEPROMS are single-byte (or storage word) erasable / rewritable, while FLASH is block-based for erase/write operations. Relevant to the question: EEPROMs continue to be popular due to maximum erase/write ...


26

The EEPROM acronym has some history which follows the development of the technology. ROM: Read-Only Memory. Written at the factory. PROM: Programmable Read-Only Memory but programmable (once) by the user. Really a one-time programmable, forever readable memory. Get it wrong and you dump the chip. EPROM: Eraseable Programmable Read-Only Memory. Usually ...


24

All STM32 MCUs have self-programmable flash memory. If you need to store user settings, you can store them in an area of flash. ST provides a library to perform EEPROM emulation on the STM32F4. (There are similar libraries for most of their other parts as well.) Even if you don't plan on using that library, their application note explaining how it works may ...


22

Flash is a type of EEPROM (Electrically Erasable Programmable Read-Only Memory). "Flash" is more of a marketing term than a specific technology. However, this terms has sortof converged to mean a type of EEPROM that is optimized for large size and density, usually at the expense of large erase and write blocks and lower endurance.


22

You cannot extend the program memory (flash). TI produces the same chip with double the flash and RAM, but nothing else changed: TM4C1230D5PMI. If you cannot use a chip with larger flash, you will have to reduce your code size: Disable debugging, such as the expensive printf function. A printf that supports floating point output will typically set you ...


20

The technique I normally use is to prefix the data with a 4-byte rolling sequence number where the largest number represents the lastest / current value. In the case of storing 2 bytes of actual data that would give 6 bytes total and then I form into a circular queue arrangement so for 128 bytes of EEPROM it would contain 21 entries and increase endurance 21 ...


20

I am going to discuss flash memory programming, but a lot of material will be similar to EEPROMs (Electrically Erasable Programmable ROM), since flash memory was derived from EEPROMs in the mid 1980's. As described below, from a physical standpoint, the default state is 1's. But more importantly, I'm going to explain why there is a default state -- you can'...


18

The number of write cycles most EEPROMs can handle generally far exceeds the number of write cycles most flash memory can handle. EEPROMS can generally handle ~100,000-1,000,000 writes per cell. Flash is generally rated to ~1,000-100,000 writes (it varies heavily depending on the type of flash). Another advantage EEPROM has over flash is that flash ...


17

Nowadays, Flash memory is used to hold program code, and EEPROM (Electrically Erasable Read-only Memory) is used to hold persistent data. Back some 30 years ago, before Flash came along, EEPROMs were used to hold program code. Actually ROM (Read-Only Memory) came first, then PROM (Programmable ROM, once only), EPROM (PROM Erasable with UV light), EEPROM, ...


16

No, there is no minimum frequency, minimum clock frequency is 0, or DC. See the specification, page 48. But you will have to pay attention to rise and fall times. Those are 1000 ns and 300 ns maximum, resp. And a longer cable, with some capacitance will influence edges, regardless of frequency. It's that capacitance, together with pull-up resistances ...


16

I would not write every event to EEPROM. Most of the time you will have power, so keep the live count in RAM. The amount of energy it takes to save the live value from RAM to EEPROM is pretty minimal. Use a capacitor to store enough energy to run the micro long enough after power fail is detected to copy the live data into EEPROM, then shut down cleanly. ...


16

What you are trying to do sounds like logging. There are lots of data loggers out there sold commercially. If you want to log voltage readings you can try googling "voltage logger". Such devices write a log file to a storage device (sd card, thumb drive etc.) from sensor readings. Technically this uses an MCU internally. But you never see the MCU, you ...


13

It's a 64k bits device, i.e. 8k bytes, which needs 13 address lines: \$2^{13}\$ = 8192 = 8k bytes. The Winbond device is indeed 64k bytes. Looking at available devices at Mouser I noticed that 64K devices are not that common, and not at all in DIL package. It may be better to use two 32K devices, they seems more common, but still expensive. Maybe your ...


13

First of all: Memory IC nomenclature is not robustly standardized; There is a lot of variation and even conflicting coding between manufacturers, on the order and meaning of the codes making up the part identifier. That being said, here is an attempt at providing an overview: The initial 2-digit code is the device family. A leading "24" indicates a I2C ...


13

In the early days, wires were cheap and transistors were expensive. These days it's the reverse. Hence why almost everything is done serially. In the early days, chips weren't very sophisticated, and a CPU would power up and read the first thing it found on its memory bus at the starting address, so parallel EEPROMs effectively mimicked the DRAM that was ...


12

It's not just write cycles that's specified, but erase/write cycles. On the AVR EEPROM can be erased by byte. Erasing sets all bits to 1, writing selectively clears bits. You can't program a 1, just 0s. If you want to set at least one bit to 1 you have to erase that byte. Erasing removes the charges from the FET's floating gate, but on each erase cycle some ...


12

Are you sure the professor wasn't referring to UV-erasable EPROMs, like they were used until the 90's of last millennium? You do mention EPROM, not EEPROM. Those can easily be erased by sunlight. Our "sunbed", as we called our eraser at the time, took 20 minutes to erase an EPROM. Datasheets for both UV-erasers and EPROMs mention a typical wavelength ...


12

http://searchsolidstatestorage.techtarget.com/definition/NAND-flash-wear-out Failure mode of FLASH memory This problem is specific to Flash memory. It relies on using a higher than normal voltage to punch electrons across a thin insulating layer into what is effectively a capacitor on the gate of a MOSFET. The insulating layer is extremely thin and ...


12

The way to overcome the endurance limitation of EEPROM is to apply a wear-leveling algorithm. Basically for every record you want to store you allocate N-times the memory requirement to it, and an corresponding space for N-index values, then use inference to figure out which is the "current record" and which is the next record to write to. It's well ...


12

Another solution could be to use a microcontroller with non-volatile FRAM. FRAM doesn't suffer from the same limitations on write cycles as EEPROM. Some of the MSP430 products from TI are available with FRAM, here's a link to an application similar to what you describe: MSP430 with FRAM save state on power failure Here's the Wikipedia article on FRAM: ...


12

No and Yes. No, because as alex.forencich points out most MCUs use NOR flash. This greatly simplifies MCU architectures, as it allows them to fetch and begin executing a single instruction at a time. This is almost certainly how 8-bit AVRs, and PICs, and so on operate. Yes, because some architectures use wider buses on their flash interfaces, pre-fetch, ...


11

At this writing, there are two "answers" that are total guesses - and wrong at that too. These comb structures are as you might expect to see when you want to induce breakdown at a precise location and into controlled structures rather than else where in the chip. These are in the TOP metal layer, the combs are there to give lots of sharp edges to promote ...


11

No, your reasoning is not correct. Firstly, let's look at your maths. The device is 256kbits. That means that it contains an array of 32kbytes, which equals 32768 bytes. 32768 is 215, so an address can be represented using 15 bits, or rounded up, just 2 bytes. That is, you have addresses 00000000 00000000 to 01111111 11111111. You can tell all that by ...


11

Basically, the choice depends mainly on two criteria: whether the data to store is big or small, and whether it is rewritten often or not: EEPROM is great for small data that changes often. The reason is: it is sold only for small sizes, but they can usually be single-byte erased. Moreover, EEPROM endurance is very high (millions of cycles). Flash is great ...


11

I have this issue in a current project. The way I'm dealing with it is to keep the live value of the counter in RAM. I added a little bit of hardware so that the microcontroller can detect that the raw input power voltage is low. If so, it stops what it's doing, saves the live counter value in EEPROM, then waits watching the raw power voltage. If it goes ...


Only top voted, non community-wiki answers of a minimum length are eligible