[sdiy] a provoking question about time

ASSI Stromeko at nexgo.de
Sun Jun 26 20:27:19 CEST 2022

On Donnerstag, 23. Juni 2022 11:34:04 CEST Roman Sowa wrote:
> what are your concerns about flash retention time in microcontrollers?

There's usually something else in the system that will fail years before that 

> Usually PIC18 and PIC16 claim 40 years in datasheet, but dsPIC only 20.
> I've seen corrupted memory in products made about 15 years ago with
> dsPIC, so datasheet value seems real.

If it wasn't programmed with their "professional" programmer, the datasheet 
values are void and even then there are other failure modes that affect memory 
integrity that produce similar lifetime / failure rate profiles.

> One way to do it is to rewrite all memory from time to time, but how to
> do that? Even if there's real time clock running, the user may always
> change the date, and if it's not alowed, the battery or supercapacitor
> may die, or get ripped away. My idea is to clearly state somewhere, in
> manual, or on the device "please run maintenance procedure if it's year
> ending with 0 or 5" but I'm affraid nobody will do that anyway, and it
> seems foolish.

If you are thinking of overwriting a Flash block with the same data (no 
erase), all you're gonna do is to slowly destroy the data via program disturb 
(which is also data-dependent).  Flash is meant to be erased by blocks and 
programmed by word-lines, each cell just once per cycle.

If the Flash in question offers a margin read operation: use that after 
programming to weed out parts that did not program well or had latent defects.  
You can sometimes do that even during normal operation (say on boot), i.e. 
compare a normal and a margin read to get early warning of impending data 

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:

More information about the Synth-diy mailing list