Newsgroup: it.hobby.elettronica.digitale
Titolo: 16F628 20Mhz EEPROM

Ciao a tutti, mi capita in questi giorni di dover utilizzare un 16F628 per
salvare dei dati nella eeprom interna. Ho perň un problema: la routine che
salva in eeprom č corretta, e con un quarzo da 4MHZ non da alcun problema.
Rileggendo i dati con Ic-Prog tutto č OK. Io perň ho bisogno di cloccare
il Pic a 20Mhz. Quando collego il quarzo da 20Mhz la routine non funziona
piů. Ho impostato correttamente la word di configurazione su HS (come da
datasheet) e utilizzo due C da 22pF tra quarzo e massa. 
Vi č capitato qualcosa del genere?
Ciao Fil
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Il pic supporta 20Mhz? PIC16F628-20 (04=4Mhz)
ciao e facci sapere
"Fil" <filippo.rubin@_TOGLI_virgilio.it> ha scritto nel messaggio
news:c0d9ds$ubt$1...@news.newsland.it...


 Vi č capitato qualcosa del genere?
Personalmente mi e' capitato un maledetto quarzo da 20Mhz che con 22pf non
oscillava piu'. Prova a scendere... diciamo 10pf... a me si e' risolto.
Prova...
ciao
Lorenzo

 ciao e facci sapere
Certo. Ciao Fil


 oscillava piu'. Prova a scendere... diciamo 10pf... a me si e' risolto.
Grazie del consiglio, non ne ho adesso in casa da 10pF ma appena li compro
provo subito. Il fatto strano comunque è che il resto del programma
funziona bene a 20MHz, è solo il salvataggio in eeprom che mi dà problemi
a quella velocità. Questo mi induce a pensare che i problemi non stiano
nell'oscillatore che si spegne. Grazie ancora!



prima di tutto controlla sul sito microchip se ci sono degli errata-corrige,
un po' di tempo fa lessi qualcosa a proposito proprio dell'eeprom interna e
di alcuni accorgimenti da seguire, ma non ricordo esattamente per quale pic
era.
Per quanto rigurada me invece, purtroppo ho avuto a che fare con la eeprom
solo di recente e l'ho fatto con pic basic pro, e nonostante la mia
applicazione clokki a 16MHz non perde un colpo, da questo capisco che il mio
primo consiglio è ancora più valido.
Terzo, nota prettamente personale, dai 12MHz in su preferisco adoperare
condensatori da 10pF, sarà coincidenza o cosa ma soprattutto quando devo
usare l'usart ne ho tratto miglioramenti.
Ciao ciao e buon lavoro.

 Ciao ciao e buon lavoro.
Ho cercato tra le AN e le errata-corrige per il 16F628 ma non ho trovato
niente di particolare. Mi sto facendo l'idea che sia veramente un problema
di oscillatore... magari funziona bene durante le istruzioni "normali" ma
quando c'è da eseguire operazioni particolari, come la scrittura in
eeprom, rompe un po' le scatole.. proverò con 10pF. Grazie!



Hai il watchdog abilitato ?
A 20MHz le istruzioni sono eseguite molto + velocemente che a 4 (ovviamente)
;-)
Come gestisci le tempistiche di scrittura ?
Ciao, Robby

 Come gestisci le tempistiche di scrittura ?
Non ci sono tempistiche di scrittura nel senso che bisogna solo attendere
che un bit sia resettato dall'hardware. Questo compito č assolto da un
loop software che termina appunto solo quando questo bit torna a 0.
Pertanto non dovrebbe esserci differenza tra diverse frequenze di clock...



Ti puoi accorgere che il bit è settato o pollando il bit stesso, oppure via
interrupt.
Nel caso che avessi avuto il wd abilitato, poteva essere importante quello
che facevi in attesa della scrittura.
Se a 4MHz funziona, ovviamente hai già letto le errata
http://www.microchip.com/download/lit/suppdoc/errata/80073f.pdf
Non ti scrive niente in EEPROM, oppure il primo byte è scritto correttamente
?
La scrittura in EEPROM, richiede + corrente, se vai + forte scrivi + dati e
quindi consumi più di energia nell'unità di tempo, hai un condensatore
(0.1uF o più) vicino al pic ?
Ciao, Robby

 La scrittura in EEPROM, richiede + corrente, se vai + forte scrivi + dati e
quindi consumi piů di energia nell'unitŕ di tempo, hai un condensatore (0.1uF
o piů) vicino al pic ?
Ho il pic montato su una basetta sperimentale, il C da 100nF č presente. 
Grazie per l'aiuto


Quando si scrive sulla eeprom bisogna attendere una decina di mS prima di
potervi riaccedere.
Se nella tua routine, dopo aver scritto il dato in eeprom lo vai a rileggere
immediatamente potresti non leggere il dato corretto (non so se puň
succedere che si comprometta quello che hai scritto o se venga annullata la
scrittura)
Magari a 4Mhz ci impieghi piů tempo a rileggere la eeprom o ad avviare la
scrittura di quello successivo e quindi non ti da problemi.
Prova ad inserire una pausa dopo che il bit di fine scrittura si č
abbassato.
Ciao
Lucio

 abbassato.
I dati salvati eeprom li rileggo con il programmatore e Ic-Prog, quindi
non all'interno del programma.



ma li scrivi in sequenza veloce?
prova a mettere comunque la pausa, tentar non nuoce...
Ciao
Lucio