Eprom interne PIC

Salve a tutti Qualcuno sa la durata media in cicli di scrittura della eprom interna di un PIC 16F877? Per la durata vengono conteggiati solo i cicli di scrittura o anche quelli di lettura? Questo numero N di cicli è per la singola cella o per l'intera memoria? Cosa può succedere quando si rompe la cella?

Scusate il treno di domande...Grazie

Reply to
NeMeSi
Loading thread data ...

NeMeSi ha scritto:

un

cerca la parola "Endurance" nel datasheet ufficiale.

scrittura/cancellazione

che la eeprom non =E8 pi=F9 affidabile localmente a quella cella... il resto funziona come deve.

leggiti un p=F2 questo

formatting link

Ciao Alex

Reply to
[mAnNaRo]

cerca la parola "Endurance" nel datasheet ufficiale.

scrittura/cancellazione

che la eeprom non è più affidabile localmente a quella cella... il resto funziona come deve.

Quindi se ho capito bene sul datasheet c'è scritto 100k vuol dire che posso scrivere/cancellare ogni cella 100.000 volte giusto? E questo vuol dire che avendo il pic 256 locazioni da 8bit di memoria eeprom ho 256*100.000 cicli in totale per tutta la memoria giusto?

Reply to
NeMeSi

si

no questo discorso vale solo se quando si scassa la cella 0 inizia a usare la 1 poi la 2 ecc...

cmq se vuoi fare un test è facile: fai scrivere dei valori in sequenza sempre sulla stessa celle e vedi se quello che leggi è proprio quello che hai appena scritto... il tutto in un ciclo while conti i cicli e vedi quanto ti dura la cella ;)

-ice-

Reply to
ice

Forse mi son spiegato male io volevo fare una cosa del genere: uso circa

80.000 volte la "prima" cella poi visto che la posso considerare non piu affidabile inizio a usare la "seconda" per 80.000 volte e via cosi quindi alla fine avro scritto 80.000 * 256 è mia fantasia o posso farlo?
Reply to
NeMeSi

puoi farlo ma:

- introduci un po' di overhead

- la tua eeprom (2 E) interna non ha più la dimensione di 256bytes ma di un solo byte riscrivibile, in compenso, 256*100k volte

credo che a questo punto dovresti orientarti su eeprom ferro-magnetiche, che non soffrono questo problema, oppure nvram

-ice-

ps: endurance=100k non significa che la cella non possa durare di+ ma potrebbe durare anche di meno... 80k non dice nulla, devi scrivere, rileggere e solo quando read!=written passi alla successiva

poi ti resta il problema di come tenere conto a che cella sei arrivato quando spegni o resetti il pic

-ice-

Reply to
ice

"NeMeSi" ha scritto

la

Se effettivamente i 100000 riguardano la singola cella e se hai bisogno di una sola cella, ovviamente puoi. Però io, per garantire l'affidabilità di un'applicazione di questo tipo, farei una verifica di "tenuta" di una cella come ti è stato già consigliato. Sprechi un micro, ma almeno sei sicuro di quanto ti dura una cella. Prova su più di una cella, anzi se puoi fai la verifica completa (80.000 * 256).

Reply to
Marco

"ice" ha scritto

un

che

Confermo, infatti c'è l'aggettivo "typical". Ma però si può stabilire il numero max di scritture che si possono fare facendo il loop sulle 256 celle. Se è typical, ci saranno celle che durano di meno, celle che durano di più, in media sarà 100000. Al valore trovato poi è meglio togliere una certa percentuale per stare tranquilli. Farei delle prove su 3-4 micro per vedere quanti scritture totali in media si riescono a fare per vedere se l'applicazione che si intende realizzare può essere fatta con questo micro.

Questo non è problema. Basta riservare una delle 256 celle per salvare la posizione. Se spegni e riaccendi il pic 5 volte al giorno, hai circa 20000 giorni (54 anni) di vita di questa cella. Quindi 1 cella per la posizione,

