GUIDA AL PIC12F675

Tutorial per Illustrare il PIC12F675, Utilissimo per Piccoli Progetti con Microcontrollore….

 

 

 

 




 

INTRO

In questa guida viene presentato il PIC12F675:

Questo microcontrollore anche se molto piccolo dispone di parecchie funzionalità, tra cui:

  • Oscillatore interno, quindi non necessita componenti esterni per la generazione del clock.
  • Comparatore analogico con riferimento programmabile e uscita direttamente accessibile.
  • ADC a 10bit a 4 canali.
  • Timer0 e Timer1, il primo a 8bit, il secondo a 16bit con abilitazione esterna.
  • Memoria EEPROM da 128 bytes.

Quindi questo microcontrollore è ottimo per tutte quelle applicazioni in cui non servono molte strutture hardware ausiliarie e non servono molti pin di connessione.

 




 

PERIFERICA DI INPUT OUTPUT

I pin di I/O sn al massimo 6 e possono essere usati come general porpouse I/O oppure come ingressi/uscite delle periferiche. Si ha:

  • GP0/AN0/CIN+: general porpouse I/O, ingresso analogico per l’ADC e ingresso analogico per il comparatore.
  • GP1/AN1/CIN-/VREF: general porpouse I/O, ingresso analogico per l’ADC e ingresso analogico per il comparatore e riferimento per l’ADC.
  • GP2/AN2/T0CKI/INT/COUT: general porpouse I/O, ingresso analogico per l’ADC, uscita digitale del comparatore, ingresso di interrupt e come ingresso di clock per il timer 0.
  • GP3/MCLR/VPP: Questo pin può essere usato solo come ingresso oppure come rest generale se i fuses sono settati opportunamente.
  • GP4/AN3/T1G/OSC2/CLKOUT: general porpouse I/O, ingresso analogico per l’ADC, abilitazione del Timer1, clock out e ingresso per l’oscillatore con cristallo.
  • GP5/T1CKI/OSC1/CLKIN: general porpouse I/O, clock per il Timer1, clock input e connessione per l’oscillatore con cristallo.

Se avere ingressi o uscite si sceglie settando o 1 o 0 nel registro TRISIO, per leggere gli ingressi o settare il valore di uscita si utilizza il registro GPIO.

 

CARATTERISTICHE ELETTRICHE

Le caratteristiche elettriche sono:

  • Tensione massima su VDD rispetto GND:………………. -0.3 fino a 6.5V
  • Tensione massima sugli altri pin rispetto GND:…..…. -0.3 fino a 6.5V
  • Corrente massima sul pin VDD:……………………………… 250mA
  • Corrente massima sul pin GND:…………………………….. 300mA
  • Corrente massima nei pin di I/O……………………………. +/- 25mA
  • Corrente massima in tutti i pin di I/O:…………………… +/-125mA

La tensione di alimentazione massima è 5.5V ma il PIC supporta tensioni sul pin VDD rispetto GND fino a 6.5V positivi o -0.3V negativi prima che si bruci.

Stesse tensioni valgono sugli altri pin.

La corrente massima assorbita da VDD è 250mA mentre quella che può andare verso massa è 300mA. Un singolo pin di I/O può erogare o assorbire 25mA, mentre tutti i pin di I/O al massimo 125mA quindi solo 5 pin di I/O alla volta possono assorbire/fornire corrente.

La tensione minima di funzionamento è 2V ma con il convertitore A/D spento, mentre 2.2V con il convertitore acceso. Se si usano frequenze di 20MHz bisogna avere una tensione minima di 4.5V. La corrente assorbita cresce con la frequenza e si va da un minimo di 16uA con l’0scillatore a 32KHZ mentre si arriva a 3mA a 20MHz con tensione di alimentazione a 5V.

Lo 0 logico i pin di I/O lo riconoscono se inferiore a 0.15VDD nel caso peggiore mentre ne caso peggiore l’1 logico per essere riconosciuto deve essere 0.8VDD. L’uscita logico bassa invece al massimo ha un valore di 0.6V mentre al minimo l’uscita logica alta ha un valore di VDD-0.7V.

 

OSCILLATORE DEL PIC12F675

Vi sono varie possibilità per creare il clock interno al microcontrollore e al contrario di molti altri PIC molto più complessi il PIC12F675 dispone di un clock interno, ovvero un modulo che senza componenti esterni genera un segnale di clock.

Il clock può essere generato con:

  • LP, cristallo di quarzo a bassa potenza
  • XT, cristallo di quarzo o risuonatore
  • HS, cristallo di quarzo o risuonatore ad alta velocità
  • RC, clock esterno con condensatore e resistenza
  • EC, segnale di clock esterno
  • INTOSC, segnale di clock generato internamente

Con cristallo di quarzo e risuonatore si usa il seguente schema:

Per il circuito RC si usa invece:

Il problema di questa struttura è che la frequenza è influenzata dalla tensione di alimentazione e dalla temperatura. Il valore di Rext va da 3KOhm fino a 100KOhm mentre la capacità si consiglia da 20pF. La frequenza di oscillazione è data da Rext/Cext.

Per quanto riguarda l’oscillatore interno, esso viene fatto tramite un circuito RC interno al PIC, quindi non servono componenti esterni. Questo circuito RC permette di avere una frequenza fissa di 4MHz nominali visto che per via di variazioni nel processo di costruzione questa frequenza potrebbe essere minore o maggiore di qualche KHz al massimo. Per avere una frequenza molto precisa del clock vi è un registro da settare (OSCCAL) e questo si fa misurando la frequenza del segnale di clock (Selezionando dai fuses di averlo in esterno) e poi scrivendo un opportuno valore nel registro OSCCAL. OSCCAL ha un valore iniziale di 1000000, aumentando il suo valore (1111111 massimo) si aumenta la frequenza dell’oscillatore interno mentre andando verso il valore 000000 si diminuisce la frequenza, e tutto questo per raggiungere il valore di 4MHz precisi.

 

FUSES

I fuses di questo microcontrollore sono:

WDT abilita il watchdog timer, un sistema di controllo che permette di capire se vi sono errori di esecuzione del codice, ovviamente fa fatto un ciclo di interrupt nel codice, quindi si disabilita sempre a meno di necessità particolari.

MCLRE serve per decidere se si vuole il pin di reset esterno, solitamente si disabilita per avere un pin di I/O in più.

Code Protect ROM serve ad abilitare o meno la protezione del codice, solitamente si disabilita.

PWRTE è il timer di accensione, ovvero appena VCC viene fornita al PIC sui può decidere se iniziare subito il codice oppure no se questo fuses è abilitato.

BODEN è il rilevatore di tensione troppo bassa. Se abilitato il PIC si resetta quando VDD<2V.

Code Protect EEP abilita la protezione della memoria EEPROM

Oscillator permette di scegliere il tipo di oscillatore e si hanno le seguenti possibilità:

  • HS, XT e LP se si usa un cristallo di quarzo o risuonatore
  • RC CLKGP4 RCGP5 se si vuole il clock di uscita su GP4 e il circuito RC su GP5
  • RC IOGP4 RCGP5 se invece si vuole GP4 come pin di I/O
  • INTOSC CLKGP4 IOGP5 se si vuole l’oscillatore interno con GP4 come uscita del clock (Da usare per la calibrazione) e GP5 come pin di I/O
  • INTOSC IOGP4 IOGP5 se si vogliono GP4 e GP5 come pin di I/O
  • EC IOGP4 CLKINGP5 se si viole GP4 come pin di I/O mentre GP5 come ingresso del clock esterno.




 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *