...

M.Baliviera (Laurea Specialistica) - diegm

by user

on
Category: Documents
14

views

Report

Comments

Transcript

M.Baliviera (Laurea Specialistica) - diegm
UNIVERSITÀ DEGLI STUDI DI UDINE
_______________________________________________
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Elettronica
Dipartimento di Ingegneria Elettrica,
Gestionale e Meccanica
Tesi di Laurea
Studio e sviluppo di Librerie per test
automatici di regolatori di tensione
Relatore
Chiar.mo Prof. Ing. Selmi Luca
Laureando
Baliviera Mirco
Correlatore
Dott. Ing. Monetti Antonio
______________________________________________
Anno Accademico 2002/03
INTRODUZIONE ----------------------------------------------------------------------------------------------------------- 5
1
I REGOLATORI DI TENS IONE ------------------------------------------------------------------------------ 8
1.1
1.2
INTRODUZIONE----------------------------------------------------------------------------------------------8
CONVERTITORI SWITCHING -----------------------------------------------------------------------------------8
1.2.1
Principio di Funzionamento dei convertitori switching----------------------------------------- 8
1.2.2
Convertitori Buck -----------------------------------------------------------------------------------------10
1.2.3
Convertitori Boost----------------------------------------------------------------------------------------11
1.2.4
Convertitori Buck -Boost--------------------------------------------------------------------------------12
1.2.5
Convertitori Flyback -------------------------------------------------------------------------------------13
1.2.6
I Convertitori Push-Pull --------------------------------------------------------------------------------15
1.2.7
I convertitori Half-Bridge ------------------------------------------------------------------------------17
1.2.8
I convertitori Full-Bridge-------------------------------------------------------------------------------18
1.2.9
Alcuni accorgimenti negli switching regulators--------------------------------------------------19
1.2.10
Misura dell’efficienza degli switching regulator:--------------------------------------------23
1.3
I REGOLATORI LINEARI --------------------------------------------------------------------------------------- 26
1.3.1
Struttura base di regolatore lineare -----------------------------------------------------------------26
1.3.2
Le funzioni del Control Loop--------------------------------------------------------------------------26
1.3.3
Tipici regolatori lineari ---------------------------------------------------------------------------------27
1.3.4
I regolatori lineari Standard (NPN) -----------------------------------------------------------------28
1.3.5
I regolatori LDO ------------------------------------------------------------------------------------------28
1.3.6
I Quasi Low-Dropout (LDO) Regulator------------------------------------------------------------29
1.3.7
Confronto dei tre tipi di Regolatori Lineari -------------------------------------------------------30
1.4
CONFRONTO FRA I REGOLATORI SWITCHING-E LINEARI ---------------------------- 34
2
L’ AMBIENTE LABVIEW --------------------------------------------------------------------------------------37
2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
3
INTRODUZIONE-------------------------------------------------------------------------------------------- 37
LABVIEW -------------------------------------------------------------------------------------------------------- 38
Generalità --------------------------------------------------------------------------------------------------38
Organizzazione Gerarchica dei VI-------------------------------------------------------------------38
Front Panel-------------------------------------------------------------------------------------------------39
Diagramma a Blocchi -----------------------------------------------------------------------------------40
Le strutture -------------------------------------------------------------------------------------------------43
L’A CQUISIZIONE DATI --------------------------------------------------------------------------------------- 46
Confronto fra DAQ Devices e Special-Purpose Instrument-----------------------------------46
Comunicazione pc - DAQ devices--------------------------------------------------------------------47
Comunicazone pc – special purpose instrument--------------------------------------------------48
Instrument Drivers in Labview------------------------------------------------------------------------49
GPIB e Instrument Control usati---------------------------------------------------------------------51
MISURA DELLA LOAD REGULATION-----------------------------------------------------------------52
3.1
3.2
3.3
INTRODUZIONE-------------------------------------------------------------------------------------------- 52
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------- 52
DEFINIZIONE DEL SUBVI CHE IMPOSTA IL KE2400 COME GENERATORE DI CORRENTE ------ 55
3.3.1
GPIB Address to Resource Name.vi -----------------------------------------------------------------56
3.3.2
Ke24XXInizialize.VI--------------------------------------------------------------------------------------57
3.3.3
Ke24xx Enable/Disable Beeper.vi--------------------------------------------------------------------58
3.3.4
Ke24xx Configure DCV.vi------------------------------------------------------------------------------59
3.3.5
Ke24xx Configure Source Mode.vi-------------------------------------------------------------------59
3.3.6
Ke24xx Configure Source Compliance.vi----------------------------------------------------------61
3.3.7
Ke24xx Configure Source Volt/Cur Level.vi-------------------------------------------------------61
3.3.8
Ke24xx Enable/Disable Source Output.vi----------------------------------------------------------62
3.3.9
Ke24xx Read.vi--------------------------------------------------------------------------------------------63
3.3.10
Ke2400 PerformIV_Simple_sense----------------------------------------------------------------63
3.4
DEFINIZIONE DEL SUBVI CHE IMPOSTA IL KE2000 COME MULTIMETRO------------------------- 65
3.4.1
ke2000 Configure Measurement.vi-------------------------------------------------------------------65
3.4.2
ke2000 Configure Trigger.vi---------------------------------------------------------------------------67
1
3.4.3
3.4.4
ke2000 Read.vi --------------------------------------------------------------------------------------------68
ke2000 Close.vi--------------------------------------------------------------------------------------------69
3.5
KE2000 SINGLE POINT MEASUREMENT .VI-------------------------------------------------------------- 69
3.6
LIBRERIA LABVIEW PER LA CELLA TERMICA ----------------------------------------------------------- 73
3.7
SUB VI PER IL TEST DI LOAD REGULATION AD UNA DATA TEMPERATURA---------------------- 80
3.8
VI CHE REALIZZA IL TEST LOAD REGULATION A DIVERSE TEMPERATURE ---------------------- 86
3.8.1
Possibili miglioramenti della libreria---------------------------------------------------------------87
3.9
ELABORAZIONE AUTOMATICA DELLE MISURE DI LOAD REGULATION --------------------------- 94
3.9.1
Connector Pane-------------------------------------------------------------------------------------------95
3.9.2
Definizioni delle Macro Excel-------------------------------------------------------------------------96
3.10
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------105
3.11
SOMMARIO--------------------------------------------------------------------------------------------------105
4
MISURA DELLA LINE REGULATION ----------------------------------------------------------------107
4.1
4.2
4.3
INTRODUZIONE-------------------------------------------------------------------------------------------107
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------107
DEFINIZIONE DEL SUBVI CHE IMPOSTA IL KE2400 COME GENERATORE DI CORRENTE -----108
4.3.1
Ke24xx Configure DC IV.vi--------------------------------------------------------------------------109
4.3.2
Ke24xx Configure V Source Protection.vi -------------------------------------------------------110
4.4
KE2400 PERFORM VI SINGLE POINT WITH CLOSE (2WIRES) CONSTANTS.VI ------------------110
4.5
SUB VI PER IL TEST DI LINE REGULATION AD UNA DATA TEMPERATURA ----------------------111
4.6
VI CHE REALIZZA IL TEST LINE REGULATION A DIVERSE TEMPERATURE -----------------------116
4.6.1
Possibili miglioramenti della libreria-------------------------------------------------------------119
4.7
ELABORAZIONE AUTOMATICA DELLE MISURE DI LINE REGULATION ---------------------------122
4.8
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------125
4.9
SOMMARIO--------------------------------------------------------------------------------------------------125
5
MISURA DEL DROP OUT -----------------------------------------------------------------------------------126
5.1
5.2
5.3
5.4
5.5
6
INTRODUZIONE-------------------------------------------------------------------------------------------126
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------126
LIBRERIA CHE UTILIZZA SOLAMENTE DUE KE2400--------------------------------------------------128
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------133
SOMMARIO--------------------------------------------------------------------------------------------------134
MISURA DELLA TENSIONE DI BANDGAP ---------------------------------------------------------135
6.1
6.2
INTRODUZIONE-------------------------------------------------------------------------------------------135
CIRCUITI DI BANDGAP --------------------------------------------------------------------------------------135
6.2.1
Widlar Bandgap Reference---------------------------------------------------------------------------135
6.2.2
Brokaw Bandgap Reference -------------------------------------------------------------------------137
6.3
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------137
6.4
LIBRERIA DELLA MISURA DEL BANDGAP PER UNA DATA TEMPERATURA ----------------------138
6.4.1
SubVi che rileva la temperatura con un 4wire RTDs con il Ke2700----------------------139
6.5
LIBRERIA DELLA MISURA DEL BANDGAP ---------------------------------------------------------------143
6.6
ELABORAZIONE AUTOMATICA DELLA MISURA DEL BANDGAP ------------------------------------144
6.7
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------146
6.8
SOMMARIO--------------------------------------------------------------------------------------------------146
7
MISURA DELLA CURRENT LIMITING --------------------------------------------------------------147
7.1
7.2
INTRODUZIONE-------------------------------------------------------------------------------------------147
CIRCUITI DI CURRENT LIMITING --------------------------------------------------------------------------147
7.2.1
Constant Current Limiting ---------------------------------------------------------------------------147
7.2.2
Voltage Dependent (foldback) Current Limiting-----------------------------------------------148
7.3
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------149
7.4
LIBRERIA LABVIEW PER LA MISURA DI CURRENT LIMITING PER UNA DATA TEMPERATURA
150
7.5
LIBRERIA LABVIEW PER LA MISURA DI CURRENT ----------------------------------------------------152
7.6
ELABORAZIONE AUTOMATICA DELLA MISURA DEL BANDGAP ------------------------------------152
7.7
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------152
2
7.8
8
SOMMARIO--------------------------------------------------------------------------------------------------153
MISURA TERMAL SHUTDOWN -------------------------------------------------------------------------154
8.1
8.2
8.3
8.4
8.5
8.6
8.7
9
INTRODUZIONE-------------------------------------------------------------------------------------------154
CIRCUITO DI TERMAL SHUTDOWN -----------------------------------------------------------------------154
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------155
SUB VI PER LA MISURA DI VOUT E DI TEMPERATURA -----------------------------------------------156
LIBRERIA LABVIEW PER IL TEST DI TERMAL SHUTDOWN------------------------------------------157
UTILIZZO DELLA LIBRERIA---------------------------------------------------------------------------------160
SOMMARIO--------------------------------------------------------------------------------------------------160
MISURA PSRR ----------------------------------------------------------------------------------------------------161
9.1
9.2
9.3
9.4
9.4.1
9.4.2
9.4.3
9.4.4
9.5
9.5.1
9.5.2
9.5.3
9.5.4
9.5.5
9.6
9.6.1
9.7
9.8
9.9
9.10
10
INTRODUZIONE-------------------------------------------------------------------------------------------161
POWER SUPPLY REJECTION RATIO-----------------------------------------------------------------------161
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------162
LIBRERIA HP 33250.VI ---------------------------------------------------------------------------------------163
hp33120a Configure Output Mode.vi -------------------------------------------------------------165
hp33120a Configure Operation Mode.vi---------------------------------------------------------166
hp33120a Configure Standard Waveform.vi ----------------------------------------------------166
hp33120a Configure Ref Clock Source.vi--------------------------------------------------------167
LCLT 584_ACQUISITIONCH1_MATHCH2. VI:----------------------------------------------------------167
lcltxxxx Auto Setup.vi----------------------------------------------------------------------------------171
lcltxxxx Read Waveform.vi ---------------------------------------------------------------------------171
lcltxxxx Actual Sample Rate.vi ----------------------------------------------------------------------172
lcltxxxx Reset Math Channel.vi ---------------------------------------------------------------------172
lcltxxxx Channel Math.vi -----------------------------------------------------------------------------173
PSRR_SIMPLE ------------------------------------------------------------------------------------------------174
FFT Spectrum (Mag-Phase).vi----------------------------------------------------------------------176
LIBRERIA PSRR ----------------------------------------------------------------------------------------------177
ELABORAZIONE AUTOMATICA DELLA MISURA DI PSRR--------------------------------------------180
UTILIZZO DELLE LIBRERIE ---------------------------------------------------------------------------------181
SOMMARIO--------------------------------------------------------------------------------------------------181
MISURA ESR ------------------------------------------------------------------------------------------------------182
10.1
INTRODUZIONE-------------------------------------------------------------------------------------------182
10.2
STABILITÀ NEGLI LDO--------------------------------------------------------------------------------------182
10.3
DEFINIZIONE DEL PROBL EMA------------------------------------------------------------------------------184
10.4
LCLT 584_AVG(CH1)_AVG(CH2)+PMT(ESR).VI -------------------------------------------------186
10.4.1
Configure PMT.vi-----------------------------------------------------------------------------------190
10.4.2
LTDSO Parameter Value.vi----------------------------------------------------------------------192
10.5
M ISURA DI ESR AL VARIARE DELLA TEMPERATURA------------------------------------------------192
10.6
ELABORAZIONE AUTOMATICA DELLA MISURA DI ESR----------------------------------------------194
10.7
UTILIZZO DELLA LIBRERIA---------------------------------------------------------------------------------194
10.8
SOMMARIO--------------------------------------------------------------------------------------------------194
11
CARATTERIZZAZIONE DI UN BJT MULTICOLLETTORE---------------------------------195
11.1
INTRODUZIONE-------------------------------------------------------------------------------------------195
11.2
DEFINIZIONE DEL PROBLEMA------------------------------------------------------------------------------195
11.3
TEST _ CHIP _SWEEP _IB_VB_SWEEP _VC.VI ------------------------------------------------------------197
11.3.1
KE2700 Set Channel List.vi----------------------------------------------------------------------201
11.3.2
KE2700 Configure Multi-Point.vi--------------------------------------------------------------201
11.3.3
KE2700 Read Multi-Point.vi---------------------------------------------------------------------201
11.4
ELABORAZIONE DEI DATI DEL “TESTCHIP ”-------------------------------------------------------------202
11.5
SOMMARIO--------------------------------------------------------------------------------------------------204
CONCLUSIONI-----------------------------------------------------------------------------------------------------------205
APPENDICE A: INTERFACCIA GPIB --------------------------------------------------------------------------207
3
A.1 INTRODUZIONE------------------------------------------------------------------------------------------------------207
A.2 STRUTTURA ---------------------------------------------------------------------------------------------------------207
A.3 POLLING --------------------------------------------------------------------------------------------------------------210
A.4 SOMMARIO ----------------------------------------------------------------------------------------------------------210
APPENDICE B: INTERFACCIA SERIALE RS-232 --------------------------------------------------------212
B.1 INTRODUZIONE -------------------------------------------------------------------------------------------------212
B.2 CARATTERISTICHE DELL ’INTERFACCIA SERIALE RS-232-------------------------------------------------212
B.2.1 Pinout DB25 -------------------------------------------------------------------------------------------------213
B.2.2 Pinout DB9 ---------------------------------------------------------------------------------------------------213
APPENDICE C : CAMERA TERMOSTATICA “ANGELANTONI CH60T”--------------------------------------216
C.1 CARATTERISTICHE TECNICHE------------------------------------------------------------------------------------216
C.2 STRUTTURA DEI REGISTRI DEL MICROCONTROLLORE------------------------------------------------------216
APPENDICE D: REGOLATORE DI TENSIONE TLE 4270---------------------------------------------219
BIBLIOGRAFIA ----------------------------------------------------------------------------------------------------------231
4
INTRODUZIONE
La maggior parte dei circuiti elettronici richiedono, per il loro corretto
funzionamento, una tensione di alimentazione continua, di valore costante
indipendente dalla corrente richiesta e dalla temperatura ambiente. I circuiti che
forniscono in uscita una tensione (o più tensioni) costante(i) indipendente(i) dalla
tensione al loro ingresso, dalla corrente richiesta dal carico e dalla temperatura
ambiente sono chiamati regolatori di tensione. Le applicazioni per le quali si rende
necessario l’uso di un regolatore di tensioni sono innumerevoli, dalla centralina
elettronica delle auto alla scheda madre di un computer. I regolatori di tensione sono
prodotti sotto forma di circuiti integrati e necessitano di test sia in fase di sviluppo
che in produzione. In particolare i circuiti integrati impiegati nel settore
automobilistico devono rispondere a standard di funzionamento militari e necessitano
quindi di test anche in temperatura, tra -40°C e +150°C. Normalmente, almeno in
fase di progettazione, i test sui circuiti integrati vengono effettuati “manualmente” in
laboratorio e su un numero limitato di campioni. I test effettuati su un componente in
fase di progettazione servono a verificare il rispetto delle specifiche di progetto e
tutte queste operazioni si possono definire “caratterizzazione di un componente”. La
maggior parte di questi test sono ripetitivi e comportano la necessità di impostare
strumenti di misura e acquisire dati da altri strumenti di misura e possono durare
anche giorni. Da qui nasce la richiesta di ottimizzare e rendere automatici questi test
permettendo così all’operatore di risparmiare tempo.
Scopo di questa tesi è quello di studiare e realizzare un insieme di
metodologie che consentano di effettuare, in maniera del tutto automatica, un
insieme di test per la caratterizzazione dei regolatori di tensione. Per risolvere questo
problema ho utilizzato due pacchetti software commerciali, Labview della National
Instrument ed Excel della Microsoft.
Labview è un linguaggio di programmazione che negli ultimi anni è diventato
uno standard per quanto riguarda lo sviluppo di applicazioni che comportano la
comunicazione tra strumenti di misura. Grazie a questo linguaggio è infatti possibile
realizzare in modo semplice e veloce applicazioni grafiche per il controllo remoto di
strumenti di misura.
Excel è un software per l’elaborazione di dati che ho utilizzato per completare
l’automazione dei test, rendendo automatica la realizzazione dei report.
All’operatore resta il compito di collegare il circuito al banco di prova,
scegliere la libreria Labview adatta per il tipo di test da effettuare, impostare
opportunamente tutti gli strumenti e definire dove salvare i dati, il tutto tramite una
chiara interfaccia utente, costruita appositamente per quel test.
Al termine dell’esecuzione del programma Labview, l’operatore troverà i dati
acquisiti già elaborati e salvati con il software Excel. Se durante l’esecuzione del test
si verificassero degli errori sugli strumenti di misura o nella comunicazione tra il
5
computer e gli strumenti, il test verrà interrotto e i dati fin li raccolti saranno
comunque disponibili.
Questa tesi è stata sviluppata durante uno stage presso il Design Center di
Infineon Technologies s.r.l. di Padova, specializzato nella progettazione di regolatori
di tensione per il settore automotive.
Nel capitolo 1 vengono spiegate le caratteristiche principali dei dispositivi ai
quali sono rivolte le librerie, ossia gli switching converter ed i linear regulator.
Nel capitolo 2 verranno spiegati gli aspetti fondamentali del software
Labview per permettere di capire le librerie che verranno sviluppate.
Nel capitolo 3 viene affrontato lo sviluppo della libreria per la misura di Load
Regulation, che definisce la apacità del regolatore a mantenere la tensione d’uscita
costante al variare del carico. In questo capitolo viene anche creata una libreria per il
controllo della cella termica, fondamentale per eseguire automaticamente i vari test
in temperatura.
Il capitolo 4 riguarda la misura di Line Regulation, che definisce la capacità
del regolatore di mantenere un corretto funzionamento al variare della tensione di
alimentazione.
Nel capitolo 5 viene sviluppata una libreria per il test della tensione di
Dropout, che affronta il problema di quanto l’alimentazione (es. una batteria) possa
scendere mantenendo in uscita la tensione di funzionamento minima garantita.
Il capitolo 6 riguarda il test di Bandgap: all’interno di un regolatore vi è una
tensione, chiamata tensione di Bandgap, che deve essere stabile in temperatura in
quanto viene presa come riferimento per tutta la circuiteria interna al dispositivo.
Il capitolo 7 effettua il test di Current limiting: è un test che determina la
corrente di massima di carico oltre la quale si attiva la protezione di current limiting.
Nel capitolo 8 viene effettuato un test rivolto ad un’altra protezione presente
nei regolatori, chiamato Termal Shutdown: con questa misura si verifica a che
temperatura si attiva la protezione contro eventuali surriscaldamenti nel dispositivo.
Il capitolo 9 è intitolato “Power Supply Rejection Ratio” e affronta il
problema di come un dato rumore in ingresso si ripercuote nell’uscita.
Nel capitolo 10 viene sviluppata una libreria che da una stima della resistenza
equivalente serie (ESR) di un condensatore, parametro molto importante per la
progettazione e studio della stabilità dl dispositivo.
Infine nel capitolo 11 viene sviluppata una libreria in grado di caratterizzare
un componente comune in tutti i regolatori lineari a bassa dropout, ossia un
particolare transistor PNP.
Nell’appendice A sono poi riportate le caratteristiche principali
dell’interfaccia GPIB usate per la comunicazione fra gli strumenti ed il pc, mentre
l’appendice B riguarda l’interfacia seriale RS 232 usata per la comunicazione fra il
microcontrollore della cella termica ed il pc.
Nell’appendice C sono riportati tutti i registri presenti nel microcontrollore
della cella termica che vengono utilizzati per il controllo remoto da Labview via
porta seriale.
6
Nell’appendice D è riportato il data sheet del regolatore Infineon TLE 4270,
le cui specifiche sono state utilizzate come esempio durante lo sviluppo delle varie
librerie.
7
I regolatori di tensione
1
I regolatori di tensione
1.1 INTRODUZIONE
I convertitori Switching stanno aumentando di popolarità poiché offrono i
vantaggi di una più alta efficienza nella conversione di potenza e un incremento nella
flessibilità del design (differenti tensioni in uscita possono essere generati da
un’unica tensione d’ingresso).
In queste pagine verranno esposte le principali caratteristiche dei regolatori
switching e di quelli lineari, quindi seguirà un confronto fra le due categorie [1].
1.2 Convertitori switching
I convertitori switching si possono suddividere in queste categorie:
Buck: usato per abbassare una tensione DC a una minore.
Boost: provvede a una tensione d’uscita maggiore di quella d’ingresso.
Buck-Boost: la tensione in uscita ha polarità opposta a quella di ingresso .
Flyback: una tensione d’uscita, minore o maggiore di quella in ingresso può essere
disponibile in uscite multiple.
Push-Pull: è un convertitore a due transistor efficiente soprattutto per basse tensioni
in ingresso.
Half-Bridge: è un doppio transistor converter usato in molte applicazioni in cui è
richiesta una potenza elevata.
Full-Bridge: è caratterizzato da quattro transistor e fra tutti i convertitori switching
può generare la maggior potenza di uscita.
1.2.1 Principio di Funzionamento dei convertitori switching
Lo schema a blocchi di un alimentatore a commutazione (o “switching”) è
rappresentato in figura:
8
I regolatori di tensione
Figura 1-1 Schema di massima di un convertitore switching
La tensione alternata di alimentazione viene dapprima raddrizzata mediante,
ad esempio, un circuito raddrizzatore a ponte e successivamente livellata con un
condensatore. La tensione continua così ottenuta è quindi applicata al convertitore
DC/DC. In esso un transistore interrompe opportunamente la tensione continua,
effettuando in altre parole una modulazione PWM (pulse width modulation). Gli
impulsi ottenuti sono poi applicati ad un trasformatore il cui compito è di portare la
tensione al livello richiesto; il circuito di raddrizzamento ed il filtro di livellamento
all’uscita convertono la tensione da impulsiva in continua.
Il circuito di controllo consente di regolare e stabilizzare la tensione d’uscita
contro variazioni del carico o fluttuazioni della tensione di alimentazione; il controllo
è realizzato o agendo sul transistore che funge da interruttore, variandone il tempo di
chiusura, o mediante un avvolgimento avvolto sullo stesso nucleo del trasformatore
del convertitore.
Un esempio di uso di un segnale PWM può essere il seguente:
Applicando una serie di impulsi rettangolari a frequenza costante ma duty
cicle variabile su un filtro L-C, si può ricavare una tensione continua pari al prodotto
del valore della tensione di picco degli impulsi per il duty cycle: questa relazione
9
I regolatori di tensione
dimostra come la tensione d’uscita può essere direttamente controllata cambiando il
tempo di chiusura dello switch.
Nella seguente figura sono riportati tre diversi casi di impulsi modulati,
caratterizzati rispettivamente da un duty-cicle di 0,25 – 0,5 e 0,75. supponendo che la
tensione di picco Vp degli impulsi sia di 48 V, se si filtrano tali impulsi con la rete LC si ottiene proprio in uscita una tensione DC uguale a Vp moltiplicato il duty-cicle:
E’ chiaro come modulando la
larghezza
dell’impulso,
sia
possibile ottenere qualsiasi tensione
d’uscita, senza dissipare inutile
potenza. Naturalmente affinché il
segnale così ottenuto sia esente da
disturbi e ondulazioni, occorrerà
dimensionare opportunamente il
filtro.
Il vantaggio principale di questo
modo di funzionamento sta proprio
nella caratteristica di un segnale PWM: possiamo ottenere correnti considerevoli
semplicemente utilizzando impulsi di brevissima durata, e quindi in un periodo di
funzionamento il dispositivo resterà spento per gran parte del tempo, dissipando così
pochissima energia.
1.2.2 Convertitori Buck
I convertitori switching più comunemente utilizzati per abbassare una
tensione continua ad un’altra (mantenendo la stessa polarità) sono i convertitori
Buck. Questi dispositivi risultano essenziali nelle reti di distribuzione (da 24 V a 48
V) che devono essere convertite localmente in 15 V, 12 V, 5 V con bassissime
perdite di potenza.
Un Buck converter usa un transistor come convertitore che alternativamente
connette disconnette la tensione di alimentazione sull’induttore:
Figura 1-2 Struttura e principio di funzionamento di un convertitore Buck
10
I regolatori di tensione
La fig 1-2 mostra come la corrente scorra in due rami quando l’interruttore è
aperto o chiuso. Quando l’interruttore è chiuso, esiste una tensione ai capi
dell’induttore pari alla differenza fra la tensione d’ingresso e quella di uscita,
causando così un aumento della corrente dell’induttore stesso. Durante il tempo in
cui l’interruttore resta chiuso la corrente dell’induttanza scorre sia nel carico sia nella
capacità d’uscita (in questo modo caricandola) ed il diodo risulta polarizzato in
inversa.
Aprendo l’interruttore si disconnette l’alimentazione dal resto del circuito ma,
poiché la corrente in una induttanza non può interrompersi istantaneamente, si crea ai
capi di quest’ultima una tensione che tenterà di mantenere la corrente in circolo. La
corrente fluisce allora nel carico assieme alla corrente proveniente dal condensatore
e, attraverso il diodo, ritorna nell’induttanza.
ll comando di switch è affidato ad un apposito circuito (PWM control) che
verifica la tensione presente su carico e, di conseguenza, varia la durata dei tempi di
accensione e spegnimento. Come appena spiegato, la rampa di corrente nell’induttore
cresce finché l’interruttore resta chiuso, mentre cala quando è aperto. La corrente DC
equivalente presente nel carico è la media della corrente sull’induttore. La differenza
peak-to-peak della corrente nell’induttore è riferita al suo ripple e tipicamente
l’induttanza è scelta abbastanza grande da sopportare ripple di correnti entro il 20% 30% del valore medio DC.
Confronto fra modo di funzionamento continuo e discontinuo:
In molte applicazioni con convertitori Buck, la corrente dell’induttanza non
può scendere a zero durante tutto il ciclo di carico (questo è definito continuous
mode operation). Si può ottenere la prestazione migliore usando il modo continuo,
che permette pure la massima potenza sul carico per una data tensione di
alimentazione e una data frequenza di attivazione degli interruttori.
In altre applicazioni dove generalmente la massima corrente di carico è bassa,
può essere vantaggioso progettare convertitori che operino in modo discontinuo
(discontinuous mode operation). Questo modo di operare può essere utile per
ricavare convertitori di piccole dimensioni (perché viene adoperato un piccolo
induttore).
In genere il modo discontinuo alle basse correnti non causa nessun problema
e ogni convertitore progettato per operare in modo continuo a pieno carico può essere
portato a operare in modo discontinuo al diminuire della corrente richiesta.
1.2.3
Convertitori Boost
I convertitori Boost funzionano con una tensione continua d’ingresso e
producono in uscita una tensione continua più elevata. Lo schema di massima di
questi convertitori è riportato nella seguente figura, accompagnato dai dettagli del
percorso della corrente a seconda dello stato dello switch:
11
I regolatori di tensione
Figura 1-3 Struttura e principio di funzionamento di un convertitore Boost
Nel caso in cui l’interruttore risulti chiuso, la tensione in ingresso ai capi
dell’induttore forza la corrente a crescere (rampa crescente). Quando l’interruttore è
aperto la corrente dell’induttanza scorre attraverso il diodo permettendo al
condensatore di caricarsi raggiungendo una tensione più alta di quella d’ingresso;
come si può vedere in figura, durante questo stato la corrente scorre sia sul carico che
sul condensatore, mentre quando l’interruttore è chiuso la corrente nel carico è
dovuta solo alla scarica del condensatore.
CORRENTE E POTENZA IN USCITA :
Un importante aspetto da tener in considerazione nei Boost regulator è che la
corrente sul carico e quella sull’interruttore non sono uguali, e la corrente massima
disponibile sul carico è sempre minore del valore della corrente dello “switch
transistor”. Dovrebbe essere noto che in ogni regolatore la potenza massima
disponibile della conversione è uguale alla tensione d’ingresso moltiplicata per il
valor medio della corrente d’ingresso.
Dato che la tensione d’uscita del Boost è più alta di quella d’ingresso ne
consegue che necessariamente la corrente d’uscita dovrà essere minore di quella
d’ingresso.
1.2.4 Convertitori Buck-Boost
I convertitori Buck-Boost (chiamati anche Inverting regulator) data una
tensione continua d’ingresso producono una tensione d’uscita di polarità opposta che,
in valore assoluto, può essere sia più grande che più piccola di quella di
alimentazione.
Questo tipo di regolatore è raffigurato nella seguente figura:
12
I regolatori di tensione
Figura 1-4 Struttura e principio di funzionamento di un convertitore Buck-Boost
Quando l’interruttore è chiuso, la tensione d’ingresso applicata all’induttanza,
provoca un aumento della corrente in essa. Durante questo stato, la sola sorgente di
corrente per il carico risulta dalla scarica del condensatore. Questo richiede che la
quantità di carica persa dalla capacità durante questo periodo di tempo, debba essere
recuperata nell’altro stato.
Infatti quando l’interruttore (switch transistor) è aperto, la diminuzione della
corrente nell’induttanza causa uno swing negativo sul catodo del diodo, consentendo
così la sua accensione e permettendo alla corrente di scorrere sia sul carico sia sul
condensatore.Come mostrato in figura, la corrente sul carico è dovuta all’induttanza
mentre lo switch è aperto, e al condensatore quando lo switch è chiuso.
1.2.5 Convertitori Flyback
I regolatori Flyback sono i più versatili tra tutte le architetture viste in
precedenza poiché permettono al progettista di creare, data una singola tensione
d’ingresso, una o più tensioni d’uscita, alcune delle quali di polarità opposta.I
convertitori Flyback hanno guadagnato in popolarità nei sistemi a batteria, dove una
singola tensione deve essere convertita in quelle richieste dal sistema (per esempio
+5 V, +12 V, - 12 V) con un’alta efficienza di conversione di potenza.
La struttura base dei convertitori Flyback è qui riportata:
13
I regolatori di tensione
Figura 1-5Struttura e principio di funzionamento di un convertitore Flyback
La caratteristica più importante dei regolatori Flyback è il trasformatore;
quando l’interruttore è chiuso la tensione d’ingresso è applicata ai capi
dell’avvolgimento primario, causando un aumento del flusso della corrente. Si noti
come le polarità delle tensioni sugli avvolgimenti siano fra loro opposte (in figura la
polarità negativa è rappresentata col punto).
In questo modo la tensione che si crea sull’ avvolgimento secondario tiene
spento il diodo, evitando che la corrente scorra in questo avvolgimento. Durante
questa fase la corrente sul carico è dovuta soltanto dalla scarica del condensatore.
Quando l’interruttore è aperto la diminuzione della corrente nel primario
causa alla tensione individuata, nella figura, da un punto, uno swing positivo.
Contemporaneamente la tensione sul primario è riflessa sul secondario con la stessa
polarità. In questo modo il diodo si accende permettendo alla corrente di scorrere sia
sul carico sia sulla capacità. La quantità di carica persa dalla capacità nella fase
precedente (switch on) è recuperata in questa fase (switch off).
I convertitori Flyback possono operare sia in continuous mode (in cui la
corrente è sempre maggiore di zero), che in discontinuous mode (in cui la corrente
nel secondario raggiunge lo zero in ogni ciclo). Il nome Flyback deriva proprio dal
fattoche l’energia è fornita al carico durante l’intervallo di ritorno, cioè quando il
transistor non conduce .
COME GENERARE USCITE MULTIPLE: Un altro grande vantaggio dei
convertitori Flyback è la capacità di prevedere uscite multiple (vedi figura seguente).
In queste applicazioni una delle uscite (solitamente quella con corrente più alta) è
adibita al PWM feedback, e quindi è direttamente regolata.
La tensione sugli altri avvolgimenti è indirettamente regolata e segue quella
dell’avvolgimento retroazionato. In genere, però, la regolazione del carico su questi
avvolgimenti non è buona (tipicamente 5-10%) ma comunque risulta adeguata per
molte applicazioni. Se è richiesta una regolazione più precisa, una eccellente
soluzione è quella di usare un regolatore lineare a basa dropout (LDO) sulle uscite.
La tensione secondaria è mantenuta a 1 Volt oltre a quella desiderata e questo
ulteriore regolatore permette di migliorare il controllo dell’uscita con una minima
perdita di efficienza (il dropout indica la tensione che si “perde” nel regolatore).
14
I regolatori di tensione
Figura 1-6 Esempio di convertitore Flyback a tre uscite
1.2.6 I Convertitori Push-Pull
I convertitori Push-Pull usano due transistor per effettuare una conversione
DC-DC :
Figura 1-7 Struttura e principio di funzionamento di un convertitore Push-pull
Questi convertitori operano accendendo alternativamente i due transistor all’
interno del ciclo (i due transistor non sono mai accesi contemporaneamente). La
corrente dell’avvolgimento secondario scorre contemporaneamente a quella nel
primario ( quando uno dei due transistor risulta acceso).
Per esempio, quando il transistor A è acceso, vi è una corrente dovuta alla
tensione d’ingresso nella parte alta del primario e per una questione di polarità, si
accenderà il secondo diodo,cioè quello inferiore del secondario, consentendo ad una
corrente di scorrere nell’induttanza alimentando così sia il carico che la capacità
d’uscita.
Quando invece è il transistor B ad essere acceso, dallo schema si può vedere
che la corrente interesserà la parte inferiore del primario, mente sul secondario
risulterà acceso il primo diodo (quello superiore) e, come prima, ci sarà una corrente
nell’induttanza e nel carico più condensatore.
Una importante caratteristica dei convertitori Push-Pull è che i due transistor
devono essere in grado di sopportare una tensione doppia di quella in ingresso:
15
I regolatori di tensione
quando è acceso un transistor, la stessa tensione di alimentazione è indotta anche
nell’altra parte dell’avvolgimento primario non interessato dalla corrente, ma risulta
“floating” rispetto al polo positivo di ingresso: in questo modo, rispetto a massa, sul
collettore del transistor spento vi sarà una tensione doppia dell’alimentazione.
Questo fatto riduce l’uso dei convertitori Push-pull per basse tensioni di
ingresso; essi sono largamente usati per sistemi a batteria a 12 V e 24 V.
Figura 1-8 Diagramma temporale del circuito di fig 1-7
È importante notare come la frequenza d’uscita dell’onda rettangolare sul
secondario sia doppia rispetto al controllo PWM dei due transistor. Per esempio, se il
controllore PWM opera a 50 Hz sul primario, la frequenza del segnale sul
secondario sarà di 50 Hz.
Dalla fig 1-8 risulta ovvio che la tensione DC complessivamente ottenuta sul
carico risulti:
Vout = Vpk *
Ton
Tper
Ai capi dell’avvolgimento primario vi è una tensione pari a quella di ingresso
meno quella di saturazione dei transistor (Vin-Vswitch); posto Ns/Np il rapporto
spire e Vrect la tensione su un diodo (rectified diode), il valore di picco della
tensione d’uscita risulta
Vpk = (Vin - Vswitch ) * (Ns/Np ) − Vrect
Queste due relazioni evidenziano come i convertitori Push-pull siano adatti a
operare a basse tensioni.
Se si usano come interruttori dei MOS, con questi convertitori si possono
ricavare varie tensioni d’uscita (aggiungendo più avvolgimenti secondari), alcune
delle quali con polarità opposta rispetto alle altre, permettendo, con un’unica
alimentazione, tutte le tensioni necessarie per una data applicazione.
Il convertitore push-pull è più complesso del convertitore flyback; il suo uso è
conveniente quando le potenze sono elevate, al di sopra di 1 Kw.
16
I regolatori di tensione
1.2.7 I convertitori Half-Bridge
I convertitori Half-Bridge prevedono l’uso di due transistor e sono largamente
usati nella progettazione ad alta potenza. Essi sono molto indicati per tutte quelle
applicazioni che richiedono una potenza sul carico compresa fra 500W e 1500W, e
spesso funzionano direttamente dalla rete di alimentazione AC.
Il principale vantaggio dei convertitori Half-Bridge è l’isolamento fra
ingresso ed uscita ( la tensione DC pilotata in uscita è elettricamente isolata da quella
AC della rete). Ma questo significa anche che il circuito di controllo PWM deve
essere riferito alla massa della sezione DC.
La struttura base di un convertitore Half-Bridge è rappresentato in figura:
Figura 1-9 Struttura e principio di funzionamento di un convertitore Half-bridge
Come si vede dallo schema, con le due capacità in serie, uguali fra loro,
collegate alla tensione DC non regolata, si riesce a portare un capo dell’avvolgimento
primario del trasformatore a metà della tensione Vin . L’altra estremità
dell’avvolgimento è alternativamente pilotata alta e bassa dal circuito con i due
transistor, i quali, per non essere distrutti, non devono mai essere
contemporaneamente accesi.
I diagrammi temporali sono riportati qui sotto:
Figura 1-10 Diagramma temporale del circuito di fig 1-9
Quando è acceso il transistor A, date le polarità, risulterà acceso nel
secondario il diodo superiore, consentendo alla corrente di scorrere sul carico e sulla
17
I regolatori di tensione
capacità. Viceversa, quando è acceso il transistor B si invertono le polarità e nel
secondario sarà acceso l’altro diodo.
In questi convertitori, vi è la scarica del condensatore sul carico solo quando
non scorre alcuna corrente nel trasformatore, cioè quando i due transistor sono
entrambi spenti. Si noti dai diagrammi come gli impulsi in uscita siano a frequenza
doppia di quelli del controllo PWM che pilota i due transistor.
Utilizzando la stessa terminologia del caso precedente, la tensione in uscita
può essere calcolata come:
Vout = Vpk *
Ton
Tper
Mentre il valore di picco della tensione :
 Vin

Vpk = 
- Vswitch  * ( Ns - Np) − Vrect
 2

1.2.8 I convertitori Full-Bridge
I convertitori Full-Bridge richiedono complessivamente quattro switching
transistors per realizzare la conversione DC-DC. Il Full-Bridge è spesso impiegato in
applicazioni che utilizzano la potenza direttamente dalla linea AC, provvedendo ad
una potenza disponibile sul carico da 1 Kw a 3 Kw.
Un aspetto importante di questo dispositivo è l’isolamento dalla la rete AC
grazie allo “switching transformer”. Il circuito di controllo PWM è riferito alla
massa d’uscita, richiedendo un’alimentazione a parte solitamente ricavata da un
piccolo trasformatore a 50 Hz.
Inoltre, per mantenere l’isolamento, la base dei convertitori switching è
pilotata con altri piccoli trasformatori, come si evince dalla seguente figura:
Figura 1-11 Struttura e principio di funzionamento di un convertitore Full-bridge
Il trasformatore principale è sottoposto a tutta la tensione di ingresso quando
tutti e due i transistor A o i B sono accesi. Dall’utilizzo dell’intera tensione di
alimentazione deriva i nome Full-Bridge Converter, che mette a disposizione la più
alta potenza disponibile sul carico di tutti i tipi di convertitori.
18
I regolatori di tensione
Come è ovvio, può scorrere una corrente nel primario e secondario quando i
transistor A o B sono accesi e, dualmente, sarà attivo il diodo superiore o inferiore
del circuito secondario, mentre la capacità in uscita potrà scaricarsi sul carico
solamente quando tutti e quattro i transistor saranno spenti.
I diagrammi temporali sono stati rappresentanti precedentemente.
La tensione DC in uscita sarà:
Ton
Tper
Mentre il picco di tensione sul secondario è dato da :
Vout = Vpk *
Vpk = (Vin - 2Vswitch ) * (Ns - Np) − Vrect
1.2.9 Alcuni accorgimenti negli switching regulators
Si possono apportare alcuni miglioramenti alle prestazioni dei regolatori
switching con una attenta scelta delle capacità di ingresso e uscita, l’uso di capacità
bypass, una attenta connessione dei componenti a ground, e una scelta oculata del
tipo di trasformatore-induttore.
Ricordiamo a proposito come è fatta una capacità reale e come i suoi
componenti parassiti riducano il comportamento ideale:
ESR : l’ESR (Equivalent Series Resistance) comporta
un riscaldamento interno al condensatore dovuto alla
dissipazione termica.
L’ ESR può comportare casi di instabilità nel loop di
regolazione e la capacità stessa può distruggersi se il
ripple di corrente supera il limite.
Il valore di ESR aumenta al diminuire della
temperatura ed è funzione della frequenza.
ESL : l’ESL (Equivalent Series Inductance)limita
l’efficienza del condensatore alle alte frequenze,
infatti dopo la frequenza di risonanza il condensatore
si comporta come una induttanza.
Questo è anche il motivo per cui i condensatori
elettrolitici devono essere sostituiti con condensatori a
film o ceramici per migliorare le prestazioni alle alte
frequenze.
ESR, ESL e C formano un circuito risonante, la cui frequenza di risonanza
deve essere più alta possibile, perché oltre l’impedenza equivalente avrebbe un
comportamento induttivo. I regolatori switching generano segnali con componenti in
alta frequenza ( anche maggiori di 10 MHz) e quindi se tale frequenza risulta troppo
bassa c’è il pericolo che nascano segnali spuri.
19
I regolatori di tensione
Le capacità d’ingresso:
Tutti i convertitori switching visti nei precedenti paragrafi hanno bisogno di
assorbire della corrente dall’alimentazione DC ad una frequenza piuttosto alta;
l’impedenza di ingresso è estremamente importante e per taluni persino una piccola
induttanza potrebbe causare significativi disturbi nell’alimentazione del dispositivo.
Un modo per ovviare a questo problema è quello di usare capacità di bypass
vicine all’ingresso degli switching converter. Ancor meglio è usare un condensatore
elettrolitico con in parallelo una capacità ceramica o a film per ottimizzare i
bypassing in frequenza.
Effetti dell’ESR nelle capacità d’uscita:
La funzione principale delle capacità d’uscita in uno switching regulator è
quella di filtro; mentre il convertitore funziona, ci deve essere una corrente
carica/scarica sul condensatore.
L’ESR della capacità d’uscita limita direttamente le prestazioni degli
switching regulator ed in genere le case costruttrici definiscono un dato ESR per una
data frequenza. Ad esempio i condensatori elettrolitici hanno la specifica di ESR a
120 Hz, ma in particolari applicazioni con i regolatori di tensione si deve avere una
ESR stabile anche per alte frequenze (20KHz – 100 KHz).
Per questo motivo, ho anche sviluppato una libreria che, con gli strumenti
disponibili in laboratorio, fosse in grado di definire in modo automatico il valore di
ESR per un dato range di frequenze.
Sono molti i parametri che dipendono dall’ESR:
Ripple Voltage: in molti casi, la maggior parte del ripple della tensione d’uscita
dipende dal valore di ESR; se l’ESR aumenta, (come si vedrà dai risultati della
libreria che ho sviluppato, ciò avviene alle basse temperature), il ripple in uscita
aumenta sensibilmente.
Efficiency: l’ESR è causa della dissipazione interna al condensatore e questa potenza
persa riduce l’efficienza del regolatore e può addirittura arrivare a bruciare il
condensatore stesso se è troppo alta.
Loop stability: il valore di ESR delle capacità di uscita modificano anche la stabilità
del controllo di retroazione dei regolatori. Come si vedrà meglio nella descrizione dei
regolatori lineari, generalmente viene definito un range di ESR entro il quale il
sistema resta stabile.
Avere un condensatore con un definito e stabile ESR non è cosa semplice se
tutto il dispositivo deve essere operare in un vasto range di temperatura: ad esempio
l’ ESR di un tipico condensatore elettrolitico può crescere fino a 40 volte se la
temperatura passa da 25 °C a –40°C.
In questi casi è utile utilizzare in parallelo al condensatore elettrolitico in
alluminio, un altro condensatore con una curva di ESR più stabile in temperatura,
esempio quelli in Tantalium, consentendo così all’effettivo ESR di restare nel range
di stabilità.
20
I regolatori di tensione
Capacità di Bypass:
Le capacità di bypass sono raccomandate sui pin di alimentazione, ma
diventano indispensabili quando ci sono anche altri dispositivi vicino ai convertitori
switching per ridurre l’interferenza elettromagnetica irradiata .
Collegamenti di Ground:
La ground in un circuito è supposta essere ad un solo e definito potenziale,
ma in realtà non è così. Quando una corrente scorre verso massa, il filo di
collegamento presenta comunque una seppur piccola resistenza, e quindi si crea una
differenza di potenziale lungo il circuito di massa.
Nei circuiti DC a bassa frequenza, la “gestione della ground” è abbastanza
semplice: il solo parametro critico è la resistenza di collegamento del conduttore che
ne definisce la tensione ai suoi capi.
In alta frequenza, diventa importante anche l’induttanza interna della traccia o
del conduttore di massa.
Nei switching converter, ci sono impulsi di corrente ad alta frequenza che
causano seri problemi se l’induttanza parassita è alta. Molti dei disturbi sulla tensione
dei switching converter sono il risultato della corrente attraverso queste induttanze.
È noto che in un conduttore ad alte frequenze la corrente, tende per effetto
pelle a scorrere sulla sua superficie, e quindi è conveniente avere piste di ground
larghe, in molti casi si usa tutto un lato della board.
Un esempio di un pessimo layout è il seguente:
Si può osservare come la corrente di ritorno del Power Switch scorra su
un’unica pista comune al PWM Control Chip e al Logic Circuits: questa corrente
causa spike di tensioni positivi e negativi (che seguono la legge v=L(di/dt) ), la cui
ampiezza, come si vede in figura, è tanto maggiore quanto si è vicini al power
switching . Quindi il pin di massa dei tre blocchi non è fisso ad un punto stabile e ben
definito, ma è sottoposto a considerevoli sbalzi di tensione, oltremodo diversi ed in
istanti differenti fra loro. Questo rumore presente sui pin di ground può causare una
errata regolazione della tensione di uscita con un eccessivo ripple, e molto spesso i
regolatori che soffrono di rumore di ground possono diventare instabili ed entrare in
oscillazione al crescere della corrente ( cioè al crescere della corrente di ground).
21
I regolatori di tensione
Un layout migliore è il seguente:
In questo modo tutti e tre gli elementi sono collegati al punto di massa con tre
diversi conduttori e, cosa importante, il power switch (che ha la più alta corrente di
ground) è posizionato più vicino al pin di ground per ridurre l’induttanza di questo
collegamento responsabile dei disturbi più alti.
La capacità di ingresso deve essere una capacità elettrolitica con un buon
comportamento di ESR ad alta frequenza (solitamente quelli in Tantalium), per
mantenere il più possibile stabile l’alimentazione.
Inoltre ai capi di ogni blocco è presente una capacità RF bypass ( solitamente
condensatori a film o ceramici), di valore in genere di 0,01µF , ma il valore esatto
dipende comunque dall’entità degli spike di corrente.
Scelta del tipo di trasformatore ed induttore:
Il costo di un induttore o di un trasformatore dipende in gran parte dal tipo di
nucleo ferromagnetico adottato.
Il rumore irradiato da un trasformatore è estremamente importante e deve
essere limitato per prevenire errate operazioni del circuito di sensitive del switching
regulator. Verranno presentati i tipi di nuclei più comuni, con i loro svantaggi e
svantaggi:
Figura 1-12 Due tipi di nuclei
Si noti come il flusso magnetico del nucleo a sinistra esca da un lato,
attraversi l’aria ed entri nell’altro lato; questo tipo di nucleo è il peggiore per quanto
22
I regolatori di tensione
riguarda il rumore, ma risulta il più economico ed il più piccolo per un dato
induttore.
Viceversa, in un toroide il flusso magnetico è completamente contenuto in
esso; per questa ragione risulta il migliore per la bassa irradiazione di rumore, ma ha
lo svantaggio del costo più alto rispetto agli altri tipi di nucleo (realizzare
l’avvolgimento in un toroide è più costoso di quello su un nucleo parallelepipedo).
C’è poi una serie di nuclei con proprietà di rumore irradiato migliori di quelli
a parallelepipedo, ma non come quelli a toroide. Questi nuclei sono costituiti da due
pezzi e spesso vi è un “gap” d’aria per prevenire la saturazione del nucleo in ferrite.
Nella seguente figura vi sono tre tipi di nuclei spesso usati nei trasformatori
degli switching regulator:
Vi è del rumore nel gap d’aria fra i due materiali dovuto al flusso magnetico
che lascia un pezzo del nucleo e raggiunge l’altro.
I primi due tipi di nuclei sono molto semplici e poco costosi da realizzare, e si
presentano in moltissime applicazioni con gli switching regulator sopra 1 Kw,
realizzati a seconda degli usi in varie dimensioni e differenti mescole di Ferrite; in
più il rumore irradiato è ragionevolmente basso e questo tipo di nucleo può
facilmente adoperato nei layout delle board.
Il pot core sfrutta i vantaggi della protezione dei lati stessi di questo tipo di
nucleo (che non presentano gap), consentendo di limitare il flusso irradiato meglio
degli altri due casi e secondo solo al toroide.
Generalmente il nucleo pot core è più costoso dei casi E-E, E-I ma presenta
una limitata rumorosità; essi sono più facili da costruire rispetto ai nuclei a toroidi
poiché gli avvolgimenti sono realizzati da bobine standard ed semplicemente il
nucleo viene assemblato attorno ad esse.
1.2.10 Misura dell’efficienza degli switching regulator:
L’ efficienza è definita come:
η = Pload/Ptot
Considerando la tensione d’ingresso DC, Ptot è definita come la potenza totale
assorbita dall’alimentazione, che equivale a :
Ptot = Vin *Iin(average)
Si deve tener presente che nel calcolo viene considerata la corrente media
assorbita ( essa in realtà non sarà né DC, né sinusoidale)
23
I regolatori di tensione
La potenza totale può altresì calcolata considerando la potenza assorbita dal
carico e quella dissipata all’interno del regolatore:
Ptot = Pload + Plosses
Dai valori DC della corrente e tensione d’uscita Vout , Iout , ricaviamo:
Pload = Vout * Iout
Ma quantificare la potenza assorbita dall’alimentazione non è semplice:
benché la tensione di ingresso sia sostanzialmente DC, la stessa cosa non si può dire
per la corrente assorbita. La corrente media assorbita dal regolatore può essere
ricavata con ragionevole accuratezza usando una sonda di corrente a larga banda
collegata ad un oscilloscopio:
Se è necessaria una misura più accurata nel calcolo della corrente DC
assorbita, conviene allora usare una filtro L-C fra l’alimentazione e lo switching
converter: in questo modo la corrente in uscita al DC power supply sarà solo la
componente DC:
Risulta indispensabile l’uso di una grande capacità Cin bassa ESR in quanto la
rete L-C presenta un’alta impedenza alle componenti switching della corrente e
quindi Cin deve essere in grado di soddisfare queste richieste di impulsi di corrente.
Nei convertitori off-line , che assorbono potenza direttamente dalla rete AC,
vengono usati un raddrizzatore ed una capacità di filtro per ottenere una tensione DC
(non regolata). La misura della potenza complessivamente assorbita dalla rete AC
risulta difficoltosa per il fattore di forma: se la tensione e la corrente sono entrambe
sinusoidali, il fattore di forma è definito come il coseno dello sfasamento fra i due
segnali.
Ma in questo caso la corrente non è per niente sinusoidale, ma risulta
sottoforma di stretti e elevati impulsi (chiamati Haversine pulses) che richiedono una
ri-definizione del fattore di forma.
Usando una capacità d’ingresso come filtro, il fattore di potenza P.F. è
definito come:
P.F = Preal / Papparent
24
I regolatori di tensione
Questo termine può essere rilevato dal Lecroy waverunner Lt584L e sarà
sfruttato all’interno di una libreria per il calcolo del valore di ESR.
La potenza reale sarà data dalla somma della potenza dissipata sul carico più
le perdite interne al regolatore .Per il calcolo di queste potenze esistono speciali
strumenti, abbastanza costosi e non sempre disponibili dal design.
Un altro metodo meno costoso che consente di ottenere un buon risultato, è
quello di misurare la potenza dopo che la tensione AC sia stata raddrizzata e filtrata
(cioè è solo sostanzialmente DC),come in figura:
La corrente che va da Cin al convertitore è prossima a essere DC e quindi
facilmente misurabile o approssimabile (vedi caso precedente).
La potenza totale assorbita dalla rete AC sarà la somma della potenza su
Vin*Idc e quella dissipata dal ponte raddrizzatore, che attualmente può essere
facilmente trascurata.
25
I regolatori di tensione
1.3 I regolatori lineari
I regolatori lineari sono di uso semplicissimo e poco costosi, e per questo
motivo risultano diffusissimi nei dispositivi elettronici a basso costo.Come i
regolatori switching, i regolatori lineari sono usati per fornire una tensione DC
d’uscita sul carico continuamente regolata entro determinate specifiche [4].
1.3.1 Struttura base di regolatore lineare
Un regolatore lineare opera utilizzando un generatore di corrente comandato
in tensione per mantenere una tensione DC costante sul carico:
Figura 1-13 Struttura generica di un regolatore lineare
Il circuito di controllo rileva continuamente la tensione d’uscita (sense
control circuitry) e apporta opportuni aggiustamenti della corrente per mantenere la
tensione ad un dato valore.
La tensione d’uscita è regolata da un circuito di retroazione, che richiede una
compensazione per assicurarne la stabilità. La maggior parte dei regolatori lineari
adottano una compensazione interna e sono completamente stabili senza nessuna
altra compensazione esterna aggiuntiva; altri invece, vedi i Low DropOutput,
richiedono una capacità esterna fra il piedino di Vout e massa per assicurarne la
stabilità.
Un’altra caratteristica di tutti i regolatori lineari è quella che richiedono un
tempo finito per correggere la tensione d’uscita dopo una variazione della corrente
assorbita: questo “flag time“ è chiamato transient response e da una misura della
rapidità di regolazione al variare della corrente assorbita.
1.3.2 Le funzioni del Control Loop
Le funzioni del control loop in un tipico regolatore lineare possono essere
spiegate facendo riferimento alla seguente figura:
26
I regolatori di tensione
Figura 1-14 Tipa struttura di controllo in un regolatore lineare
Il pass device Q1 del regolatore è formato da un Darlington NPN pilotato da
un transistor PNP (questa è la classica tipologia degli Standard Regulator). La
corrente che scorre dall’emettitore del pass device è controllata da Q2 con il voltage
error amplifier.
La corrente attraverso R1 e R2 è considerata trascurabile rispetto a quella sul
carico IL. Il circuito di retroazione che controlla la tensione d’uscita è ricavato
usando la serie R1 e R2 per una sua stima che viene applicata al piedino negativo del
comparatore, il cui ingresso positivo è mantenuto ad una tensione di riferimento. In
questo modo l’error ampifier porterà continui aggiustamenti, pilotando la corrente su
Q1, affinché la tensione d’uscita rimanga stabile.
È importante tener presente che un improvviso aumento o diminuzione della
corrente sul carico, costringerà in un tempo finito, grazie ad una variazione della
tensione su R2, a delle correzioni della corrente attraverso Q1.
1.3.3 Tipici regolatori lineari
Ci sono tre tipi di regolatori lineari:
§
§
§
Standard (NPN Darlington) Regulator
Low DropOut Regulator (LDO)
Quasi LDO Regulator
La diversità più evidente fra i tre tipi di regolatore sta nel Dropout Voltage,
definito come la differenza minima fra la tensione di ingresso e quella d’uscita
regolata.
Un’altra differenza fra i tre tipi di regolatori sta nel valore della corrente di
ground del dispositivo. Gli Standard Regulator hanno la più bassa corrente di ground,
mentre in genere gli LDO presentano la più alta. Questa corrente di ground è
indesiderata poiché viene “persa”, ossia viene assorbita dall’alimentazione ma non la
si ritrova nella potenza sul carico.
27
I regolatori di tensione
1.3.4 I regolatori lineari Standard (NPN)
I primi regolatori di tensione lineari integrati usavano la configurazione NPN
Darlington come pass device, e sono stati chiamati Standard Regulator:
Figura 1-15 Tipica struttura dei regolatori lineari Standard
Un importante aspetto degli regolatori Standard è che per mantenere la
tensione d’uscita regolata richiedono come minimo una tensione di dropout pari a :
Vdmin = 2Vbe + Vce
Operando in un tipico range di temperatura da –55°C a +150°C, la tensione
minima richiesta per un corretto funzionamento di questo regolatore è generalmente
compresa fra 2.5V e 3V, mentre in genere non riescono più a regolare correttamente
al di sotto di 1.5V ( comunque questo valore dipende dalla corrente sul carico e dalla
temperatura d’esercizio). Il valore di dropout di questi regolatori risulta il peggiore
fra i tutti e tre.
Un pregio però di questi regolatori è la bassa corrente di ground (ad es. ci
sono regolatori standard come LM309 che con 1A di corrente sul carico hanno una
corrente di ground di meno di 10 mA). Infatti la corrente di ground è dovuta
sostanzialmente alla corrente di base che pilota il pass device ed è uguale al valore
della corrente sul carico diviso il guadagno del pass device. Nei regolatori standard il
pass device è costituito da un PNP che pilota due NPN in configurazione Darlington
ed il guadagno totale di corrente è molto alto (maggiore di 300), necessitando così di
una bassa corrente di pilotaggio.
La corrente di ground negli standard regulators, data la loro struttura interna,
risulta la più bassa tra i tre tipi di regolatori lineari.
1.3.5 I regolatori LDO
I Low DropOut regulator (LDO) differiscono dai regolatori standard poichè il
loro pass device è costituito da un solo transistor PNP:
28
I regolatori di tensione
Figura 1-16 Tipica struttura dei regolatori lineari LDO
La minima tensione di drop richiesta dagli LDO al fine di un corretto
funzionamento corrisponde proprio alla tensione sul transistor PNP:
Vd(min) = Vce
Generalmente il dropout voltage di un regolatore LDO è di circa 0,8V , ma
comunque è funzione della corrente assorbita dal carico e dalla temperatura
d’esercizio; a questo proposito si può far riferimento ai risultati ottenuti dalla libreria
che ho sviluppato per la misura di dropout in cui si varia la corrente di carico e la
temperatura.
Comunque i regolatori LDO presentano il valore di Dropout più basso di tutti
e tre i tipi di regolatori lineari, e per questo trova grande impiego nelle applicazioni a
batteria, in quanto riescono a massimizzare l’utilizzo della tensione di alimentazione.
Uno svantaggio di questi regolatori sta nella corrente di ground, pari a quella
di carico divisa dal guadagno del singolo transistor PNP. Di conseguenza, la corrente
di ground di questi regolatori è la più alta dei tre tipi.
Per esempio, il LP2953 LDO regulator progettato per una Iload max di 250
mA, dato il guadagno del suo transistor di 9,ha una corrente di ground di 28 mA,
mentre il LM2940 con Iload max 1A ha corrente di ground max di 45 mA.
1.3.6 I Quasi Low-Dropout (LDO) Regulator
Una variante dei regolatori LDO sono I Quasi Low-Dropout Regulator che
usano un pass device composto da un transistor NPN e PNP .
La minima tensione di Dropout che assicura un corretto funzionamento è :
V D(MIN) = VB E + VCE
Figura 1-17 Tipica struttura dei regolatori lineari Quasi LDO
29
I regolatori di tensione
Generalmente il drop voltage di un quasi-LDO è di circa 1.5V (max),
comunque non scende mai sotto ai 0,9V (25°C) con corrente di carico massima.
Perciò il dropout voltage dei quasi-LDO regulator risulta più alto degli LDO,
ma più basso degli Standard Regulator.
Inoltre la corrente di ground è piuttosto bassa (generalmente minore di 10 mA
con corrente di carico massima) e quindi sono migliori sotto questo aspetto degli
Standard Regulator.
1.3.7 Confronto dei tre tipi di Regolatori Lineari
I tre tipi di regolatori differiscono da come è implementato il pass device:
Gli Standard Regulator sono i più indicati per le applicazioni di potenza con
rete AC, dato il loro costo contenuto e la loro alta corrente di carico disponibile; in
applicazioni AC (previo uso di un circuito raddrizzatore e di un condensatore di
filtro) la tensione sul regolatore è come minimo di 3V e quindi la tensione è meno
critica e tuttavia , data la loro limitata corrente di ground, hanno una bassa
dissipazione interna.
Gli LDO Regulator sono invece i più indicati nelle applicazioni a batteria
dato il loro basso valore di drop. Se la differenza fra l’alimentazione e la tensione
d’uscita desiderata risulta bassa (da 1V a 2V) i regolatori LDO sono più efficienti dei
regolatori Standard perché riducono la potenza dissipata che può essere approssimata
al prodotto della corrente sul carico per questa differenza di tensione.
Ci sono anche altri tipi di pass device oltre a quelli visti, che vado ora a
riassumerli e confrontarli nelle seguenti figure:
30
I regolatori di tensione
VANTAGGI e SVANTAGGI:
La scelta di quale regolatore lineare sia il migliore per una data applicazione
deve essere individuata valutando questi fattori:
•
•
•
•
•
Maximun Load Current
Il tipo di alimentazione (Batteria o AC)
Output voltage Precision
Quiescent current
Caratteristiche specifiche (Shutdown Pin, Error Flag…)
Maximun load current : il valore di corrente massima disponobile sul carico deve
essere attentamente valutata nella scelta del tipo di regolatore. Il tipo di regolatore
scelto deve essere in grado di fornire una corrente sufficiente per l’applicazione in
ogni condizione d’uso perchè sia davvero efficiente.
31
I regolatori di tensione
Input Voltage Source (Battery or AC): il tipo di alimentazione influenza fortemente
la scelta del tipo di regolatore da usare:
- BATTERIA: nelle applicazioni a batteria la scelta migliore cade nei LDO
poiché dato il loro basso LDO sfruttano l’alimentazione nel modo più
efficiente. Per esempio una batteria a 6V quando è completamente carica è
sui 6.3 volt e per avere una tensione regolata sui 5V l’ideale è un LDO che
presenta circa 0,5V di dropout e quindi consente un funzionamento fino a
5,5V di alimentazione.
- AC: se si ricava una tensione DC raddrizzando e filtrando un segnale
alternato, non è significativo il valore di drop del regolatore poiché basterà
aumentare un poco il numero di avvolgimenti del secondario. In queste
applicazioni la scelta più economica è uno Standard regulator che offre una
buona corrente d’uscita, comunque in forte concorrenza con i nuovi LDO
regulator che possiedono una più accurata regolazione.
Output voltage Precision: tipicamente i regolatori lineari hanno una specifica sul
valore di tensione d’uscita in cui si assicura il valore entro il 5% di quello nominale.
Ci sono poi i nuovi regolatori che fissano la tolleranza dell’uscita entro il 2%
attraverso un laser-trim process.
Quiescent current: è definita come la corrente a vuoto assorbita dal regolatore ed è
molto importante per la durata della batteria. In molte applicazioni un regolatore
passa la maggior parte del tempo in standby e la quiescient current può diventare
critica. Molti dei nuovi regolatori LDO vengono per avere basse quiscient current,
dell’ordine di 75-150µA.
Special Features: molti LDO offrono speciali caratteristica che consentono
all’utilizzatore una certa flessibilità:
- ENABLE è un pin che permette ad una logica di controllo o a un
microcontrollore di spegnere il regolatore.
- OVER-VOLTAGE PROTECTION è molto usato nel campo Automotive
come protezione contro le sovratensioni: il regolatore si spegne durante
overvoltage transient, per poi riaccendersi quando il transitorio è finito.
- REVERSE INPUT VOLTAGE PROTECTION per proteggere il regolatore
quando accidentalmente l’utilizzatore sbaglia la polarità della batteria.
- RESET FLAG per controllare se la tensione d’uscita scende oltre una data
tolleranza (5%) rispetto al valore nominale. Questo pin è come un “warning
flag” che segnala a un controllore che la tensione è scesa ad un valore che
può causare errori ad una eventuale CPU o a un circuito logico alimentati dal
regolatore.
La tipica struttura di un regolatore lineare si può quindi riassumere in questa figura:
32
I regolatori di tensione
Figura 1-18 Tipica struttura di un regolatore lineare
In molti dispositivi la tensione di riferimento non è ricavata semplicemente
con un diodo zener, ma con un circuito di bandgap che, assieme ad altri blocchi
dei regolatori lineari, verrà trattato nei capitoli delle rispettive librerie Labview.
A titolo d’esempio riporto lo schema a blocchi del 5-V Low-Drop Fixed
Voltage Regulator TLE 4270 dell’ Infineon (vedi appendice D) che verrà usato
come esempio di regolatore per lo sviluppo delle librerie:
33
I regolatori di tensione
1.4 CONFRONTO FRA I REGOLATORI SWITCHING-E
LINEARI
La scelta fra regolatori switching e regolatori lineari non è per niente
semplice e deve tener conto di molteplici fattori quali ad esempio le richieste di
corrente e tensione sul carico, la potenza dissipata, la necessità di filtri per limitare il
rumore, lo spazio disponibile nella board ed il costo.
La riduzione delle dimensioni degli IC (“Integrated Circuit”) è accompagnata
dalla riduzione delle tensioni in gioco: per applicazioni digitali, i 3,3V hanno
sostituito i classici 5V, ma anche a loro volta stanno per essere sostituiti da tensioni
d’esercizio più basse; comunque una bassa tensione d’uso comporta solo una piccola
diminuzione dato che in un IC ci sono milioni e milioni di transistor .
Un tempo per le tensioni a 5V la scelta cadeva sugli switching regulator, ma
sono diventati poco efficienti alle basse tensioni e la scelta ora generalmente cade sui
LowDropout regulator che in più non richiedono filtri.
In un regolatore Buck ci sono differenti tipi di perdite:
Figura 1-19 Regolatore Buck
Si consideri una resistenza di conduzione dello switch e del diodo pari a 0,1Ω
e 2A con 1V di corrente sul carico e un duty-cicle del 50% , quindi Iavg = 1A; la
perdita RI2 risulta allora di 0,1W , sull’induttanza 0,4W , sul carico 2W e si consideri
un ulteriore 0,1W perso nel transitorio dello switching: in totale saranno persi 0,7W
con 2W sul carico, quindi l’efficienza sarà del 74% (in questa analisi non viene
considerata la resistenza ESR della capacità d’uscita e la potenza sul controllore
PWM).
Ma i principali vantaggi degli switching regulator sono l’efficienza, le
dimensioni ed il peso, ma rispetto a quelli lineari sono più complessi nella
progettazione e generano, a causa delle repentine commutazioni, rumore in uscita.
Inoltre date le perdite dovute alla conversione DC-AC della tensione di rete,
l’efficienza del convertitore switching cala al diminuire della tensione d’uscita.
Recentemente i costi degli switching si sono abbassati perché si è ridotto il costo e
integrato il circuito di controllo.
Un confronto fra le prestazioni dei due tipi di regolatori è riassunto nella
seguente tabella:
34
I regolatori di tensione
Si noti come l’efficienza degli switching sia attorno al 70%-80% , d’altra
parte ci sono regolatori lineari per applicazioni in cui sono minimi i problemi di
variazione del carico che raggiungono un’efficienza del 50%,quella tipica resta
attorno al 30%.
Un problema degli switching è il rumore e gli spike di tensione generati e per
questo richiedono dei filtri aggiuntivi o dei diodi di protezione, ma in compenso
hanno una migliore rapidità di risposta perché per le capacità di filtro è più facile
immagazzinare energia alle alte tensioni (200V, 400V) che alle basse: le dimensioni
fisiche di un condensatore e dipendono dal termine CV, mentre l’energia è 1/2CV2 .
Con questi convertitori possiamo raggiungere elevate correnti d’ uscita (anche 100
mA) grazie a impulsi di tensione strettissimi che consentono al dispositivo di restare
spento per la maggior parte del periodo di funzionamento e quindi di dissipare poca
energia.
I vantaggi e svantaggi delle due categorie di regolatori possono così essere
riassunti:
Switching Voltage Regulator
1.4.1.1.1.1 Linear Voltage Regulator
Vantaggi:
ü Semplice
ü Basso output ripple voltage
ü Buona Line e Load regulation
ü Velocità di risposta a variazioni di
carico e di alimentazione
ü Bassa interferenza
elettromagnetica (EMI)
ü Basso dropout
Svantaggi:
ü Bassa efficienza
ü Maggior spazio se è richiesto un
dissipatore
ü Maggior costo (uso della
tecnologia più recente)
Vantaggi:
ü Alta efficienza
ü Disponibilità di varie tensioni
d’uscita,anche più alte di quelle in
ingresso(Boost)
ü Disponibilità di tensioni con
polarità diverse
ü Bassa dissipazione
Svantaggi:
ü Alto output ripple voltage
ü Transitori lenti
ü Necessità di filtri causa EMI
Il grafico seguente rappresenta il risultato del confronto fra i due tipi di
regolatori di tensione; ovviamente, diverse condizioni di tensione uscita, corrente
uscita e tensione ingresso possono modificare i valori; generalmente, tanto più
35
I regolatori di tensione
grande è la potenza trattata tanto maggiore è la differenza a favore della soluzione
switching.
36
L’ambiente Labview
2 L’ ambiente Labview
2.1 INTRODUZIONE
LabVIEW è uno strumento di programmazione che, sebbene permetta in teoria di
sviluppare qualsiasi tipo di applicativo, è orientato verso la misura ed il controllo di
processi industriali e di laboratorio.
Sia l'interfaccia utente, sia il programma stesso, sono realizzate per via
grafica. Questo significa che l’operatore non deve inviare comandi o digitare valori
con la tastiera, ma può ottenere lo stesso risultato utilizzando il mouse premendo
pulsanti o per ruotando potenziometri. Per chi sviluppa il software programmare per
via grafica vuol dire essere liberati dalla pesante architettura dei linguaggi basati sul
testo: così le linee di istruzioni si traducono in blocchi che eseguono determinate
funzioni collegati tra loro tramite fili che trasportano i valori dall'uscita di un blocco
all'ingresso di un altro. Un punto di forza di LabVIEW è quindi la visibilità,
l'immediatezza che offre tanto all'utente quanto al programmatore.
Ma LabVIEW nonostante sia di facile comprensione, è un potente strumento
di programmazione che consente di utilizzare le strutture classiche di tutti i linguaggi
(case, cicli for, while, ecc.). Inoltre essendo uno strumento di sviluppo orientato
all'acquisizione dati e al controllo di processo fornisce numerose librerie e driver per
interfacciarsi alle più comuni schede di acquisizione e di controllo, e numerose
funzioni matematiche e statistiche per l'elaborazione dei dati acquisiti.
Scopo del prossimo paragrafo è quello di offrire una panoramica sugli aspetti
principali di questo programma, indispensabile per capire le librerie che sono state
fatte per risolvere i problemi proposti a questa tesi.
Nel successivo paragrafo verrà illustrato il sistema hardware di acquisizione dati
adottato e quindi quali instrument driver usati.
37
L’ambiente Labview
2.2 Labview
2.2.1 Generalità
Labview è un programma di applicazione molto simile al C o al Basic, ma ne
differisce sotto un importante aspetto. Gli altri sistemi di programmazione usano
linguaggi basati sulla scrittura di linee di codice mentre Labview usa il linguaggio di
programmazione grafico G, per creare programmi sotto forma di diagrammi a
blocchi. Il linguaggio G può essere considerato l’equivalente del codice sorgente
nella programmazione tradizionale.
Figura 2-1L'Applicazione Labview
Labview è un sistema di programmazione ad ampio spettro, ma comprende
anche una serie di funzioni e strumenti di sviluppo designati appositamente per
l’acquisizione di dati ed il controllo della strumentazione stessa.
I programmi scritti in Labview vengono chiamati Virtual Instrument (VI)
poiché per la loro apparenza e funzionalità imitano e sostituiscono gli strumenti reali.
Fondamentalmente un Virtual Instrument consiste in una interfaccia utente iterativa
(Panel), un diagramma di flusso di dati che agisce come codice sorgente (Block
Diagram), un’icona e dei connettori che permettono lo scambio di dati fra VI diversi.
Si possono usare VI per creare sistemi custom per test, misure e automazioni
industriali combinando differenti componenti hardware e software.
2.2.2 Organizzazione Gerarchica dei VI
Tutti i vari Virtual Instrument creati possono essere usati gerarchicamente,
allo stesso modo delle funzioni scritte in altri linguaggi. Infatti una volta creato un
VI, esso può essere usato come un programma di massimo livello, oppure come
sottoprogramma all’interno di Diagram Block di strumenti di un livello più alto.
Un VI all’ interno di un altro VI verrà chiamato subVI. Dato un VI, si devono
associare i parametri grafici quali l’icona ed i connettori perché possa scambiare dati
38
L’ambiente Labview
con altri subVI dil VI di livello superiore (vedi Icona e Connettore della figura
precedente) .
Date queste caratteristiche , Labview applica una tecnica modulare di analisi.
Abbiamo adottato uno stile di programmazione del tipo Botton Up , ossia in
genere definisco quali funzioni dovrà essere in grado di compiere il mio VI
principale, quindi successivamente costruisco i subVI che eseguono le necessarie
elaborazioni sui dati che passano nel diagramma a blocchi.
Il debug è attivabile attraverso i tasti
programma:
presenti nella barra degli strumenti del
Attivando questa opzione è si attiva l’esecuzione del programma “passopasso”, visualizzando quali subVI vengono via via chiamati e quali dati vengono
passati e/o ritornati.
2.2.3 Front Panel
Il nome Virtual Instrument rispecchia il fatto che l‘interfaccia utente di un VI
si presenta come il pannello frontale di uno strumento vero e proprio.
È possibile introdurre valori in ingresso grazie a vari controllori, e, cosa
importantissima, visualizzare con
indicatori, grafici, tabelle e quant’altro,
l’andamento in tempo reale dell’ esecuzione del programma. Anticipo a titolo di
esempio il pannello frontale che ho creato per la misura di PSRR (Power Supply
Rejection Ratio), che verrà affrontata in un capitolo a parte:
Figura 2-2 Esempio di Front Panel
39
L’ambiente Labview
In questo Front Panel si possono subito notare:
§
§
§
§
§
§
§
i controllori che definiscono i parametri della forma d’onda
(wafeform,amplitude e offset)
i controllori che definiscono lo sweep in frequenza con la frequenza di
start, stop e il valore dello step
i controllori che individuano il generatore di funzioni AG33250 e
l’oscilloscopio LT584L attraverso gli indirizzi GPIB .
i controllori che definiscono i parametri d’uso nell’oscilloscopio
(quali canali, quali finestre utilizzare per la FFT…)
il controllore che definisce path file in cui salvare i dati
l’indicatore del valore di PSRR
gli indicatori di eventuali errori sorti nel corso dell’esecuzione del
programma (per sicurezzaè previsto un controllo interno che in caso di
errori interrompe l’esecuzione)
I controllori che mette a disposizioni Labview sono i più disparati : numerici,
a manopole, booleani, e verranno spiegati di volta in volta nel corso della
progettazione delle varie librerie, evitando di riportare ora un semplice e lungo
elenco.
2.2.4 Diagramma a Blocchi
Il diagramma a blocchi rappresenta il vero e proprio corpo programma; è
composto da nodi, terminali, collegamenti e vari subVI.
I nodi sono gli elementi che consentono l’esecuzione del programma e sono
analoghi alle subroutine dei linguaggi di programmazione basati sul testo. Ci sono
quattro tipi di nodi:
•
•
•
•
Nodi funzione
Nodi subVI
Strutture
Code Interface Nodes (CIN)
Le funzioni sono nodi già disponibili che possono eseguire funzioni
elementari come somma, differenza…, e più complicate (dipende dalla versione di
Labview in uso) come la ricerca di minimi, funzioni numeriche…
40
L’ambiente Labview
Figura 2-3 Esempio di tool disponibili in Labview
I nodi subVI sono le icone associate ai vari subVI che vengono usate in un
VI di livello superiore.
Ci sono poi le Strutture come cicli For, While , ed il Case, che data la loro
fondamentale importanza all’interno di qualsiasi programma in qualunque
linguaggio, verranno riportate nel prossimo paragrafo per capire l’uso all’interno di
Labview.
Infine i CIN sono interfacce fra il diagramma a blocchi ed un eventuale
codice scritto dall’utente direttamente in C.
Per iniziare a capir meglio questi aspetti fondamentali del linguaggio
Labview riporto Front Panel ed il Block Diagram che costituirà un piccolo pezzo
comune ma fondamentale a quasi tutte le librerie che andrò a sviluppare:
Figura 2-4 Esempio di Front panel e relativo Block diagram
Nel Front Panel a sinistra andremo a settare tramite i primi tre indicatori i
parametri dello sweep di tensione mentre l’indicatore in basso visualizzerà lo stato
corrente; si osservi la struttura corrispondente nel Block Diagram con le relative
connessioni fra i controllori e gli indicatori, il tutto racchiuso dentro un ciclo While.
41
L’ambiente Labview
I dati fluiscono in una sola direzione, da uno o più terminali sorgente a più
terminali di destinazione; si ricorda che l'ambiente LabVIEW tenta per quanto
possibile di eseguire in parallelo tutti i nodi di un VI. Tuttavia un nodo può iniziare la
propria attività solo se tutti i suoi elementi di ingresso (controllori) contengono dati.
Le comunicazioni tra i nodi di un VI fissano un ordine nell'esecuzione dei
nodi che lo compongono nel senso che se due nodi sono interconnessi, quello che dei
due fornisce dati di ingresso per l'altro viene eseguito per primo
Questo metodo di flusso di dati viene chiamato data flow che si contrappone
al metodo control flow proprio dei programmi scritti con linguaggi convenzionali,
nei quali le istruzioni vengono eseguite nello stesso ordine con cui sono state scritte
nel listato.
Nel metodo data flow non c’è un preciso ordine di esecuzione, un nodo viene
eseguito quando i dati sono disponibili a tutti i suoi terminali di ingresso, e restituisce
i risultati al termine dell’ esecuzione. Una sorta di sequenzialità tra le varie funzioni
si stabilisce nel momento in cui i dati di ingrasso ad un nodo siano forniti dall’uscita
del nodo precedente. Allora il secondo nodo aspetterà che il primo abbia finito
l’esecuzione per avere in ingresso dei dati da elaborare.
Quando invece una funzione deve essere eseguita prima di un’altra e non c’è
nessun tipo di dipendenza tra gli ingressi e le uscite dell’una e dell’altra, bisogna
utilizzare la struttura Sequence per forzare l’ordine di esecuzione ed eventualmente
delle temporizzazioni, tutti aspetti che verranno affrontati nelle varie librerie
sviluppate.
Da questi semplici schemi si può anche notare come in Labview si possa
riconoscere il Tipo di una variabile dal suo corrispondente colore nel Block Diagram
: es. arancione per i double, blu per integer, rosa per string…
Inoltre si possono creare array che verranno usati nelle librerie che ho creato
per salvare i dati dei vari test, avendo così una collezione di dimensione variabile di
elementi dello stesso tipo. Gli elementi di un array sono individuati da un indice
compreso tra 0 ed n-1 e si può accedere ad essi specificando l'indice relativo
all'elemento che si vuole leggere o scrivere.
Infine si possono creare Cluster : un cluster individua un insieme di variabili
di tipo diverso; ho usato i cluster per creare i grafici in Labview e, soprattutto, per
raccogliere i dati di eventuali errori sorti nell’esecuzione del programma in un unico
blocco. La figura 2-5 si riferisce al Front Panel che ho creato per pilotare un Keithley
2400 Source Meter che ho usato in varie librerie come generatore di tensione e
sfruttare il fatto che fornisce pure la misura della corrente erogata.
Si notino i due cluster in basso al Front Panel in cui informo l’utente se si è
verificato un errore (e le librerie che ho creato interromperanno l’ esecuzione del
programma), il relativo codice, e per ogni codice ho scritto una corrispondente
stringa con una breve spiegazione del tipo di errore riferendomi al manuale :
nell’esempio seguente si può vedere il comunissimo errore occorso quando gli
strumenti non sono collegati o settati per il bus GPIB.
42
L’ambiente Labview
Figura 2-5 Front Panel della libreria che pilota il cource-meter Ke2400
2.2.5 Le strutture
Si può controllare il flusso di dati di un virtual instrument attraverso le
strutture. Labview mette a disposizione quattro tipi di strutture: il ciclo While e il
ciclo For, la struttura Case e la struttura Sequence .
Il ciclo while :
Come è noto un ciclo while ripete una parte di programma più volte. Il codice
al suo interno viene eseguito fino a che il valore booleano passato al “terminale
condizione” non cambia di stato. Lo strumento virtuale controlla il terminale
condizione al termine di ciascuna iterazione. Il terminale iterazione è il contatore
vero e proprio usato in questo ciclo (parte da zero).
La struttura cardine “while loop” è illustrata nella seguente figura:
Figura 2-6 struttura while
43
L’ambiente Labview
Cliccando col tasto destro del mouse sul terminale di condizione si può
selezionare “Stop if True” o “Continue if true” (come in figura precedente). Inoltre si
possono collegare i “Cluster Error” al terminale di condizione e selezionare “Stop
on Error” oppure Continue “While Error”.
Dopo aver creato un While Loop, è possibile usare registri di trasferimento
(“Shift Register”) per passare valori da un ciclo al successivo.
Il ciclo For:
La struttura For Loop esegue il diagramma contenuto nel rettangolo che la
delimita per i = 0,1,…,N-1: essa è riportata nella seguente figura:
Figura 2-7 struttura For
Come si può notare il ciclo For ha due terminali : il terminale contatore ed il
terminale iterazione. Il primo specifica il numero di volte che il ciclo deve essere
eseguito, mentre il secondo contiene il numero delle volte che lo stesso ciclo è stato
eseguito.
La differenza sostanziale fra un ciclo For e un ciclo While risiede nel fatto
che il ciclo For viene eseguito un numero predeterminato di volte, mentre un ciclo
While termina di eseguire il codice racchiuso in esso solo quando il terminale
condizione cambia di stato.
La struttura Case:
La struttura Case usata in Labview è analoga alle istruzioni SWITCH
CASE…, IF…THEN…ELSE… dei classici linguaggi di programmazione.
La struttura Case viene rappresentata nel Block Diagram come una “serie di
schede” sovrapposte, delle quali se ne può vedere solo una alla volta: ogni “scheda”
contiene una sezione di codice, che viene eseguita quando la variabile collegata al
terminale di selezione della scheda coincide con il valore previsto per quella sezione.
La potenzialità di questa struttura sta nel fatto che il terminale di selezione
può essere di qualsiasi tipo, (numerico, booleano…) :
Figura 2-8 Struttura Case controllata da una variab1e booleana
44
L’ambiente Labview
Figura 2-9 Struttura Case controllata da una variabile numerica
La struttura Sequence:
Questa struttura appare graficamente come una serie di riquadri sovrapposti
con un bordo forato come quello di una pellicola cinematografica, e verrà utilizzata
per eseguire il codice in una sequenza pre-ordinata.
Infatti nei linguaggi di programmazione convenzionali le righe di programma
vengono eseguite nell’ordine in cui appaiono nel codice. Nel linguaggio grafico G di
Labview un nodo viene eseguito soltanto quando tutti i dati in ingresso sono
disponibili, ma a volte è necessario forzare e controllare l’ordine di esecuzione con la
struttura Sequence.
Nel caso della struttura Sequence l'identificatore rappresenta il numero
d'ordine dei vari sub-diagrammi, chiamati frames , che compongono la struttura
stessa: i frames appaiono sovrapposti l'uno all'altro ed è possibile cambiare il frame
visualizzato agendo con la “operating tool” sulle freccette poste sul bordo superiore
della struttura.
Una volta posizionata nel block diagram, una struttura Sequence presenta un
solo frame di default: per aggiungerne altri si deve selezionare l'opzione "Add frame
after/before" dal menù pop-up associato alla struttura stessa.
Quando si utilizza una struttura Sequence può risultare utile rendere
disponibile su più frames il valore assunto da una variabile appartenente ad un
determinato frame: ciò è possibile selezionando l'opzione “Add sequence local” dal
menu pop-up associato alla Sequence. Selezionando tale opzione, comparirà sul
bordo esterno del frame corrente un simbolo grafico quadrato vuoto: una volta
collegato un filo tra tale simbolo ed una variabile appartenente al frame corrente,
all'interno del quadrato comparirà una freccia diretta verso l'esterno del frame. Tale
freccia indica che per il frame corrente il valore collegato alla Sequence local è di
uscita; in tutti gli altri frame la freccia sarà rivolta verso l'interno, ad indicare che il
valore associato alla Sequence local è di ingresso per tali frame, come illustrato nella
seguente figura:
45
L’ambiente Labview
Figura 2-10 Esempio di Sequence .
Come si può notare dalla Fig. 76, l'uscita dal nodo di somma viene passata ai
frame successivi per effettuare altre elaborazioni: si noti come il verso della freccia
interna al quadratino che raffigura il Sequence local sia uscente per il frame 0 ed
entrante per i frame 1 e 2.
2.3 L’Acquisizione dati
Gli strumenti di misura, come i General-purpose Data Acquisition (DAQ)
sono studiati per l’ acquisizione e la presentazione delle misure che si vogliono
effettuare.
Attraverso l’operazione di acquisizione di segnali come la tensione, la
corrente, la pressione, e la temperatura, sono convertiti in formati digitali e letti dal
computer. I vari metodi per acquisire i dati includono plug-in DAQ e instrument
devices, GPIB instrument, VXI instrument, e RS 232 instrument.
La successiva analisi dei dati trasforma “semplici “stringhe” di numeri” in
informazioni articolate, come grafici, statistiche o altre operazioni.
Per le applicazioni delle varie librerie che ho sviluppato non sono stati usati
DAQ Devices in quanto c’erano già Special-Purpose Instrument disponibili
(multimetri, oscilloscopi..), comunque si possono confrontare i due sistemi:
2.3.1 Confronto fra DAQ Devices e Special -Purpose Instrument
La principale differenza fra le varie opzioni hardware, individuate nelle due
categorie DAQ Devices e Special-Purpose Instrument, consiste nel tipo di
comunicazione fra l’ hardware di misura vero e proprio ed il computer.
I General purpose DAQ devices sono dispositivi che, connessi al computer,
permettono alll’ operatore di avere direttamene i dati in forma digitale. Tipicamente
questi dispositivi sono direttamente connessi al bus interno del computer attraverso
uno slot pug-in. Altri,invece, sono esterni e connessi al computer via pota seriale,
GPIB o ethernet. Il loro uso è diffuso nei test di produzione di un elevato numero di
46
L’ambiente Labview
campioni, mentre gli “special purpouse” sono adottati nei test in fase di
progettazione.
La prima distinzione di questi sistemi è come la misura viene effettuata.
Con i DAQ device non si possono elaborare i dati e questa operazione viene
demandata al software del computer. Questi dispositivi possono compiere
innumerevoli misure semplicemente cambiando l’applicazione software adibita alla
lettura dei dati. Così, mentre questa flessibilità permette all’utente di avere solo un
dispositivo hardware per vari tipi di test, per contro si dovrà spendere del tempo per
sviluppare le applicazioni per questi diversi tipi di dati.
Pure gli “special-purpose instrument” tipicamente digitalizzano i dati, ma
sono in grado di effettuare solo una specifica misura. Il software, o firmware,
richiesto per processare i dati e calcolare il risultato solitamente, è interno allo
strumento e non può essere modificato.
Per esempio, un multimetro non può leggere dati provenienti da un
oscilloscopio e il programma memorizzato dentro il multimetro non può essere mai
modificato. Molti strumenti sono esterni al computer e possono funzionare da soli o
essere controllati e monitorati se connessi. In genere gli strumenti hanno un
protocollo specifico di comunicazione, e la connessione può essere tipo Ethernet,
Seriale, GPIB o VXI.
Inoltre ci sono strumenti che si possono installare nel computer similmente ai
“general purpose DAQ devices”, chiamati anche “computer-based-strument”.
2.3.2 Comunicazione pc - DAQ devices
Prima che un sistema pc-DAQ possa misurare un segnale fisico, un sensore o
un trasduttore deve convertire la grandezza da misurare in segnale elettrico, come
una tensione o una corrente.
I “plug-in DAQ devices” sono schede per acquisizioni specifiche e sono
spesso considerati un sistema DAQ completo, benché sia invece soltanto un
elemento di questo sistema. Invece a differenza degli “special pur pose instrument”,
non è possibile collegare direttamente la scheda DAQ alle grandezze da misurare. In
questi casi, si deve usare un accessorio che condizioni il segnale prima che il
dispositivo plug-in DAQ lo converta in informazione digitale. Successivamente il
software preposto al controllo del DAQ riceverà, analizzerà ed elaborerà i dati.
Nella seguente figura vi sono visualizzate due soluzioni per un sistema DAQ.
In A, il dispositivo plug-in DAQ risiede nel computer, in B invece è esterno. Con una
board esterna, si possono realizzare sistemi DAQ usando computer sprovvisti di slot
plug-in, ad esempio laptops. Il computer ed il modulo DAQ comunicheranno
attraverso vari bus come la porta parallela, seriale, ethernet.
47
L’ambiente Labview
Figura 2-11 Sistemi plug-in DAQ
Una terza opzione usa il bus PCMCIA disponibile in alcuni laptops. Un
PCMCIA DAQ device è inserito nel computer e i segnali sono collegati nella board
come in A, permettendo di avere un compatto e portabile DAQ system.
2.3.3 Comunicazone pc – special purpose instrument
Il modo in cui un computer controlla i vari strumenti e ne acquisisce i dati
dipende da come quest’ultimo è costruito. In genere i più comuni strumenti mettono
a disposizione:
•
•
•
•
•
48
GPIB
Serial Port
VXI
PXI
Computer-Based instruments
L’ambiente Labview
In questa tesi verrà usato per comunicare con gli strumenti il bus GPIB e la
porta seriale le cui caratteristiche sono riportate nell’AppendiceA e B.
Brevemente possiamo dire:
GPIB : è il bus più diffuso per il controllo degli strumenti; è un bus digitale a 24 pin,
e consente ai vari device di avere un unico indirizzo GPIB da 0 a 30 e per
stabilire quale abbia il controllo del bus, i device sono suddivisi in
Controllers, Talkers, o Listeners. Maggior dettagli si possono trovare in
Appendice A.
Serial port: ci sono vari tipi di porte seriale: la più diffusa è al RS-232. la RS-422
presenta una maggiore immunità al rumore per l’uso di segnali differenziali,
mentre la RS-485 è un’evoluzione di questa porta perché permette di
collegare più dispositivi (al massimo 32) ottenendo una network di devices
connessi a un’unica porta seriale RS-485. Maggior dettagli si possono trovare
nell’ Appendice B.
VXI (VME eXtensions for Instument): definisce un protocollo di comunicazione
attraverso comandi ASCII (come per il GPIB) , ed è una estensione della
specifica IEEE 1014 (VMEbus) in quanto adotta gli stessi connettori, board
con la stessa larghezza e gli stessi segnali.
PXI Modular Instrumentation :
PXI è completamente compatibile con
CompactPCI e incorpora le temporizzazioni del VXI. PXI risolve il gap fra il
basso costo di soluzioni PC e l’ alto costo di VXI e GPIB , accomunando gli
standard PCI, CompactPCI e VXI.
Computer-Based Instruments : sono costruiti per specifiche piattaforme,
includendo PCMCIA, PCI e PXI ; offrono il vantaggio della potenza di un
PC, della memoria espandibile, display ad alta risoluzione e connettività col
web.
2.3.4 Instrument Drivers in Labview
Uno strumento può comunicare
col pc attraverso dei bus utilizzando un
preciso protocollo di comunicazione: ogni strumento riconosce solo precisi comandi,
ma nello sviluppo delle librerie di questa tesi sono stati utilizzati soprattutto
“instrument driver”, salvo in alcuni casi ricorrere direttamente alle stringhe di
comando in mancanza di questi. Un “instrument driver” è una collezione di funzioni
che implementano i comandi necessari atti a pilotare lo strumento.
Il principale vantaggio è quello di semplificare la programmazione in
comandi di alto livello, evitando la conoscenza della sintassi di basso livello
riconosciuta dallo strumento. In questo modo si risparmia molto tempo, consentendo
49
L’ambiente Labview
di concentrarsi maggiormente allo sviluppo del progetto e non anche allo studio dei
comandi di basso livello necessari per la scrittura del programma (sfortunatamente
nello sviluppo di alcune librerie per l’oscilloscopio e per il pilotaggio via porta
seriale della cella termica ho dovuto ricorrere a molti comandi di basso livello).
Per questa tesi sono stati scaricati i drivers di comunicazione via GPIB per
seguenti strumenti:
ü
ü
ü
ü
ü
ü
Generatori di funzioni Ag33250 e Ag33120,
Multimetri Keithley Ke200X ,
Source-meter Ke2400,
Oscilloscopi Lecroy waverunner LT584L e LT374,
DC load AGT3301,
Multimetro multichannel Ke2700
Tutti questi drivers sono disponibili gratuitamente nei siti delle rispettive case
costruttrici:
http://www.keithley.com
http://www.lecroy.com/
http://web.home.agilent.com
Gli instrument drivers vengono installati automaticamente nella
…labview\instr.lib e resi disponibili nel Function Palette di Labview:
subdirectory
In questa figura si possono
osservare i drivers che sono stati
installati e come sono tipicamente
organizati.
Ci sono varie applicazioni divise
per categoria e con opportuni
collegamenti, comandi e variabili di
ingresso, si possono creare i subVI
richiesti.
Figura 2-12 Esempio di drivers installati in Labview
50
L’ambiente Labview
2.3.5 GPIB e Instrument Control usati
Dato che sugli strumenti attorno
porta di comunicazione più diffusa è la
strumenti sono stati utilizzati due GPIB
controllo fissa e uno per il notebook.
vantaggio:
•
•
•
•
•
ai quali andrò a sviluppare le librerie, la
porta GPIB, per la comunicazione fra pcplug-in controllers, uno per la stazione di
Un GPIB plug-in controller offre questo
È l’ideale per ogni workstation e laptop
Aumenta le prestazioni (oltre 8 Mb) fra PCI e HS488
Facile configurazione con il software Measurement & Automation
Explorer
Combina assieme le funzioni GPIB Controller/Analyzer
Riduce i tempi di sviluppo utilizzando il software dello standard NI488.2
Per la stazione fissa si utilizza la scheda NI PCI-GPIB compatibile con
Windows 2000/XP/Me/98:
-Trasferimento dati fino a 1.5
Mb/s (IEEE488.1) e 7.7 Mb/s
(HS488)
- Compatibile con Windows
2000/XP/Me/98
- Onboard bus master DMA
controller per evitare
interruzioni del microprocessore
nel traferimento dati
- NI custom TNT ASIC per
massimizzare le prestazioni della
IEEE 488.2
Per il notebook si utilizza come interfaccia GPIB una card compatibile con il bus
PCMCIA e con il sistema Windows 2000/XP/Me/98:
Le caratteristiche principali sono le seguenti:
- Completamente compatibile con NI488.2
- Bassa potenza assorbita
-Uso di registri FIFO per aumentare le
prestazioni
-Compatibile con Windows 2000/XP/Me/98
51
Misura Load Regulation
3 Misura della Load Regulation
3.1 INTRODUZIONE
La misura della Load regulation assieme a quella della Line Regulation è una
delle più comuni e importanti misure dei power supply.
In questo capitolo verranno presentate le librerie Labview in grado di
effettuare automaticamente questo test, accompagnate dai subVI che piloteranno i
vari strumenti di misura.
3.2
Definizione del problema
La misura di Load Regulation è una misura statica delle prestazioni del
regolatore di tensione, e definisce la sua abilità di mantenere la tensione d’uscita
regolata al variare del carico.
Nei vari data sheet dei regolatori (vedi il TLE4270 Infineon in appendice) la
specifica di Load regulation viene indicata come valore minimo, massimo e tipico di:
Load Regulation = Vout (min) - Vout (max)
Le librerie che andremo a sviluppare saranno in grado di effettuare in maniera
completamente automatica la misura di Load Regulation e l’ elaborarazione dei dati
acquisiti.
Per realizzare questa misura devremo essere in grado di variare il carico,
leggere le tensioni in gioco, elaborare i dati e successivamente ripetere il tutto a
diverse temperature (anche queste programmabili).
Per prima cosa si effettua la misura “a mano”, per poi rendere il tutto
automatico con la programmazione in Labview e Visual Basic per Microsoft Excel.
Saranno necessari questi strumenti:
•
un alimentatore per effettuare la misura ad una data tensione di ingresso
come indicato nelle specifiche dei data sheet
• volmetri e amperometri per rilevare le tensioni e le correnti di ingressouscita,
• un carico variabile per impostare la corrente d’uscita
In un primo tempo ho pensato di utilizzare come carico variabile l’ Agilent
N3301A: questo strumento può essere impostato come carico attivo a corrente o
tensione costante oppure come resistenza costante, consentendo pure la misura della
corrente e tensione.
Ma da svariate prove è stato constatato che questo strumento risultava un po’
danneggiato: in misure DC di tensione si presentava un off-set quantificabile attorno
52
Misura Load Regulation
a 20 mv rispetto a stesse misure effettuate con più di un multimetro Ke2000: in attesa
di una sua ricalibratura sono state comunque state sviluppate librerie Labview in
grado di pilotarlo automaticamente, in particolare come:
Ø Carico costante in corrente e misura della tensione
Ø Carico costante in tensione e misura della corrente
Ø Carico resistivo e misura della corrente e tensione
Al posto del N3301A è stato utilizzato come carico programmabile in uscita
del LDO il Keithley2400.
Il Ke2400 è un source-meter programmabile via GPIB: se impostato come
carico attivo di corrente consente una lettura della tensione ai suoi capi e viceversa se
impostato come carico in tensione. In più, tramite l’opzione “sense 4wire” è possibile
ottenere misure più accurate che tengano conto delle perdite sui cavi di
collegamento. Infatti gli LDO effettuano le regolazioni in base alla tensione
effettivamente in uscita al piedino di out e non quella che realmente c’è sul carico
(alcuni LDO ovviano a questo problema con due piedini d’uscita, uno dei quali è
definito di “sense” ):
Figura 3-1 Collegamenti in uscita al LDO
Vload = Vout – Iload * (Rwp+Rwn)
Il Ke2400 mette allora a disposizione due tipi di misure:
§
§
2wire local sensing connection
4wire remote-sensing
In genere si effettua la misura a due fili quando l’errore dovuto alle perdite
sui cavi è comunque accettabile: per correnti più piccole di 100mA, l’errore
commesso non è significativo (assumento la resistenza dei cavi minore di 1Ω).
Inoltre poiché se il source-meter è in serie al resto del circuito la corrente è la stessa,
la misura a quattro fili non comporta alcun miglioramento in accuratezza.
53
Misura Load Regulation
Figura 3-2 Tipiche connessioni sul Front panel del source-meter Ke2400
Al contrario, quando il Ke2400 è usato come source/meter in tensione, ci
sono degli errori dovuti alle perdite sui cavi che possono essere limitati usando la
misura 4wire remote sensing.
In questa configurazione il
Ke2400 viene adoperato come
generatore
in
tensione
e
continuamente
confronta
le
tensioni sulle connessioni local
e quelle sul sense con quella
programmata
apportando
opportuni accorgimenti al fine
di aggirare le perdite in tensione
sui cavi di collegamento.
Per la misura di Load
Regulation
ho
innanzitutto
sviluppato un subVI in labview
in grado di pilotare il Ke2400
come carico attivo di corrente accompagnato da una misura della tensione e un’altra
libreria che complessivamente sia in grado di utilizzare il multimetro Ke2000 come
amperometro e volmetro.
Successivamente, dato che questa misura deve essere effettuata a varie
temperature (-40°C a +150°C) ho sviluppato una libreria che fosse in grado di far
fare alla cella termica a disposizione un determinato ciclo in temperatura: queste
librerie verranno riprese anche per gli altri tipi di test, in cui avrò bisogno di un
Ke2400 Isource, dei Ke2000 per misure di tensioni e correnti e dei cicli termici.
Inoltre, tutti i dati verranno esportati ed elaborati in Excel tramite un codice Visual
Basic lanciato automaticamente da Labview al termine delle rilevazioni delle misure.
54
Misura Load Regulation
3.3 Definizione del subVi che imposta il Ke2400 come generatore di
corrente
Questa libreria dovrà essere in grado di programmare tramite Labview via
GPIB, il source-meter Keithley2400 come “current-source” (perché assorba corrente
basta impostarla negativa o scambiare i cavi sui connettori d’uscita), impostare i
relativi valori di protezione (Vcompliance, cioè la massima tensione che può avere ai
suoi capi e Imax al fine di non bruciare il dispositivo) e di dare una lettura della
tensione (successivamente verrà creato un subVI per l’opzione 4wire-sensing).
Inoltre per limitare il sovrariscaldamento del chip alle alte correnti di carico
questo subVI dovrà prevedere lo spegnimento dello strumento, evitando in questo
modo di falsare ad esempio una successiva misura a 0°C .
A questo punto si devono creare dei moduli che consentano di effettuare
queste funzioni:
-
Inizializzare la comunicazione
Definire il tipo di misura da effettuare
Definire source mode : voltage o current mode
Definire il parametro di sicurezza Compliance
Definire il valore da generare
Abilitare l’uscita
Effettuare la misura
Spegnere il dispositivo.
Dato che questa libreria, pensata come DC Load current, può essere utilizzata
anche per generare una data corrente e quindi in alcuni casi necessita di alimentare il
dispositivo per un dato periodo in cui probabilmente si fanno altre misure, ho deciso
di non terminare questo subVI con lo spegnimento dello strumento ma rimandando
quest’operazione al subVI di livello superiore.
Ora si cercano fra numerosi drivers installati (vedi cap2 pag 50) se ci sono a
disposizione delle opportune funzioni adatte ai nostri scopi, altrimenti si
programmano direttamente gli strumenti con linguaggio a basso livello attraverso
stringhe di comandi definiti negli Operator’s Manual, utilizzando i seguenti moduli
messi a disposizione da Labview (GPIBread, GPIBwrite,…), come saremo costretti a
fare per la misura di ESR cap. 10.
55
Misura Load Regulation
Figura 3-3 Tool Labview per la comunicazione via comandi SCPI
La libreria Labview che imposta lo strumento Ke2400 come generatore di
corrente, è stata creata utilizzando, nell’ordine, i seguenti subVI:
3.3.1
GPIB Address to Resource Name.vi
Connector Pane
Tutti i drivers individuano lo strumento attraverso una stringa chiamata
“resource name” la cui definizione è la seguente:
GPIB[board] :: primary address [ :: secondary address][ :: INSTR]
default GPIB0::24
56
Misura Load Regulation
Per migliorare l’interfaccia utente del programma è stato creato un subVI che
lasci all’ operatore solo il compito di inserire l’indirizzo GPIB per individuare lo
strumento. Questo subVI sarà poi riutilizzato in tutte i casi d’indirizzamento GPIB
tramite la sua icona ed il connector pane.
In questo subVI si effettuerà semplicemente una connessione fra stringhe:
Figura 3-4 Front panel e block diagram del subVI GPIB Address to Resource Name.vi
3.3.2 Ke24XXInizialize.VI
Connector Pane
Il modulo Ke24XXInizialize.VI svolge queste funzioni:
-
Stabilisce una comunicazione con lo strumento usando l’interfaccia e
l’indirizzo specificato nella variabile Resource Name
Reset dello strumento
Ritorna un Instrument Handler che sarà utilizzato dai successivi moduli come
un puntatore all’instrument driver.
Ad ogni chiamata la sessione aperta è unica, è possibile avere più sessioni
aperte con uno stesso indirizzo.
57
Misura Load Regulation
In ingresso a questo VI sarà collegato proprio il subVI appena visto, che si occupa
della conversione del puro indirizzo GPIB nel formato resource name.
Controls and Indicators
resource name individua l’interfaccia da inizializzare. Default Value: "GPIB0::24"
error in (no error) è un controllore tipo cluster che accetta informazioni di Vis chiamati
precedentemente. Raggruppa tre tipi di controlli:
status è un controllo tipo Boolean e viene posto TRUE (X) nel caso di errore, altrimenti
è FALSE
code controllore tipo integer che individual il codice dell’errore
source controllore tipo string utilizzato per una breve descrizione dell’errore
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
model ritorna il modello dello strumento che è stato inizializzato
instrument handle out questo controllore verrà usato in ingresso in ogni successiva funzione
error out è un indicatore tipo cluster che segnale eventuali errori in uscita allo strumento. Ha la
struttura di “error in”, ma in questo caso non raggruppa tre controlli ma tre indicatori:
status è un indicatore tipo Boolean e viene posto TRUE (X) nel caso di errore, altrimenti
è FALSE
code indicatore tipo integer che individual il codice dell’errore
source indicatore tipo string utilizzato per una breve descrizione dell’errore
3.3.3 Ke24xx Enable/Disable Beeper.vi
Connector Pane
Questo modulo è utilizzato per abilitare/disabilitare il beeper dello strumento.
Le sue caratteristiche sono le seguenti:
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
state controllore tipo boolean. Posto FALSE, disabilita il beeper
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
58
Misura Load Regulation
3.3.4 Ke24xx Configure DCV.vi
Connector Pane
Questo modulo è utilizzato per il settare lo strumento per una misura di tensione
continua DCV.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
range controllore tipo Integer che definisce il range di funzionamento. Sono definiti questi
possibili valori:
KE24XX_AUTO_RANGE
0
KE24XX_200M_V_RANGE
1
KE24XX_2_V_RANGE
2
KE24XX_10_V_RANGE
3
KE24XX_20_V_RANGE
4
KE24XX_40_V_RANGE
5
KE24XX_60_V_RANGE
6
KE24XX_100_V_RANGE
7
KE24XX_200_V_RANGE
8
KE24XX_1000_V_RANGE
9
nplc controllore tipo double, può assumere qualsiasi valore nell’intervallo 0.001 : 10.00
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
3.3.5 Ke24xx Configure Source Mode.vi
Connector Pane
Questo modulo definisce il “source mode” dello strumento (tensione o corrente).
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
function : controllore tipo integer che definisce il source mode. Può essere uno dei seguenti
valori:
59
Misura Load Regulation
KE24XX_SOURCE_VOLTAGE_FUNCTION
0
KE24XX_SOURCE_CURRENT_FUNCTION
1
mode : controllore tipo integer che definisce il modo di funzionamento. Può essere uno dei
seguenti valori:
KE24XX_SOURCE_FIXED_MODE
0
KE24XX_SOURCE_SWEEP_MODE
1
KE24XX_SOURCE_LIST_MODE
2
shape controllore tipo integer che definisce la “forma del segnale”. Può essere uno dei seguenti
valori:
KE24XX_SOURCE_DC_SHAPE
0
KE24XX_SOURCE_PULSE_SHAPE
1
range range controllore tipo Integer che definisce il range di funzionamento. Sono definiti questi
possibili valori:
KE24XX_AUTO_RANGE
KE24XX_200M_V_RANGE
KE24XX_2_V_RANGE
KE24XX_10_V_RANGE
KE24XX_20_V_RANGE
KE24XX_40_V_RANGE
KE24XX_60_V_RANGE
KE24XX_100_V_RANGE
KE24XX_200_V_RANGE
KE24XX_1000_V_RANGE
0
1
2
3
4
5
6
7
8
9
Current Range Constants:
KE24XX_AUTO_RANGE
KE24XX_1U_A_RANGE
KE24XX_10U_A_RANGE
KE24XX_100U_A_RANGE
KE24XX_1M_A_RANGE
KE24XX_10M_A_RANGE
KE24XX_20M_A_RANGE
KE24XX_100M_A_RANGE
KE24XX_1_A_RANGE
KE24XX_3_A_RANGE
KE24XX_5_A_RANGE
KE24XX_10_A_RANGE
error in (no error) controllore tipo error cluster
0
1
2
3
4
5
6
7
8
9
10
11
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
60
Misura Load Regulation
3.3.6
Ke24xx Configure Source Compliance.vi
Connector Pane
Questo modulo è usato per definire il massimo valore di “compliance”. Essendo il
Ke2400 impostato come generatore di corrente, questo valore individuerà la massima
tensione possibile ai suoi capi (e quindi in uscita al regolatore di tensione).
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
source function controllore tipo integer che definisce il modo di funzionamento dello strumento.
Può essere uno dei seguenti valori:
KE24XX_SOURCE_ACTUAL_FUNCTION
-1
KE24XX_SOURCE_VOLTAGE_FUNCTION
0
KE24XX_SOURCE_CURRENT_FUNCTION
1
level controllore tipo integer che definisce il livello della compliance (volt o ampere).
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
3.3.7 Ke24xx Configure Source Volt/Cur Level.vi
Connector Pane
Questo subVI definisce il valore della grandezza elettrica che deve essere generata
dallo strumento quando è stato selezionato il modo DC. Per questo motivo deve
essere preceduto dal modulo “Ke24xx Configure Source Mode.vi” in cui si seleziona
“KE24XX_SOURCE_FIXED_MODE” .
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
61
Misura Load Regulation
Initialize .vi
source function controllore tipo integer che definisce il modo di funzionamento dello strumento.
Può essere uno dei seguenti valori:
KE24XX_SOURCE_ACTUAL_FUNCTION
-1
KE24XX_SOURCE_VOLTAGE_FUNCTION
0
KE24XX_SOURCE_CURRENT_FUNCTION
1
level controllore tipo integer che definisce il livello DC da generare (volt o ampere).
update controllore tipo integer che definisce quando generare l’uscita. Può essere uno dei
seguenti valori:
KE24XX_SOURCE_LEVEL_IMMEDIATE
KE24XX_SOURCE_LEVEL_TRIGGERED
error in (no error) controllore tipo error cluster
0
1
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
3.3.8
Ke24xx Enable/Disable Source Output.vi
Connector Pane
Questo subVI è utilizzato per abilitare l’uscita. All’interno del block diagram ci sarà
un altro analogo modulo che spegnerà lo trumento dopo uno step di misure, per
evitare un possibile surriscaldamento del dispositivo sotto test.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
state controllore tipo boolean: se TRUE abilita l’uscita, FALSE altrimenti
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
62
Misura Load Regulation
3.3.9 Ke24xx Read.vi
Connector Pane
Questo subVI è utilizzato per ottenere una lettura della misura dello strumento.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
elements controllore tipo integer che “aggiusta” il tipo di misura effettuata. Può essere uno dei
seguenti valori:
KI24XX_READ_VOLTAGE
0x01
KI24XX_READ_CURRENT
0x02
KI24XX_READ_RESISTANCE
0x04
KI24XX_READ_TIME
0x08
size of values controllore tipo integer che definisce la dimensione dell’array nel quale verranno
salvate le misure. Default 200.000
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
number of readings indicatore integer che individual il numero di misure effettuate
values Array che viene allocato dalla chiamata della funzione contenente i valori misurati
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
3.3.10 Ke2400 PerformIV_Simple_sense
Collegando tutti i precedenti subVI nell’ordine in cui sono stati presentati e
con gli opportuni controllori-indicatori, si ricava il subVI preposto al controllo del
Keithley 2400 come generatore di corrente. Si costruisce il seguente connector pane
per il suo utilizzo nella libreria di Load Regulation:
Connector Pane
63
Misura Load Regulation
Da questo connector pane si possono già individuare le variabili d’ingresso
che dovranno essere passate quando verrà richiamato nel subVI preposto al test di
Load Regulation ad una data temperatura e quelle di uscita:
Controls and Indicators
GPIB Address Tquesto controllore tipo String specifica l’indirizzo GPIB del Ke2400 che verrà
utilizzato come carico attivo per il regolatore di tensione.
error in (no error) controllore tipo error cluster
Source compliance controllore tipo double che definisce il livello della compliance
I level (A) controllore tipo double che definisce il livello di corrente DC da generare
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Voltage (V) indicatore che ritorna il valore di tensione in uscita al Ke2400
Si costruisce inoltre la seguente interfaccia utente (Front Panel) e Block
diagram:
Figura 3-5 Front panel e block diagram della libreria Ke2400 PerformIV_Simple_sense.vi
64
Misura Load Regulation
Grazie alle numerosi label presenti in figura si possono riconoscere tutti i subVI visti
precedentemente e la loro modalità di utilizzo.
3.4 Definizione del subVi che imposta il Ke2000 come multimetro
Vado ora creare il subVI in grado di pilotare via GPIB i multimetri a
disposizione Ke2000.
Il metodo di sviluppo è lo stesso usato per il keithley 2400: questo subVI
dovrà essere in grado di:
-
Inizializzare la comunicazione
Definire il tipo di misura, il range e la risoluzione
Configurare il trigger dello strumento
Effettuare la misura
Chiudere la comunicazione
Si inizializza la comunicazione con il modulo Ke2000Inizialize.VI
utilizzando per la conversione del puro indirizzo GPIB nell’adeguata formato
richieso in ingresso dal modulo Inizialize.VI il subVI “GPIB Address to Resource
Name” che è già stato realizzato, quindi si definisce il tipo di misura, il trigger ed il
range, infine si chiude la sessione.
Le funzionalità del modulo Ke2000Inizialize.VI sono analoghe a quelle del
corrispettivo nel Ke2400 visto in precedenza, quindi non verranno analizzate. Gli
altri moduli utilizzati, disponibili nei drivers installati per i multimetro della serie
Ke20xx, vengono ora affrontati nei seguenti sottoparagrafi:
3.4.1 ke2000 Configure Measurement.vi
Connector Pane
Questo subVI configura le più comuni proprietà nei multimetro, quali il tipo di
misura,il range massimo e la risoluzione assoluta.
Controls and Indicators
nstrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
range (-1.00E+0) controllore tipo double che definisce il range (in valore assoluto). Possibili
valori:
KE2000_VAL_AUTO_RANGE_OFF (-2.0) - Auto-range Off
KE2000_VAL_AUTO_RANGE_ON (-1.0) - Auto-range On
Function
Min Value
Max Value
Unit
65
Misura Load Regulation
DC Volts
0.1
1010.0
volts
AC Volts
0.1
757.5
volts
DC Current
0.01
3.03
amperes
AC Current
1.0
3.03
amperes
2-Wire Res
100.0
101.0E6
ohms
|4-Wire Res
100.0
101.0E6
ohms
Temperature (C)
Auto-range on
Auto-range on
centigrade
Frequency
Auto-range on
Auto-range on
Hertz
Period
Auto-range on
Auto-range on
seconds
Diode
Auto-range on
Auto-range on
volts
Continuity
1.0
1000.0
resolution (absolute) (100.00E-6) Controllore double che definisce la risoluzione. Un basso
valore incrementa l’accuratezza ma a scapito della velocità. II possibili valori sono in funzione
della grandezza da misurare :
Unit
FUNCTION
DC Volts
AC Volts
DC Current
AC Current
2-Wire Res
|4-Wire Res
Temperature (C)
Frequency
Period
Diode
Continuity
volts
volts
amperes
amperes
ohms
ohms
centigrade
Hertz
seconds
volts
volts
Valori:
Function
DC Volts
AC Volts
DC Current
AC Current
2-Wire Res
|4-Wire Res
Temperature (C)
Frequency
Period
Diode
Continuity
Min Value
Max Value
Unit
1
0.1
0.001
0.001
1000.0
1000.0
1
100
1E-4
1E-5
0.1
1E-7
1E-7
1E-8
1E-6
1E-4
1E-4
1E-4
0.1
1E-7
1E-6
1E-4
volts
volts
amperes
amperes
ohms
ohms
centigrade
Hertz
seconds
volts
volts
Default Value: 0.0001 Volts
error in (no error) controllore tipo error cluster
measurement function (DC Volts) controllore tipo integer che definisce il tipo di misura, può
assumere i seguenti valori
KE2000_VAL_DC_VOLTS
KE2000_VAL_AC_VOLTS
KE2000_VAL_DC_CURRENT
KE2000_VAL_AC_CURRENT
KE2000_VAL_2_WIRE_RES
KE2000_VAL_4_WIRE_RES
KE2000_VAL_TEMPERATURE
KE2000_VAL_FREQ
KE2000_VAL_PERIOD
66
- DC Volts (Default)
- AC Volts
- DC Current
- AC Current
- 2-Wire Resistance
- 4-Wire Resistance
- Temperature (C)
- Frequency
- Period
Misura Load Regulation
KE2000_VAL_DIODE
KE2000_VAL_CONTINUITY
- Diode
- Continuity
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Nelle librerie che andremo a sviluppare sarà utilizzata sempre la risoluzione
massima, mentre per misure di corrente si deve tener conto che con range minori di
100 mA la resistenza di shunt è di 10Ω.
3.4.2 ke2000 Configure Trigger.vi
Connector Pane
Questo subVI configura le proprietà del trigger di un multimetro quali trigger source
e trigger delay.
Controls and Indicators
Instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
trigger source (Immediate) controllore che specifica il tipo di trigger source .Possibili valori:
KE2000_VAL_IMMEDIATE - Immediate (Default)
KE2000_VAL_EXTERNAL - External
KE2000_VAL_SOFTWARE_TRIG - Software Trigger Function
KE2000_VAL_TIMER
- Timed trigger
trigger delay (0.00E+0 s) controllore double che specifica il trigger delay (in secondi). Possibili
valori:
KE2000_VAL_AUTO_DELAY_OFF (-2.0) - Auto-delay off
KE2000_VAL_AUTO_DELAY_ON (-1.0) - Auto-delay on
Valid Manual Range: 0.000 - 999999.999 (seconds)
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Nelle nostre misure useremo “immediate trigger” e “trigger delay” a zero perché
effettueremo tutte misure in DC.
67
Misura Load Regulation
3.4.3
ke2000 Read.vi
Connector Pane
Questo subVI inizia una misura, aspetta che il multimetro ritorni nello stato di idle e
quindi rende disponibile la lettura della misura.
Controls and Indicators
Instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
maximum time (5000 ms) controllore tipo integer che definisce il tempo Massimo per completare
una lettura. Default 5000 . Altri valori possibili:
KE2000_VAL_MAX_TIME_INFINITE (-1)
KE2000_VAL_MAX_TIME_IMMEDIATE
(0)
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
reading indicatore double che ritorna il valore della misura. Il tipo di unità di misura deve essere
definito precedentemente ke2000 Configure Measurement VI
FUNCTION
Unit
DC Volts
volts
AC Volts
volts
DC Current
amperes
AC Current
amperes
2-Wire Res
ohms
|4-Wire Res
ohms
Temperature (C)
centigrade
Frequency
Hertz
Period
seconds
Diode
volts
Continuity
volts
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Nelle nostre misure in genere lasceremo il parametro “maximun time” al valore di
default (5000 ms).
68
Misura Load Regulation
3.4.4
ke2000 Close.vi
Connector Pane
Questo subVI esegue le seguenti operazioni:
- Chiude la “instrument I/O session “
- Dealloca ogni risorsa di memoria usata.
Dopo la chiamata di questo subVI, per riutilizzare gli instrument driver è necessario
riaprire la sessione con il modulo ke2000 Initialize.vi
Controls and Indicators
Instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
error in (no error) controllore tipo error cluster
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
3.5 ke2000 Single Point Measurement.vi
Collegando tutti i questi subVI nell’ordine in cui sono stati presentati e con
gli opportuni controllori-indicatori, si ricava il subVI preposto al controllo del
Keithley 2000 come multimetro. Si costruisce il seguente connector pane per il suo
utilizzo nella libreria di Load Regulation:
Connector Pane
Da questo connector pane si possono già individuare le variabili d’ingresso
che dovranno essere passate quando verrà richiamato nel subVI preposto al test di
Load Regulation ad una data temperatura e quelle di uscita:
Controls and Indicators
measurement function (DC Volts) controllore tipo integer che definisce il tipo di misura, può
assumere i seguenti valori
KE2000_VAL_DC_VOLTS
KE2000_VAL_AC_VOLTS
KE2000_VAL_DC_CURRENT
- DC Volts (Default)
- AC Volts
- DC Current
69
Misura Load Regulation
KE2000_VAL_AC_CURRENT
KE2000_VAL_2_WIRE_RES
KE2000_VAL_4_WIRE_RES
KE2000_VAL_TEMPERATURE
KE2000_VAL_FREQ
KE2000_VAL_PERIOD
KE2000_VAL_DIODE
KE2000_VAL_CONTINUITY
- AC Current
- 2-Wire Resistance
- 4-Wire Resistance
- Temperature (C)
- Frequency
- Period
- Diode
- Continuity
resolution (absolute) (100.00E-6) Controllore double che definisce la risoluzione. Un basso
valore incrementa l’accuratezza ma a scapito della velocità. II possibili valori sono in funzione
della grandezza da misurare :
Unit
FUNCTION
DC Volts
AC Volts
DC Current
AC Current
2-Wire Res
|4-Wire Res
Temperature (C)
Frequency
Period
Diode
Continuity
volts
volts
amperes
amperes
ohms
ohms
centigrade
Hertz
seconds
volts
volts
Valori:
Function
DC Volts
AC Volts
DC Current
AC Current
2-Wire Res
|4-Wire Res
Temperature (C)
Frequency
Period
Diode
Continuity
Min Value
Max Value
Unit
1
0.1
0.001
0.001
1000.0
1000.0
1
100
1E-4
1E-5
0.1
1E-7
1E-7
1E-8
1E-6
1E-4
1E-4
1E-4
0.1
1E-7
1E-6
1E-4
volts
volts
amperes
amperes
ohms
ohms
centigrade
Hertz
seconds
volts
volts
Default Value: 0.0001 Volts
range (-1.00E+0) controllore tipo double che definisce il range (in valore assoluto). Possibili
valori:
KE2000_VAL_AUTO_RANGE_OFF (-2.0) - Auto-range Off
KE2000_VAL_AUTO_RANGE_ON (-1.0) - Auto-range On
Function
DC Volts
AC Volts
DC Current
AC Current
2-Wire Res
|4-Wire Res
Temperature (C)
Frequency
70
Min Value
Max Value
Unit
0.1
0.1
0.01
1.0
100.0
100.0
Auto-range on
Auto-range on
1010.0
757.5
3.03
3.03
101.0E6
101.0E6
Auto-range on
Auto-range on
volts
volts
amperes
amperes
ohms
ohms
centigrade
Hertz
Misura Load Regulation
Frequency
Auto-range on
Period
Auto-range on
Diode
Auto-range on
Continuity
1.0
error in (no error) controllore tipo error cluster
Auto-range on
Auto-range on
Auto-range on
1000.0
Hertz
seconds
volts
maximum time (5000 ms) controllore tipo integer che definisce il tempo Massimo per completare
una lettura. Default 5000 ms. Altri valori possibili:
KE2000_VAL_MAX_TIME_INFINITE (-1)
KE2000_VAL_MAX_TIME_IMMEDIATE (0)
GPIB Address questo controllore tipo String specifica l’indirizzo GPIB del Ke2400 che verrà
utilizzato come carico attivo per il regolatore di tensione.
reading indicatore double che ritorna il valore della misura. Il tipo di unità di misura deve essere
definito precedentemente ke2000 Configure Measurement VI
FUNCTION
Unit
DC Volts
volts
AC Volts
volts
DC Current
amperes
AC Current
amperes
2-Wire Res
ohms
|4-Wire Res
ohms
Temperature (C)
centigrade
Frequency
Hertz
Period
seconds
Diode
volts
Continuity
volts
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Si costruiscono quindi il seguente Front Panel e Block Diagram:
Figura 3-6 Front panel per il controllo del multimetro Ke200
71
Misura Load Regulation
Si noti come sia lasciato libero all’operatore il compito di impostare il tipo di
risoluzione, il range, il tempo massimo in cui lo strumento deve completare la
misura, ricordando che qualsiasi misura è comunque affetta da errori sensibili a
seconda della scala scelta1 .
Nel relativo Block Diagram si noti la cascata e le relative funzionalità dei vari subVI
visti precedentemente:
Figura 3-7 block diagram della libreria Ke2000 Single Point Measurement.vi
1
Come indicato nelle specification dello strumento, nel caso di misura DCI con range minore di 100
mA, la resis tenza di shunt risulta di 10Ω.
72
Misura Load Regulation
A questo punto vado a creare la libreria che mi consenta di impostare alla
cella termica un ciclo di Temperatura in cui per ogni step sarà effettuato il test di
Load Regulation (al termine del quale i dati verranno automaticamente elaborati in
Excel).
3.6 Libreria Labview per la cella termica
Per effettuare i test in temperatura è utilizzata una cella termica, in particolare
la “Angelantoni Challenge T60” (vedi appendice C).
Con questa cella termica è possibile impostare un dato ciclo di temperatura,
una data umidità interna d’esercizio e la velocità in termini di °C/minuto per
raggiungere una data temperatura (nel manuale d’uso è chiamato gradiente di
temperatura e al gradiente uguale a zero corrisponde la velocità massima).
Tutte queste funzioni vengono impostate su un microcontrollore,
interfacciabile non via GPIB ma tramite porta seriale.
I collegamenti a disposizione sono i seguenti (per ulteriori informazioni si
veda l’Appendice B relativa alla porta seriale RS232) :
Nel caso di più celle termiche a disposizione, per ognuna c’è un file
Configurazione.ini presente nei drivers di interfacciamento in cui si individua con un
indice la cella termica e la porta di comunicazione :
73
Misura Load Regulation
Dato che la cella termica a disposizione è unica, i due parametri evidenziati
saranno posti rispettivamente a 0 e a 1.
Inoltre vi sono disponibili due drivers chiamati Icbcmonitor.VI e Globals.VI :
il primo si occupa di leggere e scrivere sul controllore i flag necessari al corretto
funzionamento, mentre il secondo contiene tutti i dati sotto forma di variabili globali.
Icbcmonitor.VI consente una lettura-scrittura sul microcontrollore tramite un
continuo polling regolato da un timer interno; i valori dei vari flag da scrivere e/o da
salvare sono sottoforma di variabili globali in GLOBAL.VI .
Quindi per costruire un sub.VI che consenta di programmare la cella termica,
si deve usare innanzitutto il subVI Icbcmonitor.VI stabilire la comunicazione fra pcmicrocontrollore, mentre i dati verranno scritti e/o letti tramite le variabili globali
presenti nell’altro subVI. Queste variabili globali possono essere suddivise in due
categorie:
Alcune di queste variabili globali fanno riferimento ad array di dati e quindi devono
essere correttamente adoperate; ad esempio, per rilevare la temperatura e l’umidità si
devono leggere i primi due dati contenuti nella variabile globale “meas” che, come
specificato nel manuale d’uso, è un array così strutturato:
74
Misura Load Regulation
Similmente, anche per tutte le altre variabili globali occorrerà far riferimento
alle relativi definizioni del manuale d’uso per un loro corretto utilizzo. Ad esempio
anche la variabile globale
è riferita ad un array di 96 interi,
tutti posti a zero in caso di corretto funzionamento, altrimenti in caso di allarme
viene posto a 1 l’opportuno elemento dell’array. Una parte di questa specifica è la
seguente:
Quindi con l’utilizzo della struttura “Case” ho creato una decodifica
all’interno della libreria che permetta all’ operatore di risalire subito al tipo di
allarme occorso:
75
Misura Load Regulation
Le variabili che devono essere usate per il corretto controllo della cella
termica possono essere riassunte nella seguente tabella:
Figura 3-8 Tabella che riassume le variabili usate
Per come è impostato il microcontrollore, ogni operazione di scrittura deve
essere accompagnata da un flag di conferma con transizione off-on-off; le variabili
globali alle quali si deve far riferimento sono “write control”, “write contacts” (in
verde), quindi ho previsto due tasti di conferma sul Front Panel forzando la
transizione richiesta per mezzo di una struttura Case:
In realtà, poiché le grandezze controllate dalla variabile “contact” esulano
dai nostri scopi (controllo umidità, U.V.Lamp, … ) verrà usato solo un tasto,
“Confirm” per l’ invio dei dati al microcontrollore.
76
Misura Load Regulation
Tutta la procedura per il controllo della cella termica può essere rappresentato
nel seguente flow-chart: si possono notare due cicli while: il ciclo più esterno
aggiorna di volta in volta la temperatura da raggiungere con il valore Tstep e con lo
“slope” voluto, fino ad
arrivare al valore Tstop.
Il
ciclo
più
interno
serve
per
impostare
il
microcontrollore
e
controlla con un polling
che si raggiunga la
temperatura voluta (in
labview ci sarà un
adeguato
delay
all’interno di questo
controllo).
Inoltre
è
prevista
l’interruzione
in caso di errore e in
labview
ci
saranno
delle “spie di controllo”
per monitorare lo stato
della cella termica.
Il front panel corrispondente è il seguente:
77
Misura Load Regulation
Figura 3-9 Front panel per il controllo della cella trmica
Si noti come nel riquadro a sinistra sia possibile impostare la temperatura di
start e stop e lo step del ciclo di temperatura e la velocità con cui il forno raggiunge
una temperatura prefissata; inoltre quando sono stati impostati i parametri di
temperatura devono esser posti in on i controllori “run” e “enable temperature” (con
la possibilità di reset con l’altro parametro) e quindi tutte queste impostazioni
vengono passate al microcontrollore premendo il tasto “confirm” : i tre LED ci
daranno la conferma se i tre parametri di controllo sono stati accettati, mentre nel
riquadro a sinistra è possibile controllare i setpoints e la temperatura correnti, con
eventuale allarme (comunque in caso di allarme è previsto nel block diagram lo
spegnimento della cella termica).
Il corrispondente diagramma a blocchi è riportato nella pagina seguente ed è
piuttosto complicato a causa, come è stato visto durante questa trattazione, della
modalità in cui deve essere impostata la comunicazione fra microcontrollore e cella
termica. Si può osservare un grande ciclo while utilizzato per regolare gli step
termici, quindi via via numerose strutture Sequence e Case che abilitano nell’ordine
opportuno i vari flag preposti alla comunicazione. Esterno al ciclo while principale vi
sono i subVI IcbMonitor.VI e Global.VI: il primo si occupa in modalità polling della
comunicazione fra pc-microcontrollore, aggiornando di volta in volta i valori
memorizzati nelle variabili globali in Global.VI. Per maggior informazioni riguardo i
flag usati vedere l’appendice C.
Ogni qual volta verrà raggiunta una data temperatura, il ciclo while più
esterno che aggiorna e controlla di volta in volta il nuovo setpoint di temperatura,
richiamerà la libreria che effettua la misura di Load Regulation.
78
Misura Load Regulation
Figura 3-10 Block diagram relativo al conrollo della cella termica
79
Misura Load Regulation
3.7 SubVI per il test di Load Regulation ad una data temperatura
Questo subVI dovrà essere in grado di effettuare la misura di Load
Regulation per una data temperatura. Tutte
le operazioni da effettuare possono essere
riassunte nel flow-chart a fianco:
In particolare questa libreria deve:
Inizializzare la comunicazione con
gli strumenti
Configurare il source.meter 2400
come DC I-load
Configurare un Ke2000 come
amperometro per la corrente di
ingresso
Configurare un altro Ke2000 per la
misurare la tensione di ingresso
Realizzare un ciclo in cui si varia al
corrente sul carico e per ogni step,
rilevare la tensione e corrente in
ingresso ed uscita tramite i
multimetro KE2000, salvando i dati
raccolti.
In caso di errori interrompere
l’esecuzione
Per eseguire questi punti utilizzo i subVI
creati precedentemente.
Lo sweep della corrente di carico lo
ottengo chiamando la libreria che imposta
il Ke2400 DC I-Load dentro il ciclo while,
aggiornando di volta in volta il valore di I.
Complessivamente, allora, vi sarà un ciclo
while all’interno del quale ci sarà una
struttura Sequence in cui nell’ordine
abiliterò con il Ke2400 una data corrente in
uscita, misurando poi nell’ ordine Iout,
Vout, Iin, Vin.
Tra una sequenza e l’ altra vi è un delay
impostato con il modulo in figura, per
consentire ad eventuali transistori, di
esaurirsi.
80
Misura Load Regulation
Quindi ho scelto di salvare tutti i dati raccolti in formato *.txt in quanto è il
più compatibile con la maggior parte dei software, e per far questo converto prima i
dati da tipo numerico a tipo string, quindi li concateno separandoli con la tabulazione
e terminano una data riga col carattere LoadEnd, infine li salvo su un file utilizzando
la funzione Labview “Write Characters To File.VI” che consente di decidere se
sovrascrivere o appendere nuovi dati in un file già esistente.
Con un controllore si specifica il nome del file con relativo path in cui si
vogliono salvare i dati, e si scegliendo di appendere i dati sempre in uno stesso file
con un operatore booleano.
Il relativo front panel è il seguente:
Figura 3-11 Front panel relativo alla misura di Load Reg. a temp. fissa
Si notino oltre a tutti i controllori ed indicatori visti in precedenza, il pulsante
di Stop per bloccare in ogni momento l’esecuzione del programma, e un parametro in
cui viene impostata la temperatura d’esercizio: quando questo subVI verrà utilizzato
dentro al VI visto in precedenza che pilota la cella termica in un determinato ciclo,
81
Misura Load Regulation
questo parametro sarà dato in ingresso da questo subVI di livello superiore.
Il Connector Pane è il seguente:
Grazie al Connector Pane questo subVI verrà richiamato nel successivo VI che
realizzerà il controllo della cella termica visto in precedenza,
Si notino da questa figura tutti i valori che devono essere passati, posti sulla sinistra,
e i valori ritornati da questa funzione.
Per questo primo Block Diagram sono riportati le funzioni di ogni frame delle
strutture Case e Sequence, nella trattazione delle prossime librerie verranno riportati
solo quelli più complessi.
82
Misura Load Regulation
Figura 3-12 Block Diagram Della Load Regulation
83
Misura Load Regulation
In questo frame della sequenza più esterna,definisco le label del file *.txt in
cui verranno salvati i dati, con l’ausilio di opportuni caratteri di delimitazione. Il
frame successivo, visualizzato nella pagina precedente, conterrà il ciclo while e
relativi controlli che realizzano le misure di Load Regulation.
Questo frame appartiene alla sequenza interna al ciclo while che abilita le
misure di tensioni-correnti del circuito. In particolare questo frame, primo dei tre,
imposta la corrente di carico generata dal Ke2400 richiamando il subVI visto in
precedenza con un valore che viene aggiornato dal ciclo while.
In più viene rilevata la tensione d’uscita il cui valore sarà passato esternamente alla
sequenza per essere salvato e si rilevano eventuali errori confrontando l’ “error
code” del cluster “error out” con il valore 0 (no error).
84
Misura Load Regulation
In questo frame viene rilevata la corrente d’ingresso richiamando il subVI che
controlla il multimetro Ke2000: con dei controllori resi delle costanti si definisce il
tipo di misura, DC Volts, la risoluzione massima e l’autorange e si rilevano eventuali
errori.
Il frame 1, rappresentato nella figura del block diagram globale, sarà analogo
a questo, ma rileverà la tensione di ingresso.
85
Misura Load Regulation
3.8 Vi che realizza il test Load Regulation a diverse temperature
Utilizzando il subVI che realizza il test di Load Regulation nel Vi che
controlla la cella termica, si va a creare il seguente Front Panel:
Figura 3-13 Front panel della libreria complessiva di Load Regulation
Per effettuare il test di Load Regulation a temperature diverse, prima di
eseguire il programma, si devono impostare i seguenti controlli:
ü definire il range e gli step di temperatura desiderati utilizzando i
controlli posti nel riquadro in alto a sinistra;
ü definire il nome del file e relativo path in cui verranno salvati i dati
con l’apposito “control box”;
ü definire il range di Iout e ed i relativi step di corrente per i quali
verranno rilevate le misure di tensione e corrente;
ü definire il parametro di sicurezza “source compliance” del Ke2400:
esso rappresenta la massima tensione possibile sui connettori, e quindi
in uscita al LDO;
86
Misura Load Regulation
ü definire il range per il Ke2000 usato come amperometro: ponendo
l’apposito controllore a “–1” si seleziona la modalità “autorange”,
altrimenti la scala può essere definita manualmente, tenendo presente
che con range minori di 100 mA lo strumento pone una resistenza di
shunt di 10Ω (vedi specifiche del Keithley2000 allegate)
ü definire tutti gli indirizzi GPIB e collegare il pc al microcontrollore
tramite cavo seriale.
ü Collegare gli strumenti come in figura:
A questo punto si avvia l’esecuzione del programma premendo la freccia
della barra di controllo di Labview; come già visto, nel block diagram è stato creato
un apposito controllo che interrompe l’ esecuzione del programma in caso di errori,
spegnendo anche la cella termica, ma i dati raccolti fino a quel punto non andranno
persi perché ho adottato una modalità di salvataggio per mezzo della quale i nuovi
dati vengono di volta in volta appesi in coda a quelli vecchi.
Comunque in ogni caso è possibile fermare l’esecuzione del programma
tramite il pulsante di stop.
3.8.1 Possibili miglioramenti della libreria
Nel corso di svariati test è stato riscontrato che in presenza di un
considerevole numero di misure da effettuare, ad un certo punto il programma non è
più in grado di continuare l’esecuzione (ciò accade dopo circa 130 misure). L’errore
segnalato dal sistema è il seguente:
87
Misura Load Regulation
Figura 3-14 Problema che causa l'interruzione dell'esecuzione del programma
Come si vede dal tipo di errore segnalato, il problema sembra essere generato
dalla mancanza di risorse a livello di sistema; ma utilizzando il programma
“monitoring” abbiamo però verificato che il sistema non è mai sovraccarico, dato che
la quantità di RAM utilizzata non superava mai i 190 KB. Essendo, per una data
temperatura, la quantità di misure determinata dal range e dallo step impostato per
pilotare la corrente data dal Ke2400, talvolta è stato necessario modificare queste
impostazioni.
Per risolvere questo inconveniente, sono stati interpellati anche i tecnici della
National Instrument e si è provato ad aumentare la memoria RAM del pc a 512MB,
ma senza risultato alcuno.
A questo punto la mia attenzione è caduta sulla struttura modulare a subVI
della libreria: osservando la struttura del Block Diagram della libreria che effettua il
test di Load Regulation a temperatura fissa, si vede come ci sia un ciclo while, il cui
numero di cicli è dato da (Istop-Istart)/Istep+1, ed una struttura che richiama,
nell’ordine, i subVI:
§
§
§
§
KE2400 performIVSimple_Sense.VI per impostare la corrente di
carico e misurando la tensione d’uscita, aggiornando di volta in volta i
valori utilizzando il contatore del ciclo while .
Ke2000 Single Point Measurement.VI per la misura di Vout
Ke2000 Single Point Measurement.VI per la misura di Iout
Write Characters To File.VI per salvare i dati in *.txt
La complessità della libreria che comprende il controllo del forno può esser
meglio capita visualizzando la sua struttura gerarchica:
88
Misura Load Regulation
Figura 3-15 Struttura gerarchica della libreria
Riassumendo, i principali subVI richiamati sono i seguenti:
globals.vi
GPIB Address to Resource Name.vi
icbMonitor.vi
KE2400 performIVSimple_Sense
Load Regulation Measurement.vi
Ke2000 Single Point Measurement.VI
Write Characters To File.vi
Per risolvere questo errore ho innanzitutto provato a salvare i dati non dopo ogni
step di corrente, ma solo alla fine dello sweep di corrente; tuttavia, anche con questa
soluzione il sistema si bloccava (circa dopo 130 rilevazioni).
Allora ho provato ad analizzare la struttura ed il funzionamento dei vari
subVI tramite la funzione debug di labview: ho notato che generalmente in ogni
subVI vengono aggiornati, rispetto alla chiamata nello step precedente, un numero
ristretto di moduli.
In altre parole, torniamo ad esempio al subVI preposto alla lettura di
tensione-corrente con il Ke2000:
89
Misura Load Regulation
Figura 3-16 Block diagram della libreria del controllo del multimetro
Una volta inizializzato lo strumento, definiti i parametri ed il tipo di misura,
l’unico modulo che subirà delle modifiche fra una misura in uno step e quello
successivo sarà il modulo preposto alla lettura, cioè ke2000Read.vi
Similmente, nel subVI KE2400 performIVSimple_Sense i moduli che
subiranno delle modifiche fra uno step e l’altro saranno quello preposto alla
configurazione del livello di corrente, quello relativo all’abilitazione dell’uscita ed
infine il modulo relativo alla misura della tensione.
Da tutte queste considerazioni, ho creato allora un’altra libreria in cui ho
modificato il Block Diagram relativo al subVI della Load Regulation a temperatura
fissa. Come si può vedere nello schematico di pagina seguente, non si è più utilizzata
una programmazione modulare tramite subVI: ogni subVI che veniva richiamato
nella precedente libreria è stato sostituito con tutta la sua struttura, lasciando dentro
al ciclo While e alla Sequence solo i moduli dei vecchi subVI che devono essere
aggiornati in ogni ciclo. In più ho aggiunto per il 2400 l’opzione della misura a
quattro fili, che verrà ripresa nel prossimo capitolo. Con questa soluzione, adottata
anche nello sviluppo delle prossime librerie, non si sono più verificati errori di
questo tipo (ad esempio nella misura di dropout vengono effettuati anche 8-10.000
step di misure senza alcun problema).
Il front panel non subirà sostanziali modifiche, se non per la presenza di un
tasto di enable della misura a quattro fili, mentre il block panel, relativo alla misura
di Load Regulation a temperatura fissa, non verranno più richiamati i vari subVI con
i rispettivi Connector Pane, ma saranno opportunamente sostituiti con tutta la loro
struttura. Infatti si noti nella figura a pagina seguente come nel frame 0 della
sequenza che viene richiamata ad ogni ciclo del while, siano presenti soltanto i
moduli del Ke2400 che devono essere aggiornati fra un ciclo e l’altro, ed in
particolare il modulo che definisce il livello di corrente, il modulo che abilita l’uscita
ed il modulo che effettua la misura di tensione:
90
Misura Load Regulation
Figura 3-17 Block diagram relativo alla libreria modificata
91
Misura Load Regulation
In questo frame, invece, è presente soltanto il modulo che effettua la misura
della tensione d’ingresso, mentre tutti gli altri moduli adibiti al set-up dello
strumento sono esterni al ciclo while e quindi attivati soltanto una volta.
92
Misura Load Regulation
Anche nel frame 2 si può notare la presenza di un solo modulo appartenente
al subVI del Ke2000, in particolare quello adibito alla lettura della corrente
d’ingresso: infatti in ogni step l’impostazione dello strumento rimarrà uguale, e
quindi ecco la presenza dei moduli che espletano questa funzione fuori del ciclo
while. L’ultimo frame spegne il source-meter: da notare che in questa libreria viene
eliminato il delay tra un frame e l’altro, così da velocizzare l’esecuzione.
In questa libreria è previsto un delay fra uno step di corrente di uscita ed il
successivo in cui si tiene spento il dispositivo, evitando così di evitare
surriscaldamenti che falserebbero test a basse temperature. L’esecuzione di quest’
ultima libreria risulta più veloce della precedente a chiamate gerarchiche di subVI in
quanto gli strumenti vengono inizializzati ed impostati solo all’avvio e non in ogni
step. Ma pure con questo sistema si rischia di introdurre un errore sistematico man
mano che ci si avvicina ad alte correnti di carico, in quanto nel seppur breve periodo
di tempo in cui il source-meter è attivo, è stato rilevato che determinati dispositivi,
soprattutto quelli ceramici, cominciavano a scaldarsi: in questo caso si introduce un
errore nella valutazione delle caratteristiche del dispositivo dovuto alla deriva
termica.
È stato valutato con una semplice libreria labview quanto tempo occorre per il
Ke2400 ad abilitare la corrente d’uscita, misurare la tensione ai suoi capi e quindi
spegnersi: sia per l’opzione 4wire che senza risultava mediamente 167 ms. Tale
valore è stato poi verificato con l’oscilloscopio acquisendo con una sonda di corrente
il segnale in uscita al source-meter:
93
Misura Load Regulation
Dalla misura dell’oscilloscopio il tempo in cui il source-meter resta acceso risulta di
144 ms, quindi possiamo ritenere la differenza di 23 ms fra i due valori dovuta al
tempo di trasmissione dei dati. Allora si è pensato di regolare la corrente di carico
mediante un trimmer esterno, acquisendo il valore di Vout e Iout con due multimetro
Ke2000, usando come alimentazione un generatore di funzioni in modalità single
shot: il tempo di acquisizione è risultato di 83 ms, comunque ancora eccessivo
(almeno dovrebbe essere inferiore ai 10 ms). Quindi c’è da tener conto in queste
misure che avvicinandosi a correnti di carico alte commettiamo un errore sistematico
dovuto alla deriva termica del dispositivo.
3.9 Elaborazione automatica delle misure di Load Regulation
Tutte le misure di Load Regulation vengono salvate in formato *.txt assieme
all’utilizzo del carattere Carriage return, End of Load e dal carattere di separazione
tab constant. Andiamo ora a definire un metodo che consenta una loro elaborazione
automatica.
In un generico file *.txt di un test di Load Regulation, i dati hanno questo
aspetto:
Temperature(°C)
120
26,023146
120
26,022832
120
26,022779
120
26,022729
120
26,022474
120
26,021941
120
26,021991
120
26,021722
120
26,021691
120
26,021516
120
26,021498
120
26,021265
120
26,021068
120
26,020889
120
26,020666
120
26,020366
120
26,019981
Vin(A) Iin(A)
0,000096
0,010383
0,020706
0,031036
0,041416
0,05186
0,062364
0,072923
0,083556
0,094276
0,105078
0,116449
0,127946
0,139021
0,150223
0,161535
0,172935
Vout(V)
5,015258
5,013709
5,012434
5,011436
5,010406
5,009284
5,008026
5,006646
5,005172
5,003604
5,001986
5,000288
4,997928
4,994865
4,992965
4,990818
4,988529
Iout(A)
0
-0,01
-0,02
-0,03
-0,04
-0,05
-0,06
-0,07
-0,08
-0,09
-0,1
-0,11
-0,12
-0,13
-0,14
-0,15
-0,16
Temperature(°C)
Vin(A) Iin(A) Vout(V)
Iout(A)
100
20,002369
0,000085
5,012095
0
100
20,002078
0,010394
5,010797
-0,01
100
20,002307
0,020742
5,009736
-0,02
100
20,002163
0,031101
5,00901
-0,03
100
20,002262
0,041514
5,008175
-0,04
……………………………………………………………………….
……………………………………………………………………….
La misura di Load Regulation viene effettuata per vedere il comportamento
della tensione in uscita al regolatore al variare del carico: è quindi opportuno
tracciare un grafico di Vout al variare di Iout che, idealmente, dovrebbe essere una
94
Misura Load Regulation
retta orizzontale centrata sul valore nominale. In più è anche conveniente
visualizzare l’andamento di Vout rispetto Iout per le diverse temperature.
Per rendere l’elaborazione dei dati in modo automatico, ci viene in aiuto la
funzione labview “Open Excel and Make Visibile” che consente di aprire da
labview il programma Microsoft Excel, ritornando un puntatore tipo
Excel.Application (application refnum)
3.9.1
Connector Pane
Esiste poi una funzione labview, Invoke Node, con la quale è possibile
eseguire un’azione a VI, VI object, or application (vedi manuale labview) attraverso
dei metodi. Tra i mille metodi disponibili per un application refnum tipo
Excel.Application, esiste un relativo method , chiamato Run, così strutturato:
Sintassi 1: esegue una macro o richiama una funzione. Può essere utilizzata per
eseguire una macro scritta in linguaggio Visual Basic o nel linguaggio macro di
Microsoft Excel 4.0 oppure per eseguire una funzione in una DLL o XLL.
Sintassi 2: esegue la macro di Microsoft Excel 4.0 in questa posizione. È necessario
che l'intervallo si trovi in un foglio macro.
Sintassi 1: espressione.Run (Macro, Arg1, Arg2, ...)
Sintassi 2: espressione.Run (Arg1, Arg2, ...)
espressione Argomento facoltativo per Application e necessario per Range.
Un'espressione che restituisce l'applicazione contenente la macro o un intervallo su
un foglio macro contenente una macro di Microsoft Excel 4.0.
Macro : Argomento necessario di tipo Variant (qualsiasi tipo) per la sintassi 1. Non
viene utilizzato nella sintassi 2. Indica la macro che deve essere eseguita. Può essere
rappresentato da una stringa contenente il nome della macro, un oggetto Range
indicante la posizione della funzione oppure un numero di identificazione di una
funzione registrata in una DLL o XLL. Se si utilizza una stringa, questa verrà
calcolata nell'ambito del foglio attivo.
Arg1, Arg2, ... : Argomenti facoltativi di tipo Variant. Gli argomenti che si desidera
passare alla funzione.
Note: Non è possibile utilizzare argomenti denominati ed è inoltre necessario passare
gli argomenti in base alla relativa posizione.
Il metodo Run restituisce qualsiasi valore fornito dalla macro richiamata. Gli oggetti
passati alla macro come argomenti vengono convertiti in valori applicando la
proprietà Value all'oggetto.
Scelgo allora di utilizzare il metodo Run relativo al refnum Excel.Application
e avvalendomi della sintassi1, farò eseguire delle macro scritte in linguaggio Visual
95
Misura Load Regulation
Basic per Microsoft Excel 4.0 grazie alle quali renderò automatica l’elborazione dei
risultati di Load Regulation con il software Excel aperto precedentemente da
Labview con l’altra funzione vista.
In altre parole, una volta raccolti tutti i risultati il programma Labview
eseguirà una serie di operazioni, che verranno raccolte in una Sequence, in cui aprirà
il programma Excel ed eseguirà determinati script di Visual Basic (macro) rendendo
così automatica l’elaborazione dei dati stessi.
I parametri per l’esecuzioni delle macro vengono impostati scegliendo il
metodo Run della categoria Application delle funzioni Invoke Node di Labview:
Figura 3-18 Funzione Invoke Node
3.9.2 Definizioni delle Macro Excel
Una volta aperta l’applicazione Excel, bisogna innanzitutto creare uno script
VBA che consenta di importare i dati salvati in formato *.txt
Nel salvataggio in *.txt sono stati utilizzati i caratteri end of Line, carriage
return, tab costant, allora andremo a definire una funzione che riconosca questi
caratteri consentendo una giusta formattazione dei dati.
Il linguaggio VBA è orientato ad oggetti e la sintassi è di due tipi:
oggetto.proprietà
ogetto.metodo
In una cartella di lavoro excel ci sono oggetti di varia natura, come celle,
intervalli,fogli…., e la loro gerarchia è facilmente reperibile nella guida in Loada
VBA. L’ oggetto principale è Application, che comprende tutti gli altri; si tratta di
Excel stesso (altrove Application corrisponderà a Word, Access…)
Application comprende:
•
L’oggetto Workbook che è la cartella di lavoro (una di quelle
attualmente aperte)
• L’ oggetto Worksheet, foglio di lavoro
• L’ oggetto Range, intervallo di celle
Questi oggetti sono così strutturati:
1) ciascun oggetto fa parte di una famiglia o classe (di suoi simili) e l’accesso
al singolo membro di ciascuna classe si effettua attraverso “metodi”, ai quali
corrispondono insiemi (collection) di oggetti omogenei: Workbooks,
Worksheet, Range, Cells;
96
Misura Load Regulation
2) i membri più elevati di una catena gerarchica si possono omettere, nel qual
caso è sottointeso il soggetto attualmente attivo;
3) l’ istruzione Set serve a fissare un oggetto in una variabile.
Per realizzare gli script si utilizza l’help del programma e tutti i numerosi esempi
proposti
La prima macro che è stata scritta per importare in Excel i dati delle misure salvati in
*.txt è la seguente:
Sub ImportData()
'
‘import0 in Foglio2 il n° di misure ed il nome del file corrispondente:
Worksheets("foglio2").Activate
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Nmisure.txt", _
Destination:=Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
NomeFile = Cells(2, 1)
‘Leggo il nome del file in cui ho salvato le misure, Foglio2 è
‘ancora attivo
Worksheets("foglio1").Activate
'Rendo attivo Foglio1, ora importo tutte le misure
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & NomeFile & ".txt", Destination:=Range("A1"))
.Name = " & NomeFile & "
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
97
Misura Load Regulation
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True 'riconosce il Tab come carattere di separazione
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
Come si può notare, nella prima parte dello script importo in Foglio2
l’informazione relativa al numero di misure presenti nel file dati ed il suo nome con
la sua directory, informazioni necessarie per importare i dati, eseguire i grafici e
salvare l’elaborazione. Ricordando l’impostazione del test di Load Regulationil
numero di misure sarà dato dal rapporto fra il range della corrente di carico per lo
step (più uno). Questo valore verrà salvato da Labview grazie all’aggiunta di questo
codice nel block diagram:
Si noti che nel block diagram vi è pure una parte di programma che salva solo
il nome del file *.txt (con la directory) nella seconda riga del file c:\Nmisure.txt,
utilizzando la funzione Search/Split String che consente di separare una stringa in
due parti.
Lo script seguente calcola il valore di Load Regulation come la differenza fra
il valore massimo e minimo di Vout :
Sub Calculate()
' Macro che calcola il valore di LoadRegulation
' Utilizzo la mo dalità di indirizzamento diretto e non quella indiretta R1C1
'
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
98
‘leggo il numero complessivo di misure effettuate
assegnando il valore alla variabile N_misure che
per default è di tipo Variant
Misura Load Regulation
Worksheets("foglio1").Activate
‘ora riattivo il controllo nel Foglio1
Range("G2").Select
ActiveCell.Formula = "Value LoadReg."
Range("G3").Select
'Seleziono in che cella visualizzare la label
‘Questa è la label
‘Seleziono in che cella visualizzare il dato
ActiveCell.Formula = "=MAX(D3:D" & 3 + N_misure & ")-MIN(D3:D" & 3 + N_misure & ")"
End Sub
Segue ora lo script che consente di creare in automatico il grafico di Vout in
funzione di Iout per una misura di Load Regulation ad una temperatura fissa:
Sub GraficoLoadReg()
' Grafico di Vout in funzione di Iout per una singola temperatura
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
'leggo il numero di misure
Worksheets("foglio1").Activate
TEMPERATURA = Range("A3")
'seleziono il valore della temperatura per rendere
‘rendendo questo valore dinamico
' Costruisco il grafico XY
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
‘definis co quale tipo di grafico usare
ActiveChart.SetSourceData Source:=Sheets("Foglio1").Range("I2"), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Foglio1!R3C5:R" & 3 + N_misure & "C5"
ActiveChart.SeriesCollection(1).Values = "=Foglio1!R3C4:R" & 3 + N_misure & "C4"
ActiveChart.SeriesCollection(1).Name = "=""Temp" & TEMPERATURA & """"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Foglio1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Load Regulation"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Iout (A)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vout (V)"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
‘Posiziono il grafico nel foglio di lavoro:
Selection.Position = xlRight
ActiveSheet.Shapes("Grafico 1").IncrementLeft 178.5
ActiveSheet.Shapes("Grafico 1").IncrementTop -103.5
End Sub
99
Misura Load Regulation
Eseguendo nell’ordine questi tre script si ottiene il seguente foglio Excel:
Figura 3-19 Esempio di elaborazione automatica
Infine creo un ultimo script che salva l’elaborazione in un file con lo stesso
nome del file dei vechi dati *.txt, ma nel formato “xls” proprio di Excel.
Sub Save()
'Script che salva l'elaborazione Excel in un file con lo stesso
'nominativo di quello *.txt delle misure Labviev, ma formato xls
Worksheets("foglio2").Activate
PathFile = Cells(2, 1)
'ora concateno le due stringhe
ActiveWorkbook.SaveAs Filename:="" & PathFile & ".xls"
End Sub
Per l’elaborazione dei risultati di test di Load Regulation a diverse
temperature è conveniente aggiungere uno script che visualizzi su di un unico grafico
l’andamento di Vout in funzione di Iout al variare della temperatura. Nello script ci
sarà quindi un ciclo For con il quale si plotteranno di volta ni volta i risultati per le
diverse temperature, ed il numero dei grafici “sovrapposti” sarà uguale al rapporto
fra il range di temperatura diviso il valore degli step più uno.
Questo valore, fondamentale per il controllo del ciclo For, verrà aggiunto nel
file C:\Nmisure.txt con la seguente modifica Labview:
100
Misura Load Regulation
Inoltre per ogni “blocco” di misure dovremo calcolare il valore di Load Regulation.
Perciò andremo ripetere con un ciclo For lo script Calculate() visto in precedenza
su ogni blocco di misura, per un numero totale di cicli pari al valore calcolato con la
nuova modifica Labview.
Sub Calculate()
' Macro che calcola il valore di LoadRegulation
'
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
'leggo il numero complessivo di misure effettuate per blocco
'assegnando il valore alla variabile N_misure che
'per default è di tipo Variant
N_blocchi = Cells(1, 2)
‘leggo il n° di blocchi che corrisponderà al numero di cicli
Worksheets("foglio1").Activate
'ora riattivo il controllo nel Foglio1
For i = 0 To N_blocchi – 1
Range("G" & 2 + i * (N_misure + 3) & "").Select
ActiveCell.Formula = "Value LoadReg."
'Seleziono in che cella
‘visualizzare la label
'Questa è la label
‘
Range("G" & 3 + i * (N_misure + 3) & "").Select
'Seleziono in che cella visualizzare
‘il dato
‘Scrivo la formula che verrà eseguita per ogni blocco
ActiveCell.Formula = "=MAX(D" & 3 + i * (N_misure + 3) & ":D" & 3 + (N_misure + 3) * i +
N_misure & ")-MIN(D" & 3 + i * (N_misure + 3) & ":D" & 3 + (N_misure + 3) * i + N_misure & ")"
Next I
‘incremento il contatore
End Sub
Ora scriveremo lo script per il grafico della Load Regulation in funzione della
temperatura: a questo scopo ci viene in aiuto il grafico Excel tipo XY, in cui
aggiungeremo con un ciclo For tante “serie di dati” quanti sono stati gli step di
temperatura:
101
Misura Load Regulation
Sub GraficoLoadReg()
'
' GraficoLoadReg Macro
'
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
'leggo il numero complessivo di misure effettuate
'assegnando il valore alla variabile N_misure che
'per default è di tipo Variant
N_blocchi = Cells(1, 2)
'ora riattivo il controllo nel Foglio1
Worksheets("foglio1").Activate
'Ricavo il valore dello step di Temperatura, mi servirà nelle label del grafico
Temp_Start = Cells(3, 1)
Temp_Stop = Cells(3 + (N_blocchi - 1) * (N_misure + 3), 1)
Temp_Step = (Temp_Stop - Temp_Start) / (N_blocchi - 1)
'
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth ‘definisco quale tipo di grafico usare
ActiveChart.SetSourceData Source:=Sheets("Foglio1").Range("A174"), PlotBy:= _
xlColumns
For i = 0 To N_blocchi - 1
ActiveChart.SeriesCollection.NewSeries ‘ora costruisco dinamicamente il grafico
ActiveChart.SeriesCollection(i + 1).XValues = "=Foglio1!R" & 3 + i * (N_misure + 3) & "C5:R" &
3 + (N_misure + 3) * i + N_misure & "C5"
ActiveChart.SeriesCollection(i + 1).Values = "=Foglio1!R" & 3 + i * (N_misure + 3) & "C4:R" &
3 + (N_misure + 3) * i + N_misure & "C4"
ActiveChart.SeriesCollection(i + 1).Name = "=""Temp" & Temp_Start + Temp_Step * i & """"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Foglio1"
Next i
'Scrivo le legende
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Load Regulation"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Iout(A)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vout(V)"
End With
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
Windows("LoadReg.xls").SmallScroll Down:=-33
'Riposiziono il Grafico
ActiveSheet.Shapes("Grafico 1").IncrementLeft 325.5
ActiveSheet.Shapes("Grafico 1").IncrementTop –1875
End Sub
102
Misura Load Regulation
Per il cip NCV8502 sono stati ricavati questi risultati:
Figura 3-20 Esempio di elaborazione automatica di misure di Load Regulation effettuate anche
a temperature diverse
A questo punto, come spiegato a inizio paragrafo, si modifica il programma
Labview che effettua il test di Load Regulation introducendo una Sequence.
Il frame zero della sequence conterrà tutta libreria che è stata sviluppata per
questo test, comprese le istruzioni che salvano i risultati nel formato *.txt, mentre il
frame successivo si occuperà di aprire l’applicazione Excel e di lanciare gli script
nell’ordine più opportuno.
Come accennato ad inizio paragrafo, saranno necessarie queste funzioni:
Ø “Open Excel and Make Visible.vi” , apre Excel e crea un Automation Refnum
per gli Excel.Application object.
Ø “ Open Specific Workbook.vi” , apre il workbook in cui sono state salvate le
macro excel.
Ø “Invoke Node.vi”, che, grazie al puntatore (refnum) tipo Excel.Application
consente, col metodo Run, di lanciare gli script (Macro) di Visual Basic per
Microsoft Excel.
Ø “Automation Close (Windows).vi” , chiude l’applicazione individuata da
application refnum, in questo caso Excel.
103
Misura Load Regulation
Ø “Simple Error Handler.vi” , riporta attraverso un dialog box eventuali errori
occorsi.
Riporto allora il frame1 della Sequence aggiunta alla libreria che effettua il test di
Load Regulation a temperature diverse:
Figura 3-21 Parte di front panel che avvia automaticamente l'esecuzione degli script
104
Misura Load Regulation
Si noti l’ordine dell’esecuzione delle varie funzioni:
1. Apertura dell’ applicazione Excel
2. Apertura del workbook contenente gli script Visual Basic
3. Esecuzione delle macro, nell’ordine:
a) “Import Data” per importare in Foglio2 le informazioni del file
c:\Nmisure.txt riguardanti la struttura e relativo path del file *.txt con i
risultati delle misure, e in Foglio1 i dati stessi.
b) “Calcolate” per calcolare ad ogni step di temperatura il valore di Load
Regulation
c) “GraficoLoadReg” per ricavare il grafico della tensione d’uscita
rispetto la corrente di carico, in funzione della temperatura
d) “Save” per salvare tutta l’elaborazione in formato .xls con il nome del
file lo stesso di quello impostato nella libreria labview che
individuava il report *.txt
4. Chiusura del workbook
5. Chiusura dell’applicazione Excel
6. Segnalazione di eventuali errori.
3.10 Utilizzo delle librerie
In questo capitolo sono state create diverse librerie per la misura di Load Regulation.
Esse sono ora riportate con le loro caratteristiche principali:
Load Reg.temp_fixed_with_subVI : esegue il test di Load Regulation ad una data
temperatura e la sua è una struttura gerarchica a subVI.
Load Reg.temp_fixed : esegue il test di Load Regulation ad una data temperatura non
utilizzando una struttura gerarchica a subVI
Load Reg.temp_fixed_with_subVI_with_oven : esegue il test di Load Regulation per
un ciclo di temperature e la sua è una struttura gerarchica a subVI.
Load Reg.temp_fixed_with_ with_oven : esegue il test di Load Regulation per un
ciclo di temperature e la sua è una struttura gerarchica a subVI.
Assieme a queste librerie c’è LoadReg.xls che deve essere memorizzata in C:\ che
contiene tutti gli script per l’elaborazione automatica.
Si sceglierà allora una libreria Labview a seconda delle esigenze, che a sua volta
richiamerà gli opportuni script presenti in C:\ LoadReg.xls per l’elaborazione
automatica.
3.11 SOMMARIO
In questo capitolo è stato affrontato e risolto il problema di rendere
automatico il test di Load Regulation.
105
Misura Load Regulation
Sono stati riportati e spiegati tutti i passi dello sviluppo della libreria: sono
state costruite le librerie per il controllo degli strumenti necessari alla misura
(multimetro e generatore di corrente/tensione) e della cella termica, quindi si è
costruita la libreria per il test ad una data temperatura.
Successivamente questa libreria è stata richiamata in una di livello superiore,
ottenendo così in automatico il test di Load Regulation per un dato ciclo di
temperature (impostabile).
A questo punto sono stati sviluppati degli script in Visual Basic per Microsoft
Excel che consentissero un’ elaborazione automatica dei dati raccolti; quindi sono
state aggiunte delle funzioni alla libreria di Load Regulation che, al termine del test
(si pensi che per completare il test per un ciclo di temperatura sono necessarie anche
delle ore), avviassero in automatico l’ elaborazione dei dati grazie a tali script.
Possiamo perciò sottolineare l’efficienza di questa libreria: all’operatore è
lasciato solo il compito di collegare gli strumenti al dispositivo da testare, impostare
correttamente i controllori del Front Panel (indirizzi GPIB, lo sweep di temperatura
e di corrente di carico), e avviare il programma: al termine dell’esecuzione i dati
saranno già elaborati in un foglio elettronico Excel.
Ricordiamo inoltre i numerosi accorgimenti che interrompono l’esecuzione
del programma in caso di errore, consentendo comunque di disporre dei dati fin lì
raccolti e di risalire in ogni caso al tipo di errore occorso.
106
Misura Line regulation
4 Misura della Line Regulation
4.1 INTRODUZIONE
La misura della Line Regulation assieme a quella della Load Regulation è una
delle più comuni e importanti misure dei power supply.
In questo capitolo verranno presentate le librerie Labview in grado di
effettuare automaticamente questo test, accompagnate dai subVI che pilotano i vari
strumenti di misura.
4.2 Definizione del problema
La misura di Line Regulation è una misura statica delle prestazioni del
regolatore di tensione, e definisce l’abilità di mantenere la tensione d’uscita regolata
al variare della tensione di alimentazione.
Nei data sheet dei regolatori di tensione, la specifica di Line Regulation viene
indicata per un dato range di tensione di alimentazione e per corrente di carico
fissata, come valore minimo, massimo e tipico di:
Line Regulation = Vout (max) - Vout (min)
A questo proposito riporto a titolo di esempio la specifica del regolatore
TLE4270, per ulteriori informazioni vedere in appendice D:
Le librerie che andrò a sviluppare saranno in grado di effettuare in maniera
completamente automatica la misura di Line Regulation e la elaborarazione dei dati
acquisiti.
Per realizzare questa misura devo essere in grado di variare la tensione (DC)
di alimentazione entro un dato range per una data corrente di carico, leggere le
tensioni in gioco, elaborare i dati e successivamente ripetere il tutto a diverse
temperature (anche queste programmabili).
107
Misura Line regulation
Per prima cosa si effettua la misura “a mano”, per poi rendere il tutto
automatico con la programmazione in Labview e Visual Basic per Microsoft Excel.
Saranno necessari questi strumenti:
•
•
Un generatore di tensione programmabile
Volmetri e amperometri per rilevare le tensioni e le correnti di ingressouscita,
• un reostato per impostare la corrente d’uscita
Per effettuare le misure di corrente - tensioni in modo automatico via
Labview possiamo utilizzare il subVI sviluppato per la precedente misura di Load
Regulation in grado di pilotare il multimetro Keithley2000, mentre bisognerà
sviluppare una libreria per pilotare il Keithley2400 da generatore di tensione.
In un primo tempo si utilizza ancora uno stile di programmazione gerarchico
in cui una libreria principale richiama altre sottolibrerie attraverso il “connector
pane” in quanto consente all’ operatore, in caso di necessità, un più semplice e
immediato utilizzo della modalità “debug” ossia l’ esecuzione “passo passo” del
programma.
Infatti, come per il test di Load Regulation, anche questa libreria così
strutturata presenta un limite nel numero complessivo di misure per ogni step di
temperatura (circa 130), che viene anche in questo caso superato sviluppando una
libreria che non richiama più subVi, ma gli utilizza con tutta la loro struttura
inserendo dentro ai cicli del programma solo i loro moduli che devono essere
aggiornati. Ripetiamo ancora una volta che questa libreria è sì più efficiente perché
non presenta limiti nel numero di misure, ma in caso di necessità rende più
complicato l’uso e la comprensione da parte dell’operatore nella modalità di
esecuzione “passo-passo” del programma.
4.3 Definizione del subVi che imposta il Ke2400 come generatore di
corrente
Questa libreria dovrà essere in grado di programmare tramite Labview via
GPIB, il source-meter Keithley2400 come “Voltage-source” ottenendo così lo sweep
di tensione di alimentazione, impostare i relativi valori di protezione (Icompliance,
cioè la massima tensione che può avere ai suoi capi e Vprotection al fine di non
bruciare il dispositivo) e di dare una lettura della corrente.
A questo punto si cercano nei drivers installati del Ke2400 (vedi cap2 pag 50)
se ci sono a disposizione delle funzioni in grado di:
-
108
Inizializzare la comunicazione
Definire il tipo di misura da effettuare
Definire source mode : voltage o current mode
Definire il parametro di sicurezza Icompliance e Vprotection
Definire il valore da generare
Abilitare l’uscita
Misura Line regulation
-
Effettuare la misura
Spegnere il dispositivo.
Come si vede chiaramente da questi punti, la struttura di questa libreria sarà
simile a quella precedentemente creata per pilotare il Ke2400 come generatore di
corrente : basterà impostare la modalità “Voltage-mode” e aggiungere un modulo che
consenta di impostare il parametro Vprotection.
I moduli che vengono ora utilizzati in questa nuova libreria e non visti nella
precedente “Ke2400 PerformIV_Simple_sense” del cap.3, vengono ora riportati nei
seguenti sottoparagrafi.
4.3.1 Ke24xx Configure DC IV.vi
Connector Pane
Questo subVi è utilizzato per impostare la misura della corrente di ingresso ed è così
strutturato:
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
range controllore tipo Integer che definisce il range di funzionamento. Sono definiti questi
possibili valori:
KE24XX_AUTO_RANGE
0
KE24XX_1U_A_RANGE
1
KE24XX_10U_A_RANGE
2
KE24XX_100U_A_RANGE
3
KE24XX_1M_A_RANGE
4
KE24XX_10M_A_RANGE
5
KE24XX_20M_A_RANGE
6
KE24XX_100M_A_RANGE
7
KE24XX_1_A_RANGE
8
KE24XX_3_A_RANGE
9
KE24XX_5_A_RANGE
10
KE24XX_10_A_RANGE
11
In questa libreria verrà usato l’autorange
nplc controllore tipo double, può assumere qualsiasi valore nell’intervallo 0.001 : 10.00
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
109
Misura Line regulation
4.3.2 Ke24xx Configure V Source Protection.vi
Connector Pane
Questa funzione è usata per definire la tensione massima generabile, definendo così
un parametro di protezione per il dispositivo sotto test. Per maggiori dettagli vedere
cap.3 dell’ user's manual.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
level controllore double che definisce il valore della tensione di protezione (volt)
error in (no error) controllore tipo error cluster
status indicatore tipo integer che individua lo stato dello strumento dopo la chiamata della
funzione
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita alllo strumento
Non vengono utilizzati ulteriori moduli diversi dalla precedente libreria che
impostava il Ke2400 come generatore di corrente, e si ricava la seguente libreria:
4.4 ke2400 perform VI Single Point with close (2wires) constants.VI
Integrando opportunamente i due subVI visti in precedenza nella libreria con quelli
di“Ke2400 PerformIV_Simple_sense” del cap.3, costruiamo la libreria in grado di
pilotare il Ke2400 come generatore di tensione che verrà utilizzata nella libreria di
Line Regulation con il seguente connector pane :
Connector Pane
Si osservino i parametri che devono essere passati:
L’ indirizzo GPIB dello strumento
I valori di protezione Vprotection e la compliance (valore max. di corrente
disponibile)
Il valore della tensione da generare
Eventuale errore in ingresso,
110
Misura Line regulation
mentre in uscita avremo la misura della corrente e la segnalazione di eventuali errori.
La relativa interfaccia utente ed il block diagram sono i seguenti:
Front Panel
Block Diagram
Figura 4-1Front panel e block diagram relativo alla libreria ke2400 perform VI Single Point
with close (2wires) constants.VI
Si noti l’uso dei due subVI visti precedentemente Ke24xx Configure V
Source Protection.vi e Ke24xx Configure DC IV.vi ; confrontando questa struttura
con quella vista nel cap.3 si vede chiaramente come con l’uso opportuno dei
controllori i vari subVI sono stati impostati per generare una tensione e misurare una
corrente.
Ora questa libreria, assieme a quella che pilota il multimetro, verrà usata in
un’altra libreria di livello superiore per effettuare la misura di Line Regulation (a
temperatura fissa).
4.5 SubVI per il test di Line Regulation ad una data temperatura
Questo subVI dovrà essere in grado di effettuare la misura di Line Regulation
per una data temperatura. Tutte le operazioni da effettuare possono essere riassunte
nel flow-chart seguente; in particolare questa libreria effettua queste operazioni:
111
Misura Line regulation
-
-
Inizializzare la comunicazione con gli strumenti
Configurare il source.meter 2400 come DC I-load
Configurare un Ke2000 come amperometro per la corrente di ingresso
Configurare un altro Ke2000 per la misurare la tensione di ingresso
Realizzare un ciclo in cui si varia la corrente sul carico e per ogni step,
rilevare la tensione e corrente in ingresso ed uscita tramite i multimetro
KE2000, salvando i dati raccolti.
In caso di errori interrompere l’esecuzione
Per eseguire questi punti utilizzo i
subVI creati precedentemente.
Lo sweep della tensione di
alimentazione
lo
ottengo
richiamando la libreria che imposta
il Ke2400 DC V-source dentro un
ciclo while, aggiornando di volta in
volta il valore della tensione da
generare.
Complessivamente, allora, vi sarà
un ciclo while all’interno del quale
ci sarà una struttura Sequence in cui
nell’ordine abiliterò con il Ke2400
una data tensione di alimentazione,
misurando poi nell’ ordine Vin, Iin,
Iout, Vout.
Tra una sequenza e l’ altra vi è un
delay impostato con il modulo in
figura, per consentire ad eventuali
transistori, di esaurirsi.
Come per la misura di Load
Regulation, ad ogni step salvo le
misure in formato *.txt utilizzando
opportunamente, come già visto, la
funzione
Labview
“Write
Characters To File.VI” .
Con un controllore si specifica il
nome del file con relativo path in
cui si vogliono salvare i dati, e si
sceglie di appendere i dati sempre in
uno stesso file con un operatore
booleano.
112
Misura Line regulation
Si costruisce il seguente Front Panel :
Figura 4-2a Front panel per Line Regulation a temperatura fissa
Si notino i controllori che definiscono gli indirizzi GPIB degli strumenti, lo sweep e i
parametri di sicurezza della tensione di alimentazione, la temperatura d’esercizio e il
path dove salvare il file con le misure. Inoltre vi sono indicatori che in tempo reale ci
danno la misura delle tensioni-correnti nel dispositivo ed eventuali errori e un
pulsante di Stop per interrompere in caso di necessità l’esecuzione del programma.
Grazie al Connector Pane questo subVI verrà richiamato nel successivo VI che
realizzerà il controllo della cella termica nel modo visto in precedenza,
Si notino da questa figura tutti i parametri presenti nel front panel che devono essere
passati, posti sulla sinistra, e i valori ritornati da questa funzione.
113
Misura Line regulation
Il Block Diagram di questa libreria di Line Regulation è il seguente:
In questo frame 0 della Sequence più esterna prepara la “label” di intestazione nel
file in cui verranno man mano salvati i dati.
Gli altri frame sono rièortati nelle pagine seguenti:
114
Misura Line regulation
Questo successivo frame effettua il test di Line Reg. vero e proprio: si noti il ciclo
while all’interno del quale si aggiorna la tensione da generare con l’uso del contatore
del ciclo, una Sequence in cui il frame 0 abilita il source-meter Ke2400, il
salvataggio delle misure per ogni step nel file txt inizializzato precedentemente, il
controllo del ciclo e eventuali errori (si osservi pure come il pulsante di Stop, se
azionato, interrompa l’esecuzione del programma).
115
Misura Line regulation
In questi altri due frame della sequenza interna al ciclo viene richiamato il subVI
adibito al controllo del multimetro Ke2000 per rilevare la corrente e la tensione
d’uscita.
4.6 Vi che realizza il test Line Regulation a diverse temperature
Ora, come per la Load regulation, si riutilizza la libreria che controlla la cella
termica: ogni qual volta verrà raggiunta una data temperatura, il ciclo while più
esterno che aggiorna e controlla di volta in volta il nuovo setpoint di temperatura,
richiamerà la libreria che effettua la misura di Line Regulation.
Si costruisce il seguente Front Panel:
116
Misura Line regulation
Figura 4-3 Front panel per la misura di Line Reg. in un ciclo di temperatura
Per effettuare il test di Line Regulation a temperature diverse, prima di
eseguire il programma, si devono impostare i seguenti controlli:
ü definire il range e gli step di temperatura desiderati utilizzando i
controlli posti nel riquadro in alto a sinistra;
ü definire il nome del file e relativo path in cui verranno salvati i dati
con l’apposito “control box”;
ü definire il range di Vin e ed i relativi step di tensione per i quali
verranno rilevate le misure di tensione e corrente;
ü definire il parametro di sicurezza “source compliance” del Ke2400:
esso rappresenta la massima corrente possibile sui connettori, e quindi
in ingresso al LDO;
ü definire il parametro “source protection” che rappresenta la massima
tensione generabile dal Ke2400 e quindi in ingresso al LDO;
ü definire il range per il Ke2000 usato come amperometro: ponendo
l’apposito controllore a “–1” si seleziona la modalità “autorange”,
altrimenti la scala può essere definita manualmente, tenendo presente
che con range minori di 100 mA lo strumento pone una resistenza di
shunt di 10Ω (vedi specifiche del Keithley2000 allegate);
ü definire tutti gli indirizzi GPIB e collegare il pc al microcontrollore
tramite cavo seriale.
117
Misura Line regulation
Collegare gli strumenti come in figura e impostare il reostato affinché la
corrente di carico sia uguale alla corrente riportata nella specifica di Line Regulation
del regolatore:
Figura 4-4 Schema di collegamento per effettuare il test
Quindi complessivamente la libreria di Line Regulation ha questa struttura
gerarchica:
Figura 4-5 Struttura gerarchica della libreria Line Regulation
Si notino, sulla sinistra, i tre moduli che consentono il controllo della cella
termica, quindi l’ uso del subVI che effettua il test a temperatura fissa che richiama a
sua volta i subVI per il controllo dei multimetro, del source-meter e del salvataggio
dei dati raccolti.
118
Misura Line regulation
4.6.1 Possibili miglioramenti della libreria
Anche questa libreria, come la precedente della Load Regulation, è stato
riscontrato che in presenza di un considerevole numero di misure da effettuare ad un
certo punto il programma non è più in grado di continuare l’esecuzione (ciò accade
dopo circa 130 misure).
Come per la precedente libreria di Load Regulation, il problema è stato
superato utilizzando nella libreria non una programmazione gerarchica, ma
sostituendo i vari subVI con tutta la loro struttura e inserendo nel ciclo while del
controllo del valore di tensione di alimentazione e delle misure solo i moduli che
devono essere di volta in volta aggiornati.
Il front panel non subisce modifiche, se non per l’aggiunta di un tasto per la
scelta dell’opzione 4 fili per il source meter, mentre il block diagram è il seguente:
Figura 4-6 Block diagram della libreria di Line Regulation modificata
Risalta subito come tutti i moduli adibiti al controllo degli strumenti che non
devono essere aggiornati, siano esterni al ciclo while. Infatti il frame1 della Sequence
interna al ciclo vi è solo un modulo che abilita la misura di corrente (Ke24xx
Enable/Disable Concurrent Meas..vi) e quello relativo alla misura vera e proria
119
Misura Line regulation
(Ke24xx Read.vi). Nel frame precedente a questo viene abilitato il source meter a
generare la tensione di alimentazione.
Come è chiaro dalla figura, nel frame2 eseguo la misura della tensione d’uscita Vout,
utilizzando solamente il modulo Ke2000Read.VI; il frame 3, che non riporto, sarà
esattamente analogo e misurerà la corrente d’uscita.
120
Misura Line regulation
Questo
ultimo
frame
della
Sequence disabilita il source
meter: in altre parole spegniamo il
regolatore
togliendo
l’alimentazione
per
un
determinato periodo di tempo
regolato dal controllo delay time
del ciclo while.
In questo modo si evita di
surriscaldare
il
dispositivo,
falsando in questo modo misure
effettuate a basse temperature.
Nel block diagram principale si
vede la presenza nella struttura
adibita al controllo del source
meter del modulo “ke2400
Configure 4W.vi”per l’opzione
4wire:
Figura 4-7Front panel e connector
pane dell'opzione 4wires
Nell’uso del source-meter come generatore di tensione l’opzione 4wire consente di
superare la caduta di tensione sui fili di collegamento, applicando veramente la
tensione voluta ai piedini del regolatore.
Nel block diagram ci sarà innanzitutto una struttura case per l’opzione 4wire:
121
Misura Line regulation
Questo è il caso in cui è
richiesta l’opzione 4fili:
osserviamo che viene infatti
abilitato il modulo Ke24XX
Enable/Disabile Remote
Sensing.vi
All’interno vi è un’ulteriore
struttura Case a seconda del
tipo di applicazione: qui a
fianco è visualizzata l’opzione
di misura di resistenza a 4 fili,
abilitata con i due moduli in
figura.
In questi altri due casi, nel caso 0 viene configurata la misura di corrente, mentre nel
caso 1 quella di tensione.
4.7 Elaborazione automatica delle misure di Line Regulation
Per l’elaborazione automatica delle misure di Line Regulation si segue la
stessa procedura vista nel capitolo precedente per la misura di Load Regulation: al
termine delle misure si richiamano con Labview opportuni script in Visual Basic per
Microsoft Excel come già ampiamente visto nel cap.3.
Innanzitutto importiamo i dati salvati in *.txt con la stessa macro utilizzata
per la Load Regulation, ossia ImportData ( ) .
Analogo sarà lo script che calcola il valore di Line Regulation come la
differenza fra il valore massimo e minimo di Vout, così pure lo script Save() che
salva tutta l’elaborazione in un file formato .xls con lo stesso path file di quello .txt .
Ricordando quanto visto nel precedente capitolo, in questi script è
fondamentale il ruolo del file C:\Nmisure.txt che contiene l’informazione relativa al
numero di misure ed il path in cui recuperare il file con i dati salvati; quindi nel block
diagram della libreria di Line Regulation a temperatura fissa è necessario
aggiungere:
122
Misura Line regulation
In questo tipo di test è opportuno visualizzare con un grafico l’andamento di
tensione d’uscita in funzione di quella d’ingresso (teoricamente una retta nella
regione di funzionamento) e, dato che i dati vengono salvati nel file .txt con lo stesso
formato di quelli per la Load Regulation, basterà ridefinire nello script della Load
regulation che crea il grafico di Vout in funzione di Iout, solamente le righe di
programma relative ai dati da graficare:
Sub GraficoLineReg()
'
' Grafico di Vout in funzione di Vin per una singola temperatura
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
'leggo il numero di misure
Worksheets("foglio1").Activate
TEMPERATURA = Range("A3")
'seleziono il valore della temperatura per rendere
‘rendendo questo valore dinamico
' Costruisco il grafico XY
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth ‘seleziono il tipo di grafico
ActiveChart.SetSourceData Source:=Sheets("Foglio1").Range("I2"), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Foglio1!R3C2:R" & 3 + N_misure & "C2"
ActiveChart.SeriesCollection(1).Values = "=Foglio1!R3C4:R" & 3 + N_misure & "C4"
ActiveChart.SeriesCollection(1).Name = "=""Temp" & TEMPERATURA & """"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Foglio1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Load Regulation"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Vin (V)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vout (V)"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
‘Posiziono il grafico nel foglio di lavoro:
Selection.Position = xlRight
123
Misura Line regulation
ActiveSheet.Shapes("Grafico 1").IncrementLeft 178.5
ActiveSheet.Shapes("Grafico 1").IncrementTop -103.5
End Sub
Per l’elaborazione dei risultati di test di Line Regulation a diverse
temperature è conveniente aggiungere uno script che visualizzi su di un unico grafico
l’andamento di Vout in funzione di Vin al variare della temperatura. Nello script ci
sarà quindi un ciclo For con il quale si plotteranno di volta in volta i risultati per le
diverse temperature, ed il numero dei grafici “sovrapposti” sarà uguale al rapporto
fra il range di temperatura diviso il valore degli step più uno. Questo valore,
fondamentale per il controllo del ciclo For, verrà aggiunto nel file C:\Nmisure.txt
con la seguente modifica Labview:
Anche in questo caso lo script che calcolerà il valore di Line Regulation
resterà lo stesso di quello visto nella Load a temperature diverse, mentre nello script
del grafico complessivo (che non riporto) basterà solamente ridefinire i dati in
origine.
Tutti questi script verranno eseguiti da labview aggiungendo al block diagram
della libreria le stesse funzioni riportate a pag.104 del test di Load regulation.
Per il cip NCV8502 sono stati ricavati questi risultati:
Figura 4-8 Esempio di un test di Line Regulation
124
Misura Line regulation
4.8 Utilizzo delle librerie
Come nel precedente capitolo, sono state create diverse librerie per la misura di Line
Regulation:
Line Reg.temp_fixed_with_subVI : esegue il test di Line Regulation ad una data
temperatura e la sua è una struttura gerarchica a subVI.
Line Reg.temp_fixed : esegue il test di Line Regulation ad una data temperatura non
utilizzando una struttura gerarchica a subVI
Line Reg.temp_fixed_with_subVI_with_oven : esegue il test di Line Regulation per
un ciclo di temperature e la sua è una struttura gerarchica a subVI.
Line Reg._ with_oven : esegue il test di Line Regulation per un ciclo di temperature e
la sua è una struttura gerarchica a subVI.
Assieme a queste librerie vi è LineReg.xls che deve essere memorizzata in C:\ , la
quale contiene tutti gli script necessari per l’elaborazione automatica delle misure.
Si sceglierà allora una libreria Labview a seconda delle esigenze, che a sua volta
richiamerà gli opportuni script presenti in C:\ LineReg.xls per l’elaborazione
automatica.
4.9 SOMMARIO
In questo capitolo sono state sviluppate delle librerie Labview e degli script
VBA per rendere automatico il test di Line Regulation.
In particolari sono stati ripresi e adattati a questo tipo di test i subVi e le
macro sviluppati nel precedente capitolo per il test di Load Regulation.
Possiamo quindi sottolineare l’efficienza di questa libreria: all’operatore è
lasciato solo il compito di collegare gli strumenti al dispositivo da testare, impostare
correttamente i controllori del Front Panel (indirizzi GPIB, lo sweep di temperatura
e di corrente di carico), e avviare il programma: al termine dell’esecuzione i dati
saranno già elaborati in un foglio elettronico Excel.
Ricordiamo inoltre i numerosi accorgimenti che interrompono l’esecuzione
del programma in caso di errore, consentendo comunque di disporre dei dati fin lì
raccolti e di risalire in ogni caso al tipo di errore occorso.
125
Misura DropOut
5
Misura del Drop Out
5.1 INTRODUZIONE
La misura di Drop Out è una misura molto importante, grazie alla quale
possiamo definire fino a quanto la tensione di alimentazione della batteria può
scendere, assicurando comunque un corretto funzionamento del dispositivo.
Supponiamo ad esempio che un'apparecchiatura portatile necessiti di una tensione
regolata di 2.8 V e di disporre di regolatori con drop output di 2.5 V e di 0.2 V.
Supponiamo inoltre di utilizzare, per il pacco batterie, elementi ricaricabili con
tensione di fine scarica di 1.0 V.
Utilizzando il primo regolatore con drop output 2.5 V avremo Vbat = 2.8 + 2.5 = 5.3
V e dato che cinque elementi in serie forniscono 5.0 V, sono necessari sei elementi in
serie.
Utilizzando invece il secondo regolatore con drop output 0.2 V avremo Vbat = 2.8 +
0.2 = 3.0 V e quindi sono sufficienti tre elementi in serie.
La seconda soluzione, a parità di prestazioni elettriche, permette un risparmio
economico, di peso e di spazio.
In questo capitolo verrà quindi creata una libreria Labview in grado di effettuare il
test di Dropout in automatico.
5.2 Definizione del problema
Riportiamo la specifica di DropOut del regolatore TLE4270 (riportato in appendice)
Come si evince da queste specifiche, nella misura di DropOut dovremo
individuare il livello di tensione in ingresso tale per cui l'uscita scenderà di 100mV
rispetto al valore "nominale" : ricordando le tipologie dei pass-device di un
regolatore lineare (cap1 pag.31), il valore di tesione d’uscita a regime lo possiamo
misurare quando il PNP è in zona lineare. Il dropout sarà perciò la differenza VinVout in questa condizione.
Già da questi punti emerge che questa nuova libreria sarà simile a quella del
capitolo precedente relativa alla misura di Line Regulation, con la differenza che
bisognerà diminuire la tensione di alimentazioni e a piccoli step, simulando così
l’effettivo problema di un calo della batteria di alimentazione,verificando fino a che
punto il dispositivo continua a funzionare correttamente.
Durante la progettazione della libreria del DropOut è arrivato a disposizione
un altro source-meter Ke2400: a questo punto la mia attenzione è stata rivolta nel
126
Misura DropOut
sviluppare una libreria Labview che grazie al controllo di soltanto questi due
strumenti potesse essere in grado di effettuare tutti i test visti sin d’ora.
Disponendo di questa libreria, sarebbe possibile effettuare in successione i
test collegando solamente una volta i vari strumenti al dispositivo sotto esame.
Ricordiamo le caratteristiche principali delle librerie Labview (tralasciamo
per il momento la parte in Visual Basic) sviluppate fin d’ora:
Load Regulation:
q
q
q
Variazione della corrente di carico con il source-meter Ke2400 e misura della
tensione d’uscita;
Misura della tensione e corrente d’ingresso;
Ripetere il test a diverse temperature.
Line Regulation:
q
q
q
Variazione della tensione d’ingresso col source-meter Ke2400 e misura della
corrente Iin;
Misura della corrente e tensione d’uscita;
Ripetere il test a diverse temperature.
Drop Out:
q Variazione della tensione d’ingresso col source-meter Ke2400 e misura della
corrente Iin;
q Misura della corrente e tensione d’uscita;
q Ripetere il test a diverse temperature ed eventualmente per alcune specifiche
a correnti di carico diverse.
In sostanza, in tutte le librerie è stato necessario variare la corrente di carico o la
tensione d’ingresso col Ke2400, mentre nel caso di alcune misure di Drop si
renderanno indispensabili entrambe le operazioni.
Ho quindi riunito queste operazioni in un’unica liberia nella quale non ci sarà più
bisogno dei multimetro Ke2000 dato che sfrutterò i due source-meter Ke2400.
Il block diagram di questa libreria sarà così strutturato:
•
Un ciclo while con cui imposteremo un Ke2400 come generatore della
tensione di alimentazione, effettuando pure la misura della corrente
d’ingresso;
• Un alto ciclo while all’interno del precedente in cui si varierà la corrente
di carico con l’altro Ke2400 e misurerà la tensione in uscita2 .
Ciò che cambierà saranno gli script che dovranno essere richiamati al termine
delle misure per l’elaborazione automatica dei dati. Verranno inseriti quelli visti sin
2
Per ogni source-meter vi sarà pure l’opzione 4wires.
127
Misura DropOut
d’ora, mentre per la misura del dropout ci sarà un nuovo script che calcolerà la
tensione di drop.
5.3 Libreria che utilizza solamente due Ke2400
Si costruisce il seguente Front Panel :
Figura 5-1 Front panel della libreria fondamentale che utilizza solo 2 Ke2400
Nel riquadro in alto a sinistra vi è il controllore che definisce la temperatura
d’esercizio e un altro che definisce per quanto tempo teniamo spento il dispositivo
128
Misura DropOut
“lasciandolo raffreddare” per non falsare misure a basse temperature ed il pulsante di
Stop per interrompere l’esecuzione del programma.
Quindi a fianco definiamo dove salvare i dati e se eventualmente
“sovrascrivere” i dati in un file già esistente.
Il riquadro centrale imposta un Ke2400 per l’alimentazione del regolatore : vi
si definiscono i parametri per lo sweep in tensione e quelli di protezione, quindi si
può attivare l’opzione 4wires (come già detto alte volte, in questo modo si superano
le perdite nei cavi di collegamento) e vi sono error cluster per monitorare eventuali
errori e gli indicatori di tensione e corrente.
L’ultimo riquadro racchiude il controllo dell’altro Ke2400 per la corrente di
carico: anche per questo subVI si può definire lo sweep di corrente ed i parametri di
protezione, quindi si può attivare l’opzione 4wires (come già detto alte volte, in
questo modo si superano le perdite nei cavi di collegamento) e vi sono error cluster
per monitorare eventuali errori e gli indicatori di tensione e corrente.
Nota: la libreria è strutturata in modo che per una data tensione d’ingresso si effettui
con l’altro Ke2400 lo sweep della corrente di carico.
Il block diagram è stato costruito non utilizzando una struttura gerarchica
nella quale si richiamano opportuni subVi, per i motivi più volte ribaditi nei
precedenti capitoli, ma viene utilizzata tutta la struttura dei subVI per il controllo dei
source-meter, aggiornando opportunamente dentro ai cicli while solo determinati
moduli.
Il block diagram è il seguente:
129
Misura DropOut
In questo diagramma si nota immediatamente l’uso di due cicli while per
ottenere lo sweep della tensione di alimentazione e della corrente di carico: in
particolare il ciclo più esterno è regolato dalle impostazioni di Iout, e all’interno è
annidato l’altro ciclo che regola la tensione di alimentazione: quindi, durante
l’esecuzione, per ogni step di corrente di carico avremo uno sweep di tensione di
alimentazione.
È quindi ovvia la versatilità di questa libreria per il test di Load e Line
Regulation, in cui rispettivamente necessitiamo solo di uno sweep della corrente di
carico e dell’alimentazione, mentre per alcune specifiche di DropOut saranno
necessari entrambi.
Nel precedente diagramma si può altresì notare che non vengono utilizzati
subVI per il controllo dei source-meter, bensì si utilizzano tutti i moduli necessari
inserendo dentro ai cicli solamente quelli che devono essere di volta in volta
aggiornati, per i motivi più volte esposti.
Per ogni ciclo la parte di controllo presenta una struttura Case :
Grazie a questo accorgimento, l’utente
può impostare uno sweep sia in incremento che in
decremento (in particolare, decrementando la
Vin, se il pass device del regolatore lineare è
semplicemente un PNP, passiamo dalla zona di
funzionamento lineare a quella di saturazione).
Inoltre nel ciclo while più interno vi è una Sequence che nell’ordine esegue
queste operazioni:
130
Misura DropOut
Come risulta chiaramente dalle figure, primo frame abilito l’alimentazione al
circuito, mentre nel successivo frame fornisco una certa corrente di carico.
Gli altri frame sono i seguenti:
Nel frame2 rilevo la corrente d’ingresso, mentre nel frame3 la tensione d’uscita (a tal
proposito ricordiamo che per ogni strumento vi è a disposizione l’opzione 4wires).
In questi altri due frame spengo il dispositivo onde evitare eventuali surriscaldamenti
che falserebbero le misure: nel frame 4 porto spengo il source-meter che regola la
corrente di carico, mentre nell’ultimo frame tolgo l’alimentazione al circuito
disabilitando l’altro source-meter.
131
Misura DropOut
A questo punto il successivo ciclo viene eseguito dopo un dato periodo di delay (vedi
il controllore nel front-panel).
Come nelle altre librerie,in ogni sequenza controllo la presenza di eventuali errori
(con la funzione unbundle reperisco il codice che rappresenta lo stato dello strumento
che confrontandolo con lo zero riconosco se vi è occorso un errore): in tal caso si
interrompe l’esecuzione del programma, viene segnalato il tipo di errore, e
comunque i dati fin a quel punto salvati nel file *.txt non andranno persi.
La struttura gerarchica di questa librerie è la seguente:
Figura 5-2 Struttura gerarchica della libreria
Al primo livello vi sono i moduli che impostano i due source-meter, con il
modulo che traduce l’indirizzo GPIB nella sintassi richiesta dai drivers, il modulo
che configura l’opzione 4wires ed il modulo per il salvataggio dei dati nel file txt.
Nel livello inferiore vi sono le funzioni richiamate da questi due subVI.
Ora, da questa libreria si creerà una per il test di Load Regulation e una per
quello di Line, inserendo gli script
sviluppati nei due precedenti capitoli con gli
accorgimenti visti a pag 104 del cap3;
quindi queste nuove librerie verranno
inserite nella libreria che controlla la cella
termica, per eseguire così i test a
temperature diverse e impostabili.
Completiamo ora la libreria per
effettuare il test di DropOut: poiché in
questa misura dobbiamo trovare quel valore
di tensione di ingresso per cui la tensione
d’uscita cala di un dato valore rispetto al
valore dato con la
tensione di
alimentazione nominale, innanzitutto nel
front panel inseriremo un controllore in cui
definiremo la specifica di Drop.
132
Misura DropOut
Inoltre, come indicato nel front panel, la tensione di Start sarà la tensione nominale,
in corrispondenza della quale leggerò la tensione d’uscita che considererò di
riferimento per la misura di DropOut.
La parte di block diagram relativa a questa
parte è riportata a fianco:
Numeric è una variabile locale riferita al
contatore del ciclo più interno, quello che
regola la tensione di alimentazione.
Al primo step, grazie alla struttura Case pilotata
da Numeric, salvo in una variabile, Vout(to) 2,
la tensione d’uscita in corrispondenza alla
tensione di alimentazione nominale, che diverrà
quella di riferimento per la misura di Drop.
Nella figura successiva si vede come in tutti gli
altri step, riassunti dal caso “ 1,Default “ , non
si modifichi più la variabile che contiene la
tensione d’uscita di riferimento, anzi in ogni
step confrontiamo questo valore con la nuova
tensione Vout, interrompendo il ciclo quando la
differenza fra queste due tensioni raggiunge la
specifica di Drop.
Aggiungiamo quindi a questa libreria una
Sequence nella quale il frame0 eseguirà questo block diagram, mentre nel frame1
eseguirò degli script per l’elaborazione automatica delle misure. In particolare
utilizzerò gli script visti nei due capitoli precedenti che mi consentono di importare i
dati e salvarli in formato excel.
Inoltre viene poi creata una libreria di Dropout per ripetere il test in
temperatura semplicemente inserendo quest’ultimo VI nella libreria che controlla la
cella termica
5.4 Utilizzo delle librerie
In questo capitolo sono state create delle librerie per la misura di Line, Load
Regulation e dropout che utilizzano solamente due source-meter e sono:
Line Reg.temp_fixed_with_2Ke2400: esegue il test di Line Regulation ad una data
temperatura
Line Reg._with_2Ke2400_with_oven : esegue il test di Line Regulation per un ciclo
di temperature
133
Misura DropOut
Load Reg.temp_fixed_with_2Ke2400: esegue il test di Load Regulation ad una data
temperatura
Load Reg._with_2Ke2400_with_oven : esegue il test di Load Regulation per un ciclo
di temperature
DropOutSimple: esegue il test di Dropout ad una data temperatura.
DropOut: esegue il test di Dropout in un ciclo termico.
Le librerie per il test di Line e Load fann sempre riferimento agli script dei file C:\
LineReg.xls e C:\ LoadReg.xls, mendre quelle del drop a C:\DropOut.xls .
Assieme a queste librerie c’è LineReg.xls che deve essere memorizzata in C:\ che
contiene tutti gli script per l’elaborazione automatica.
Si sceglierà allora una libreria Labview a seconda delle esigenze, che a sua volta
richiamerà gli opportuni script presenti in C:\ LineReg.xls per l’elaborazione
automatica.
5.5 SOMMARIO
In questo capitolo è stata sviluppata una libreria base che consente di
effettuare le misure di Load Regulation, Line Regulation e DropOut solamente con
due strumenti, utilizzando cioè due source-meter Ke2400.
È stato poi visto come adattare questa libreria alla misura di DropOut, misura
estremamente importante in quanto ci indica fino a che punto può scendere la
tensione della batteria di alimentazione, garantendo comunque un corretto
funzionamento del regolatore di tensione
134
Misura Bandgap
6 Misura della tensione di BandGap
6.1 INTRODUZIONE
Il Bangap è diventato un elemento fondamentale nei circuiti elettronici
integrati. Una tensione che viene adottata come riferimento deve essere ben definita e
insensibile a variazioni di temperatura, di potenza e di carico.
Il primo articolo apparso a riguardo fu di D. F. Hilbiber nel 1964quindi
Robert Widlar nel 1971 pubblicò la prima soluzione di bandgap integrata. In questo
capitolo verranno accennate i due circuiti di bandgap più usati, quello di Widlar e
Brokaw, quindi la libreria in grado di effettuare il test in automatico.
6.2 Circuiti di Bandgap
6.2.1 Widlar Bandgap Reference
Il circuito è basato su un generatore di corrente, ma in figura è sostituito da
una resistenza collegata a + 5V di alimentazione [2]. La tensione di riferimento,
Vref, è ricavata dalla somma della Vbe del transistor Q3 e dalla caduta su R1:
Figura 6-1 Struttura base della cella di Widlar
135
Misura Bandgap
La tensione sui collettori di Q1 e Q2 è pari alla Vbe ed essendo le resistenze
sui collettori R1 e R3 uguali le correnti saranno uguali. Dato che l’area di Q2 è 10
volte più grande di Q1 ci sarà una DVbe ai capi di R2 che facendo alcuni calcoli
risulta pari a Vt*Ln[(Ic1/Ic2)/(Ic2/A2)], in questo caso Vt*Ln(10) = 2.3Vt. La
corrente sull’emettitore di Q2 vale perciò (2.3Vt)/R2.
Trascurando le correnti di base, le correnti di emettitore e collettore sono
uguali e quindi la tensione su R1 è perciò (2.3VtR1)/R2 = (2.3KTR1)/(qR2).
Differenziando questo valore rispetto alla temperatura si ricava 2.3K/q *(R1/R2)
volts/°K, con K/q = 87 mV/°K. Possiamo quindi osservare che la tensione ai capi di
R1 ha un coefficiente di temperatura positivo, che appare in serie con quello negativo
di Q3 ( approssimativamente 1.8 mV/°K). Quindi sommando i due contributi, per
ottenere un coefficiente di temperatura nullo dobbiamo scrivere:
2.9 * 87(R1/R2) µV/°K –1800 µV/°K = 0, da cui R1/R2 = 9.
Tornando al circuito di bandgap, possiamo ricavare:
Vref = 2.3Vt(R1/R2) + 0.7 = 1.238 V
Questo è solo un valore approssimato che ovviamente dipende dal valore che
abbiamo assunto per Vbe, ma risulta chiaro come sia relativo alla tensione di
bandgap del silicio ( 1.205 V ), da cui il termine “bandgap”.
In ogni caso bisogna tener presente che è stata presentata un’analisi con
approssimazioni del primo ordine: in realtà la parte NTC non ha un semplice
comportamento rettilineo in temperatura, bensì vi è una curvatura verso il basso agli
estremi;analogamente, ma meno marcato, per la parte PTC. Combinando questi due
fenomeni, la tensione di bandgap in funzione della temperatura presenterà una
curvatura agli estremi, mentre la parte più piatta è nel range 0 +70 °C: nel circuito ci
saranno allora ulteriori accorgimenti per mantenere questa curva più piatta possibile.
La cella di Widlar per la prima volta consentì di avere una tensione
sostanzialmente stabile con queste due caratteristiche principali:
- Un valore assoluto di tensione di riferimento
- Un coefficiente in temperatura pari a zero o veramente piccolo.
Dovrebbe subito risaltare guardando che il comportamento del circuito
proposto dipende fortemente dalla corrente su Q3, che cambia al variare del carico;
da qui la necessità di pilotare Q3 con un generatore costante di corrente e di un
buffer di uscita, permettendo anche una scalabilità della tensione di riferimento.
136
Misura Bandgap
6.2.2 Brokaw Bandgap Reference
Questo circuito venne proposto da Paul Brokaw per applicazioni analogiche
[3]. Con delle semplificazioni, una delle quali consiste nel fatto che le resistenze di
carico sono sostituite da carichi attivi, la cella di Brokaw ha questo aspetto:
Si assume che le correnti
in Q1 e Q2 siano mantenute in
equilibrio dal loop di feedback.
La differenza di area fra Q1 e Q2
provoca anche in questo caso una
tensione di 2.3Vt ai capi di R2,
come nella cella di Widlar. Questa
tensione, divisa per R2, definisce
la corrente su Q1 e Q2 ed
entrambe finiscono su R1. Perciò,
come nel caso precedente, la
tensione su R1 ha un coefficiente
in temperatura positivo.
La tensione di bandgap è ricavata
da quella su R1 in serie alla
Vbe(Q1). Il rapporto R1/R2
ancora una volta aggiusta il
coefficiente complessivo perché
sia zero (in questo esempio R1/R2
= 4.5).
Figura 6-2 Struttura base della cella di Brokawtemperatura
Confrontando la cella di Widlar con quella di Brokaw, possiamo riconoscere in
quest’ultima due significativi vantaggi:
•
Un aumento della corrente di carico su Vref non peggiora direttamente le
prestazioni. In ogni caso, la resistenza d’uscita del circuito è ridotta dal
feedback negativo;
• La tensione di bandgap può essere facilmente scalata semplicemente
cambiando il rapporto R1/R4.
6.3 Definizione del problema
In questa libreria si vuole misurare ed elaborare in automatico la tensione di
BandGap di un regolatore di tensione.
137
Misura Bandgap
Per far questo dobbiamo innanzitutto essere in grado di:
-
impostare un ciclo alla cella termica
in ogni step di temperatura, rilevare la tensione di bandgap
salvare ed elaborare i dati
Per soddisfare il primo punto si utilizza la libreria che pilota la cella termica, e per
ogni step di temperatura rileverò la tensione di bandgap richiamando un altro subVI
preposto a questa operazione. Dato che abbiamo bisogno di una misura precisa della
temperatura, si utilizza il multimetro Keithley2700 con una PT100.
6.4 Libreria della misura del Bandgap per una data temperatura
In questa libreria dovremo eseguire nell’ordine queste operazioni:
1. Misura della temperatura con il Ke2700;
2. Misura della tensione Vbg con un Ke2000;
3. Salvataggio dei dati in formato *.txt.
Per misurare la tensione di bandgap si utilizza la libreria sviluppata nel cap.3
che controlla il multimetro Ke2000.
Andremo a creare questo front panel:
Figura 6-3 Front Panel della libreria di Bandgap a temperatura fissa
138
Misura Bandgap
Come si può vedere, in alto a sinistra definisco dove salvare i dati, quindi nel
riquadro a sinistra definisco l’indirizzo GPIB del Ke2700 e quale tipo di 4wire RTDs
si utilizza, mentre nel riquadro a destra definisco l’indirizzo GPIB del multimetro che
mi rileva la tensione di bandgap; infine vi sono gli indicatori delle misure rilevate e
di eventuali errori. Il block diagram è il seguente:
Figura 6-4 Block diagram con le due sequence relativo alla libreria per il test di bandgap a
temperatura fissa
Vi è una sequence che esegue nell’ordine i primi due punti, e all’esterno vi sono le
funzioni che mi salvano i dati in formato .txt già più volte viste.
Vediamo ora come rilevare la temperatura da Labview la temperatura con il
multimetro Ke2700:
6.4.1 SubVi che rileva la temperatura con un 4wire RTDs con il Ke2700
In un primo tempo si è pensato di rilevare la temperatura con una semplice
termocoppia attaccata allo strumento: è noto a tutti che una termocoppia sfrutta un
139
Misura Bandgap
principio fisico grazie al quale quando due materiali diversi vengono a contatto, si
genera una tensione proporzionale alla temperatura.
Ma molti commettono il grave errore di non tener presente che quando si attacca
direttamente la termocoppia ai connettori dello strumento si crea un’ulteriore
giunzione e quindi viene aggiunta un’ulteriore tensione, che se ignorata, conduce a
misure sbagliate. Per eliminare questo effetto indesiderato, il circuito con la
termocoppia richiede una giunzione di riferimento a temperatura nota e stabile.
Il Ke2700 supporta tre tipi di giunzioni di riferimento: simulated reference
junction, internal reference junction, e external reference junction :
Come si vede nella figura
a fianco, nella simulated
reference la giunzione
che si crea collegando la
coppia
dei
connettori
della termocoppia con i
fili
di
ingresso
del
multimetro è immersa in
una
soluzione
a
temperatura
nota
e
stabile,
ad
esempio
ghiaccio fuso.
La internal reference
junction usa un sensore
interno per rilevare la
temperatura
della
giunzione fra i connettori
del multimetro e quelli
della termocoppia, mentre external reference junction usa un sensore esterno, una
4wire RTDs per rilevare la temperatura esterna.
Sono state effettuate delle prove utilizzando una termocoppia tipo T e l’opzione
simulated reference junction in cui impostavamo la temperatura ambiente come
riferimento, ma eseguendo dei test nei quali si confrontava la temperatura rilevata
dalla termocoppia con quella fornita dalla cella termica, si notava una certa
discordanza anche di alcuni gradi che via via aumentava tanto più la temperatura
aumentava in valore assoluto. La termocoppia tipo T ha un range di funzionamento
che va da –200 a +400 °C con risoluzione 0.001 °C, mentre la cella termica monta
una PT100 con precisione di lettura di 0,3 °C .
Dall‘ user’s manual del Ke2700 è indicato che una misura con termocoppia con
configurazione simulated reference risulta tanto più accurata, quanto più è nota e
stabile la temperatura di riferimento, che nel nostro caso era impostata quella
ambiente. Dato che le misure fra il microcontrollore della cella termica e quelle
rilevate con la termocoppia erano troppo discordanti, si è deciso di adottare una 4wire RTD. Come suggerito dal manuale del Ke2700, un termistore sarebbe il più
140
Misura Bandgap
indicato per rilevare piccole variazioni di temperatura, ma dato il suo comportamento
non lineare ad alta temperatura, il suo uso è ristretto al di sotto dei 100 °C .
Quindi, si è deciso di effettuare la misura di temperatura con 4-wire RTD (Resistance
Temperature Detector): in questo modo si evitano i problemi dovuti a giunzioni
indesiderate, in quanto si effettua semplicemente una misura di resistenza, e si
compensano gli errori dovuti ai cavi di collegamento con una misura a quattro fili.
Inoltre una 4-wire RTD presenta un range di funzionamento lineare più ampio dei
termistori, in genere da –200 °C a +630 con risoluzione 0.01 °C (vedi figura).
Figura 6-5 Confronto fra un termistore e una 4RTD
Una RTD è fatta da un metallo (in genere platino) e la temperatura è ricavata dalla
misura a quattro fili utilizzanto la Callendar-Van Dusen equation:
RRTD = R0 [1 + AT + BT2 + CT3(T-100)]
In cui : RRTD è la resistenza della RTD
R0 è la resistenza nota a 0 °C 0°C
T is the temperature in °C
A = alpha [1 + (delta/100)]
B = -1 (alpha)(delta)(1e-4)
C = -1 (alpha)(beta)(1e-8)
alpha, beta, and delta values sono riportati nella seguente tabella:
E’ stato quindi creato un subVI labview in grado di misurare la temperatura con il
Ke2700 tramite una 4-wire RTD : nelle nostre misure useremo una PT100, ma la
libreria può essere configurata anche per l’uso di altre RTD.
141
Misura Bandgap
Il front panel è il seguente:
In questo front panel è stato inserito un controllore che definisce l’indirizzo GPIB
dello strumento ed il tipo di sonda usata, quindi con degli indicatori vengono
visualizzati la temperatura ed eventuali errori. Questo subVI verrà richiamato col
seguente connector pane nel subVI di livello superiore che misura la tensione di
bandgap ad una data temperatura:
Il relativo block diagram che è stato costruito è il seguente:
Questo subVI è stato costruito seguendo la struttura utilizzata per il subVI che
controlla i multimetro Ke2000, avvalendosi in particolare i seguenti moduli:
GPIB Address to Resource Name.vi
Questo subVI è utilizzato, come in tutti i block diagram creati, per convertire l’indirizzo GPIB
nell’apposita sintassi adottata dai drivers (vedi cap pag )
KE2700 Initialize With Options.vi
Con questo modulo stabilisco una comunicazione via GPIB fra pc e strumento.
KE2700 Configure 4-wire RTD Type.vi
Questo modulo è usato per configurare lo strumento ad acquisire una temperatura da una misura
4-wire. Si possono usare questi tipi di sonde: D100, PT100, F100, PT385, PT1396.
142
Misura Bandgap
KE2700 Configure Measurement.vi
Con questo modulo configuro il multimetro per una misura di temperatura
KE2700 Read.vi
Questo drivers effettua la lettura dello strumento
KE2700 Close.vi
Questo drivers chiude la comunicazione.
6.5 Libreria della misura del Bandgap
A questo punto si crea il connector pane della libreria che esegue la misura a
temperatura fissa, per richiamarla nella libreria che controlla la cella termica. Il
connector pane è il seguente:
Come è chiaro in
figura, quando si
richiama questa
funzione si devono
passare gli indirizzi
degli strumenti, eventuali errori esterni in ingresso, dove salvare le misure e quale
tipo di sonda è usata per la misura 4-wire RTD; i valori tornati saranno la tensione di
bandgap, la temperatura misurata col Ke2700 e eventuali errori occorsi .
Non viene riportato il relativo block diagram perché ormai dovrebbe essere chiaro al
lettore la sua struttura, mentre il front panel che si costruisce è riportato a pagina
seguente.
Osservando la figura si può notare il solito controllo della cella termica,
quindi un controllore che definisce dove salvare i dati, ed infine nei due riquadri
inferiori i controlli relativi ai due strumenti, il Ke2700 per la misura precisa di
temperatura ed il Ke2000 per la misura di tensione di bandgap.
A questo punto si scrivono gli script Visual Basic che consentano una
elaborazione dei dati automatica con il software Microsoft Excel.
143
Misura Bandgap
Figura 6-6 Front panel per la misura di bandgap
6.6 Elaborazione automatica della misura del Bandgap
Anche in questa libreria tutti i dati verranno elaborati automaticamente
utilizzando la procedura vista a pag cap , ossia facendo aprire al termine da labview
l’applicazione Microsoft Excel e quindi l’esecuzione di opportuni script.
Innanzitutto, come visto negli altri capitoli, bisogna aggiungere una modifica
alla libreria di bandgap in cui definisco il numero di misure e dove sono state salvate:
144
Misura Bandgap
Utilizzeremo degli script VBA per:
1. Importare i dati salvati in *.txt in un foglio di lavoro excel;
2. Visualizzare in un grafico la tensione di bandgap in funzione della
temperatura;
3. Salvare l’elaborazione.
I punti 1 e 3 vengono soddisfatti utilizzando gli script delle altre librerie, mentre per
il 2 utilizzeremo lo script in cui visualizzo in un grafico tipo XY una misura di Load
Regulation a temperatura fissa, modificando la selezione dei dati:
Sub GraficoBandGap()
' Grafico della tensione di Bandgap in funzione della temperatura
Worksheets("foglio2").Activate
N_misure = Cells(1, 1)
'leggo il numero di misure
' Costruisco il grafico XY
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Foglio1").Range("I2"), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Foglio1!R3C1:R" & 3 + N_misure & "C1"
ActiveChart.SeriesCollection(1).Values = "=Foglio1!R3C2:R" & 3 + N_misure & "C2"
ActiveChart.SeriesCollection(1).Name = "=""Vbg"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Foglio1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = " Tensione Bandgap "
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temp ( °C )"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vbg (V)"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
‘Posiziono il grafico nel foglio di lavoro:
Selection.Position = xlRight
ActiveSheet.Shapes("Grafico 1").IncrementLeft 178.5
ActiveSheet.Shapes("Grafico 1").IncrementTop -103.5
End Sub
145
Misura Bandgap
A questo punto questi 3 script vengono eseguiti in ordine da Labview con una
ulteriore modifica della libreria come a pag cap .
6.7 Utilizzo delle librerie
In questo capitolo sono state create due librerie:
Bandgap_TempFixed.vi : esegue il test di bandgap per una data temperatura;
Bandgap.vi: esegue il test di bandgap in un dato ciclo termico.
Il secondo file fa riferimento a Bandgap.xsl dove sono salvati gli script per
l’elaborazione automatica.
6.8 SOMMARIO
In questo capitolo è stato affrontato per gradi lo sviluppo di una libreria
Labview che consenta, con l’ausilio di script in Visual Basic per Microsoft Excel,
una misura ed elaborazione automatica della tensione di Bandgap dei regolatori di
tensione.
In un primo momento è stato spi egato cosa s’intende per tensione di bandgap
con brevi cenni ai due tipi di celle fondamentali, quella di Widlar e Brokaw; quindi è
stato discusso con quali sensori rilevare la temperatura, poi è stata sviluppata una
libreria che esegue una misura di bandgap a temperatura singola, richiamata in
seguito nella libreria che controlla la cella termica.
Infine sono stati sviluppati gli script che consentono pure una elaborazione
automatica dei dati utilizzando da labview il software Microsoft Excel.
146
Misura Current Limiting
7
Misura della Current Limiting
7.1 INTRODUZIONE
In questo capitolo verrà sviluppata una libreria in grado di effettuare
automaticamente il test di current limiting. La funzione di Current Limiting è molto
importante nei regolatori di tensione in quanto evita possibili rotture del dispositivo
in presenza di correnti di carico elevate.
Verranno prima accennate le due tipologie basi che realizzano la funzione di
current limiting nei regolatori lineari (Constant Current Limiting e Voltage
Dependent Current Limiting), quindi verrà affrontata la realizzazione di una libreria
Labview per questo test [5].
7.2
Circuiti di current limiting
7.2.1 Constant Current Limiting
Nella seguente figura è ripetuto un circuito semplificato che provvede alla
funzione di current limiting.
Figura 7-1 Struttura di current limiting
La corrente di carico è rilevata dalla tensione sul resistore Sense e questa
tensione è shiftata e amplificata dall’amplificatore operazionale: a sua volta è
applicata all’ingresso invertente del current limit error amplifier, mentre sull’altro
ingresso (non invertente) è applicata una tensione di riferimento che corrisponde
sarà uguale alla tensione che si avrebbe in uscita dell’amplificatore differenziale
quanto il regolatore sta lavorando con la massima corrente di carico. Quando la
corrente raggiunge il valore limite, l’uscita del “current limit error amplifier” va
bassa ed inizia ad assorbire corrente dall’uscita del voltage error amplifier ; a questo
punto, seguendo il loop con i due bjt, calerà pure la tensione in uscita, l’uscita del
“voltage error amplifier” sarà alta, ma il “current limit error amplifier” continuerà ad
assorbire la sua corrente in uscita, limitando così la corrente su carico che implicherà
una diminuzione della tensione d’uscita.
147
Misura Current Limiting
7.2.2 Voltage Dependent (foldback) Current Limiting
I regolatori di tensione che operano con correnti relativamente alte (maggiori
di 1 A) usano una limitazione della corrente di carico che dipende dalla differenza fra
la tensione di ingresso e uscita. Questa ragione è dovuta alla caratteristica del
transistor nota come SOA ( Safe Operatine Area ) che definisce la corrente massima
in un transistor all’ aumentare della sua tensione Vce:
Si può subito notare che se ad esempio si opera con una corrente di carico di 3 A, si
rimane al limite della zona di sicurezza se la Vce non va oltre i 14V.
Quindi, se in un regolatore lineare si usa come pass transistor un PNP (vedi pag 50
cap 1), la differenza fra la tensione di ingresso ed uscita ci dà una stima della Vce di
quel transistor. Perciò dovremo avere una combinazione della corrente di carico e di
tensione Vce che comunque permetta al transistor di operare nella zona di sicurezza
SOA. A differenza del precedente metodo ( Constant Current Limiting ), il foldback
Current Limiting può abbassare la tensione d’uscita ad un valore prossimo allo zero e
inoltre è presente una certa “isteresi” in questa operazione:
148
Misura Current Limiting
Nella figura in basso a destra della pagina precedente vi è la spiegazione da dove
deriva il termine “foldback” , dovuto al fatto che la corrente di carico cala quando
raggiunge il limite, e con essa la tensione d’uscita. Nell’altra curva (quella in alto a
sinistra) è rappresentato il motivo dell’ isteresi : consideriamo una Vout = 28 V ed
un carico di 14Ω (quindi Iload = 2 A); abbassando il carico a 12.2Ω, entrerà in
azione il current limiting che abbasserà bruscamente la tensione d’uscita a circa 7V.
Ma ristabilendo il carico a 14Ω, l’uscita non sarà più a 28 V come prima, ma
osservando la figura risulterà circa a 10 V; per ritornare allo stato precedente al
current limiting, si dovrà aumentare il carico fino a 15.1Ω (vedi curva in fig ), per
poi diminuirlo: durante questa operazione la tensione crescerà lentamente fino ai
14V, per poi “saltare” ai 28V. Da qui il motivo dell’isteresi.
E’ da tener presente anche la dipendenza dei dispositivi con la temperatura: è noto
infatti che in un transistor la dipendenza della Vbe dalla temperatura:
∂Vbe
≅ −2.2 mV / ° K
, e quindi è importante eseguire il test di Current Limiting
∂T
in funzione della temperatura .
7.3 Definizione del problema
Osserviamo la specifica di current limiting del regolatore Infineon TLE4270:
Osservando anche specifiche di regolatori di altre case produttrici, in questa libreria
dovremo essere in grado di :
1. Impostare una tensione di alimentazione;
2. Impostare una corrente di carico
3. Aumentare la corrente di carico fino ad azionare la protezione contro le
sovraccorenti, misurando la massima corrente d’uscita ammissibile.
4. Ripetere il test a temperature diverse.
Impostiamo la tensione di alimentazione e la corrente di carico utilizzando due
Ke2400, ripetendo poi il test a temperature diverse utilizzando la libreria che pilota la
cella termica. Poiché a volte non sono a disposizione entrambi i source-meter
149
Misura Current Limiting
Ke2400, è stata creata una successiva libreria in cui si fa uso di un solo Ke2400 che
impone la Iout, mentre la Vin è fornita da un alimentatore esterno.
7.4 Libreria Labview per la misura di Current Limiting per una
data temperatura
In questa libreria alimenteremo il circuito con un Ke2400, mentre eseguiremo
lo sweep di corrente di carico controllando l’altro Ke2400 con un ciclo while, che
interromperemo quando la tensione d’uscita scenderà al di sotto del valore nominale
(vedi principio di funzionamento del current limiting spiegato nel paragrafo1.
Per pilotare i due source-meter utilizzeremo le stesse struttura usata nelle altre
librerie, e ottenendo questo front panel:
Figura 7-2 Front Panel della liberia di Current Limiting a temperatura fissa
Come si vede in figura, sono presenti:
150
Misura Current Limiting
ü due riquadri nei quali imposto i due source-meter (anche con l’opzione
4wires per superare le perdite nei cavi di collegamento),
ü un controllore in cui definisco dove salvare i dati
ü un controllore in cui definisco la temperatura d’esercizio
ü un pulsante di Stop per interrompere eventualmente l’esecuzione del
programma
ü Due controllori, uno in cui definisco la tensione d’uscita che considero al di
sotto di quella nominale per l’azione di current limiting, e un delay : dato che
opero comunque con correnti d’uscita alte, e necessario spegnere il
dispositivo fra una step e l’altro per non surriscaldarlo e falsare così misure a
basse temperature.
Il block diagram relativo è il seguente:
Figura 7-3 Block Diagram della libreria di Current Limiting a temperatura fissa
Si può subito notare il controllo dei source meter con tutta la loro struttura, inserendo
nel ciclo solo i moduli che devono essere aggiornati. Aiutandoci con le label persenti
nel disegno, con il ciclo while imposto uno sweep di corrente di carico e con la
sequence interna prima misuro la Iin (frame0 che non è riportato) e poi la Vout : se la
Vout scende al di sotto del valore impostato sul controllore “Trigger Value” il ciclo
viene interrotto (anche con lo Stop) e quindi si salva in un file *.TXT le tensioni e le
correnti presenti a quello step.
151
Misura Current Limiting
7.5 Libreria Labview per la misura di Current
Come visto in tutte le altre misure fin qui affrontate, si inserisce questa libreria grazie
al suo connector pane nella libreria che controlla la cella termica, ottenendo quindi
una libreria che esegue il test di Current Limiting al variare della temperatura. Per
semplicità non riportiamo il relativo front panel.
7.6 Elaborazione automatica della misura del Current Limiting
Complessivamente otterremo un numero di dati pari al numero di step di temperatura
eseguiti e quindi, come nella misura di bandgap del capitolo precedente, dovremo
aggiungere al block diagram la modifica riportata a pag. 145.
Quindi, come nel cap. precedente, eseguiremo 3 script VBA per:
4. Importare i dati salvati in *.txt in un foglio di lavoro excel;
5. Visualizzare in un grafico il valore di Current Limiting in funzione della
temperatura;
6. Salvare l’elaborazione
Per tracciare il grafico, basterà modificare nello script di pag XX le righe relative
all’origine dei dati (e le label), con queste righe di comandi:
…………………………………………………………………………………
ActiveChart.SeriesCollection(1).XValues = "=Foglio1!R3C1:R" & 3 + N_misure & "C1"
ActiveChart.SeriesCollection(1).Values = "=Foglio1!R3C5:R" & 3 + N_misure & "C5"
…………………………………………………………………………………
…………………………………………………………………………………
Infatti nella prima colonna reperisco il valore della temperatura, mentre nella quinta
la corrente d’uscita, che per ogni step di temperatura corrisponde alla current
limiting.
7.7 Utilizzo delle librerie
In questo capitolo sono state create due librerie; dopo aver effettuato gli opportuni
collegamenti fra gli strumenti ed il dispositivo, l’operatorè scegliera quale usare fra
queste:
Current_Limiting_Temp_Fixed: effettua il test di current limiting ad una data
temperature.
Current_Limiting: effettua il test di current limiting per un ciclo termico.
152
Misura Current Limiting
7.8 SOMMARIO
In questo capitolo è stata sviluppata una libreria per il test di Current Limiting
utilizzando due source-meter Ke2400 e la cella termica. Sono stati anche accennati i
due principali dispositivi di current limiting: Constant Current Limiting e Voltage
Dependent Current Limiting.
Quindi, seguendo quanto fatto per la libreria di bandgap, è stato visto come rendere
automatica l’ elaborazione della misura utilizzando degli script Visual Basic per
Microsoft Excel.
153
Misura Termal Shutdown
8 Misura Termal Shutdown
8.1 INTRODUZIONE
In questo capitolo verrà sviluppata una libreria in grado di effettuare
automaticamente il test di Termal Shut-down.Vi sarà innanzitutto un cenno alla
struttura di termal shutdown utilizzata nei regolatori lineari, quindi lo sviluppo della
libreria in grado di eseguire automaticamente questo test [5].
8.2 Circuito di Termal Shutdown
Il circuito di termal shutdown usato negli IC (Integrated Circuit) evita che la
temperatura delle giunzioni cresca fino a provocare una loro rottura. Questa funzione
è eseguita monitorando la temperatura interna e riducendo, se necessario, la
dissipazione interna per mantenere la temperatura entro un limite (di solito 160 °C).
Figura 8-1 Struttura base del circuito di protezione Termal Shutdown
In questa figura è rappresentata chiramente la struttura base del circuito di Termal
Shutdown.
Il sensore di temperatura Q1 è posto vicino al transistor di potenza, il primo che si
potrebbe danneggiare, per assicurare “un buon inseguimento termico” .
R1 e R2 mantengono la base di Q1 a circa 0.35V, che corrisponde alla tensione Vbe
∂Vbe
di soglia di Q1 ad una temperatura di circa 160 °C, dato che
≅ −2.2 mV / ° K
∂T
(dipende dalla tecnologia, in genere va da -1.8 a -2.2 mV/°K).
Quando la temperatura interna aumenta, Q1 può eventualmente accendersi (circa a
160 °C) e quindi assorbire la corrente che pilota il power stage: potrebbe nascere il
dubbio che a sua volta il transistor Q1 potrebbe surriscaldarsi, ma se si osserva bene
lo schema a destra si osserva che Q1 assorbe la corrente di base del bjt che pilota a
sua volta la base del pass-transistor, quindi risulta molto piccola.
154
Misura Termal Shutdown
Perciò attivando Q1 si riduce la corrente di carico (o al massimo la si porta a zero)
che a sua volta riduce la dissipazione interna del regolatore e quindi la sua
temperatura.
Se il Termal Shutdown è attivo, sia la corrente che la tensione d’uscita diminuiscono;
quando la tensione d’uscita si abbassa rispetto al valore nominale, l’ error amplifier
cercherà di correggere la tensione d’uscita portando la sua tensione d’uscita alta, ma
troverà il termal circuit limit che continuerà ad assorbire la sua corrente di uscita per
mantenere l’uscita del regolatore bassa affinché la temperatura non superi i 160 °C.
Come è chiaro in figura, e così pure per il current limiting visto nel capitolo
precedente, il circuito di Termal Shutdown si attiva sul loop principale del circuito di
regolazione, assicurando così una pronta risposta onde evitare possibili
danneggiamenti.
8.3 Definizione del problema
In questo test dovremo essere in grado di rilevare la temperatura in
corrispondenza della quale si attiva la protezione di Termal Shutdown.
Una prima soluzione sarebbe quella di utilizzare il regolatore con una alta
corrente di carico, prossima al limite di current limiting, e verificare a che
temperatura entra in azione la protezione di termal shutdown. Ma rilevare la
temperatura propria del chip risulta un’operazione abbastanza complicata, quindi si è
preferito operare seguendo un’altra strada: si simula il problema di un’elevata
temperatura interna, portando con la cella termica la temperatura ambiente
d’esercizio via via sempre più alta, e
molto lentamente per assicurare che
la temperatura esterna al chip sia
effettivamente prossima alla sua
interna. Si può gia intuire la
struttura della nostra libreria, che
può essere semplificata col seguente
flow-chart:
Prima di tutto devo impostare la
temperatura con cui iniziare il test,
quindi lo step e la velocità con cui
eseguire l’incremento: questi due
valori dovranno essere molto piccoli
per permettere effettivamente alla
temperatura interna del chip di
seguire quella esterna.
Inoltre verrà impostato un valore di
tensione d’uscita al di sotto oltre il
quale
considero
attivata
la
protezione di termal shutdown.
Quindi il “cuore” centrale della
struttura sarà un ciclo while in cui
155
Misura Termal Shutdown
andrò man mano ad incrementare la temperatura finchè la tensione d’uscita scenderà
al di sotto di un determinato valore, che indicherà l’attivazione della protezione
termica.
In questa libreria saranno necessari questi strumenti:
o Un multimetro Ke2000 per la lettura della Vout
o Un Ke2700 per una lettura precisa della temperatura con una misura 4-wires
RTD
o La cella termica per eseguire lo sweep in temperatura.
Per eseguire questi punti utilizzeremo opportunatamente le librerie fin d’ora
sviluppate, in particolare per il secondo punto la libreria per la misura di temperatura
del capitolo precedente.
Creeremo allora un primo subVI per la misura di temperatura e di tensione, che verrà
richiamato nella libreria che controlla la cella termica.
8.4
SubVI per la misura di Vout e di Temperatura
Questa libreria eseguirà un “polling” di lettura della Vout e della temperatura,
finchè la tensione d’uscita scenderà al di sotto del trigger value .
Si va a creare il seguente front panel:
Come si può vedere in figura, vi sarà un controllo per il Ke2700 analogo a quello
usato nella libreria della misura di Bandgap, mentre nel riquadro a destra verrà
impostata tramite un controllore la tensione d’uscita al di sotto della quale considero
attivata la protezione termica, segnalando questo evento con il “led” a fianco; inoltre
vi è un indicatore che visualizza in tempo reale il valore della tensione e un altri per
eventuali errori, ed un pulsante di stop per interrompere l’esecuzione.
156
Misura Termal Shutdown
Il relativo block diagram è riportato a pagina seguente e sarà costituito da un ciclo
while che richiama i due subVI per la misura di temperatura e di tensione, che
terminerà quando si raggiunge il trigger value (segnalando l’evento con il led) :
8.5 Libreria Labview per il test di Termal Shutdown
Come anticipato nel secondo paragrafo, costruiremo questa libreria andando a
modificare la libreria che controlla la cella termica. A differenza di quanto
rappresentato nel precedente flow-chart, si è deciso di non impostare una temperatura
di start ed il suo valore valore di incremento per il ciclo termico, ma si è deciso di
impostare una temperatura superiore a quella per cui scatta la protezione termica,
sempre con uno “slope” molto lento, per permettere alla temperatura interna del chip
di seguire quella esterna: vi sarà quindi un controllo all’interno della libreria che in
corrispondenza dell‘ attivazione di Termal Shutdown, interromperà il ciclo termico.
All’ interno di questa libreria utilizzeremo il subVI visto nel paragrafo
precedente mentre per rilevare l’evento di Termal Shutdown, useremo proprio il
segnale che attiva il “led” di quel subVI.
Il block diagram che si realizza è riportato nella pagina seguente:
157
Misura Termal Shutdown
Figura 8-2 Le due parti di Block Diagram della libreria di Termal Shutdown
Il frame 0 della Sequence più esterna attiva tutta la procedura vista nel
paragrafo 3.6 che consente di impostare sulla cella dermice una data temperature ed
un dato gradiente ( °C/min ) per raggiungerla.
Il frame1, non riportato, serve solamente per leggere effettivamente che
temperatura e che gradiente vengono impostati sulla cella termica (come a pag 79).
Il frame2 richiama il subVI visto nel paragrafo precedente, che, come già
visto, continua a leggere in modalità “polling” la temperatura e la tensione d’uscita,
finchè la Vout raggiunge il TriggerValue, segnalando questo evento ponendo a 1 la
variabile boolean d’uscita (ossia “accendendo il led): a questo punto questo segnale
che entra in ingresso ad un OR assieme al segnale di Stop, interromperà il ciclo
termico.
A differenza di tutte le altre ilbrerie finora viste, si può notare in alto a destra
del block diagram un’altra modalità di salvataggio dei dati (sempre in formato *.txt) :
in particolare, quando si avvia l’esecuzione del programma viene visualizzato
un dialog box con cui si chiede all’operatore se vuole salvare i dati ed eventualmente
il path file (case in alto a destra) e questa informazione viene poi passata al case in
basso a destra che effettivamente salva i dati con la funzione Write Caracters To
File.vi.
158
Misura Termal Shutdown
L’ interfaccia utente di questa libreria è riportata a pagina seguente: si notino
i controlli per i due multimetro visti nel paragrafo 6.5, quindi il controllo della cella
termica in cui imposto una temperatura più alta dell’attivazione del Termal
Shutdown, e la velocità in °C/min con cui la raggiungo (che deve essere bessa per i
motivi precedentemente esposti):
Figura 8-3 Front panel della libreria di Termal Shutdown
Vi è anche un indicatore Time(mm:ss) che visualizza in quanto tempo è stata
raggiunta la temperatura di Shutdown, utilizzando (vedi block diagram) la funzione
Tick Count(ms)
.
159
Misura Termal Shutdown
8.6 Utilizzo della libreria
La libreria labview che è stata creata per il test di Termal Shutdown si chiama
TSD.vi: all’operatore non resta che collegare opportunamente il regolatore di
tensione agli strumenti e quindi avviare l’esecuzione di questo programme.
8.7 SOMMARIO
In questo capitolo è stata realizzata la libreria che permette di realizzare in
automatico il test di Termal Shutdown, accompagnata da una breve introduzione
della struttura base che realizza la protezione termica nei regolatori lineari.
Non sono stati necessari script VBA, in quanto i dati salvati contengono solamente il
valore di temperatura per la quale è scattata la protezione e la tensione d’uscita
corrispondente.
160
Misura di PSRR
9 Misura PSRR
9.1 INTRODUZIONE
In questo capitolo verrà sviluppata una libreria in grado di effettuare
automaticamente il test Power Supply Rejection Ratio.Vi sarà innanzitutto un cenno
alle caratteristiche di questa misura, quindi lo sviluppo della libreria vera e propria
per questo test.
9.2
Power Supply Rejection Ratio
Power Supply Rejection Ratio (PSRR), nota pure come “ripple rejection”,
misura l’abilità dei regolatori lineari di prevenire una eventuale fluttuazione
dell’uscita regolata dovuta ad un disturbo nell’alimentazione. Si applica lo stesso
principio della Line Regulation, con la differenza che non si tratta più di una misura
DC, ma ad una data frequenza.
La figura seguente spiega meglio in cosa consiste questa misura:
Figura 9-1 Caratteristiche della misura PSRR
Il “ripple rejection” è quindi definito ad ogni frequenza come :
Per esempio, questa misura assume una certa rilevanza per capire come un eventuale
disturbo in ingresso al regolatore si ripercuote nell’ uscita. Normalmente il caso
peggiore lo si ha quando ESR risulta grande.
161
Misura di PSRR
Il loop di controllo assume il ruolo dominante per la supply rejection; un basso
valore di ESR, una elevata capacità d’uscita ed una successiva di bypass può
migliorare il valore di PSRR.
9.3
Definizione del problema
Per eseguire questo test si deve essere in grado di inserire nell’alimentazione
DC del circuito anche una componente AC che simuli l’eventuale disturbo in
ingresso. Per far questo utilizzeremo il generatore di funzioni Agilent 33250 , ma
dato che la sua corrente d’uscita al massimo è dell’ordine di 200 mA, è necessario
uno stadio di ingresso per pilotare il regolatore. Si utilizza allora un mos di potenza
in configurazione drain-comune con una opportuna polarizzazione che consenta di
non uscire dalla zona di funzionamento in saturazione e la tensione d’uscita muoversi
sulla retta di carico attorno al punto di lavoro DC prossimo alla tensione di
alimentazione nominale del dispositivo.
Si utilizza quindi questo circuito :
Figura 9-2 Circuito di misura di PSRR
Il valore dei due generatori e di R dipende dal tipo di mos e dall’alimentazione
richiesta dal regolatore; generalmente R è di 10Ω, la Cin richiesta dal regolatore è di
solito 470 nF, quindi il filtro R-Cin ha una frequenza di taglio pari a f =
1/(2πRCin)=33,8 Khz, comunque ben maggiore delle nostre specifiche. Non ci
interessano le componenti introdotte dalla distorsione del mos in quanto
applicheremo una sonda dell’oscilloscopio al piedino IN del regolatore e col metodo
che andremo a vedere calcoleremo il valore di PSRR solamente considerando
l’armonica principale in ingresso ed in uscita.
Infatti una prima idea, sbagliatissima, per calcolare il PSRR, potrebbe essere
semplicemente quella di eseguire una misura ACV con il Ke2000. Ma in questo
modo si introduce tutta una serie di errori :
o Non si rispetta la definizione di PSRR, che è riferita ad una singola frequenza
o Non si tiene conto della banda passante dello strumento
162
Misura di PSRR
o Per definizione di rms, si tengono conto di tutte le componenti del segnale (in
uscita al mos ci saranno anche delle componenti dovute alla distorsione),
compreso il rumore.
Per eseguire correttamente la misura sarebbe quindi necessario un analizzatore di
spettro con il quale rilevare la componente di segnale in ingresso ed in uscita ad una
data frequenza. Non avendo a disposizione questo strumento, si usa l’oscilloscopio
Lecroy waverunner LT584L, che è in grado di effettuare la FFT di un segnale in
ingresso; ricordiamo quindi che quanto andremo a sviluppare, sarà comunque
limitato dalla sensibilità dello strumento (20mV/div).
Per eseguire questo test dovremo essere in grado di :
1. Generare in ingresso al regolatore un segnale sinusoidale a frequenza f0 ;
2. Rilevare il segnale in ingresso e in uscita al regolatore ed eseguire le
rispettive FFT;
3. Calcolare e quindi salvare il valore di PSRR per quella frequenza f0;
4. Ripetere il tutto per altre frequenze.
Il punto 1 lo realizziamo con il driver di ingresso visto in precedenza, mentre per il
punto 2 utilizzeremo opportune funzioni disponibili nell’oscilloscopio; il calcolo di
PSRR lo eseguiremo semplicemente da Labview una volta che siamo riusciti ad
acquisire l’ampiezza delle componenti dei due segnali a quella frequenza f, mentre lo
sweep in frequenza lo realizzeremo con un semplice ciclo while.
Innanzitutto per i nostri scopi dovremo realizzare queste librerie labview:
§
§
Una libreria che consenta di pilotare il gen. di funzioni Agilent 33250;
Una libreria che consenta di pilotare l’oscilloscopio Lecroy waverunner
LT584L.
Quindi realizzeremo un subVI in grado di calcolare il valore di PSRR in una data
frequenza, che a sua volta verrà richiamato dentro al ciclo while che realizza lo
sweep in frequenza.
9.4 Libreria Hp33250.vi
Questa libreria dovrà essere in grado di impostare sul generatore di funzioni
Agilent33250 una forma d’onda a piacimento (in particolare per il nostro caso una
sinusoide) di una data ampiezza, frequenza ed eventualmente con un certo offset.
Procedendo per gradi, ed aiutandoci con le strutture utilizzate nelle percedenti
librerie per controllare i multimetri, utilizzeremo innanzitutto i drivers disponibili per
il controllo del generatore di funzioni che consentono di inizializzare e chiudere la
comunicazione. Utilizzeremo allora i moduli hp33120 Inizialize.vi e hp33120Close.vi
assieme al nostro modulo GPIB AddressToResourceName.vi per la conversione del
puro indirizzo GPIB nella sintassi accettata dai drivers (vedi paragrafo 3.3.1) e
creeremo un subVI che effettivamente imposta lo strumento.
163
Misura di PSRR
Complessivamente abbiamo ricavato questo front panel:
Figura 9-3 Front panel della libreria di controllo del gen. di funzioni AG33250
Come è chiaro dalla figura, con questa libreria saremo in grado di impostare
sul generatore di funzioni qualsiasi funzione standard a nostro piacimento. Questo
subVI verrà utilizzato con il suo connector pane all’interno del ciclo della libreria di
livello superiore che realizza uno sweep in frequenza.
Connector Pane
Il block diagram di questa libreria è il seguente:
164
Misura di PSRR
In questa figura possiamo riconoscere i tre moduli nominati precedentemente,
ovvero hp33120 Inizialize.vi e hp33120Close.vi e GPIB AddressToResourceName.vi
, quindi un subVI che è stato creato per impostare effettivamente il generatore di
funzioni : hp33120a Generate Std Wfm.vi.
Da innumerevoli prove fatte utilizzando i drivers a disposizione, si è arrivati a
creare questo block diagram per il subVI hp33120a Generate Std Wfm.vi :
Vediamo ora le funzionalità espletate da ogni modulo che hanno condizionato
la nostra scelta:
hp33120a Configure Output Impedance.vi
Definisce il valore di impedenza d’uscita, nel nostro caso 50 Ω.
hp33120a Configure Output Enabled.vi
Abilita l’uscita
Vediamo ora in particolare gli altri drivers che configurano lo strumento:
9.4.1
hp33120a Configure Output Mode.vi
Connector Pane
Questo VI configura lo strumento a generare una standard o arbitraria forma d’onda.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
output mode indicatore con il quale si sceglie l’opzione Standard Waveform o Arbitrary
Waveform. Per il nostro uso si sceglierà Standard Waveform.
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
165
Misura di PSRR
9.4.2 hp33120a Configure Operation Mode.vi
Connector Pane
Questo VI definisce il modo di operare dello strumento, ossia come produce genera il
segnale in uscita.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
channel name ("1") Passa il nome del canale che si vuole configurare, default 1.
operation mode Passa il modo di operare, può assumere I seguenti valori:
HP33120A_VAL_OPERATE_CONTINUOUS - Continuous operation mode
HP33120A_VAL_OPERATE_BURST
- Burst operation mode
HP33120A_VAL_OPERATE_GATE
- Gate operation mode
HP33120A_VAL_OPERATE_SWEEP
- Frequency sweep operation mode
Useremo il modo Continuos
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso ad ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
9.4.3 hp33120a Configure Standard Waveform.vi
Connector Pane
Questo VI definisce le proprietà della funzione standard da generare:
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle ritornato dal modulo
di inizializzazione
channel name ("1") Imposta il nome del canale
waveform (1) Definisce il tipo d’onda. Valori validi:
HP33120A_VAL_WFM_SINE
HP33120A_VAL_WFM_SQUARE
HP33120A_VAL_WFM_RAMP_UP
HP33120A_VAL_WFM_TRIANGLE
HP33120A_VAL_WFM_DC
HP33120A_VAL_WFM_NOISE
HP33120A_VAL_WFM_PULSE (Agilent 33250A only)
166
- Sinusoid waveform
- Square waveform
- Positive ramp waveform
- Triangle waveform
- Constant voltage
- random noise waveform
- Pulse waveform
Misura di PSRR
HP33120A_VAL_WFM_RAMP_DOWN (Agilent 33250A only) - Negative ramp
HP33120A_VAL_WFM_RAMP (Agilent 33250A only)
- Adjustable ramp
amplitude (0.10 Vpp) Definisce il valore dell’ampiezza, in volt peak to peak.
Valid Range (Agilent 33250A):0.001 - 10.00 (Vpp) (50 Ohm impedance)
0.002 - 20.00 (Vpp) (Infinite impedance)
dc offset (0.00 V) Definisce la componente DC del segnale.
Valid Range:
-5.00 - 5.00 V (50 Ohm impedance)
10.00 - 10.00 V (Infinite impedance)
frequency (1000.0 Hz) Definisce la frequenza, in Hz, del segnale.
Valid Range: 1.00e-6 - 15.00e+6 (Hz) (Sine, Square waves)
1.00e-6 - 100.0e+3 (Hz) (Triangle, Ramp Up waves)
1.00e-6 - 5.00e+6 (Hz) (All other waves)
start phase (0.00 degrees) Definisce la fase iniziale, in gradi, del segnale.
error in (no error) controllore di tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso ad ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
9.4.4 hp33120a Configure Ref Clock Source.vi
Connector Pane
Definisce il clock di riferimento da cui derivare il segnale da generare:
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
error in (no error) controllore tipo error cluster
reference clock source Definisce quale clock usare come riferimento. Possibili valori:
HP33120A_VAL_REF_CLOCK_INTERNAL
- internal clock source
HP33120A_VAL_REF_CLOCK_EXTERNAL - external clock source
instrument handle out questo indicatore verrà usato in ingresso ad ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
9.5 lclt584_AcquisitionCH1_MathCH2.vi:
Viene ora sviluppata una libreria che consenta di acquisire dei segnali
dall’oscilloscopio LT584L. In un primo momento abbiamo tentato di far eseguire da
Labview le stesse operazioni in automatico che un operatore farebbe durante questo
167
Misura di PSRR
test, ma si sono incontrate notevoli difficoltà nell’acquisire la FFT calcolata
dall’oscilloscopio.
In questa figura è riportato un segnale con la relativa FFT che abbiamo rilevato
durante una misura di PSRR.
In un primo tempo, il segnale è stato “pulito” dal rumore utilizzando una funzione
matematica average (più avanti vedremo in che cosa consiste), quindi è stata
utilizzata
un’
ulteriore
funzione matematica che
calcoli la FFT di quel
segnale.
Nell’ operator’s manual
sono riportati una serie di
comandi
SCPI
che
consentono
con
un
controllo
remoto
di
eseguire
la
FFT
sull’oscilloscopio;
con
alcune librerie di prova
siamo riusciti a far eseguire
dall’oscilloscopio la FFT,
pure
con
finestra
impostabile, ma non si è
riusciti in alcun modo ad
ottenere la figura a fianco,
né tanto meno quelle
riportate a pagina seguente,
in quanto per visualizzare
la FFT sono necessari
numerosi accorgimenti di
zoom e riposizionamenti
“custom” per ogni dato
segnale da analizzare.
Figura 9-4 Esempio di componente AC in uscita al regolatore e relativa FFT
Nella figura riportata nella pagina successiva sono visualizzate delle FFT che si sono
incontrate in una misura di PSRR.
168
Misura di PSRR
Si può notare la distorsione introdotta principalmente dal mos di potenza del driver
d’ingresso, e i due valori a quelle frequenze (da tener conto che si sta usando una
finestra di Hamming, più indicata per ridurre il leakage).
Ebbene, queste figure sono frutto di continui aggiustamenti del valore di time/div, del
simple rate e di continui zoom e riposizionamenti della funzione matematica, tutte
operazioni che non si riescono ad impostare automaticamente.
Allora semplicemente si è pensato di risolvere questo problema facendo acquisire i
campioni del segnale da
Labview e utilizzare uno
dei tanti potenti tool : una
volta acquisiti i campioni, si
esegue la FFT direttamente
da Labview! .
Andiamo quindi a creare un
VI labview che sia in grado
di acquisire i segnali
presenti in due canali
dell’oscilloscopio.
Dato che in un canale ci
sarà il segnale AC in uscita
al regolatore, di ampiezza
molto piccola, imposteremo
pure
una
funzione
matematica averaging per
“pulire” il segnale dal
rumore.
L’oscilloscopio
Lecroy
mette a disposizione due
funzioni
average:
continuous averaging e
summed averaging per
ridurre il rumore presente
nella funzione.
Continuous averaging : è la
continua ripetizione, con
differente
peso,
della
funzione. È utile per ridurre
Figura 9-5 esempio di FFT del segnale in uscita al regolatore
il rumore nel segnale quando varia molto lentamente. L’aquisizione più recente ha
più peso di tutte le altre : la funzione continuous averaging è regolata statisticamente
dai cambiamenti più recenti dei campioni acquisiti, ed il peso delle acquisizioni
meno recenti tendono via via esponenzialmente a zero.
169
Misura di PSRR
Summed averaging : in questa modalità tutte le acquisizioni hanno lo stesso peso.
Una volta impostato il numero di acquisizioni, il risultato di questa “media” di
funzioni è rappresentato ad intervalli regolari sullo schermo dell’oscilloscopio.
Nella libreria che andremo a creare per pilotare il Lecroy dovremo quindi prevedere
questa opzione, in particolare stabiliamo di acquisire nel canale 1 il segnale che
diamo in ingresso al regolatore, mentre nel canale 2 rileveremo l’uscita: essendo
quest’ultimo segnale molto piccolo, dovremo prevedere di impostare sul canale 2 la
funzione matematica di averaging.
La costruzione del block diagram che consenta di acquisire i campioni del segnale di
ingresso e di uscita del regolatore è risultata piuttosto difficoltosa, soprattutto nel
trovare la giusta combinazione di drivers da usare tra tutti quelli che consentono di
impostare elementari configurazioni sull’oscilloscopio. Il block diagram che si
ottiene è il seguente:
Il connector pane è il seguente:
Connector Pane
Dal connector pane si possono riconoscere i parametri che devono essere passati a
questo subVI (sulla sinistra) che corrispondono ai controllori del front-panel, ossia:
- l’indirizzo GPIB dello strumento
- quali canali acquisire
- quale funzione matematica fra continuous averaging e summed
averaging eseguire
- il parametro relativo alla funzione matematica di averaging.
170
Misura di PSRR
I valori in uscita, che verranno ripresi da un subVI di livello superiore per creare la
libreria di PSRR, sono:
- i due array delle acquisizioni e la loro rappresentazione grafica
- la dimensione delle acquisizioni
- la velocità di campionamento
- segnalazione di eventuali errori.
Le funzioni espletate dai VI GPIB Address to Resource Name.vi, lcltxxxx
Initialize.vi, lcltxxxx Close.vi sono le stesse viste nei capitoli precedenti.
Andiamo ora per ordine a vedere le funzioni espletate dagli altri VI che ci
consentono di creare il subVI adatto ai nostri scopi:
9.5.1 lcltxxxx Auto Setup.vi
Connector Pane
Questo VI è usato per configurare automaticamente l’oscilloscopio: alla sua
chiamata, lo strumento rileva il segnale di ingresso e automaticamente configura lo
strumento.
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
error in (no error) controllore di tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso ad ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
9.5.2 lcltxxxx Read Waveform.vi
Connector Pane
Questo VI esegue un’acquisizione di campioni del canale specificato dal
parametro di ingresso. Quando viene richiamato, aspetta che l’acquisizione sia
eseguita con la configurazione prestabilita, quindi ne ritorna la funzione. Osservando
come questa funzione viene richiamata nel subVI che si è costruito per pilotare
l’oscilloscopio, si osserva che i dati in uscita vengono salvati in un array (del quale è
fornita la dimensione) e si va creare il rispettivo grafico, visualizzando così nel front
panel la funzione acquisita.
171
Misura di PSRR
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
channel name ("") Definisce il canale da acquisire. Possibili valori:
C1,C2,C3,C4,TA,TB,TC,TD,M1,M2,M3,M4
Nel nostro subVI questo modulo verrà pima usato per acquisire il canale1, cioè il segnale in
ingresso al regolatore.
waveform size (0) Definisce il numero di dati
maximum time (5000ms) definisce il tempo Massimo entro cui effettuare l’acquisizione
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
initial x indica il tempo in cui è stato acquisito il primo campione rispetto l’evento di trigger (sec)
x increment indica quanto tempo intercorre fra un campione e l’altro (sec.)
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
Actual points definisce il il numero di campioni effettivamente acquisiti.
9.5.3 lcltxxxx Actual Sample Rate.vi
Connector Pane
Questo VI ritorna la velocità di campionamento con cui è stata acquisita la
funzione (in samples per second).
Prima di questo modulo è stato anche inserito il modulo lcltxxxx Configure Reference
Levels.vi che definisce i livelli di riferimento per la funzione acquisita. Vengono
lasciati i valori di default :
low ref (10,00E+0 %)
mid ref (50,00E+0 %)
high ref (90,00E+0 %)
9.5.4 lcltxxxx Reset Math Channel.vi
Connector Pane
Dato che ora imposteremo l’acquisizione del segnale presente al canale 2,
cioè quello in uscita al regolatore, utilizzando la funzione matematica averaging,
172
Misura di PSRR
risulta necessario resettare il buffer contenente i risultati delle precedenti funzioni
matematiche averaging; questa operazione corrisponde all’operazione Clear Sweeps
sul pannello frontale dell’oscilloscopio.
9.5.5 lcltxxxx Channel Math.vi
Connector Pane
Questo VI è usato per configurare effettivamente il
dell’oscilloscopio per l’acquisizione averaging del secondo canale.
Le sue caratteristiche sono le seguenti:
canale
matematico
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle ritornato dal modulo
Initialize .vi
math channel ("TA") Definisce su quale canale assegnare il risultato della funzione matematica.
Possibili valori: TA, TB, TC, TD
source 1 ("C1") Passa un argomento per la funzione matematica; possibili valori: C1, C2, C3,
C4, TA, TB, TC, TD, M1, M2, M3, M4
source 2 ("C2") Passa l’eventuale secondo argomento della funzione matematica.
function (1: Sum) Specifica la funzione matematica da eseguire. Per i nostri scopi renderemo
disponibili le funzioni :
Summed Averaging
Continuous Averaging
max points (1000) Definisce il Massimo numero di punti del risultato della funzione; valore
massimo 25000000.
parameter 1 (0,00E+0) L’uso del parametro dipende dal tipo di funzione matematica scelta. Nel
caso di Summed Averaging indica il numero di acquisizioni da cui viene eseguita la media, nel
caso di Continuous Averaging definisce il “peso” dei campioni. Il peso delle acquisizioni meno
recenti decresce con legge esponenziale tanto più è alto il valore di questo parametro.
parameter 2 (0,00E+0) è un ulteriore parametro che non verrà usato per I nostri scopi.
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
Il modulo successivo a questo sarà lcltxxxx Read Waveform.vi analogo a quello visto
in precedenza, nel quale imposteremo come canale di acquisizione il canale
173
Misura di PSRR
matematico che è stato impostato con i moduli visti, quindi rileveremo la velocità di
campionamento con lcltxxxx Actual Sample Rate.vi e chiuderemo con il modulo
lcltxxxx Close.vi (vedi block diagram).
9.6 PSRR_Simple
Creata la libreria per l’acquisizione del segnale di ingresso e quello d’uscita
del regolatore, viene ora creata una libreria labview che consenta di calcolare il
valore di PSRR per una data frequenza.Come già anticipato nell’ introduzione, verrà
utilizzato un tool labview che esegue la FFT di un segnale. Questa libreria dovrà
essere in grado di :
1) Acquisire il segnale dato in ingresso al regolatore e quello presente alla sua
uscita;
2) Eseguire la FFT dei due segnali;
3) Calcolare il valore di PSRR.
Il punto 1 lo realizzo richiamando il subVI del paragrafo precedente
lclt584_AcquisitionCH1_MathCH2.vi ; il punto 2 con il tool di labview; per il
punto3, data la definizione di PSRR, individuo l’ampiezza delle componenti dei due
segnali Noti i due valori, se li esprimo in dB il PSRR sarà nient’altro la differenza dei
due (e quindi non importa se rilevavo metà ampiezza o quella intera) :
Vopp
PSRR = 20 Log
= 20 Log (Vopp) − 20 Log (Vipp)
Vipp
Tutto quanto appena spiegato può essere ritrovato nel block-diagram a pagina
seguente:
174
Misura di PSRR
Il subVI preposto all’acquisizione
dei dati viene richiamato con opportuni
controllori, che compaiono nel front panel
di pagina seguente (è il subVI esterno alla
sequence). Nel frame 0 viene eseguita la
FFT del segnale di canale 1: per far
questo, viene costruito il segnale
temporale, noti i campioni, con la
funzione Build Waveform, viene definita
la finestra d’uso ed il “format” dei dati
d’uscita con i cluster di tre boolean (per
capire meglio come funziona il tool che
esegue la FFT si rimanda al paragrafo
successivo), e sceglieremo di esprimerli
in dB.
Noto lo spettro (discreto) del
segnale, si ricava la componente e la
frequenza corrispondente di ampiezza
massima con le funzioni Unbundle by
Name e Array Max & Min . Il frame
successivo eseguirà le stesse operazioni
per l’altro segnale.
Note le due ampiezze in dB, il
valore in PSRR viene semplicemente
calcolato eseguendo la differenza delle
due.
Il front panel è riportato a pagina
seguente seguente:
175
Misura di PSRR
Figura 9-6 Front Panel per la misura semplice di PSRR
Si possono notare i controllori che configurano l’oscilloscopio visti nella
libreria del paragrafo precedente, mentre per il calcolo della FFT è possibile
impostare per ogni canale quale finestra utilizzare. Quindi eseguendo il programma,
per ogni segnale viene ricavata la componente principale individuandola con la sua
ampiezza (in dB) e frequenza, quindi viene calcolato il valore di PSRR.
Vengono ora spiegate le funzionalità del tool che esegue la FFT:
9.6.1 FFT Spectrum (Mag-Phase).vi
Connector Pane
Questo VI calcola la FFT in termini di ampiezza e fase di una forma d’onda data in
ingresso (consente anche di calcolare la FFT average).
I parametri che ci interesano sono:
window Definisce la finestra temporale da usare. Possibili scelte:
Von Hann : riduce il leakage, migliora l’accuratezza in ampiezza ma peggiora
quella in frequenza.
176
Misura di PSRR
-
quella in frequenza.
Rectangular : usare quando visualizzo un numero intero di periodi, altrimenti
nasce il problema di leakege in frequenza e scallop loss in frequenza
Hamming : riduce il leakage, migliora l’accuratezza in ampiezza ma peggiora
quella in frequenza.
Flat Top : provvede ad un’ottima accuratezza in ampiezza (ha lo scallop loss più
piccolo, vedi tabella sottostante), ma riduce l’accuratezza in frequenza.
Blackman-Harris riduce il leakage al minimo, ma riduce anche la risoluzione in
frequenza.
view è un cluster che definisce in che formato ritornare il calcolo della FFT. E’ costituito dalle
seguenti variabili:
dB On (F) dB On Specifica se esprimere l’ampiezza in decibel, nel nostro caso sarà ON
unwrap phase (F) unwrap specifica se sliminare le discontinuità di fase
convert to degree (F) convert to degree specifica se convertire la fase in gradi o
radianti.
9.7 Libreria PSRR
Realizziamo ora la libreria Labview che esegue la misura di PSRR per uno sweep di
frequenze seguendo quanto anticipato nel paragrafo 9.3; ci sarà un ciclo while che
richiamerà la libreria che pilota il generatore di funzioni Agilent 33250, quindi
eseguirà la misura di PSRR per quello step di frequenza.
Il block diagram è il seguente:
177
Misura di PSRR
Figura 9-7 Block Diagram della libreria di PSRR complessiva
178
Misura di PSRR
Nella figura 9-7 si può notare il ciclo while regolato dai parametri dallo sweep in
frequenza, che richiama all’interno di una sequence il subVI precedentemente
sviluppato che imposta il
generatore di funzioni.
Nel frame successivo
richiamo il subVI che
calcola il valore di PSRR
esaminato
precedentemente.
Complessivamente
si
ottiene il seguente front
panel :
Figura 9-8 Front Panel per la misura di PSRR complessiva
In questa figura possiamo riconoscere complessivamente tutti i controllori ed
indicatori visti nel corso della progettazione di questa libreria:
- Un controllore per definire dove salvare i dati e un pulsante di Stop
per interrompere eventualmente l’esecuzione del programma;
- I controllori e gli indicatori per il generatore di funzioni
Agilent33250;
- I controllori e gli indicatori per acquisire le due funzioni tramite
l’oscilloscopio;
- I controllori che definiscono le finestre da usare nel calcolo della FFT
e gli indicatori della componente principale di ogni segnale;
- Indicatori di eventuali errori sugli strumenti o nel calcolo delle FFT;
179
Misura di PSRR
-
Un indicatore del valore di PSRR per quella frequenza.
9.8 Elaborazione automatica della misura di PSRR
Anche per questo tipo di misura per l’elaborazione automatica dei dati è stato
adottato lo stesso stile di progetto usato per le altre librerie. Anche in questo caso
salveremo in un file testo l’informazione riguardante il numero di misure ed il
percorso del file dati introducendo una modifica nell’ultima libreria analoga a quelle
viste alla fine di ogni precedente capitolo; questa modifica la si ritrova nella parte in
alto a sinistra di questa figura:
Osservando la figura precedente, si può notare come l’intero block diagram della
vecchia libreria PSRR sia stato incluso nel frame 0 di una grande sequence,
all’interno del quale vi è anche la modifica appena vista; in questo modo nel frame 0
si eseguono tutte le misure di PSRR per un dato sweep di frequenze, e nel frame 1
attiverò opportuni script Visual Basic per Microsoft Excel proprio come in fig pag
cap .
Il format dei dati nel file .txt è il seguente:
Freq(Hz)
………..
………..
180
Signal_In(dB)
……………..
……………..
Signal_Out(dB)
………………..
………………..
PSRR(dB)
………….
………….
Misura di PSRR
Utilizzeremo, come nelle librerie degli altri capitoli, lo script ImportData() per
importare i dati salvati in *.txt in un foglio elettronico Excel (vedi anche paragr. 3.9),
uno script che visualizzi in un grafico l’andamento del PSRR in funzione della
frequenza e lo script Save() che salva tutta l’elaborazione excel nello stesso path file
e con lo stesso nome di quello *.txt.
Lo script che crea il grafico di PSRR sarà uguale a quello utilizzato nel paragrafo 6.6
nel capitolo sulla misura del Bandgap, salvo cambiare le due righe di programma in
cui definisco che dati plottare con queste:
…………………………………………………………………………………
ActiveChart.SeriesCollection(1).XValues = "=Foglio1!R3C1:R" & 3 + N_misure & "C1"
‘ i valori sull’asse x da graficare sono le frequenze e sono riportate nella prima colonna
ActiveChart.SeriesCollection(1).Values = "=Foglio1!R3C4:R" & 3 + N_misure & "C4"
‘ l’asse y corrisponde ai valori di PSRR e sono salvati nell’ultima colonna, la quarta.
…………………………………………………………………………………
…………………………………………………………………………………
9.9 Utilizzo delle librerie
La libreria che è stata creata in questo capitolo si chiama PSRR.vi ed esegue la
misura di Power Supply Rejection Ratio per uno sweep di frequenze. Assieme a
questo file si necessita del file PSRR.xls, che, memorizzato in C:\, consente
l’elaborazione automatica dei dati acquisiti.
9.10 SOMMARIO
In questo capitolo è stata realizzata una libreria che consente di effettuare ed
elaborare in modo automatico la misura di Power Supply Rejection Ratio di un
regolatore di tensione. Essendo una misura riferita alle componenti spettrali in
ingresso ed in uscita di un regolatore, lo strumento più adatto sarebbe un analizzatore
di spettro, che non era però disponibile; la sua mancanza è stata allora sopperita
acquisendo i segnali con l’oscilloscopio e, noti i campioni dei due segnali, eseguendo
le due corrispondenti FFT direttamente da Labview.
Sono stati visti quindi tutti i passi della progettazione di questa libreria, fino
alla sua elaborazione automatica. Ricordiamo comunque che un limite di questa
libreria risiede proprio nella sensibilità dell’oscilloscopio (2mV/div), che ne
pregiudica il suo utilizzo con PSRR elevati (oltre –60dB).
181
Misura di ESR
10 Misura ESR
10.1 INTRODUZIONE
In questo capitolo verrà sviluppata una libreria per la misura dell’ Equivalent
Series Resistance di un condensatore. È una misura molto importante, in quanto
riguarda la stabilità di funzionamento di un regolatore di tensione e risulta necessaria
perché sono pochi i costruttori che forniscono una specifica esauriente a riguardo
(ossia, come vedremo più avanti, definire l’ESR in base alla temperatura e frequenza
d’esercizio).
10.2 Stabilità negli LDO
Un regolatore lineare di tensione puo richiedere di inserire in uscita una certa
capacità con un dato range ESR al fine di stabilizzare il control loop.
Se consideriamo per semplicità un LDO con due poli non compensati come in
figura, vi è la possibilità che nascano oscillazioni indesiderate. In altre parole il linear
regulator risulta instabile poiché alla frequenza di guadagno unitario UGF presenta
una fase di –180°. Per rendere il regolatore stabile è allora necessario aggiungere uno
zero che cancelli la variazione di fase introdotta da uno dei due poli :
182
Misura di ESR
Figura 10-1 Risposta in frequenza di un LDO non compensato
Uno zero introdotto con l’ ESR prima del punto UGF consente di avere in UGF1 una
variazione di fase di circa –90° ( 2 poli + 1zero = -180° + 90° = -90° ) e rendendo
così stabile il regolatore.
Figura 10-2 Risposta in frequenza di un LDO compensato
Questo è il caso in cui la risposta in frequenza di un LDO è stato modellizzato
semplicemente con due poli dominanti, ma generalmente esiste un valore minimo e
uno massimo di ESR che determina così una curva chiamata “Tunnel of death”. Il
grafico seguente visualizza un range di ESR compreso fra 0.2 e 9 Ω : in particolare
“solid tantalum electrolytic, aluminum electrolyc, e multilayer ceramic capacitor”
sono i più indicati alle richieste di ESR.
183
Misura di ESR
Figura 10-3 Esenpio di range di stabilità di ESR
Risulta quindi interessante conoscere il valore della resistenza parassita propria di un
condensatore che, con in serie un’eventuale resistenza (generalmente a film in
carbonio), potrebbe render stabile il sistema .
10.3 Definizione del problema
La libreria che andremo a sviluppare dovrà essere in grado di calcolare il
valore della resistenza parassita in serie ad un condensatore.
Un condensatore reale ha queste caratteristiche:
Figura 10-4 Rapprasentazione circuitale e semplificata di un condensatore reale
La resistenza Rdiel, rappresenta le perdite nel dielettrico tra le armature (generalmente
di valore molto grande); la capacità CT e l'induttanza LT modellizzano l'effetto dei
reofori (piedini del componente); la resistenza Rarm rappresenta l'effetto resistivo
delle armature da cui è costituito il condensatore. Il modello semplificato risulta
quindi essere un circuito RLC serie di cui possiamo ricavare l'impedenza
complessiva:
184
Misura di ESR
la cui frequenza di risonanza vale:
Si vede come, al di sotto della frequenza di risonanza, il comportamento del
condensatore sia prevalentemente capacitivo, mentre al crescere della frequenza,
l'impedenza dell'induttanza ZL aumenta fino a superare quella capacitiva al di sopra
di f0 ; in queste condizioni il condensatore assume un comportamento
prevalentemente induttivo; perciò nel caso in cui il condensatore dovesse essere
utilizzato come corto circuito per segnali di disturbo ad alta frequenza, si dovrebbe
scegliere un condensatore con un valore capacitivo che determina una frequenza di
risonanza maggiore della frequenza di disturbo; in caso contrario il valore
dell'impedenza potrebbe diventare molto grande ed annullare la funzione di corto
circuito del condensatore.
Per effettuare questa misura esistono strumenti opportuni chiamati LCR
meter: oltre a dare la misura (a quattro fili) effettiva di una impedenza, è in grado di
fornire il valore di DF, che è definito come il rapporta fra la potenza attiva e reattiva
su quell’impedenza e quindi in un condensatore corrisponde, se trascuriamo la parte
induttiva, a Resr/Xc.
In mancanza di questo strumento, un’ idea per il calcolo di ESR potrebbe
essere di sfruttare proprio il comportamento capacitivo-induttivo di un condensatore
reale: alla frequenza di risonanza l’impedenza ha un comportamento puramente
resistivo. Ma in questo modo si commette questo l’errore, molto diffuso, di
considerare la resistenza parassita di un condensatore indipendente dalla frequenza
d’uso, cosa assolutamene non vera se si guardano i data sheet di alcuni costruttori:
Figura 10-5 Esempio di curva di ESR in frequenza
185
Misura di ESR
Infatti generalmente il valore di ESR cresce al diminuire della frequenza e dipende
anche dalla temperatura d’esercizio, come si può vedere nella figura seguente:
Figura 10-6 Esempio di curva di ESR in temperatura
Si può osservare come il valore di ESR aumenti al diminuire della temperatura.
La libreria che andremo a sviluppare dovrà essere in grado di definire una misura di
ESR in base alla frequenza e alla temperatura d’esercizio, per sopperire alla
mancanza di una esauriente indicazione a riguardo nei data sheet di molti costruttori
di capacità.
Come già spiegato, lo strumento più adatto sarebbe un LCR meter, ma cercheremo di
sopperire alla sua mancanza utilizzando gli strumenti disponibili. A questo proposito
ci vengono in aiuto delle funzioni disponibili sull’oscilloscopio Lecroy, che
utilizzeremo per “imitare” proprio il principio di funzionamento di un LCR meter.
L’oscilloscopio LT584L offre, con l’ausilio di una sonda di corrente, una misura di
potenza attiva di un dispositivo sotto test: dato che la potenza attiva è riferita ad una
impedenza puramente resistiva, effettuando allora una sua misura su un condensatore
sollecitato da una data sinusoide, possiamo allora risalire al valore di ESR.
Costruiremo dapprima una libreria in grado di effettuare questa misura per una data
frequenza, quindi la utilizzeremo assieme a quella che controlle l’ Agilent 33250 per
ricavare uno sweep di frequenza, e infine studieremo opportuni accorgimenti per una
misura al variare della temperatura.
10.4 lclt584_AVG(CH1)_AVG(CH2)+PMT(ESR).vi
Come è stato anticipato, la realizzazione della libreria di questo capitolo verte
principalmente sulla misura di una potenza attiva da parte dell’oscilloscopio Lecroy
LT584L. Per impostare il Lecroy è stato utilizzato uno stile analogo a quello del
capitolo precedente per la misura di PSRR, e in questo caso “ripuliamo” anche il
canale1 dal rumore con la funzione average. Perciò innanzitutto imposteremo
l’acquisizione dei due canali con la stessa struttura modulare di pagXX, con
l’aggiunta dell’ opzione averaging continuous o averaging summed anche per il
canale1. In particolare sul canale1 verrà rilevata la tensione ai capi del condensatore,
186
Misura di ESR
e sul canale2 la corrente tramite la sonda di corrente (quando la si collega
all’oscilloscopio è richiesto di eseguire esternamente la funzione DEGAUSS
PROBE).
Non essendo a disposizione un drivers o un comando SCPI nel Waverunner
Remote Control Manual (January 2000) in grado di rilevare il valore rms della
corrente, abbiamo allora ricavato tale valore utilizzando la funzione RMS.vi di
Labview:
Questo VI calcola il valore rms del segnale di ingresso X
e segnala eventuali errori o warning durante il suo
utilizzo.
Connector Pane
La parte di block diagram che si ottiene fino a questo punto è allora la seguente:
Figura 10-7Connector pane della parte di libreria lclt584_AVG(CH1)_AVG(CH2)+PMT(ESR).vi
relativa all’acquisizione dei segnali
Dalle varie label in figura si possono riconoscere tutti i moduli già visti nel paragrafo
XX del capitolo precedente, salvo l’aggiunta di RMS.vi per il calcolo del valore
efficace della corrente rilevata dalla sonda. In più si può osservare che ai canali
matematici TA e TB sono assegnati i due segnali di ingresso (tensione e corrente)
elaborati con la funzione averaging (impostabile in continuos o summed).
A questo punto della progettazione dobbiamo elaborare un metodo per impostare e
misurare sul Lecroy la potenza attiva.
Non essendo disponibile nei drivers installati un VI adatto ai nostri scopi,
imposteremo l’oscilloscopio tramite comandi SCPI definiti nel Waverunner Remote
Control Manual creando il subVI Configure PMT.vi, mentre potremo rilevare le
misure con il modulo LTDSO Parameter Value.vi .
Complessivamente creeremo allora una sequence in cui con il frame0 acquisiremo i
due segnali e nel frame1 misureremo la potenza attiva sul condensatore; a questo
punto, da P=RI2 , risaliremo al valore di ESR. Infine inseriremo tutto questo block
187
Misura di ESR
diagram dentro un ciclo while nel quale controlleremo anche l’Agilent 33250 con la
libreria sviluppata nel cap 9 “Libreria33250.vi”ottenendo così una misura in
frequenza.Il block diagram che si ottiene è il seguente:
Figura 10-8 Block diiagram relativo alla libreria di misura di ESR
Oltre a tutto quello che è stato precedentemente riportato, in questa figura si nota
anche la classica procedura utilizzata in tutte le altre librerie per salvare i dati nel
formato *.txt, (vedi pag cap). Si può vedere come nel frame0 imposto l’acquisizione
dei segnali nell’oscilloscopio, mentre nel frame successivo imposterò e misurerò la
potenza attiva:
Il front
possono
acquisiti
ognuno
188
panel complessivo di tutta questa libreria è riportato a pagina seguente. Si
subito notare due display che rappresentano i due segnali che vengono
e sotto ad essi i relativi controllori per l’impostazione: in particolare per
si può definire quale canale acquisire e quale funzione averaging con
Misura di ESR
relativo parametro e canale matematico corrispondente utilizzare, quindi è riportato
un array con i dati acquisiti.
189
Misura di ESR
Nella parte inferiore del block diagram vi è un primo riquadro in cui si imposta
l’indirizzo GPIB dell’osciloscopio e vengono segnalati eventuali errori sullo
strumento, quindi vi è un controllore nel quale definisco dove salvare i dati.
Vi è poi un riquadro con i controllori per il generatore di funzioni visti nel paragr. E
a fianco un altro riquadro nel quale definisco il calcolo della potenza attiva,
impostando i due parametri di ingresso che corrisponderanno ai canali matematici e
quale potenza calcolare.
Infine vi è un riquadro con le misure del valore rms della corrente (più eventuale
errore nella sua elaborazione), la potenza attiva ed il valore di ESR ad ogni step di
frequenza.
Vediamo ora brevemente i due moduli utilizzati per la misura di potenza:
10.4.1 Configure PMT.vi
Connector Pane
Questo subVI è stato creato per impostare sull’oscilloscopio una misura di potenza e
non essendoci a disposizione drivers per questo scopo, sono stati direttamente
utilizzati i comandi SCPI definiti nel Waverunner Remote Control Manual del
Lecroy. I parametri per il calcolo di una potenza vengono impostati manualmente sul
front panel dello strumento selezionando la finestra “Parameter Custom” . A questo
proposito fra gli innumerevoli comandi SCPI ci vengono in aiuto due in particolare
(riportati a pag.56 di quel manuale):
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Useremo allora il comando PACU per l’impostazione della misura e PADL
eventualmente per cancellarla sul display dello strumento. La loro sintassi è la
seguente
COMMAND SYNTAX
PArameter_Custom <line>,<parameter>,<qualifier>[,<qualifier>,...]
<line> : = da 1 a 5
<parameter> : = { parametro che definisce il tipo di misura}
<qualifier> : = definisce quali grandezze usare per quella
data elaborazione.
190
Misura di ESR
Ogni comando deve essere inviato con i terminatori <NL> <EOI> (New Line e End
Or Identify, vedi anche appendiceA “Interfaccia GPIB”), ma per trasmettere le
stringhe di comando utilizzeremo LTCLXXXX WriteInstrumentData.vi che aggiunge
automaticamente in coda i due terminatori.
Costruiremo allora il seguente block diagram che genererà gradualmente il comando
da inviare:
Figura 10-9 Block Diagram relativo all'invio di comandi SCPI
Per formare la stringa di comando vengono utilizzate le funzioni Labview Format
Value.vi e Pick Line.vi.
Procedendo nel block diagram da sinistra verso destra, vediamo che costruiamo la
prima parte del comando utilizzando Format Value.vi : questo modulo converte un
numero in una stringa in accordo con un preciso formato e la appende all’altra
stringa in ingresso. Nel nostro caso appenderemo in coda alla stringa PACU
l’informazione della linea del display sulla quale visualizzeremo la misura.
Procedendo nella costruzione del comando, ora nel block diagram utilizzeremo Pick
Line.v questo vi appende in coda alla nostra stringa una stringa fra quelle presenti
nel scrollbar ad esso collegato in base alla scelta del controllore numerico; in altre
parole, appenderemo in coda una stringa fra apwr, pf, rpwr alla parte di comando
precedentemente creata per definire il tipo di misura.
rpwr imposta una misura di potenza attiva, pf esegue il rapporto della misura rpwr e
apwr. Fare molto attenzione che nel Lecroy rpwr non corrisponde alla potenza
reattiva Q=Imag(VI* ), ma nell’oscilloscopio corrisponde solamente al prodotto
IrmsVrms !
Continuando con l’analisi del block diagram creato, arriviamo alla struttura
case che completa la costruzione del comando in base al tipo di misura da effettuare.
Il frame 0 corrisponde alla selezione ” NoParameter” e tramite il comando PADL
elimina la linea selezionata.
191
Misura di ESR
Il frame1 corrisponde alla misura “ApparentPower” sull’oscilloscopio; in questo caso
definiamo nella nostra stringa su quali
canali reperire la tensione e la corrente
con altri due Pick Line.vi e due
controllori (C1..C4, TA..TB). Infine
inviamo il comando utilizzando il
driver lcltxxxx Write Instrument
Data.vi.
La struttura dei rimanenti frame del
case è analoga a questa.
10.4.2 LTDSO Parameter Value.vi
Connector Pane
Questo è un driver che permette una generica lettura dell’oscilloscopio. Nel
nostro caso definiremo soltanto in Parameter la “linea di display” corrispondente alla
nostra misura impostata nel precedente subVI, quindi reperiremo tale valore dalla
variabile d’uscita Value.
10.5 Misura di ESR al variare della temperatura
Dato che non è possibile inserire direttamente nella cella termica il
condensatore con le sonde dell’oscilloscopio attaccate, saranno necessari dei fili di
collegamenti esterni. Ovviamente ciò comporterà tutta una serie di inconvenienti
tipo:
-si introduce una resistenza parassita
-si introducono capacità e induttanze parassite
-gli stessi cavi possono comportarsi come antenne e quindi ricevere disturbi
192
Misura di ESR
Si è scelto di utilizzare un cavo in rame di lunghezza 1 metro e sezione 2.5 mmq.
Poiché le nostre misure devono essere eseguite fino a 10 Khz, si è scelto di trascurare
gli effetti capacitivi-induttivi del capo, d’altra parte noi misuriamo una potenza
attiva. Eventuale rumore potrebbe un po’ cambiare il valore di corrente per quella
data tensione di ingresso a quella frequenza: ma poi noi andiamo a misurare con
l’oscilloscopio il valore rms di entrambe le grandezze elettriche, valori che vengono
utilizzati dall’algoritmo interno all’oscilloscopio per la misura di potenza attiva:
quindi in P=RI2 sia I che P avranno una componente dovuta al rumore, ma ciò non
influisce per il calcolo di R.
Un problema si incontra nel determinare la resistenza parassita che introduco
con il cavo: è noto che al crescere della frequenza la corrente tende ed addensarsi
sulla superficie esterna a causa del fenomeno noto col nome di effetto pelle. Si può
pensare che la corrente sia concentrata a ridosso della superficie esterna del
conduttore per uno spessore pari al fattore di penetrazione (nel caso in cui tale valore
risulti inferiore al raggio del conduttore). Definito il fattore di penetrazione come:
1
δ =
, con f frequenza d’esercizio, µ permeabilità , ε costante dielettrica e
πf µεσ
σ conducibilità del mezzo, approssimiamo in questo modo la resistenza del
conduttore (L = lunghezza, r = raggio cavo):
L
Rcavo ≅
se r << δ
σπr 2
L
Rcavo ≅
se r >> δ
2σπr δ
Con queste approssimazioni, otteniamo a 10 Hz una Rcavo = 6,897 mΩ e a 10 KHz
Rcavo = 4,655 mΩ : i due valori sono molto piccoli e prossimi, e alla fine noi
daremo comunque una approssimazione per eccesso del valore di ESR in quanto no
teniamo conto della resistenza delle varie connessioni in gioco.
La resistenza del cavo viene calcolata all’interno della libreria di ESR con questa
modifica:
Si fa cioè uso della funzione Labview Formula Node che grazie ad un breve
programma in C implementiamo il calcolo della resistenza del cavo al variare della
frequenza.
193
Misura di ESR
Ora questa libreria verrà semplicemente inclusa nella libreria che controlla la cella
termica, ottenendo così il test di ESR al variare della temperatura.
10.6 Elaborazione automatica della misura di ESR
Per l’elaborazione automatica delle misure di ESR vengono effettuate le
modifiche riportate nel paragrafo 9.8 relativo all’elaborazione automatica della
misura di PSRR.
10.7 Utilizzo della libreria
Per la misura di ESR vengono create due librerie:
SimpleESR.vi : esegue la misura di ESR a temperatura ambiente e quindi non si
necessita del cavo di collegamento esterno fra condensatore e generatore di funzioni.
ESRwith_oven : esegue il test di ESR al variare della temperatura e frequenza e
necessita del cavo di collegamento esterno fra condensatore e generatore di funzioni.
Da tener presente che per eseguire correttamente il test nei condensatori elettrolitici è
richiesta una corretta polarizzazione della tensione, quindi bisogna impostare
opportunamente il valore di offset e amplitude dell’onda da generare.
10.8 SOMMARIO
In questo capitolo si è visto per gradi lo sviluppo di una libreria che consentisse
di dare una stima del valore della resistenza equivalente serie di un condensatore, al
variare della frequenza e della temperatura con gli strumenti a disposizione, in
particolare utilizzando un oscilloscopio ed un generatore di funzioni. Abbiamo
inoltre visto come il valore di ESR sia importante per la stabilità del dispositivo e
come a questo riguardo venga definito un range di ESR entro cui è assicurato il
corretto funzionamento.
194
11 Caratterizzazione di un BJT multicollettore
11.1 INTRODUZIONE
In questo capitolo verrà affrontato lo sviluppo di una libreria Labview in
grado di caratterizzare il comportamento di un particolare BJT. Essendo una misura
“custom” in cui di volta in volta vengono apportate delle modifiche, il test non sarà
completamente automatizzato ma ne saranno invece automatizzati gli aspetti
principali.
11.2 Definizione del problema
Il problema da affrontare consiste nel caratterizzare attraverso una serie di test
il pass-device comune alla maggior parte dei regolatori lineari Infineon, utilizzando i
dati sperimentali raccolti per modificare e correggere i parametri dei programmi di
simulazione usati.
Esistono vari tipi di pass-device utilizzati nei regolatori di tensioni (vedi pag 31), ma
il pass-device che andremo a testare può essere modellizzato come un transistor bjt.
In realtà, dato che la maggior parte della potenza dissipata in un regolatore è sul
pass-transistor, in realtà egli viene realizzato da un “matrice” di bjt pnp, per offrire
una maggiore superficie alla dissipazione termica : infatti in un regolatore metà del
layout è occupato dal pass-device.
Il dispositivo da esaminare presenta queste connessioni:
Sono presenti:
-
un piedino B che corrisponde alla base di ogni transistor;
un piedino 2C che corrisponde a due collettori di due bjt di una stessa
colonna collegati assieme;
15 piedini sense collector ognuno del quale individua complessivamente i
collettori dei transistors di una stessa colonna;
195
-
un piedino C che corrisponde al collettore vero e proprio del pass-transistors
complessivo;
un piedino E che corrisponde all’emettitore comune di tutti i transistors e
quindi a quello del pass-transistor.
Nel corso dei test verranno fatte misure con vari tipi di configurazioni del chip, per
esempio connettendo a diodo determinati transistors, accompagnate da opportuni
accorgimenti, ma quello che dovremo sviluppare è una libreria che consenta di
automatizzare gli aspetti più salienti e comuni in ogni misura.
Durante i test ad ogni sense collector è collegata una resistenza di 10Ω, quindi nota
la tensione si può risalire alla corrispondente corrente di sense collector.
Un bjt si può caratterizzare, per una data temperatura, quando è nota β=Ic/Ib e il suo
comportamento al variare della sua Vce.
Abbiamo pensato quindi di realizzare una libreria in grado di variare la corrente di
base Ib, e ad ogni step di Ib eseguire uno sweep diVc e quindi della corrente di
collettore; rimane poi all’operatore il compito di estrarre dai dati raccolti le
informazioni che gli sono necessarie (a questo riguardo verranno create apposite
funzioni VBA).
Per realizzare i due sweep utilizzeremo uno stile simile a quello riportato nel capitolo
relativo alla misura di dropout, ossia nel block diagram che piloterà i due strumenti
non avrà un aspetto “gerarchico”, bensì utilizzeremo in un unico subVI tutti i moduli
necessari, ponendo opportunamente dentro ai cicli while solo quelli che devono
essere aggiornati.
Essendo ad ogni sense collettore collegata una resistenza di 10Ω, possiamo
risalire al corrispondente valore di corrente eseguendo una misura di tensione su
questi pin. Per misurare le 15 tensioni utilizzeremo il multimetro Keithley2700.
Il Ke2700 dispone di una card sul pannello posteriore che consente di leggere
sequenzialmente la tensione presente su 20 canali individuati dall’indirizzo
101…120, mentre il 121 ed il 122 sono due canali appositi per una lettura di
corrente. Creeremo allora un block diagram in cui andremo a leggere
sequenzialmente le 15 tensioni di sense collector e lo completeremo inserendolo
opportunamente nel VI di pag in cui controllo i due source-meter ke2400, salvando
ad ogni step tutte le grandezze rilevate.
In più utilizzeremo altri due multimetro per leggere la tensione e la corrente
sul piedino E, che corrisponde all’emettitore del pass-transistors complessivo.
196
11.3 Test_chip_Sweep_Ib_Vb_Sweep_Vc.vi
Come è stato precedentemente introdotto, questa libreria risulta molto
articolata. Il suo principio di funzionamento può essere meglio capito col seguente
flow-chart:
Si può riconoscere un ciclo
while che controlla il source-meter
che fornisce la corrente di base nel
piedino B; all’interno vi è un altro
ciclo while in cui definisco la
tensione Vc per impostare uno
sweep di corrente di collettore; a
sua volta, all’interno di questo ciclo
misurerò la tensione presente sui 15
sense collector tramite il multimetro
Ke2700 e poi la tensione e la
corrente sul piedino E di emettitore.
Come
anticipato
nel
paragrafo precedente, creeremo il
block diagram per i nostri scopi
modificando
opportunamente
quello riportato a pag.
, in
particolare inserendo i subVI che
permettono
il
controllo
del
multimetro Ke2700 per la lettura
dei 15 canali.
Il diagramma che si ottiene
è riportato a pagina e risulta
piuttosto complicato a causa della
mole di misure da fare e dal numero
di misure.
Innanzitutto si possono notare i due
cicli while e la sequence come già
anticipato.
I due cicli vngono controllati dai vi
dei due source-meter Ke2400 con la
stessa struttura riportata a pag : nel
ciclo più esterno imposto in un
source-meter la corrente di base Ib,
mentre
nell’altro
più
interno
imposto la tensione di collettore
Vc.
197
All’interno di questo ciclo vi è una sequence con sette frame con cui
nell’ordine eseguo queste operazioni:
-
frame0: abilito la corrente di baseIb;
frame1: abilito la tensione di collettore Vc;
frame2: misuro la tensione di base Vb;
frame3: misuro la corrente di collettore Ic
frame4: misuro le tensioni sui 15 sense collector;
frame5: misuro la corrente di emettitore Ie;
frame6: misuro la tensione di emettitore Ve:
I frame 0, 1, 2, 3 utilizzano per il controllo dei source-meter gli stessi subVI visti in
alcuni capitoli precedenti che quindi non riporto nel particolare, ossia:
- Ke24xx Configure Source Volt/Cur Level.vi
- Ke24xx Enable/Disable Source Output.vi
- Ke24xx Enable/Disable Concurrent Meas..vi
- Ke24xx Read.vi
Inoltre nelle due strutture di controllo dei source meter verrà sempre utilizzata
l’opzione 4wires.
Nel frame4 per eseguire la lettura sequenziale dei 15 canali utilizzo opportuni VI di
controllo del Ke2700 : i VI utilizzati per questo multimetro, diversi da quelli visti per
i multimetri Ke2000, verranno visti nei successivi sottoparagrafi.
Nei frame 4 e 5 utilizzo invece i subVI dei multimetro Ke2000 nello stesso modo
visto nel capitolo 5.
Riassumendo, andremo a testare il nostro dispositivo seguendo questo schema di
collegamento:
198
199
Complessivamente si ottiene il seguente front panel:
In questa figura si possono notare tutti i controllori e gli indicatori visti più volte per
il controllo degli strumenti. Inoltre analogamente ad ogni libreria vista nei vari
capitoli precedenti, è presente un pulsante di stop per interrompere l’esecuzione del
programma,che può essere pure interrotta in caso di eventuali errori senza perdere i
dati fin lì acquisiti.
200
11.3.1 KE2700 Set Channel List.vi
Connector Pane
Questo subVI specifica attraverso la variabile di ingresso channel list i canali della
card posta sul pannello posteriore del multimetro Ke2700.
11.3.2 KE2700 Configure Multi-Point.vi
Connector Pane
Questo subVI configura i parametri per la lettura “miltichannel”. Le variabili che
utilizza sono le seguenti:
Controls and Indicators
instrument handle questo controllo accetta in ingresso l’ Instrument Handle rirornato dal modulo
Initialize .vi
trigger count Definisce il numero di eventi di trigger da aspettare.
sample count Definisce il numero di misure da effettuare ad ogni evento di trigger
sample trigger Definisce il tipo di trigger da usare, nel nostro caso immediato
sample interval (sec) Definisce il delay fra una lettura ed una successiva
error in (no error) controllore tipo error cluster
instrument handle out questo indicatore verrà usato in ingresso in ogni successiva funzione
error out indicatore tipo cluster che segnale eventuali errori in uscita allo strumento.
11.3.3 KE2700 Read Multi-Point.vi
Connector Pane
Questo subVI esegue una lettura sequenziale dei canali.
201
La variabile actual number of points corrisponde al numero di grandeze da leggere, nel
nostro caso 15, mentre maximum time (ms) rappresenta il tempo massimo lasciato al
multimetro per compiere la lettura, nel nostro caso sarà il valore di default 5000ms.
11.4 Elaborazione dei dati del “testchip”
Come è già stato spiegato nel primo paragrafo, essendo questa non una singola
misura, ma un insieme di misure specifiche, si sono voluti automatizzare solo gli
aspetti più comuni e più ripetitivi. Con la precedente libreria vengono acquisite tutte
le tensioni e le correnti accessibili esternamente al chip; è opportuno allora elaborare
i dati con due tipi di grafici: nel primo visualizzerò in uno stesso grafico l’andamento
delle 15 tensioni di sense collector in funzione della tensione Vce per una data
corrente di base Ib e temperatura, in un altro in cui visualizzo in funzione di Vce e di
Ib la tensione su un singolo canale di sense.
Il primo script VBA che è stato scritto è il seguente:
Sub Vcsx()
Charts.Add
ActiveChart.ChartType = xlLineMarkers ‘Seleziono il tipo di grafico da plottare
ActiveChart.SetSourceData Source:=Sheets("Vcsx -40°C 2C-C 0,25CGND").Range("D60"), PlotBy _ ‘Definisco su quale foglio reperire i dati
:=xlRows ‘Visualizzo i dati per righe
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = "='Vcsx -40°C'!R3C5:R3C19"
ActiveChart.SeriesCollection(1).Name = "=""Ib=-1mA Vce=-0,30V"""
ActiveChart.SeriesCollection(2).Values = "='Vcsx -40°C'!R4C5:R4C19"
ActiveChart.SeriesCollection(2).Name = "=""Ib=-1mA Vce=-0,25V"""
ActiveChart.SeriesCollection(3).Values = "='Vcsx -40°C'!R5C5:R5C19"
ActiveChart.SeriesCollection(3).Name = "=""Ib=-1mA Vce=-0,20V"""
ActiveChart.SeriesCollection(4).Values = "='Vcsx -40°C'!R6C5:R6C19"
ActiveChart.SeriesCollection(4).Name = "=""Ib=-1mA Vce=-0,15V"""
ActiveChart.SeriesCollection(5).Values = "='Vcsx -40°C'!R7C5:R7C19"
ActiveChart.SeriesCollection(5).Name = "=""Ib=-1mA Vce=-0,10V"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Vcsx -40°C 2C-C 0,25CGND"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Vcsx -40°C 2C-C 0,25C-GND" ‘Titolo del grafico
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
202
Vcsx -40°C 2C-C 0,25C-GND
0,003
0,0025
0,002
Ib=-4mA Vce=-0,30V
Ib=-4mA Vce=-0,25V
0,0015
Ib=-4mA Vce=-0,20V
Ib=-4mA Vce=-0,15V
Ib=-4mA Vce=-0,10V
0,001
0,0005
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15
Il risultato di un’esecuzione di
questo script è riportato a
fianco. L’operatore per
riutilizzare questo script dovrà
semplicemente cambiare le
label e i dati sorgenti quando
necessario: esempio
R7C5:R7C19 seleziona la
colonna che individua le celle
E7…E19 (R=riga,
C=Colonna), per riutilizzare
questo script basterà cambiare
queti valori.
L’altro script utilizzato è il seguente:
Sub SingleChannel()
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth ‘Seleziono il tipo di grafico da plottare
ActiveChart.SetSourceData Source:=Sheets("Vcs7 -40°C 0,25C-GND").Range("J3") _
, PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='Vcs7 -40°C 0,25C-GND'!R3C7:R22C7" ‘Valori inX
ActiveChart.SeriesCollection(1).Values = "='Vcs7 -40°C 0,25C-GND'!R3C8:R22C8" ‘Valori in Y
ActiveChart.SeriesCollection(1).Name = "=""Ib = -1 mA"""
ActiveChart.SeriesCollection(2).XValues = "='Vcs7 -40°C 0,25C-GND'!R25C7:R44C7"
ActiveChart.SeriesCollection(2).Values = "='Vcs7 -40°C 0,25C-GND'!R25C8:R44C8"
ActiveChart.SeriesCollection(2).Name = "=""Ib = -2 mA"""
ActiveChart.SeriesCollection(3).XValues = "='Vcs7 -40°C 0,25C-GND'!R47C7:R66C7"
ActiveChart.SeriesCollection(3).Values = "='Vcs7 -40°C 0,25C-GND'!R47C8:R66C8"
ActiveChart.SeriesCollection(3).Name = "=""Ib = -3 mA"""
ActiveChart.SeriesCollection(4).XValues = "='Vcs7 -40°C 0,25C-GND'!R69C7:R88C7"
ActiveChart.SeriesCollection(4).Values = "='Vcs7 -40°C 0,25C-GND'!R69C8:R88C8"
ActiveChart.SeriesCollection(4).Name = "=""Ib = -4 mA"""
ActiveChart.SeriesCollection(5).XValues = _
"='Vcs7 -40°C 0,25C-GND'!R91C7:R109C7"
ActiveChart.SeriesCollection(5).Values = "='Vcs7 -40°C 0,25C-GND'!R91C8:R109C8"
ActiveChart.SeriesCollection(5).Name = "=""Ib = -5 mA"""
ActiveChart.Location Where:=xlLocationAsObject, Name:= _
"Vcs7 -40°C 0,25C-GND"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Vcs7 -40°C 0.25-GND"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Vce"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "V1"
End With
203
End Sub
Il risultato di un uso di questo script è il seguente:
Vcs7 -40°C 0.25-GND
0,003
0,0025
0,002
V1
0,0015
0,001
0,0005
0
-1,5
-1
Ib = -1 mA
Ib = -2 mA
Ib = -3 mA
Come per l’altro tipo di
grafico, l’operatore per
riutilizzare questo script dovrà
semplicemente cambiare le
labels e i dati sorgenti quando
necessario.
Ib = -4 mA
Ib = -5 mA
-0,5 -0,0005 0
Vce
11.5 SOMMARIO
In questo ultimo capitolo è stata realizzata una libreria Labview in grado di
automatizzare gli aspetti più comuni e ripetitivi di un particolare dispositivo, un “bjt
multicollettore”. È stata vista la costruzione del block diagram facendo riferimento a
quelle già sviluppate nei precedenti capitoli, salvo specificare come è stato realizzato
il controllo di un nuovo strumento, il Keithley2700.
Sono stati creati due script che consentissero all’operatore l’elaborazione dei dati
stessi, in particolare con la creazione in automatico di due tipi di grafici comuni nelle
varie misure.
204
CONCLUSIONI
In questa tesi si è studiata e sviluppata una metodologia ed un programma che
consente di effettuare in modo del tutto automatico una serie di test e misure sui
regolatori di tensione. In un primo tempo si sono visti e confrontati le due categorie
di regolatori di tensione, gli switching converter ed i linear regulator; sono state poi
viste le caratteristiche principali del software che ho utilizzato per l’implementazione
automatica dei test, ossia Labview: questo linguaggio è diventato negli ultimi anni il
più utilizzato e versatile per il controllo remoto degli strumenti di misura. Inoltre è
stata sfruttata la possibilità di iterazione di questo linguaggio con altri software: in
particolare, sono stati sviluppati dei programmi in Visual Basic per Microsoft Excel
che, eseguiti automaticamente al termine dell’acquisizione delle misure, completino
l’automazione dei test, rendendo così automatica la realizzazione di report.
Quindi è stato presentato per gradi lo sviluppo di ogni libreria, partendo dalla
creazione di subVI che implementano particolari funzioni sugli strumenti di misura,
fino alla creazione degli script Visual Basic per Microsoft Excel che completano
l’automazione dei test stessi.
Sono state sviluppate librerie in grado di testare le caratteristiche principali
dei regolatori di tensione: abbiamo creato librerie che ne verificano il comportamento
in seguito a variazioni del carico o dell’alimentazione (Load, Line Regulation e
Dropout) o nella simulazione di imprevisti nel modo di funzionamento (Termal
shutdown e Current limiting); è stata poi sviluppata una libreria per i test in
automatico della tensione di bandgap il cui valore viene preso come riferimento in
tutta la circuiteria interna al dispositivo, ed una libreria che analizza come un
eventuale disturbo in ingresso al regolatore si ripercuote in uscita (Power Supply
Rejection Ratio).
Infine sono state sviluppate due librerie utili per la progettazione e la
simulazione di questi dispositivi: una libreria è in grado di misurare, al variare della
frequenza e temperatura, la “resistenza equivalente serie” di un condensatore (ESR),
valore importane ai fini della stabilità, mentre l’ultima libreria esegue il test del
componete comune in tutti i regolatori lineari, il pass-transistor.
Ricordiamo che la maggior parte dei test presentati richiedono alcune ore di
esecuzione in quanto comprendono tutta una serie di misure che devono essere
ripetute all’interno di un ciclo termico (-40 +150 °C), ma grazie al grado di
automazione che queste librerie offrono, all’operatore non resta che collegare il
circuito al banco di prova ed impostare opportunamente la librerie: al termine
dell’esecuzione del programma Labview, i dati acquisiti saranno già elaborati e
salvati con il software Excel. In più, se durante l’esecuzione del programma si
verificassero errori nella comunicazione o sugli strumenti di misura, all’interno delle
librerie sono previsti dei controlli che interrompono il test, rendendo comunque
disponibili i dati fin lì raccolti.
In conclusione, riteniamo che l’insieme di quanto visto e sviluppato all’interno di
questa tesi rappresenti un valido strumento per condurre automaticamente test pure
su altri e futuri dispositivi, sfruttando la versatilità che un linguaggio come Labview
ci offre.
205
206
Interfaccia GPIB
Appendice A: interfaccia GPIB
A.1 Introduzione
Sviluppata come interfaccia per strumentazione da una delle maggiori Case
costruttrici di apparecchiature di misura che la denominò HP-IB (Hewlett-Packard
Interface Bus), è stata successivamente approvata dall’ IEEE (Institute of Electrical
and Electronic Engineers) con la denominazione IEEE-488. Questo standard è oggi
applicato ad un grande numero di sistemi digitali diversi, quali memorie di massa,
stampanti, plotter, elaboratori oltre a strumenti di misura, tanto che esso è sovente
indicato con l'acronimo GPIB (General Purpose Interface Bus).
A.2 Struttura
L'interfaccia IEEE-488 prevede 16 linee che costituiscono il bus: ad esso
possono essere collegate N apparecchiature (device) anche diverse purché
compatibili con questo standard. Lo scambio dei dati, codificati di solito in codice
ASCII e trasferiti in formato bit parallelo byte seriale, avviene secondo un protocollo
rigidamente definito (handshake) che stabilisce la sequenzialità e le modalità del
colloquio fra i vari dispositivi collegati.
Nella seguente figura è illustrato un esempio di sistema comprendente più
apparecchiature predisposte con interfaccia IEEE-488.
207
Interfaccia GPIB
Il sistema di comunicazione definisce gerarchicamente le apparecchiature
collegate in base alle funzioni svolte in quell’istante, che sono essenzialmente le
seguenti:
• Talker ,riferita ad un dispositivo predisposto per inviare messaggi sul
bus;
• Listener, riferita ad un'apparecchiatura predisposta per ricevere messaggi;
• Controller, riferita all'apparecchiatura designata per inizializzare o
variare la configurazione del sistema.
Ad esempio, un multimetro si comporta da Listener nella fase di setup,
mentre da Talker quando ritorna i dati, così spesso è individuato come Talker/
Listener.
Nella fase di inizializzazione tutto il sistema è gestito dal controller, esso
indica alle varie apparecchiature la funzione che debbono svolgere fissando così le
modalità di accesso al bus.
In fase di trasmissione dati, il colloquio avviene solo fra il talker attivo e i
listener mentre il controller può intervenire solo per modificare le funzioni svolte da
ciascuna apparecchiatura.
208
Interfaccia GPIB
Il bus di interfaccia (vedi figura) comprende il bus dati di tipo bidirezionale, a
8 linee individuate dalle sigle D10l, D102,..., D108; su di esso viaggiano sia i byte
che costituiscono i dati, che interessano il dispositivo talker e i dispositivi listener
attivi, sia i messaggi di comando, che possono riguardare l'intero sistema o solo
alcuni suoi elementi.
Altre linee sono destinate all'invio dei segnali di handshake che controllano il
trasferimento dei dati; la linea DAV (Data Valid) segnala ad esempio la validità di un
dato posto sul bus e la linea NRFD (Not Ready For Data) indica, quando è attiva, la
non disponibilità di uno o più dispositivi listener ad accettare un dato.
Sono infine previste cinque linee di controllo utilizzate per funzioni di tipo
generale quali il reset del sistema prima di procedere ad una riconfigurazione di esso
(IFC: Interface Clear) o la richiesta di servizio (SRQ: Service Request) da parte di
un'apparecchiatura che viene a trovarsi in uno stato anomalo o ha dati da trasferire.
Un'apparecchiatura non deve necessariamente essere collegata a tutte le linee:
sono indispensabili solo quelle dei dati e quelle di handshake, mentre per le linee di
controllo la scelta spetta al progettista che decide in base alla struttura del sistema,
alle esigenze previste e alle potenzialità di ciascuna apparecchiatura.
Per
effettuare
l'inizializzazione
e
la
programmazione
delle
apparecchiature collegate
con l’interfaccia IEEE488 o per inviare comandi
ad esse è prevista una
serie di messaggi codice.
Essi vengono inviati sul
bus
dati
e
contemporaneamente
viene attivata la linea
controllo
ATN
(Attention); con ciò il
messaggio
è
correttamente interpretato
come un comando. Ad esempio, il codice 00111111 (3F) presente sul bus, quando la
linea ATN è bassa disattiva tutti i listener definiti. Il codice 00XXXXX viene invece
utilizzato per inizializzare un dispositivo, identificato dall'indirizzo XXXXX, alla
funzione di listener, poiché i bit indirizzo sono cinque, si possono indirizzare 31
apparecchiature (l'indirizzo 11111 è riservai per eventuali espansioni).
Per quanto riguarda le specifiche elettriche relative allo standard IEEE-488 si
può osservare che la corrispondenza fra stati logici e livelli elettrici è definita in
logica negativa e che i livelli di tensione e corrente sono quelli TTL. Pertanto allo
stato logico 0 corrisponde una tensione compresa fra 2 e 5 V mentre lo stato logico 1
è rappresentato da una tensione inferiore a 0,8 V. I line driver utilizzati sono
generalmente di tipo tri state; fanno eccezion alcune linee che per la loro specifica
funzionalità devono essere connesse in OR-cablato e presentano pertanto l'uscita a
209
Interfaccia GPIB
collettore aperto. I line receiver infine sono di solito realizzai con ingresso a trigger
di Schmitt al fine di ottenere una maggiore immunità ai disturbi.
La velocità di trasmissione massima consentita (data rate) dipende, oltre che
dai line driver utilizzati, anche dalla lunghezza del cavo di collegamento e dalle
distanze relative delle varie apparecchiature collegate. Il massimo data rate ammesso
di 1 Mbyte/s richiede ad esempio che il cavo sia di lunghezza inferiore a 15 metri
con un carico ogni metro e che tutte le apparecchiature collegate siano accese. I cavi
di collegamento sono tipo Amphenol Champ oppure Cinch Series 57 Micro Ribbon.
A.3 Polling
C’è una linea, SRQ (service request) che se attivata deve interrompere tutte le
attività in corso: ad esempio questo succede quando manca la carta in una stampante
o quando uno strumento presenta un errore (overload, overrange…). Perciò quando
la linea SRQ è bassa, il controller deve essere in grado di identificare la causa
dell’interrupt e questo processo è chiamato polling.
Il controller può realizzare il polling in due diferenti modi: parallel polling e
serial polling.
Parallel polling può essere implementato al massimo con otto strumenti
poiché ogni strumento ritorna un status bit in una delle otto linee dati. Il controller
inizializza un parallel polling ponendo a livello basso le linee ATN e EOI, e gli
strumenti rispondono col il bit-status permettendo così l’identificazione.
Il serial polling è un più flessibile rispetto al parallel polling ma ma richiede
più tempo per essere completato. In questo sistema il controller invia ad ogni
dispositivo un comando di serial poll ed ogni strumento risponde con otto bit di
informazione di stato; quando il controller ha comunicato con tutti gli strumenti,
ripristina il bus e gli strumenti stessi in normal mode.
Confrontando i due metodi, si può notare come il serial polling sia più
flessibile del Parallel polling poiché per ogni strumento si ricevono otto bit di
informazione di stato, ma, come ovvio, a scapito della velocità poiché devono essere
passati tutti gli strumenti per scoprire chi ha attivato la linea di SRQ.
A.4 Sommario
L’ interfaccia GPIB è ormai disponibile da oltre trent’anni ma a dispetto
dell’età, è ancora un valido strumento nelle applicazioni industriali.
Tale bus è stato subito impiegato nella connessione tra computer e strumenti
anche non HP, per la sua elevata velocità massima nel trasferimento dei dati (fino a
1Mbyte/sec), lo standard successivamente è stato ridefinito con il nome “IEEE
488.1” (per brevità, “488.1”). Esso stabilisce le caratteristiche fisiche del bus di
collegamento e descrive una serie di funzioni di interfaccia che i costruttori devono
implementare sui dispositivi perché questi possano utilizzare il bus nella trasmissione
dei dati. La documentazione corrispondente elenca quindi tutti i comandi utilizzabili
210
Interfaccia GPIB
sul bus per il controllo del sistema di interfaccia e la gestione della trasmissione dei
dati.
Nello standard 488.1 le funzioni di interfaccia sono chiaramente distinte dalle
funzioni svolte dai dispositivi; i costruttori sono liberi di implementare queste ultime
a loro discrezione utilizzando, per il comando dei dispositivi, opportune istruzioni
inviate sul bus, le quali possono variare a seconda del dispositivo specifico.
Una successiva revisione dello standard ha avuto come risultato una nuova
versione dello stesso, denominata IEEE 488.2. In tale nuovo insieme di norme, sono
definiti anche i protocolli per la comunicazione tra i dispositivi e l’host, il formato
della trasmissione dei dati sul bus ed infine sono fornite utili linee guida alla
programmazione dei dispositivi. A tale proposito si ricorda la presenza delle
indicazioni fornite dal consorzio SCPI (Standard Commands for Programmable
Instruments), le quali sono perfettamente compatibili con le norme dello standard
488.2. Le indicazioni fornite da SCPI riguardano la sintassi e il significato associato
ai comandi scambiati tra host strumenti.
Lo standard GPIB resta quindi il più diffuso per la comunicazione pcstrumenti e data la sua versatilità e convenienza resterà ancora in uso per molti anni.
211
Appendice B: Interfaccia seriale RS-232
B.1 INTRODUZIONE
La porta seriale è il più diffuso mezzo di comunicazione fra un computer ed
una periferica, ad esempio uno strumento oppure un altro computer. Dato che la
porta seriale consente di trasmettere e ricevere dati un bit alla volta, vi è solo una
linea a disposizione per la trasmissione dati,ed è largamente usata quando la velocità
non è un parametro importante.
L’uso della porta seriale è così diffuso poiché ogni computer ne ha almeno
una e quindi non è necessario installare ulteriore hardware per comunicare con
alcune periferiche.
I parametri in una porta seriale sono:
q
q
q
q
il Baud rate della trasmissione, i bit dato (trasmessi dal LSB al MSB),
il bit di parità,
il bit di start,
stop (1 o 2 bit).
Verranno presentate le caratteristiche principali della porta seriali RS-232 che
è stata utilizzata per interfacciare il pc al microcontrollore della cellla termica.
B.2 Caratteristiche dell’interfaccia seriale RS-232
R-S232 è lo standard per la trasmissione seriale definito dall’ EIA nel 1969
che caratterizza l’interfaccia per l’interconnessione tra un dispositivo digitale
(computer o terminale), identificato dalla sigla DTE (Data Terminal Equipment), e il
dispositivo per l’accesso alla rete telefonica (modem), associato alla sigla DCE (Data
Communication Equipment).
Questo standard supporta la trasmissione asincrona su linee dedicate, affittate,
commutate o private, in configurazione punto punto o multipunto, su due o quattro
fili, con modalità simplex, half duplex, full fuplex tra apparecchiature che hanno un
collegamento comune a massa. La velocità massima consentita è 115000 bps (Bit Per
Secondo). Il cavo di collegamento DTE-DCE non può superare i 15 metri.
L’aumento di lunghezza è consentito a patto che la capacità complessiva per circuito
rimanga al di sotto dei 2500 pF, pena la riduzione della velocità di trasmissione.
L’interfaccia fisica è costituita da un connettore del tipo DB25 generalmente
maschio.
Per particolari applicazioni su PC, collegamenti di mouse o di
microterminali, sono stati disposti connettori di dimensioni ridotte, a 9 poli (DB9).
Secondo lo standard, il connettore femmina deve essere disposto sulla porta del DCE
mentre il connettore maschio deve essere posto sul DTE.
B.2.1 Pinout DB25
•
•
•
•
•
•
•
•
•
•
•
MASSA, pin 1, massa di protezione
TXD, pin 2, (Trasmission Data), trasmissione dati dal
DTE al DCE
RXD, pin3, (Recieve Data), ricezione dati dal DCE al
DTE
RTS, pin 4, (Request to Send), disponibilità a trasmettere
dal DTE al DCE
CTS, pin 5, (Clear to Send), consenso alla trasmissione
dal DCE al DTE
DSR, pin 6, (Data Set Ready), indica che il DCE ha
terminato la fase di test ed è pronto a ricevere I dati dal
DCE al DTE
GND, pin 7, schermatura cavo
CD, pin 8, (Carrier Detect), il DCE riceve correttamente
la portante dalla linea
Pin 9…15, non collegati
DTR, pin 20, (Data Terminal Ready), indica che il DTE è
pronto sia per ricevere che trasmettere dati dal DTE al
DCE
RI, pin 22, (Ring Indicator), indica la presenza sulla linea
del segnale di chiamata
B.2.2 Pinout DB9
•
•
•
•
•
CD, pin 1, (Carrier Detect), il DCE riceve correttamente
la portante dalla linea
RXD, pin2, (Recieve Data), ricezione dati dal DCE al
DTE
TXD, pin 3, (Trasmission Data), trasmissione dati dal
DTE al DCE
DTR, pin 4, (Data Terminal Ready), indica che il DTE è
pronto sia per ricevere che trasmettere dati dal DTE al
DCE
GND, pin 5, schermatura cavo
213
Interfaccia RS232
•
•
•
•
DSR, pin 6, (Data Set Ready), indica che il DCE ha
terminato la fase di test ed è pronto a ricevere I dati dal DCE al DTE
RTS, pin 7, (Request to Send), disponibilità a trasmettere dal DTE al DCE
CTS, pin 8, (Clear to Send), consenso alla trasmissione dal DCE al DTE
RI, pin 9, (Ring Indicator), indica la presenza sulla linea del segnale di
chiamata
Le caratteristiche elettriche dell’interfaccia RS232 sono riferiti a massa
comune, e fanno riferimento al punto di interfaccia. Le grandezze significative sono
riportate di seguito:
•
•
•
•
•
•
•
VO: tensione del driver a vuoto;
RO: resistenza del driver a vuoto;
CO: capacità equivalente del driver misurata al punto di interfaccia;
VI: tensione al punto di interfaccia;
CL: capacità equivalente del ricevitore misurata al punto di interfaccia;
RL: resistenza di carico del ricevitore;
EL: tensione del ricevitore a circuito aperto.
Un generico segnale può trovarsi in due condizioni, “mark” e “space”. Le
tensioni corrispondenti sono comprese tra –3V e –15V equivalenti a 0V di GND in
un livello TTL per la prima; tra +3V e +15V equivalenti ai 5V di Vcc in un livello
TTL per la seconda. L’intervallo compreso tra –3V e +3V rappresenta una zona di
incertezza. Per le linee di dati la condizione mark va intesa come “1” logico, quella
di “space” come “0” logico. Per gli altri segnali di temporizzazione e controllo, la
condizione “mark” viene definita come non attiva (OFF), quella space come attiva
(ON).
Il driver è in grado di sopportare sia un circuito aperto che un cortocircuito
con qualsiasi altro segnale, compresa la massa. Il DCE deve sopportare tensioni in
entrata con un massimo di 25V. La resistenza interna del DCE può variare tra 3KΩ e
7KΩper una tensione al punto di interfaccia tra 3V e 25 V. La capacità equivalente
del ricevitore (DTE) CL non deve superare 2500pF. L’impedenza complessiva del
ricevitore non deve avere componenti induttivi.La tensione a vuoto di polarizzazione
del ricevitore, EL, deve essere compresa tra –2V e +2V.La resistenza d’uscita RO del
driver non deve superare i 300Ω mentre la sua tensione deve risultare minore o
uguale a 25V.
Lo standard RS232 supporta due tipi di trasmissioni, sincrona e asincrona.
Quest’ ultima è la più usata perché più economica e supportata dalla maggior parte
dei PC.A differenza della trasmissione sincrona, la trasmissione asincrona non
necessita di particolari accorgimenti per sincronizzare i due dispositivi collegati, per
questo è anche meno costosa è però meno veloce infatti il flusso di dati non è
continuo a causa della presenza dei bit di controllo.
Analizziamo cosa avviene quando si deve trasferire un byte da un DTE ad un
DCE. In assenza di trasmissione la tensione sulla linea è di –12V che corrisponde ad
un livello logico “1”.Per avvisare il DCE che sta per avvenire la trasmissione, il DTE
porta la tensione della linea a +12V (livello logico “0”) per un tempo t pari
all’inverso della velocità di trasmissione (1/bps). A questo punto il DCE è pronto a
214
ricevere gli 8 bit del byte che vogliamo trasmettere, partendo da quello meno
significativo al più significativo.
Alla fine della trasmissione, dal DTE viene inviato il bit di stop. Quest’ultimo
ha un livello di tensione di -12V ed una durata di circa 1,5 – 2 volte il bit di start
questa differenza è necessaria per far in modo che il DCE o ricevitore non confonda
questo bit con quelli dei dati precedentemente trasmessi.
Nel grafico il bit di START ha una durata di 1/9600 = 0.104 ms questo perché
viene presa una velocità di trasmissione di 9600bps. Le impostazioni da effettuare
via software sono: Baud rate, Numero di BIT, Parità, Bit di stop.
L'impostazione Baud rate serve per indicare la velocità di trasmissione dei
bits. La velocità minima consentita è di 300 bps fino ad un massimo di
115.000bps.L'impostazione Numero di BIT consente di scegliere se inviare tutti gli 8
bit del carattere da trasmettere, o escludere l'ultimo inviando quindi solo 7 bit. Se si
adopera quest'ultima modalità, non potranno essere inviati caratteri con valore
superiore a 127 (7Fh). Se si tenta di inviare caratteri con valore superiore a 127
usando la modalità a 7 bit, il bit più significativo non verrà inviato.
Con l'opzione Parità, è possibile aggiungere ad ogni invio di carattere un bit
che indica se il numero di bit a 1 del carattere è pari o dispari. Questa soluzione
consente di individuare eventuali errori di trasmissione dovuti a disturbi di linea.
L'impostazione Bit di stop serve per indicare il numero di bit di Stop da
inserire in coda ad ogni invio di carattere. Questi servono per marcare la fine del
treno di bit del carattere. Le possibili opzioni di scelta sono: 1 - 2 - 1,5.
215
Appendice C : Camera Termostatica “Angelantoni CH60T”
C.1 Caratteristiche tecniche
Volume utile
Campo di temperatura
Precisione (± °C)
Alimentazione
Assorb. elettrico nominale
Potenza nominale
Potenza impegnata
Gas refrigerante
Dimensioni esterne
Dimensioni interne utili
Peso
Grado di rumorosità massima
Massima velocità di variazione di
temperatura da –40 a +180 °C
Massima velocità di variazione di
temperatura da +180 a –40 °C
60 litri
-40 / +180 °C
0,3 °C
230V 50 Hz
6,3 A
1,4 Kw
2,3 Kw
R404A
550 X 875 X 1150 mm
350 X 340 X 500 mm
180 Kg
60 dB
2,5 °C/min
1,0 °C/min
C.2 Struttura dei registri del microcontrollore
MEAS: ARRAY OF 32 SINGLES
CTRL: ARRAY OF 16 INTEGER
216
CNTC: ARRAY OF 48 INTEGER
WRCSET: ARRAY OF 6 SINGLES
WRCSLP: ARRAY OF 6 SINGLES
WRCTRL: ARRAY OF 16 INTEGER
WRCNTC: ARRAY OF 48 INTEGER
217
ALARM: ARRAY OF 96 INTEGER
PRGM: ARRAY OF 120 INTEGER
218
Appendice D: regolatore di tensione TLE 4270
219
220
221
222
223
224
225
226
227
228
229
BIBLIOGRAFI A
[1] P.R. Gray and R.G. Meyer, Analysis and design of Analog Integrated Circuits .......... 8
[2] Bob Widlar, New Developments in IC Voltage Regulator, IEEE Journal of Solid
State Circuits, Vol. SC-6, Ferbruary, 1971 ................................................................. 135
[3] Pal Brokaw, A Simple Three-Terminal IC Voltage Regulators, IEEE Journal of
Solid State Circuits, Vol. SC-9 December, 1974 ........................................................ 137
[4] J.Millman and A. Grabel, Microelectronics ................................................................ 26
[5] A.Grebene, Bipolar and Mos Analog Integrated Circuit Design .............................. 147
231
Fly UP