Vai al contenuto
PLC Forum


Eeprom Pic16f876 - EEPROM PIC16F876


ifachsoftware

Messaggi consigliati

Ho un problema con i dati contenuti nell'EEPROM di un PIC 16F876 ossia : saltuariamente mi si sporcano con valori random.

Premetto che uso il compilatore PCM della CCS

Qualcuno mi sa dare qualche consiglio ?

Grazie a tutti

Ciao :)

Link al commento
Condividi su altri siti


Io sempre uso l'assembler , ma per la scrittura della eeprom bisogna fare una pocedura di ******** (l'azienda ha richiesto la rimozione di questo marchio su PLC Forum)pio per non avere false scritture.

Nel tuo programma , hai una routine di scrittura della eeprom?

Se tu a volte scrivi nella eeprom , puo' essere lo stesso programma che scrive dati random.

Un consiglio per vedere se e' una cosa esterna al programma e' di disabilitare la tua routine di scrittura , creare un immagine dei dati della eeprom e scrivere i valori durante la programmazione del pic .

Infine fai girare il prg solo usando la funzione di lettura della eeprom.

Spero di essere stato chiaro.

Saluti

Link al commento
Condividi su altri siti

Per la Scrittura / Lettura uso le funzioni specifiche , che pero' non mi danno la risposta se la scrittura e' andata a buon fine oppure no , sto meditando di farmi una funzione in Assembler per controllare i bit di stato sulla buona riuscita dell'operazione.

Una domanda ho da farti : non e' che il PIC possa prendere dei disturbi esterni (ho dei PIN inutilizzati lasciati fluttuanti) , poi ho visto che il PIC ha di suo delle protezioni per l'EEPROM , e richiede l'abilitazione del POWER UP TIMER + un altro parametro , ne sai qualche cosa ?

Ciao e Grazie

Link al commento
Condividi su altri siti

La eeprom interna puo essere solo scritta solo quando il pic ha finito il por .

In piu' per poter scrivere un dato, si devono caricare nel registro EECON2 il valore 55 e di seguito il valora AA ( in esadecimale) per poter finalmente scrivere il dato che vuoi depositandolo nel registro EEDATA.

Per sapere se la scrittura e' andata a buon fine puoi leggere il WRERR(bit 3) del registro EECON1 , se =0 allora OK se =1 allora ERRORE .

Un altra trappola e' gestire l'interrupt di fine scittura eeprom , il pic a fine scrittura alza il flag per un interrupt .

Se non era previsto , puoi dare l'allarme.....

Se hai dubbi chiedi pure

Saluti

Link al commento
Condividi su altri siti

Io programmo solo in assembler.

Sarebbe bene adottare alcuni accorgimenti per la gestione della eeprom: abilitare la scrittura appena prima di utilizzarla e disabilitarla dopo (bit WREN di EECON1), disabilitare l'interrupt prima di utilizzare la eeprom e riabilitarlo eventualmente dopo (bit GIE di INTCON).

La scrittura funziona bene?

Per i pin non usati non ho mai avuto problemi, neanche in ambienti rumorosi. Basta non interrogarli mai....

Ciao!

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...