255 celle per il loop.
Reply to
Marco

Io dubiterei di un test del genere... il numero di cicli =E8 fortemente dipendente dalla tensione di alimentazione e dalla temperatura a cui lavora la eeprom. Rimarrei quindi sul dato fornito riducendolo un p=F2 e verificando se con queste ipotesi hai una durata della eeprom significativa per la tua applicazione.

Ale

Marco ha scritto:

po,

gliato.

su

Reply to
[mAnNaRo]

"ice" ha scritto nel messaggio news:456707f5$1$3200$ snipped-for-privacy@reader2.news.tin.it...

Questo di sicuro ma il mio conto era per essere sicuro che la scrittura avvenisse infatti come valore ho preso 80k e non 100k mi sono tenuto 20k cicli di buono sulla media scritta sul datasheet che è 100k e dovendo salvare solo un byte mi va benissimo il conto scritto sopra. Per sapere quante volte l'ho

Reply to
NeMeSi

Dimenticavo... guarda che bel "giochino" ha sviluppato la microchip!!!

formatting link

Ciao Ale

Reply to
[mAnNaRo]

"[mAnNaRo]" ha scritto

consigliato.

Prova su

Io non stavo dicendo di non usare il dato fornito, anzi è quello il riferimento per calcolare come dici se la quantità che si ottiene è adeguata all'applicazione. Se non è adeguata è inutile perdere altro tempo. Dicevo che non mi limiteri a considerare il dato fornito (usandolo con un margine di tolleranza), ma per stare più tranquillo farei alcuni test (che richiedeono poco tempo) per verificare che effettivamente il dato fornito è veritiero. Non mi fiderei solo del dato teorico dichiarato, andrei a fare una verfiica sperimentale di questo dato. Cosa fai se poi vai in produzione, distribusci il prodotto sul mercato e poi quando il prodotto è già fuori ti accorgi che in realtà il dato reale è

60000 e non 100000? Meglio spendere mezza giornata per fare qualche verifica.
Reply to
Marco

Pestando alacremente sulla tastiera "Marco" ebbe l'ardire di profferire:

Ma avresti la durata della cella su *quel* micro...

--
Do files get embarrassed when they get unzipped?
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

ripeto che secondo me la soluzione migliore è che il fw scrive, poi rilegge e se il dato scritto è uguale a quello letto allora tutto ok, altrimenti passa alla cella successiva

troppo aleatorio ;) mancano i fattori ambientali e elettrici che potrebbero variare nell'applicazione finale

quante volte si resetta per disturbi esterni? rinunci al watchdog?

-ice-

Reply to
ice

"Due di Picche" ha scritto

consigliato.

Prova su

Certo. Proverei magari su N micro per avere un'indicazione più attendbile, valutando media e varianza dei risultati. Il mio discorso è che se proprio il nostro amico vuole usare questo micro per la sua applicazione, oltre al dato teorico indicato dal datasheet farei anche qualche verifica sperimentale per verificare l'attendibilità del dato teorico. Poi valuterei con i dati raccolti (teorico e sperimentali) se ha senso proseguire a sviluppare l'applicazione con quel micro.

Non sappiamo quale è l'applicazione, quante sono le scritture previste, quale deve essere la durata della vita del prodotto (il numero di scritture è legato alla frequenza di scrittura e al tempo in cui il prodotto rimane acceso) e non abbiamo i risultati sperimentali delle prove che ho citato. Quindi è difficile dire di più.

Reply to
Marco

"ice" ha scritto

rilegge

Questo lo davo per scontato Ma io non stavo parlando di come implementare la cosa dal punto di vista fw una volta scelto di usare il micro pic 16F877, sono un passo più indietro, ossia nella fase di valutazione che deve dcidere se il micro pic 16F877 è idoneo per l'applicazione Quindi parlavo di fare verifiche sperimentali (che richiedono poco tempo) a supporto dei dati teorici dichiarati nel datasheet per raccogliere informazioni aggiuntive per avere una base di dati con cui capire e decidere in fase di definizione del progetto se la scelta architetturale fatta (usare il micro pic 16F877) è idonea per l'applicazione. In questa valutazione suggerisco di aggiungere dei rilievi sperimentali ai puri e semplici dati teorici.

