Newsgroup: it.hobby.elettronica.digitale
Titolo: consistenza dati nella RAM

Salve, se io ho un micro (pic16) che deve rimanere acceso sempre (magari sta 
acceso 1 anno senza mai essere spento), posso fare affidamento ai dati che 
ho nella RAM, oppure rischiano di "rovinarsi" ?
grazie 

ho nella RAM, oppure rischiano di "rovinarsi" ?
Hanno la stessa probabilità di 'rovinarsi' che il resto del µC, l'unico modo di
modificare i dati è quello di scriverci sopra.
--
ciao
  Stefano

 modificare i dati è quello di scriverci sopra.
Il che pero' puo' avvenire anche per errore, ad esempio per un disturbo 
esterno, che agisce direttamente sull'hardware o che fa anche solo 
crashare il software.

 che ho nella RAM, oppure rischiano di "rovinarsi" ?
Penso ci siano pochi dispositivi creati per rimanere spenti sempre ;-)
La ram è una parte dell'elettronica che compone il micro e non vi è nessun 
motivo per il quale un dato in ram si possa alterare autonomamente.
Altra cosa sono invece bug sw o eventi esterni/microinterruzioni/reset del 
dispositivo, che se non opportunamente e correttamente gestiti potrebbero 
creare problemi.
In ogni caso i dati 'importanti' andrebbero salvati sotto ram tamponata o in 
eeprom (a maggior ragione se sono sempre gli stessi dati e non sono 
modificati per un anno...).
In alucni dispositivi (dove/quando possibile) sono implementati cicli di 
reset automatici (in genere giornalieri) che consentono di ripartire sempre 
da una situazione 'certa' (es. distributori automatici).
Roberto P. 

> affidamento ai dati che ho nella RAM, oppure rischiano di "rovinarsi" ?
Ho letto il messaggio varie volte, prima di convincermi che 
il tuo dubbio fosse la consistenza dei dati in ram malgrado 
ennemila letture e scritture.
La ram dovrebbe rimanere coerente!
my 2 cents.
ciao
Angelo

*FeDe* ha scritto:

Con i circuiti elettronici il rischio c'è sempre, specie se il dispositivo
non è più che protetto contro i disturbi esterni anche forti.
Inoltre potrebbe accadere che una cella della RAM si guasti, nulla è
eterno.
Se proprio la cosa riveste molta importanza, allora sarebbe bene
provvedere a salvare di tanto in tanto i dati su una memoria flash.
Col che si aumenta la sicurezza riducendo (non eliminando) il rischio.
 
Andrea
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

marcoangelo.r ha scritto:

Scusate, mi sono accodato al messaggio/mittente sbagliato, 
volevo rispondere a *Fede*
Angelo

 motivo per il quale un dato in ram si possa alterare autonomamente.
Dal punto di vista ideale questa affermazione è vera.
Sfortunatamente noi, i micro, le RAM, viviamo in un mondo
reale che è ben diverso.
Perciò, con la tua stessa sicurezza assoluta, posso affermare che
che i dati delle RAM si alterano, se non autonomamente, a
causa di parecchi fenomeni fisici poco o per niente controllabili.
Tralasciando bug e altre cause antropiche, diciamo pure che
le probabilità che un bit cambi il suo stato per qualche evento
esterno sono generalmente trascurabili nelle normali applicazioni.
Tanto per fare un esempio, potrebbe essere una probabilità di
un evento ogni miliardo di anni per bit. Se però si hanno RAM
con miliardi di bit, ecco che la probabilità che avvenga un errore
diventa concreta.
Non per niente in tutte le applicazioni serie si usano ram con
controllo e correzione degli errori.

 controllo e correzione degli errori.
Le RAM con correzione di errore sono memorie *dinamiche*, gia'
intrinsicamente 'deboline', che non sono usate per le RAm dei 
microcontrollori,
Le RAM integrate nei micro sono sempre di tipo *statico*.
Se la RAM avesse problemi, mooolto probabilmente anche il resto
della CPU e relative periferiche sara' andato a rane, da un bel
po', rendendo ininfluente l' eventuale errore ;-)
ciao

grazie a tutti per le risposte.
Il dubbio mi è nato perchè sto scrivendo il firmware per una schedina che 
decodifica delle trasmissioni,
e confronta i dati ricevuti con dei dati presenti in eprom.
Siccome scorrere l'eprom diventava una procedura lenta, si è pensato che 
all'avvio i codici vengano copiati in ram,
ed i confronti vengono fatti in RAM (quindi molto velocemente).
Però appunto .. mi è sorto il dubbio che questi dati in RAM dopo 10 giorni 
.. o 100 o 300 potrebbero corrompersi ,
non per bugs software, o rotture hardware .. ma magari per qualche disturbo 
appunto .. oppure quant'altro!

 ha scritto nel messaggio 
news:Z%_pk.44075$Ca.1...@twister2.libero.it...

A tempo perso (del processore, ovviamente),
se ti senti più sicuro potresti sempre rinfrescare i dati rileggendoli da 
eeprom.
Lo ritengo però decisamente inutile.
Le probabilità di 'cancellazione' delle locazioni di confronto,sono le 
stesse
di cancellazione delle locazioni dello stack, che appunto in molti micro
è parte della ram, ma che renderebbe il 'guasto' molto più evidente,
con presumibile blocco del sistema.
Se carichi i dati da eeprom alla partenza del sistema,
li avrai coerenti fino ad una riscrittura o spegnimento/reset successivo.
E' importante però che utilizzi supervisori della tensione di alimentazione
esterni o che imposti opportunamente anche i limiti di reset/brownout
interni, in modo da evitare corruzioni dovute ad abbassamenti dell'
alimentazione esterna non correttamente gestite (dipende dall'hw che 
utilizzi
sul come implementare questi controlli).