Tutorials - Elettronica

 
 

Il partitore resistivo nelle misure analogiche


Partitore resistivo e misure con il modulo AD  

Il partitore resistivo è l' ideale per effettuare misure di tensione con il modulo ADC del microcontroller, che accetta al massimo una tensione pari alla Vdd. 
Quindi, se si devono misurare tensioni superiori è d'obbligo un divisore a resistenze.

Abbiamo tratteggiato le caratteristiche e il calcolo del partitore qui. E, nelle note, abbiamo rilevato come la tensione di uscita dipende dalla corrente assorbita dal carico. Se essa varia, varia anche la tensione ai capi di R2, a causa della caduta su R1.

Si potrebbe pensare che questo non abbia alcunchè a che fare con le misure dal modulo ADC, ma vanno ricordate le caratteristiche di questo modulo.

Tipicamente la fase iniziale della conversione consiste nella carica di un condensatore integrato di sample & hold. Questo produce un brevissimo, ma robusto impulso di corrente. Le specifiche dei convertitori AD indicano chiaramente che l' impedenza della sorgente non deve superare un certo valore ohmico, altrimenti il tempo di carica del condensatore va aumentato.

La resistenza R1 determina questo tempo, in quanto si trova in serie al condensatore del sample&hold e, in pratica, determina il valore della impedenza della sorgente di tensione.

Se il partitore ha un elevato rapporto di divisione (ovvero Vin >> di Vout) oppure si è scelto una coppia di resistenze di valore elevato per minimizzare la corrente assorbita, la resistenza del partitore supera quella ideale della sorgente di tensione per il modulo AD e richiede un aggiustamento del tempo di acquisizione.
Nel caso dei PIC, i fogli dati indicano una impedenza della sorgente della tensione non maggiore di 10kΩ per rispettare i tempi indicati di acquisizione. Se la resistenza è maggiore, occorrerà aumentare questi tempi di conseguenza. Spesso questa operazione va fatta per tentativi e richiede un certo impegno di tempo nella fase di debug.
Se il valore dell' impedenza della sorgente è più basso, invece, non ci sono problemi di temporizzazione e si possono perfino considerare tempi di acquisizione minori. 

Se prendiamo un semplice caso, ovvero la necessità di misurare una tensione di 50V con l' ADC del microcontroller alimentato a 5V, ci occorrerà un partitore 1:10, ad esempi una R1=90kΩ e una R2=10kΩ.
Già qui la R1 è ampiamente superiore ai 10 kΩ richiesti; dovremmo abbassare i valori a R1=9kΩ e R2=1kΩ e saremmo ancora al limite, trovandoci probabilmente con misure più basse di quanta tensione ci sia in realtà in quanto il tempo di acquisizione è troppo breve, dovendo sommarsi alla resistenza R1 del partitore quella propria della sorgente della tensione da misurare.

Per evitare questo, si possono implementare alcuni trucchi.

Una soluzione semplice è quella di inserire un condensatore in parallelo all' ingresso.

La sua funzione è quella di scaricarsi al momento dell' acquisizione, fornendo parte dell' impulso di corrente necessario alla carica del condensatore integrato di sample&hold.

Si dovrà utilizzare un componente a bassa perdita e a bassa impedenza, ad esempio un multistrato ceramico.

Questa implementazione che richiede una minima aggiunta di parti è adeguata per letture che si succedono con una cadenza tale da permettere la ricarica completa di C1.

Solitamente valori tra 10nF e 100nF sono adeguati.

Si tratta di un sistema poco adatto nel caso di letture molto rapide o quando si deve tracciare un segnale di ingresso variabile: R1 e C1 costituiscono una rete RC che è in sostanza un filtro passa basso e quindi si ha una perdita delle variazioni oltre ad una certa frequenza.
In questo senso un valore elevato di C1 rallenta le letture, ma assorbe eventuali picchi indesiderati.
In questo senso C1 potrà variare da 10nF a 1uF o più.

Decisamente migliore è la soluzione basata su un componente attivo: basta inserire un buffer a guadagno unitario tra il partitore e il port analogico. 

Un buffer unitario, realizzato con un amplificatore operazionale:

  • ha una elevata impedenza di ingresso e quindi non carica il partitore,
  • mentre ha una bassa impedenza di uscita e potrà fornire corrente sufficiente per l' impulso di carica del condensatore e il tempo di acquisizione sarà minimizzato.

Un buffer unitario è realizzabile con un qualsiasi operazionale che possa funzionare a singola tensione.
La scelta di un rail-to-rail è ideale.

In commercio esiste una vasta gamma di operazionali in package singolo, doppio e quadruplo; ad esempio si possono citare l' MCP60x di Microchip, che può funzionare in alimentazione singola fino a 2.7V e, nella versione singola (MCP601) è disponibile sia nel classico DIP-8 che nel SOIC-8, ma anche nei minuscoli SOT-23 che ne rendono possibile l' inserimento anche nei più fitti circuiti stampati.
vanno altrettanto bene i vari TLCV2772, LT1677, OPA342, LT1366, AD8541, ecc.

Questa soluzione è vivamente consigliata ovunque sia necessario avere una certezza della qualità della lettura analogica in quanto rende l' ingresso dell' ADC del tutto indipendente dalle caratteristiche della sorgente di tensione da misurare, assicurando la massima precisione nella conversione.
Anche qui potrà essere utile inserire il condensatore C1 come filtraggio passa basso, con capacità tra 100pF e 10nF.

Vogliamo ricordare un'altra possibilità.
Se abbiamo in gioco un solo ingresso analogico o più ingressi scanditi molto lentamente, osserviamo che la sequenza di conversione è questa:

  • selezionare il canale di ingresso del modulo ADC

  • con questa operazione si collega l' ingresso scelto al pin a cui è collegata la sorgente di tensione e si connette il condensatore di s&h

  • si attende il tempo di acquisizione

  • quindi si avvia la conversione: questa operazione stacca il condensatore dal pin di ingresso e lo collega al convertitore

Dunque, se il canale di ingresso è selezionato, il condensatore s&h è collegato alla sorgente. Se si mantiene selezionato un canale solo e si avviano le successive conversioni a distanze di tempo tali da superare il tempo di acquisizione per quella determinata resistenza della sorgente (+ la pausa necessaria tra una conversione e la successiva), il condensatore di s&h sarà sempre caricato completamente e quindi non occorrerà alcuna azione sul partitore.
Ugualmente se si usano più canali, avendo cura che, una volta selezionato un canale, il microcontroller sia impegnato in altre azioni per un tempo tale da superare il tempo di acquisizione per quella determinata resistenza della sorgente.


Copyright © afg. Tutti i diritti riservati.
Aggiornato il 16/08/12.