EEPROM DATI viene corrotta

S

ShuklaS

Guest
salve,
stiamo usando eeprom 24c01A EEPROM DATI per qualche ragione danneggiati in modo casuale
per favore fatemelo sapere se qualcuno visto tale problema
Grazie

 
Come hai fatto a dire che i dati sono corrotti?

Ho avuto questo problema prima.Io non sono in grado di leggere i valori corretti che voglio.

Ecco il motivo.

Ecco la spiegazione data da Les su questo: (copiato da www.picbasic.org)Il compilatore non è esente da colpa, ma la vostra comprensione di accesso EEPROM non è completa.EEPROM non sono come ad accesso casuale come la gente pensa, lavorano con le pagine.Alcuni EEPROM hanno una pagina di 8, 16, 32 o 64 byte.Il 24LC128, 24LC256 e hanno limiti di pagina di 64 byte.

Se si esamina il foglio per la EEPROM, vedrete due forme di scrittura, pagina di accesso e scrittura casuale.La scrittura casuale deve essere all'interno di un limite di 64 byte, e non può attraversare senza prima l'invio di un ordine di arresto e di attesa per la memoria da assegnare nella matrice della EEPROM.

Così i confini sono compresi tra 0 a 63, 64-127, 128-191 e così via.

Il tuo codice scrive in multipli di 6 byte, senza un comando di STOP di essere inviato al bus I2C, così quando il conteggio raggiunge 64, l'eeprom tenta automaticamente di scrivere una pagina, e ignora tutti gli altri comandi sul bus finché non è finito, ma il codice sta ancora cercando di scrivere un altro 4 byte. vale a dire 60 a 63.

Quando si eseguono ad accesso casuale ad una EEPROM, deve essere su un trasferimento di un singolo byte, non più potrebbe violare il protocollo.

La lettura da una EEPROM è veramente ad accesso casuale però.

Provare a modificare il codice in modo che il passo è di 8 nel ciclo for successivo, e scrivere e leggere 8 byte alla volta.Questo in grado di curarla.

 
salve,
La ragione di dire che il mio dataget danneggiato è che sono in grado di leggere e scrivere in modo corretto di 100 tempo 99 tempo sono in grado di leggere il valore currectly

 
Ci possono essere molte ragioni per questo.
1) Non sono in attesa per 10 ms in scrittura ciclo di ottenere completo prima di iniziare il nuovo ciclo di scrittura.
2) il vostro orologio I2C è troppo veloce.superiore a vostra specifica velocità EEPROM (cioè 100kHz e 400kHz)
3) Scrivere pin Protect di EEPROM viene lasciata oscillare.Anche se il foglio di dati indica che si può conservare galleggianti (internamente tirato giù), vi consiglio di terra esternamente o utilizzare microcontrollore pin I / O per attivare la scrittura solo durante ciclo di scrittura.

 
Grazie fratelli questi suggerimenti sarà sicuramente aiutare le api nuovo, come me, sul fronte dei microcontroller.

 

Welcome to EDABoard.com

Sponsor

Back
Top