I have a basic question about EEPROM. It says in the reference tab of the arduino site "An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it." can someone tell me what this means? does it mean that i can only write it 100, 000 times and then i have to replace my arduio chip or i can't write to it anymore? i am using the arduino uno chip.
Imagine a FET (field effect transistor). Apply a charge to the gate and the FET conducts.
Now, imagine a memory cell (one bit) consisting of a FET, but no direct connection to the gate (there is an insulator layer between the gate terminal and the junction itself).
So, applying a "normal" charge to the gate terminal will do nothing because it's blocked by an insulator.
But, put a higher voltage (say 12, 15 even 21 volts) on that gate and a charge (electrons) will "tunnel" through the insulator and fill up the region between the FET junction and the gate.
Now the FET is conducting. Remove the "high" voltage and the charge stays trapped. The FET always conducts.
You have just programmed one EEPROM cell from logical 1 to logical 0.
The chip can run on 3.3 volts or 5.0 volts and self program because it has a built in CHARGE PUMP that generates the high programming voltage.
Now imagine a large array of these FETS... says 16384 of them (a 128 x 128 matrix). You now have a 2K by 8 bit memory matrix.
To change the programming of the EEPROM, the charge in each cell you wish to change must be removed, (making that byte all 0xFF), then program the appropriate zeros to store the new pattern.
To erase the floating gate, you need either to expose the chip to ionizing radiation (a short wave UV lamp) - (EPROM), or apply a "high" opposite charge to the cell to "draw out" the stored electrons (making the FET stop conduction). This is an EEPROM (EE=Electrically Erasable). Then a new pattern of zeros can be programmed in.
The problem is, forcing electrons back and forth through the insulating layer gradually damages it at the atomic level. It's insulation qualities deteriorate and eventually (after, say, 100,000 cycles) the insulator "leaks" enough that a programmed zero drains out and returns the cell to a logic one. At this point the EEPROM is ruined (won't hold data anymore). The data literally "leaks out" and the chip eventually returns to all 0xFF.
Hope this answers your question.