ELEMANIA
PIC16F690 - ADC: sample and hold
Campionamento (sample and hold)

Il sample and hold è spiegato in generale in un'apposita lezione. Per quanto riguarda il blocco di sample and hold incluso nel PIC, lo schema circuitale di principio è mostrato in figura:

Si tratta di uno schema equivalente (non dell'effettiva realizzazione elettrica), che permette di comprendere meglio come funziona il campionamento. Nel dettaglio in particolare abbiamo:

In sintesi, l'interruttore Sampling Switch viene chiuso automaticamente al termine di ogni conversione (ovvero quando GO/DONE=0). Quando l'interruttore si chiude, il condensatore CHOLD si carica fino al valore della tensione analogica VA da convertire.

L'interruttore si apre all'avvio di una nuova conversione (per la precisione circa 100ns dopo che GO/DONE=1). Quando l'interruttore si apre, CHOLD mantiene il valore della tensione campionata in modo che il convertitore AD possa convertirla correttamente.

Tempo di acquisizione

Siccome il condensatore interno CHOLD impiega un certo tempo per caricarsi, occorre tenerne conto prima di avviare una nuova conversione. In caso contrario il valore convertito non sarebbe corretto, in quanto CHOLD non avrebbe fatto in tempo a caricarsi completamente.

Il tempo di acquisizione (acquisition time, che in pratica è il tempo di carica del condensatore) TACQ, secondo quanto specificato dal manuale, è dato dalla somma dei seguenti tempi:

TACQ = Tempo di assestamento dell'amplificatore + Tempo di carica del condensatore + Coefficiente termico = TAMP + TC + TCOF = 2 µs + TC + (Temperatura - 25°C) * 0,05 µs/°C

Osserviamo che TAMP assume un valore fisso fornito dal manuale (2 µs) e che TCOF può essere calcolato in base alla temperatura del componente (per esempio se la temperatura vale 40 °C TCOF vale (40-25)*0,05 = 0,75 µs).

Per quanto riguarda TC il calcolo è leggermente più complicato, in quanto tale valore dipende oltreché dai parametri interni del PIC (CPIN, RIC e RSS), anche dalla resistenza interna del generatore che fornisce la tensione analogica (RS). La formula di calcolo è la seguente:

TC =  CHOLD * (RIC + RSS + RS) * ln(2047)

Per quanto riguarda i parametri contenuti nella formula, abbiamo che:

Facciamo un esempio pratico. Supponiamo di voler convertire una tensione analogica prodotta da un generatore con resistenza interna RS = 10 kΩ e di alimentare il PIC con VDD = 5V. Abbiamo dunque:

TC =  CHOLD * (RIC + RSS + RS) * ln(2047) = 10p * (1k + 7k + 10k) * ln(2047) = 1,37 µs

Tale valore dev'essere infine sommato al tempo di assestamento dell'amplificatore e al coefficiente termico per ottenere il tempo di acquisizione. Supponendo, come prima, una temperatura di 40 °C, abbiamo infine:

TACQ =  TAMP + TC + TCOF = 2 µs + 1,37 µs + 0,75 µs = 4,12 µs

Come si vede si ottengono tipicamente valori di alcuni microsecondi. TACQ è il tempo che occorre aspettare prima di poter avviare una nuova conversione (cioè prima di poter inviare il segnale GO/DONE=1).

Tempo minimo fra due conversioni successive e massima freq di campionamento

Secondo quanto riportato dal manuale del PIC, oltre al tempo necessario per la ricarica del condensatore CHOLD, occorre attendere un tempo minimo pari a 2 TAD prima di iniziare una nuova conversione. Dunque in generale

Tminimo fra due conversioni successive = TACQ + 2 TAD

Tale tempo varia in funzione del clock di sistema, del valore di prescaling scelto, dell'alimentazione del PIC, della temperatura e del valore della resistenza interna del generatore della tensione analogica. Tuttavia in linea generale possiamo stimare tale tempo nell'ordine di una decina di microsecondi.

Nella pratica questi tempi pongono un limite inferiore al minimo periodo di campionamento che è possibile utilizzare col PIC. Se infatti teniamo conto del fatto che ogni singola conversione richiede un tempo minimo di 11 x 1,6µs = 17,6 µs per essere completata e che a tale tempo occorre aggiungere alcuni microsecondi di attesa fra due conversioni (in base al Tminimo fra due conversioni successive), possiamo stimare un periodo di campionamento minimo utilizzabile nell'ordine di

Tcampionamento minimo ≈ 25 µs

al quale corrisponde una

Fcampionamento massima ≈ 1/25µs = 40 kHz

Si tratta di un valore perfettamente adeguato nella maggior parte delle applicazioni di controllo, ma certamente insufficiente per applicazioni più sofisticate (come per esempio la conversione di segnali audio ad elevata qualità).

precedente  - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it