media

Sono d'accordo sul fatto che è in parte aleatorio. Ma è sempre meglio che decidere basandosi solo sul dato teorico.

E come faccio a saperlo? Devi chiederlo a NeMeSi. Non sappiamo neanche di cosa stiamo parlando, di cosa si tratta, come viene usato, in che ambiente viene usato, .... Se fossi il progettista e avessi tutte le informazioni complete del progetto, farei le mie considerazioni e i calcoli che servono e valuterei come muovermi.

No, non vedo perchè dovrei.

In ogni caso mi sono accorto di aver detto una fesseria parlando dei 5 spegnimenti al giorno. Se si riserva la cella 0 come cella particolare per salvare l'indirizzo della cella dove si è arrivati, il numero di scritture sulla cella 0 non è legato al numero di spegnimenti e riaccensioni o di reset, ma è semplicemente pari all'indirizzo della cella a cui si è arrivati, quindi al massimo si arriva a 255 scritture (per la cella 0). Infatti si va a scrivere sulla cella 0 solo quando si cambia di posizione e si passa alla cella successiva. Quindi può resettarsi ed essere spento e riacceso anche centinaia di volte al giorno e da questo punto di vista non ci sono problemi.

Reply to
Marco

"Marco" ha scritto nel messaggio news:29W9h.56969$ snipped-for-privacy@twister2.libero.it...

A questo punto visto che il discorso vi ha interessato molto e vi ringrazio della partecipazione, vi piego un po meglio il tutto. l'apparecchio in questione è un temporizzatore il quale deve tenere in memoria il tempo rimanente anche se va via tensione e ripartire da dove era rimansto con la precisione al minuto. La scelta del PIC 16F877 è stata per il numero di I/O con il quale devo gestire diverse linee di ingresso uscita durante la temporizzazione. Quindi io andrò a salvare ogni minuto passato il tempo rimanente e in caso di reset o spegnimento all'accenione andro a leggere se vi è del tempo rimanente e quindi lo finiò di eseguire. Ora voi logimente mi direte: Ma perchè non usi una ram tamponanta??? La mia risposta è che sicuramente sarabbe la soluzione migliore ma per limare un po sui costi e anche lo spazio su PCB preferirei non usare IC esterni. Se però voi avete soluzioni migliori da proporre sono aperto alla valutazione.

Ma alla rottura della cella la funzionalità del PIC puo subire variazioni o succede solo che li non riesce piu a scrivere e in caso perderei il tempo salvato?

Reply to
Cap4

Pestando alacremente sulla tastiera "Marco" ebbe l'ardire di profferire:

Sono prove che ha già fatto la ditta costruttrice...

--
C:\BELFRY is where I keep my .BAT files.
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

appunto, perchè? ;)

- nvram esterna

- usare un pic con low-voltage-detect (LVD) oppure HLVD per sapere quando viene a meno l'alimentazione (metti un elettrolitico sull'alimentazione per rallentare la discesa di VDD e dare il tempo alla ISR di salvare)

si scassa solo la cella, il resto è ok

-ice-

Reply to
ice

"Due di Picche" ha scritto

attendbile,

Si spera di si. Microchip comunque sulla documentazione indica solo la media e non indica la varianza. In ogni caso, anche se sono state fatte da Microchip, se io dovessi fare un'applicazione che va a sollecitare una cella fino a farla morire, farei la mia verifica. Il tempo per farla è minimo, non mi costa niente e sono più tranquillo. Io farei così, poi chi ritiene utile non fare tale verifica, non la fa. Ciao

Reply to
Marco

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.