home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca
 
CIRCUITO DI RICALIBRAZIONE PIC tipo: livello:
Circuito per ricalibrare il valore di OSCCAL nei pic 12F629 12F675
 
 



                                              Circuito di ricalibrazione PIC
                                  Circuito per ricalibrare il valore di OSCCAL nei pic 12F629 12F675

Premetto che questo progetto non è mio, ma  deriva da un sito inglese tuttavia, vista la sua utilità ho pensato di riproporlo, in versione italiana anche su GRIX, per la pagina originale si veda il link in fondo alla pagina.


Descrizione
I pic 12F629 e 12F675 sono dotati di un oscillatore interno che consente di utilizzarli senza bisogno di componenti esterni quali un quarzo o un circuito RC, questa configurazione libera l'utilizzo di due pin aggiuntivi per funzioni di I/O.
L'oscillatore interno necessita di una calibrazione, questa viene fatta normalmente in fabbrica e il valore di calibrazione viene scritto nel registro OSCCAL durante l'inizializzazione del dispositivo.
Il valore di calibrazione è collocato all'indirizzo 0x3FF nella memoria del PIC, tale collocazione tuttavia presenta alcuni problemi qualora venga erroneamente sovrascritta durante la programmazione, infatti il valore contenuto è univoco per ogni PIC, pertanto non è sufficiente copiarlo da un altro per avere il valore corretto.
Il circuito e il codice proposti in quest'articolo consentono di conoscere un valore corretto per OSCCAL o di calcolarne uno nuovo e più corretto per una data tensione di alimentazione.
L'autore garantisce una calibrazione corretta almeno all'1% di OSCCAL.

Funzionamento
Per ricalibrare l'oscillatore, è necessaria una frequenza di riferimento, tale frequenza viene ricavata dalla rete elettrica sia a 50Hz che a 60Hz, a parte il pic come è possibile vedere dallo schema sono necessari veramente pochi componenti e il circuito può essere facilmente realizzato anche su di una basetta sperimentale.


Il circuito è particolarmente utile per ricalibrare la frequenza al cambio della tensione di alimentazione, il valore infatti è calibrato in fabbrica ad una tensione nominale di 3,3V, tramite l'interrutore S1 è possibile decidere se ricalibrare a 3,3 o 5V.

I due 1N4148 garantiscono una caduta di tensione di 0,7V cadauno mentre la resistenza da 150Ohm  assorbe abbastanza corrente si da garantire l'assenza di fluttuazioni a capo dei diodi.

La capacità da 100nf deve essere posta il più possibile vicino al PIC.

Il segnale di riferimento viene ottenuto tramite il transistor BC 548 una resistenza da 10K e un trasformatore, sia il transistore (un NPN qualsiasi che il trasformatore non sono componenti critici.

PROGRAMMARE IL PIC

Il prossimo passaggio è la programmazione del PIC con il codice allegato, lo stesso codice va bene sia per il 12F629 che per il 12F675.

Eseguire la calibrazione

Se per sbaglio la vostra alimentazione è a 60Hz (impossibile per l'Italia) chiudete il jumper J1

Il riferimento deve essere presente prima di alimentare il circuito

Inserite il pic nel circuito di calibrazione e alimentate con 5  V il circuito

All'accensione entrambi i led faranno un breve lampeggio

Se il PIC non riesce a rilevare nessun segnale di riferimento sul PIN GP2 il led rosso si illuminerà e quello verde lampeggerà fino alla rivelazione di un segnale valido, (qualora dovesse accadere, spegnete il circuito e iniziate il processo da capo.

Durante la calibrazione entrambi i led saranno spenti (circa 5 secondi in tutto)

Se il led rosso si accende il processo di calibrazione verrà interrotto (normalmente accade per problemi sul riferimento).

A calibrazione completata si accenderà un led verde e verrà generato un segnale di test a 5Khz sul pin GP1 (se avete un frequenzimetro può essere comodo per verificare l'avvenuta calibrazione).

A calibrazione completata verificate anche il cambio di frequenza al variare della tensione di alimentazione (aprite e chiudete S1).

Togliete l'alimentazione al circuito e leggete il PIC con il vostro programmatore preferito

Controllate il contenuto della eeprom ed in particolare i valori all'indirizzo 0x00 e 0x01

Possibile valori:
Gli indirizzi EEPROM 0x00 e 0x01 contengono 0xFF
Il codice non ha funzionato a dovere

Gli indirizzi EEPROM 0x00 e 0x01 contengono 0x00
il codice ha funzionato ma la calibrazione non è andata a buon fine, controllate il jumper J1 e riprovate

L'indirizzo EEPROM 0x00 contiene 0x34 e quello 0x01 contiene 0xNN dove NN è il nuovo valore di calibrazione, tutto quanto ha funzionato a dovere

Utilizzate il nuovo valore dentro il programmatore per sovrascrivere l'ultima locazione di memoria dell'area programma del PIC.

A questo punto potete riutilizzare il PIC con i vostri programmi.

firmware per la ricalibrazione:

Il progetto in questione è stato da me testato in occasione di una sciagurata sovrascrittura del valore di OSCCAL, lo utilizzo frequentemente per ottenere migliori precisioni dall'oscillatore interno con tensioni di 5V.

Download HEX code (per 12F629 o 12F675)


Se trovate il progetto utile fate riferimento a sito originale per una piccola donazione.


Visita la pagina originale, in lingua inglese: QUI

 





  il parere della community
esprimi il tuo voto approvi questa pagina? promo


  non sei autenticato, per questo non puoi visualizzare i commenti sulla pagina. Se sei registrato accedi oppure registrati.


difficoltà
costo
informazioni
Questa pagina stata creata da spectrum
il 25/09/2007 ore 00:49
ultima modifica del 25/09/2007 ore 17:29
la pagina stata visitata 4485 volte




Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina.
Se tu sei l'autore originale degli schemi o progetti proposti in questo articolo, e ritieni che siano stati violati i tuoi diritti, contatta lo staff di www.grix.it per segnalarlo.

   
 

 
 
indietro | homepage | torna su copyright © 2004/2019 GRIX.IT - La community dell'elettronica Amatoriale