Allora, ho riflettuto un po' ed ho messo a punto un primo accrocchio. Non è certamente un circuito finalizzato, ma si può forse iniziare a fare qualche prova. Il mio obiettivo è stato quello di misurare la ESR e non altri parametri come la capacità. Ecco il circuito (con qualche dettaglio ancora da sistemare):
L'idea è quella di eccitare il condensatore (Rx e Cx) con un segnale sinusoidale di circa 100mV picco picco. Il mio circuito non genera questo segnale, che dev'essere fornito dall'esterno. Io ho usato il generatore di segnali, per fare prove a frequenze diverse. L'alimentazione è singola a 5V, attenzione il U1 è un TLC084 che non è un TL084, ma una versione molto migliorata, più veloce e più adatta ad una tensione di alimentazione singola. Non è detto che sia la scelta migliore per il circuito, ho semplicemente usato quello che già avevo in casa.
Il segnale è applicato al condensatore in prova tramite la resistenza R7 che è l'unico componente un po' critico del circuito. U2 è un banale comparatore usato come rilevatore di zero crossing, che permette di ottenere un segnale logico in fase con l'eccitazione. Questo segnale viene utilizzato per pilotare U3D che è il "cuore" del circuito di lock-in.
A seconda di quale interruttore U3A, U3B o U3C è chiuso, si può ottenere:
A: il segnale di eccitazione a monte di R7
B: il segnale di eccitazione a valle di R7, sul condensatore
C: il segnale di ritorno a massa
Il circuito lock in fa abbastanza schifo, nel senso che è probabilmente la configurazione più semplice possibile e l'apertura e la chiusura di U3D non danno un transitorio simmetrico. Questo vuol dire che sull'uscita ci si ritrova un offset che dipende dalla frequenza del segnale di eccitazione. La resistenza "ON" di U3D è tutt'altro che trascurabile e nel peggiore dei casi può arrivare dalle parti del kiloohm, il che forza ad utilizzare R11 un po' elevata, a discapito del transitorio. Sarebbe meglio utilizzare un deviatore come quelli contenuti in un LTC1043, ma per il resto del circuito va benone il CD4066 e mi sembrava brutto sprecare pezzi di integrato (ed il prezzo e la reperibilità di un CD4066 vanno a suo favore).
La tensione in uscita varia ovviamente a seconda dell'ampiezza del segnale di eccitazione. Nel mio circuito per non saturare l'operazionale mi sono limitato a tensioni inferiori a 0,7V in modulo. Se si misurano le tre tensioni in uscita

con

si può ottenere la resistenza Rx nel modo seguente (se la frequenza è tale per cui l'impedenza di Cx è trascurabile):

In altre parole, l'offset generato dalle commutazioni del circuito lock-in viene eliminato automaticamente nel calcolo, ed il tutto non dipende dall'ampiezza del generatore. Questo però richiede un buon convertitore analogico/digitale, se possibile con ingresso differenziale per poter misurare tensioni rispetto al riferimento da 2,5V. In passato ho usato con successo con dei colleghi un MCP3425 che è un sigma-delta da 16 bit (ha un range che arriva a +/-2,048V che è perfino eccessivo).
Il filtro R13/C4 dovrebbe permettere di fare misure in 100 ms, il che vuol dire che si potrebbero fare circa tre valutazioni della ESR al secondo.
Ecco una foto del mio prototipo, montato con cablaggio volante su basetta ramata:
Ed ecco una foto di un oscillogramma (nella versione in foto, gli ingressi di U2 sono scambiati ed ho una tensione negativa in uscita di U1D):
Da sopra a sotto, si vede il segnale di eccitazione a 10kHz in ingresso del circuito (100mV/div), l'uscita di U2 (5V/div) e l'uscita di U1D prima del filtro di uscita. La base dei tempi è di 20µs/div.
Si notano nella traccia in basso le imperfezioni della commutazione del circuito lock-in.
Tuttavia, ho fatto qualche prova e dovrebbe essere possibile arrivare almeno a 50kHz con i componenti che ho usato, volendo anche a 100kHz. Le tracce sono brutte, ma alla fine i conti con le misure tornano. Una resistenza di potenza da 22mohm si misura con ottima precisione a 10kHz, mi risulta 34mohm a 100kHz ma potrebbe essere l'effetto dell'induttanza serie che inizia a farsi sentire.
Rimane qualche domanda:
- Ci sono approcci migliori in letteratura? Io ho cercato un po' ed ho trovato poco. Il meglio sono i manuali dei misuratori RLC di fascia alta (HP, Agilent, etc), ma il principio è poi sempre quello di misurare corrente e tensione. Ho cercato e la letteratura dagli anni 90 in poi parla sopratutto di misure per monitoring su circuiti in funzione.
- Per il momento, il circuito non misura la capacità e non permette di applicare un offset in continua. Per la misura della capacità, bisogna probabilmente scendere in frequenza per iniziare a vedere lo sfasamento tra corrente e tensione. In questo caso, bisogna utilizzare un riferimento in quadratura al posto del segnale in fase ottenuto con il LM311. Meglio sarebbe generare una frequenza variabile. Quello che limita la frequenza in basso è il filtro R13/C4. Attualmente, meglio non scendere sotto a qualche centinaio di Hz. Abbassando la frequenza di taglio del filtro, bisogna aspettare di più per fare la misura.
- Come generiamo il segnale di eccitazione? Oscillatorino banale a due/tre frequenze fisse o segnale generato dal processore in qualche modo a frequenza arbitraria? Quest'ultima strada è interessante per poter disporre comodamente di un segnale di riferimento in quadratura e fare misure di parte reale ed immaginaria dell'impedenza, accedendo alla misura di capacità. Se si potesse campionare la tensione ad un sottomultiplo della frequenza di eccitazione sarebbe tutto grasso che cola.
Il consumo è attorno ai 15mA, ma si può abbassare lavorando sul comparatore U2 e adottando qualche accorgimento qua e là.
Io devo ancora vedere uno o due dettagli nel prototipino che ho montato, ma poi posso spedirlo a chi volesse provare a giocare e scrivere qualche linea di codice su un micro.