Caratteristiche dellADC

Analog to Digital Converter (ADC)

 

 

  • 12 canali con multiplexer di ingresso
  • Conversione ad approssimazioni successive
  • Risoluzione di 8bit
  • Singola conversione o conversione continua
  • Flag o interrupt per la conversione terminata
  • Possibilità di impostare il clock dellADC

 

Registri dellADC

 

 

Descrizione dellADC

 

I dodici canali o ingressi dellADC sono presenti fisicamente nei pin PTB0-PTB7 e PTD0-PTD3. Un multiplexer analogico permette di scegliere uno di questi 12 ingressi come Voltage Input (ADCVIN).ù

La conversione avviene per approssimazioni successive e la risoluzione è di 8bit (256 livelli di tensione), quando la conversione ha termine lADC riporta il valore a 8bit convertito nel registro ADR, lADC può segnalare lavvenuta conversione con una FLAG o con un interrupt.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Schema a blocchi dellADC

 

 

Precisazione sui pin voltage input

Come detto i pin interessati dellADC sono quelli della porta B e della Porta D, per scegliere l’ingresso analogico da utilizzare bisogna intervenire nel registro ADSCR.

I pin delle porte messi a disposizione dellADC come segnali di ingresso non possono più essere letti o scritti come normali pin di I/O, mentre i pin che non sono interessati dellADC possono venire usati come normali pin di I/O.

 

Conversione della tensione

Quando sul pin di ingresso dellADC è presente un segnale uguale a Vdd, lADC riporterà un valore digitale di $FF mentre quando è presente un segnale pari e Vss LADC riporterà un valore di $00.

La conversione avviene solo per il range di tensione compreso tra Vdd e Vss, con una precisione di 256 livelli.

 

Esempio:

VDD=4V

VSS=1V

ADCVIN=3V

Range di tensione = 3V

Precisione = 3V/256=0.01V

Valore convertito=01111111

 

NOTA: Il segnale di ingresso non deve essere maggiore dell’alimentazione del micro

 

Tempistica di conversione

Per eseguire una conversione completa sono richiesti 16 del Clock interno dellADC

Se per esempio il clock dellADC è impostato per funzionare ad 1MHZ, una conversione ha bisogno di 16uS per essere completata.

 

 

Conversione Continua

In questo modo di conversione, lADC continua continuamente a convertire i canali selezionati dal registro ADSCR, il dato nel registro ADR viene continuamente soprascritto anche se il dato della conversione precedente non è ancora stato letto. La conversione continua finche non si azzera il bit di controllo ADC0

 

Interrupts

Quando il bit di controllo AIEN e settato e il bit COCO e a zero, lADC genera un interrupt ad ogni conversione terminata. Quando si sceglie di lavorare con gli interrupt il bit COCO non può più essere utilizzato come FLAG di fine conversione.

 

Registro ADSCR

 

COCO — Conversion Complete bit

Questo bit controllo lo stato della conversione:

1 = conversione completata (AIEN=0)

0 = conversione non completata (AIEN=0)

Quando tramite il bit AIEN gli interrupt sono abilitati, la flag COCO viene sempre letta come zero

 

AIEN — ADC interrupt Enable bit

Quando questo bit è settato, lADC abilita linterrupt alla fine della conversione, il segnale di interrupt è cancellato quando il registro viene letto o il bit viene scritto. NB il reset cancella lo stato del bit

1 = ACD interrupt enabled

0 = ACD interrupt disabled

 

ADCO — ADC continuous conversion bit

Quando questo bit è settato lADC lavora non modo continuo, cioè come spiegato continua a convertire il dato,se questo bit è a zero lADC esegue solo una conversione per volta. NB il reset cancella il bit

1 = ADC continuous conversion

0 = One conversion ADC

 

ADCH[4:0] ADC Channel select bits

 

Questi bit consentono di scegliere i canali da convertire, per settare correttamente i bit fare riferimento alla tabella che segue:

 

 

ADC Data Register

Questo registro contiene il dato convertito dellADC, esso viene aggiornato ogni volta che una conversione ha termine.

 

 

 

 

ADC Input Clock Register

Questo registro consente di scegliere il clock interno dellADC

 

 

ADIV2:ADIV0 — ADC Clock Prescaler Bits

 

Questi bit consentono di scegliere il clock interno dellADC in quanto vanno ad agire direttamente sul prescaler che divide la frequenza di sistema.

Per settare i bit fare riferimento alla tabella che segue: