Newsgroup: it.hobby.elettronica.digitale
Titolo: EEPROM - ST6

Ho realizzato con un ST62E60 un dispositivo che, tra l’altro, ogni tre
minuti circa effettua una scrittura in modalità parallela di 8 byte
sulla Pag. 0 della EEPROM.
Tutto funziona bene ma A VOLTE quando leggo la EEPROM ottengo valori
senza senso.  :-(
Dopo aver verificato di non aver fatto errori in fase di scrittura
(disabilito la memoria alla fine della scrittura e della lettura della
EEPROM, verifico, interrogando il registro di controllo, se è conclusa
la fase di scrittura precedente prima di iniziare una nuova scrittura),
mi sto chiedendo se la richiesta di un timer interrupt durante la
routine di scrittura possa creare problemi, pur non usando il registro
di controllo dell’EEPOM nella routine di interrupt.
Insomma, ha  senso disattivare il timer interrupt durante la fase di
scrittura ( e lettura ) di una EEPROM ??
Quali altre cause possono giustificare il comportamento  di una  EEPROM
che si prende la libertà di  memorizzare dati  sbagliati ?
Grazie per l’aiuto
---
Francesco

Francesco
Io personalmente ho riscontrato sugli ST62xx con EEprom un
problema che si verifica all'accensione. In pratica qualche volta
capita che alcune locazioni della EEprom vengano inspiegabilmente
sovrascritte senza motivo. E tutto questo indipendentemente dal
fatto che la EEprom sia protetta da scrittura all'accensione dell'ST.
Il perche' non lo so ma purtroppo e' cosi'.
In pratica dovresti proteggere i dati con dei codici di controllo
e correzione di errore che permettano di ripristinare i dati in caso
di corruzione.
Ciao, Massimo - IW1FDX
E-Mail    
max...@libero.it
Visita la pagina dedicata ai microcontrollori ST62
all'indirizzo 
http://digilander.iol.it/max4000

 Il perche' non lo so ma purtroppo e' cosi'.
Tutto ciò è terribile ed incredibile!
Possibile che ad un errore così grave la STMicroelectronics non abbia posto
rimedio ??
Forse è necessario settare  il registro di controllo EEprom in fase di
inizializzazione (quando si definiscono le porte, per intenderci)....
Sono turbato e confuso ... anche perchè la soluzione che mi proponi non è
una soluzione, infatti se all'accensione il micro  sovrascrive sulle mie
locazioni di memoria, il massimo che posso fare con i codici di controllo è
accorgermene ma non certo ripristinare i valori precedentemente
memorizzati.
---
francesco

 francesco
Ho perso un po' lo smalto ma sono certo di aver letto un AN di ST circa
l'affidabilità di eeprom. Osservando alcune regole è sicura. Cerco il doc
e lo posto se non lo fa qualcun altro prima.

memorizzati.
Ti assicuro che io ho provato di tutto ma il risultato e' stato sempre
lo stesso. Ho provato anche a spegnere la EEprom come prima
istruzione dopo un reset non cambia nulla (daltronde all'accensione
la EEprom parte spenta).
Tutto questo l'ho provato sull'ST6230 ma non credo che ci siano
differenze rispetto all'EEprom dell'ST6265.
Le soluzioni che puoi adottare sono essenzialmente 2 :
1) Aggiungi della ridondanza per permetterti non solo la rilevazione
ma anche la correzione degli errori.
Ad esempio per non usare algoritmi complicati che sarebbero anche di
difficile realizzazione su ST62 puoi memorizzare i dati 2 volte due
pagine diverse ed eseguire un checksum su 8 byte alla volta. Quando
un Checksum risulta errato copi il contenuto degli 8 byte dell'altra
pagina sulla prima.
Non e' certo una gran comodita' ma funziona.
2) Usare una EEprom esterna di tipo SPI, MicroWire o I2C.
In particolare ti consiglio le I2C che con le 24cXX ti garantiscono
capacita' da 1Kbit a 256Kbit.
Purtroppo la SGS non e' nuova a difetti non dichiarati...


 Non e' certo una gran comodita' ma funziona.
Credo che questo possa risolvere il problema. Infatti è ipotizzabile che la
scrittura indebita avvenga solo su una sola pagina per volta.
Grazie per l'aiuto e complimenti per il tuo sito che ho già messo nel mio
segnalibri.
-----
francesco

 e lo posto se non lo fa qualcun altro prima.
Grazie, penso che mi sarą utile. Mentre lo attendo, farņ anch'io una ricerca sul
sito della ST.
---
Francesco

 Francesco
Ho trovato solo la AN671, parla di abilitare la eeprom con il registro di controllo
ogni volta che si va ad usarla, ed a disabilitarlo a fine scrittura/lettura: cosa
che immagino già sapevi. La soluzione hw è riguardante fronti lenti di salita
dell'alimentazione.
Bye, Rik.