Funzione PAGE WRITE con eeprom 24LC512
12 Anni 1 Mese fa #6
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Funzione PAGE WRITE con eeprom 24LC512
A prima vista mi sembra corretto, ma il ciclo con il 604 mi sembra un po' grandino.
Per vedere dove il programma si blocca puoi cambiare i codice di errore e metterli in progressione 1,2,3,4,5,6....
Quando richiami la funzione controlla il codice di errore e saprai dove si blocca il programma.
Non ricordo pero' se alcune delle funzioni I2C sia di tipo bloccanti, in qual caso potresti non avere il codice in uscita e vorrebbe dire che il codice e' entrato in un loop infinito.
In alternativa puoi mettere un punto di uscita strategico che sposti mano a mano verso il basso per vedere se ci arrivi.
...un oscilloscopio sarebbe utile per vedere i segnali in uscita.
Saluti,
Mauro
Per vedere dove il programma si blocca puoi cambiare i codice di errore e metterli in progressione 1,2,3,4,5,6....
Quando richiami la funzione controlla il codice di errore e saprai dove si blocca il programma.
Non ricordo pero' se alcune delle funzioni I2C sia di tipo bloccanti, in qual caso potresti non avere il codice in uscita e vorrebbe dire che il codice e' entrato in un loop infinito.
In alternativa puoi mettere un punto di uscita strategico che sposti mano a mano verso il basso per vedere se ci arrivi.
...un oscilloscopio sarebbe utile per vedere i segnali in uscita.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
12 Anni 1 Mese fa #7
da ricello
Ma anche con questo valore il risultato non cambia, la funzione sembra essere eseguita correnttamente senza nessun blocco di programma
ma quando vado a verificare se il dato è stato cancellato mi accorgo che la funzione è arrivata a scivere fino al locazione 30.000.
Risposta da ricello al topic Re: Funzione PAGE WRITE con eeprom 24LC512
Hai ragione; il numero corretto di cicli for è: 512000/8=64000 byte 64000/128=500 cicli di scrittura pagina.A prima vista mi sembra corretto, ma il ciclo con il 604 mi sembra un po' grandino.
Ma anche con questo valore il risultato non cambia, la funzione sembra essere eseguita correnttamente senza nessun blocco di programma
ma quando vado a verificare se il dato è stato cancellato mi accorgo che la funzione è arrivata a scivere fino al locazione 30.000.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- ricello
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 5
- Ringraziamenti ricevuti 0
12 Anni 1 Mese fa #8
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Funzione PAGE WRITE con eeprom 24LC512
Ciao,
vuoi dire che fino a 30.000 cancella in maniera corretta?
Questo sarebbe un buon punto di partenza.
Accertati che il tempo di attesa tra una scrittura ed un altra sia rispettata.
Non ho controllato che la pausa inserita sia come richiesto nel datasheet.
Pause troppo brevi possono compromettere la scrittura/cancellazione della memoria.
Saluti,
Mauro
vuoi dire che fino a 30.000 cancella in maniera corretta?
Questo sarebbe un buon punto di partenza.
Accertati che il tempo di attesa tra una scrittura ed un altra sia rispettata.
Non ho controllato che la pausa inserita sia come richiesto nel datasheet.
Pause troppo brevi possono compromettere la scrittura/cancellazione della memoria.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 1 Mese fa #9
da ricello
Risposta da ricello al topic Re: Funzione PAGE WRITE con eeprom 24LC512
Ciao Mauro, il tempo ho provato anche ad aumentarlo ma il risultato non è cambiato.
Anche perchè se il tempo fosse troppo breve non riuscirebbe a scrivermi i primi 30.000 byte.
Nel fine settimana provo a caricare solo la parte di software che riguarda la gestione della eeprom su un micro nuovo e dopo ti tengo aggiornato sugli esiti.
A mio parere supero il limite di qualche variabile che di conseguenza non riesce a scrivermi oltre la locazione 30.000.
Grazie per la pazienza.
Saluti
Marcello.
Anche perchè se il tempo fosse troppo breve non riuscirebbe a scrivermi i primi 30.000 byte.
Nel fine settimana provo a caricare solo la parte di software che riguarda la gestione della eeprom su un micro nuovo e dopo ti tengo aggiornato sugli esiti.
A mio parere supero il limite di qualche variabile che di conseguenza non riesce a scrivermi oltre la locazione 30.000.
Grazie per la pazienza.
Saluti
Marcello.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- ricello
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 5
- Ringraziamenti ricevuti 0
12 Anni 1 Mese fa #10
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Funzione PAGE WRITE con eeprom 24LC512
Ciao Marcello,
effettivamente 30.000 mi sembra proprio il 32000 che rappresenta il limite positivo per gli interi.
Pero' a prima vista mi sembra tutto dichiarato unsigned int quindi dovrebbe andare bene.
...credo che il sentiero possa essere questo.
Saluti,
Mauro
effettivamente 30.000 mi sembra proprio il 32000 che rappresenta il limite positivo per gli interi.
Pero' a prima vista mi sembra tutto dichiarato unsigned int quindi dovrebbe andare bene.
...credo che il sentiero possa essere questo.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.