Capitolo1 Premesse e requisiti del progetto

Indice
Tabella Acronimi .......................................................................................................................5
Introduzione................................................................................................................................7
Capitolo1 .......................................................................................................................................9
Premesse e requisiti del progetto.................................................................................................9
1.1 Premessa..........................................................................................................................9
1.2 Specifiche tecniche del progetto....................................................................................10
1.3 Requisiti del software ...................................................................................................10
1.4 Requisiti particolari dell'hardware.................................................................................11
1.5 Scelte effettuate.............................................................................................................11
1.5.1 Il micro controllore................................................................................................12
1.5.2 Come ottenere il segnale di uscita........................................................................13
1.5.3 Conversione da digitale ad analogico del segnale pwm........................................14
1.5.4 La retroazione........................................................................................................19
1.5.5 Normalizzazione dei segnali in ingresso al micro controllore...............................20
1.5.6 Struttura del software.............................................................................................23
Capitolo2 .....................................................................................................................................27
Struttura e funzionamento del sistema......................................................................................27
2.1 Introduzione...................................................................................................................27
2.2 Suddivisione dei circuiti................................................................................................27
2.3 Diagrammi a blocchi.....................................................................................................28
2.4 Diagramma a blocchi della scheda di segnale...............................................................28
2.4.1 Ingressi di comando...............................................................................................30
2.4.2 Normalizzazione....................................................................................................32
2.4.3 Normalizzazione tensione di uscita.......................................................................32
2.4.4 Normalizzazione della corrente misurata..............................................................34
2.4.5 Normalizzazione del sensore di temperatura.........................................................35
2.4.6 Protezione degli adc ..............................................................................................36
2.4.7 Filtro attivo e bypass:.............................................................................................38
2.4.8 OSC:......................................................................................................................40
2.4.9 Comandi AUX:......................................................................................................40
2.4.10 ICP:......................................................................................................................41
2.5Diagramma a blocchi della scheda di potenza...............................................................42
2.5.1 Transistor di bypass...............................................................................................43
2.5.2 Filtro e Shunt.........................................................................................................44
2.5.3 Parti accessorie......................................................................................................45
Capitolo3 .....................................................................................................................................47
Il software di gestione...............................................................................................................47
3.1 Introduzione...................................................................................................................47
3.2 Gestione del pwm..........................................................................................................51
3.3 Variabili di sistema .......................................................................................................55
3.4 Lettura dagli adc............................................................................................................56
3.5 Scandire il tempo con l' interrupt..................................................................................57
3.6 Inizializzazione delle variabili di sistema.....................................................................58
3.7 Configurazione porte ingresso uscita............................................................................59
3.8 Anello di corrente..........................................................................................................61
3.9 Anello di tensione..........................................................................................................63
3.9.1 Commutazione secondari.......................................................................................63
1
3.9.2 Regolazione di tensione.........................................................................................64
3.9.3 Controllo Temperatura...........................................................................................66
3.10 Scrittura a display........................................................................................................67
Capitolo4 Dimensionamento dei componenti..............................................................................69
4.1 Dimensionamento componenti signal board.................................................................69
4.1.1 Dimensionamento delle resistenze accessorie degli operazionali usati nei processi
di feedback ......................................................................................................................69
4.1.2 Dimensionamento del filtro attivo.........................................................................71
4.1.3 Linee di alimentazione...........................................................................................73
4.1.4 Filtri livellamento..................................................................................................77
4.1.5 Resistenza di scarica dei condensatori...................................................................80
4.1.6 Condensatori di Bypass o disaccoppiamento........................................................81
4.1.7 Protezione adc........................................................................................................82
4.1.8 Transistor di bypass della scheda di segnale.........................................................84
4.2 Dimensionamento componenti power board.................................................................85
4.2.1 Transistor di potenza..............................................................................................86
Capitolo5 .....................................................................................................................................89
Realizzazione e collaudo...........................................................................................................89
5.1 Realizzazione del pcb....................................................................................................89
5.1.1 Realizzazione del master.......................................................................................89
5.1.2 Fotoincisione.........................................................................................................91
5.1.3 Foratura e stagnatura.............................................................................................93
5.2 Completamento del prototipo........................................................................................94
5.2.1 Verifiche e tarature...............................................................................................94
5.3 Test di funzionamento...................................................................................................96
5.3.1 Qualità della Forma d'onda in uscita ....................................................................97
5.3.2 Prove termiche.....................................................................................................101
5.3.3 Test di protezione da sovracorrenti......................................................................102
5.4 Analisi dei costi...........................................................................................................104
Conclusioni.............................................................................................................................108
Bibliografia.............................................................................................................................109
2
Indice figure
Figura 1: Struttura del sistema senza retroazione...............................................................................13
Figura 2: Segnale pwm generato dal micro........................................................................................15
Figura 3: Spettro del segnale pwm generato dal micro......................................................................15
Figura 4: Scomposizione di un onda quadra tramite l'analisi di Fourier............................................16
Figura 5: Condizionamento del segnale generato dal micro..............................................................18
Figura 6:Schema di principio dei collegamenti tra ingressi e uscite .................................................20
Figura 7: Guadagni statici dei blocchi di condizionamento..............................................................22
Figura 8: Priorità degli anelli di regolazione......................................................................................24
Figura 9: Schema di principio dell'elaborazione dei segnali in ingresso............................................25
Figura 10: Schema di principio della struttura del software di comando...........................................25
Figura 11: Diagramma a blocchi della scheda di segnale..................................................................29
Figura 12: Schema elettrico dei collegamenti tra potenziometri e relativi adc..................................31
Figura 13: Diagramma a blocchi della scheda di potenza..................................................................42
Figura 14: Schema a blocchi delle linee di alimentazione.................................................................46
Figura 15: Piedinatura del PIC 16F877A...........................................................................................47
Figura 16: Diagramma dell'isteresi della misura della corrente........................................................62
Figura 17: Diagramma dell'isteresi del controllo di commutazione tra i secondari del trafo.............64
Figura 18: Diagramma dell'isteresi del controllo di tensione.............................................................65
Figura 19: Diagramma dell'isteresi dell'azionamento della ventola...................................................67
Figura 20: Cadute di tensione tra ingresso e uscita............................................................................73
Figura 21: Schema del regolatore di tensione lm7805.......................................................................74
Figura 22: Ripple sul filtro di livellamento........................................................................................78
Figura 23: Relè di scarica dei condensatori........................................................................................81
Figura 24: Diodo zener per la protezione degli adc...........................................................................83
Figura 25: Layout e disposizione componenti dei PCB.....................................................................90
Figura 26: Lato piste dei PCB............................................................................................................91
Figura 27:Principio di funzionamento della foto incisione ...............................................................92
Figura 28: PCB della signal board al termine del bagno nell'acido...................................................92
Figura 29: Stagnatura delle piste del PCB..........................................................................................93
Figura 30: Montaggio al banco dell'alimentatore...............................................................................96
Figura 31: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=0%...................97
Figura 32: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=20%..................98
Figura 33: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=40%..................98
Figura 34: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=60%..................99
Figura 35: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=80%..................99
Figura 36:Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=100%...............100
Figura 37: Grafico riscaldamento transistor finali............................................................................102
Figura 38: Grafico del test di velocità della risposta al cto. cto.......................................................103
Figura 39: Esempio di demoboard commerciale..............................................................................105
3
Indice tabelle
Tabella 1: Ingressi e uscite del sistema..............................................................................................19
Tabella 2: Acronimi delle linee di alimentazione del sistema............................................................28
Tabella 3: Descrizione dei blocchi costituenti la scheda di segnale...................................................30
Tabella 4: Corrispondenza tra ingressi e convertitori adc..................................................................31
Tabella 5: Corrispondenza tra tensione impostata e dc generato dal micro.......................................32
Tabella 6: Corrispondenza tra corrente impostata e limitazione di corrente......................................32
Tabella 7: Corrispondenza tra temperatura della sonda di temperatura e valore letto dall'adc..........35
Tabella 8: Risoluzione del pwm del pic 16F877A.............................................................................52
Tabella 9: Registro T2CON del PIC 16F877A..................................................................................54
Tabella 10: Registro CCP1CON del pic 16F877A.............................................................................55
Tabella 11: Registro adcO1 del pic 16F877A....................................................................................61
Tabella 12: Parametri del regolatore di tensione lm7805...................................................................74
Tabella 13: Prova riscaldamento transistor finali.............................................................................101
Tabella 14: Test della velocità di risposta al cto cto.........................................................................103
Tabella 15: Costo attrezzature necessarie.........................................................................................106
Tabella 16: Quantità e costo del materiale necessario per realizzare il prototipo............................107
Indice schemi
Schema 1: Schema elettrico del blocco di condizionamento della tensione misurata........................33
Schema 2: Schema elettrico del blocco di condizionamento della corrente misurata........................34
Schema 3:Schema elettrico del blocco di condizionamento della temperatura misurata ..................36
Schema 4: Schema elettrico della protezione dei convertitori analogico digitali...............................37
Schema 5: Schema elettrico del filtro attivo.......................................................................................39
Schema 6: Bypass del filtro attivo......................................................................................................39
Schema 7: collegamento delle porte del pic usate come interruttore digitale ..................................41
Schema 8: Schema elettrico del collegamento dei transistor di potenza............................................44
Schema 9: Filtro finale in uscita.........................................................................................................44
Schema 10: Schema elettrico della signal board................................................................................70
Schema 11: Schema elettrico della power board................................................................................85
4
Tabella Acronimi
Vimp : tensione impostata
dutyreg: variabile che regola il duty-cycle
all'interno del programma
Iimp: corrente impostata
temp: variabile temporanea usata all'interno del
programma
Vmis: corrente misurata
itoll: valore che definisce l'isteresi nella lettura
della tensione da parte del micro
Imis: corrente misurata sullo shunt
vtoll: valore che definisce l'isteresi nella lettura
della tensione da parte del micro
Vout: tensione tra positivo in uscita e massa
fpwm: frequenza del segnale pwm
Iout: corrente in uscita dai transistor di potenza
fc: frequenza di cut off
Vshunt: tensione ai capi dello shunt
ao: amplificatore operazionale
Vshunt': tensione normalizzata letta sullo shunt
fpwm frequenza del segnale pwm generato dal
pic
Kv: guadagno del circuito di condizionamento
adc: convertitore Analogico Digitale
della tensione misurata
Ki: guadagno statico del circuito di
dc: duty-cycle
condizionamento della tensione misurata
Kst: guadagno del circuito di condizionamento
Vpwm: valore medio della tensione del segnale
della sonda di temperatura
pwm
Kpwm: guadagno statico del filtro attivo
Vsk: tensione in uscita dal primo stadio del filtro
attivo
p-gnd: massa di potenza
Vsk*: tensione in uscita dallo stadio di
amplificazione del filtro attivo
s-gnd: massa di segnale
micro : micro controllore
Tfosch: periodo dell'oscillatore al quarzo
Fosc: frequenza dell'oscillatore al quarzo
5
6
Introduzione
Alla fine di un percorso formativo molto importante, quale gli studi in ingegneria, ogni studente
deve cimentarsi nella realizzazione di un progetto o di una ricerca, da tutti universalmente
conosciuto come “tesi di laurea”. Come molti altri prima di me, dopo attenta valutazione ho deciso
di sviluppare una tesi che potesse raggruppare il maggior numero possibile di conoscenze acquisite
durante tutto l'arco degli studi, questo per dare un senso e uno sbocco pratico a quanto imparato in
anni di studio. Come in ogni esperienza, sono stati incontrati innumerevoli problemi durante tutto la
durata del progetto, proprio a dimostrare che i concetti e le esperienze acquisite in anni, spesso e
volentieri, non sono sufficienti ad affrontare i problemi che la realtà ci pone. Il progetto che segue,
copre un vasto insieme di campi, molti propri dell'ingegneria elettrica, altri meno. I campi che sono
stati trattati, sono riassunti nei seguenti elenchi :
●
Elettronica generale (analogica e digitale)
●
Elettronica di potenza (convertitori)
●
Controlli automatici (sistemi retro azionati)
●
Elettrotecnica generale
●
Misure elettriche
●
Micro controllori e relativa programmazione
L'argomento scelto per la trattazione riguarda il progetto di un alimentatore stabilizzato gestito da
un micro controllore. Il lettore può immaginare questo dispositivo come una sorgente continua di
alimentazione, caratterizzata dal fatto di essere programmabile e gestita da un dispositivo digitale.
Una volta scelto, e impostato un valore di tensione, di corrente o entrambi, il dispositivo si occuperà
di raggiungere e mantenere il punto di funzionamento prestabilito, indipendentemente dalle
condizioni del carico che va ad alimentare. L'alimentatore è stato sviluppato da zero, sviluppando il
progetto a partire dalle idee preliminari, fino ad arrivare alla progettazione e alla realizzazione
pratica del dispositivo. Durante le fasi di sviluppo si è posta particolare attenzione ai seguenti
fattori, che sono poi stati quelli seguiti durante tutta la progettazione :
●
Costi contenuti
●
Modularità ed espandibilità
●
Robustezza del sistema di controllo
●
Semplicità di insieme, sia dal punto di vista hardware che software
7
L'alimentatore, come anticipato, permette sia la regolazione della tensione in uscita, che la
limitazione della corrente nel circuito esterno. Può inoltre funzionare indipendentemente sia come
sorgente di tensione che di corrente. E' auto protetto da sovra correnti e sovra temperature, può
essere inoltre collegato tramite interfaccia seriale a un PC. La connettività al computer è utile sia
per modificare il software a fini di sviluppo o semplicemente per migliorarne l'usabilità con
programmi scritti ad hoc. Il sistema dispone anche di un interfaccia dotata di un display LCD per
visualizzare i valori impostati e istantanei delle grandezze in uscita e di controllo. Per la
realizzazione del progetto ci siamo innanzi tutto trovati di fronte a due scelte progettuali
sostanzialmente diverse, una di tipo più conservativo, e una più innovativa ma ricca di incognite.
Nel primo caso si parlava di una soluzione tradizionale, costituita fondamentalmente da componenti
di tipo discreto e da integrati monolitici di uso comune. Tale strada pur garantendo ottimi risultati,
richiede l'uso di parecchia componentistica, necessaria per realizzare la retroazione che governa il
sistema, nonché le protezioni per garantirne il corretto funzionamento. Inoltre non utilizzando
elementi programmabili le eventuali modifiche o migliorie si devono tendenzialmente tradurre in
modifiche all'hardware del sistema, cosa che non giova all'espandibilità. Nel secondo caso era
possibile utilizzare una soluzione più attuale, costituita si da alcuni componenti discreti, ma
governata da un micro controllore. Il pregio di questa soluzione è che molte funzioni sono già
disponibili all'interno del micro, sia sotto forma di hardware che di software, riducendo il numero di
componenti necessario alla realizzazione di tutto il circuito. Utilizzando la seconda soluzione il
progetto deve prevedere un ulteriore parte, costituita dal software di gestione del dispositivo. Un
punto a sfavore di questa soluzione è che il micro non dispone di un uscita analogica, in quanto può
fondamentalmente lavorare solo su grandezze di tipo digitale. Per interfacciarsi quindi con l'esterno
è necessario un particolare sistema di condizionamento dei segnali digitali del micro. Ognuna delle
soluzioni sopracitate presenta pro e contro, è quindi stato deciso di adottare una soluzione ibrida che
raggruppi i pregi di ambedue le filosofie progettuali. Il progetto è organizzato in cinque capitoli.
Nel primo capitolo verrà trattata la scelta del micro controllore e il principio di funzionamento sul
quale si basa tutto il sistema. Verranno anche definite le specifiche che il sistema dovrà poter
garantire. Il capitolo due verrà dedicato al diagramma a blocchi dell'intero sistema e
al
funzionamento dettagliato delle singole parti. Il capitolo 3 verrà dedicato alla scrittura del software
di governo, mentre il capitolo 4 tratterà il dimensionamento di tutti i componenti del sistema.
Infine nel capitolo 5 verrà trattata la realizzazione pratica seguita dai test di funzionamento. Verrà
inoltre effettuata una breve analisi sui costi e sul tempo di realizzazione dell'intero dispositivo, in
quanto l'aspetto economico in ogni realizzazione è un fattore di fondamentale importanza.
8
Capitolo1
Premesse e requisiti del progetto
1.1
Premessa
Prima di addentrarci nella realizzazione del progetto, è necessaria una breve premessa introduttiva.
Innanzi tutto, perché utilizzare un micro controllore in una struttura solitamente governata da
regolatori monolitici privi di logica di controllo ? La risposta è, come anticipato nell'introduzione,
che utilizzando un micro controllore
nella gestione del dispositivo, è possibile migliorare la
struttura del sistema di controllo e dell'hardware complessivo del dispositivo. Volendo citare alcuni
tra i punti più significativi, potremmo dire che :
●
Internamente il micro dispone di vari dispositivi integrati necessari alla realizzazione
dell'alimentatore, (comparatori, moduli pwm, convertitori ADC...) che altrimenti andrebbero
realizzati utilizzando componenti discreti, o integrati, aggiuntivi, complicando ad esempio
sia la progettazione che il layout del PCB. Ciò riduce anche i tempi di sviluppo
dell'applicazione, in quanto non essendo necessario progettare, e testare, fisicamente alcune
parti, la realizzazione procede più velocemente.
●
Avere a disposizione un software di governo del sistema, fa in modo che sia possibile
intervenire su alcune grandezze del sistema via software, e non direttamente con scomode e
costose modifiche hardware. Un esempio banale è la modifica di una temporizzazione. In
un circuito di tipo convenzionale, senza logica, la modifica avviene modificando il valore di
alcuni componenti, al contrario, utilizzando un micro è sufficiente modificare un parametro
nel software.
●
Velocità. Le frequenze elevate alle quali tali dispositivi lavorano, permettono la
realizzazione di sistemi con elevate velocità di feedback ottenendo prestazioni non
raggiungibili con altri sistemi non “intelligenti” o di tipo convenzionale.
Esistono anche altri fattori che giustificano, e consigliano, l'uso di un micro, fattori che
incontreremo più avanti nel corso di questa trattazione. Indubbiamente l'uso di queste logiche
programmabili introduce un ulteriore variabile al sistema, costituita proprio dalla programmazione.
Uno scorretto o improprio uso degli ambienti di sviluppo del software può portare a soluzioni
completamente instabili, mal funzionanti e afflitte dai più svariati problemi. Sarà compito del
progettista analizzare quale soluzione rappresenta il miglior compromesso. Prima di iniziare la
9
progettazione vera e propria, è necessario definire quali saranno i requisiti
preliminari e le
specifiche che l'alimentatore dovrà poter garantire. Identifichiamo quindi i seguenti punti :
●
Specifiche del progetto
●
Requisiti dell'hardware e del software che dovranno garantire le specifiche di progetto
Durante la trattazione di questi punti, si andrà mano a mano a definire le scelte seguite durante tutto
l'arco della progettazione. In pratica i sopracitati punti, ossia specifiche e requisiti hardware e
software, possono essere tradotti nella seguente affermazione :
Cosa vogliamo ottenere, e in che maniera lo otterremo
1.2
Specifiche tecniche del progetto
Definiamo a questo punto le caratteristiche salienti che il dispositivo deve poter fornire:
●
Range di tensione in uscita variabile da 0 a 30V DC con elevata risoluzione
●
Possibilità di limitare e regolare la corrente in uscita da 0 a 10A
●
Regolazione di tensione, e della soglia di corrente, tramite comandi rotativi.
●
Alimentazione a 230V AC
●
Protezione da sovracorrenti in ingresso (tramite fusibile) e uscita (via software)
●
Protezione da sovra temperature per la parte di elettronica di potenza
●
Bassa tensione di ripple ai morsetti di uscita (entro l'1% della tensione di uscita)
●
Possibilità di interfaccia con l'esterno
●
Funzionamento sia come sorgente di tensione che di corrente
Essendo un progetto del tutto nuovo, alcune caratteristiche non sono state definite numericamente o
tecnicamente, di conseguenza verranno analizzate, migliorate o inserite durante tutta la fase di
sviluppo.
1.3
Requisiti del software
Il software di gestione del micro controllore deve essere scritto in modo chiaro e conciso. E'
necessario che sia ben commentato e possibilmente scritto in un linguaggio di alto livello, in modo
che chiunque possa comprenderlo e apportare eventuali modifiche. Bisogna assolutamente evitare
l'utilizzo di variabili inutili, cercare ove possibile di normalizzare le operazioni matematiche agendo
solamente su numeri interi. Questo punto è molto importante, in quanto i micro controllori in genere
sono pensati per lavorare al massimo delle loro capacità solo su numeri interni, l'introduzione
10
arbitraria e non giustificata di variabili in virgola mobile, l'eccessiva complessità del codice sono i
primi problemi da affrontare durante la scrittura del software. Inoltre bisogna limitare al minimo le
chiamate di interrupt e minimizzare il codice eseguito al loro interno. Per quanto riguarda le
variabili utilizzate, devono avere nomi che ne identifichino subito lo scopo, e per quanto possibile
bisogna utilizzare una o più variabili temporanee da utilizzare per salvare stati intermedi delle
operazioni, senza definire una variabile nuova per ogni operazione. L'utilizzo di variabili
temporanee minimizza il consumo di memoria ram, che nei micro controllori attuali è di esigue
dimensioni (si parla di capacità dell'ordine dei kbyte).
1.4
Requisiti particolari dell'hardware
L'hardware deve essere quanto più semplice possibile. Il numero di componenti utilizzati deve
essere il minimo possibile e di facile reperibilità. Un numero basso di componenti non è un indice di
cattiva progettazione, al contrario in un ottica attuale che volge alla massima ricerca del profitto, la
riduzione dei costi di produzione di un oggetto è un fattore di primaria importanza. Deve essere
prevista una minima espandibilità del sistema senza dover riprogettare da zero tutto il circuito (in
dettaglio si intende che i massimali di tensione e corrente erogata disponibili ai morsetti di uscita
possano essere aumentati entro certi limiti). Le parti di potenza devono essere separate da quelle di
segnale, le interfacce esterne devono essere di tipo standard e possibilmente non devono utilizzare
protocolli di comunicazione proprietari. I comandi, per semplificare al massimo la struttura,
andranno realizzati con potenziometri analogici multi giro, rispettivamente uno per la regolazione di
tensione e uno per la regolazione di corrente. Tale soluzione pur non essendo raffinata, risulta
robusta ed economica, anche alla luce del fatto che il PIC dispone di un buon numero di convertitori
analogico digitali utili per il collegamento di questi componenti. Deve essere prevista la possibilità
di resettare il micro in caso di malfunzionamento. Oltre le protezioni software vanno previste
opportune protezioni di massima corrente mediante l'uso di dispositivi quali fusibili o relè termici di
protezione. Il sinottico deve essere dotato di un display LCD che mostri le grandezze impostate e
quelle regolate, inoltre devono essere presenti delle spie che indichino gli allarmi e la modalità di
funzionamento (generatore di corrente o di tensione).
1.5
Scelte effettuate
Andremo ora ad analizzare le varie scelte che sono state seguite prima di iniziare la progettazione
vera e propria. Per completezza andremo anche a motivare alcune delle scelte scartate.
11
1.5.1
Il micro controllore
Iniziamo questa parte analizzando il cuore del progetto. Analizzeremo quindi le motivazioni che ci
hanno portato alla scelta del micro utilizzato in questo progetto. Attualmente ne esistono svariati
tipi altrettanto validi, nel nostro caso però la scelta è ricaduta sulla serie PIC (Peripheral Interface
Controller) della Microchip. Questa serie di micro controllori sta prendendo sempre più piede in
tutti i campi, dall'automazione industriale fino all'uso nei più disparati dispositivi di uso comune. La
ragione di questo successo può essere riassunta in quanto segue :
●
I PIC possono essere programmati usando linguaggi di alto livello, dal basic, al pascal fino
al C. Questo giova alla leggibilità del programma e ai tempi di sviluppo. La possibilità di
essere programmati anche da persone inesperte nell'uso dell'assembler è un ulteriore motivo
per il quale sono sempre più diffusi.
●
I PIC, in base alla serie, sono dotati di svariate funzioni, si va dai moduli pwm, ai
convertitori ADC, fino ai Watch dog. timer Possono funzionare usando oscillatori semplici
(reti RC) oppure, per garantire ottime precisioni, con quarzi di varie frequenze.
●
Supportano la modalità ICP, ossia la programmazione “in circuit”. Questo vuol dire che i
micro possono venire programmati direttamente nel dispositivo che governano, senza
bisogno di smontarli e inserirli nel programmatore. Questo è un altro fattore che velocizza di
molto lo sviluppo e la fase di testing.
●
Esiste una vastissima documentazione ufficiale e non che li riguarda.
●
Sono interfacciabili per effettuare comunicazioni utilizzando svariati protocolli quali I²C,
USART, SPI, CAN, USB.
●
Basso costo unitario, che unito alle svariate features interne, fa si che si possano realizzare
circuiti di dimensioni molto ridotte e sopratutto economici. Oltre i costi contenuti del
dispositivo in se stesso, va fatto notare che un kit di sviluppo microchip, per iniziare da
subito a progettare e sviluppare, ha un costo di qualche centinaio di euro al massimo.
●
Sono realizzati in tecnologia CMOS, la CPU è di tipo RISC a 8bit. Le velocità di clock
arrivano fino a 20Mhz e sono presenti in package che vanno da 8 a 40 pin.
L'ambiente di sviluppo utilizzato sarà il mikrobasic, prodotto dalla Mikroelettronica. L'utilizzo del
basic rende immediata la stesura del programma velocizzando al massimo la scrittura del software
di gestione. Il mikrobasic dispone anche della possibilità di inserire all'interno del programma parti
in assembler, ciò risulta particolarmente utile quando si devono effettuare particolari operazioni che
12
non sono contemplate dai linguaggi ad alto livello. Questo linguaggio, rende anche possibile
l'accesso diretto ai registri del pic, cosa utilissima per impostare particolari modi di funzionamento.
1.5.2
Come ottenere il segnale di uscita
A questo punto bisogna analizzare come condizionare i segnali provenienti dagli ingressi di
comando (ossia dai potenziometri per la regolazione di corrente e tensione), per ottenere un uscita
che sia effettivamente una funzione degli ingressi. Tale uscita deve essere adatta a pilotare il carico,
in base alle specifiche del paragrafo 1.2. Se, per semplicità, immaginassimo la struttura senza
retroazione, come una procedura sequenziale (batch), potremmo semplificare lo schema
dell'alimentatore nella seguente maniera :
Figura 1: Struttura del sistema senza retroazione
I segnali di comando, di tipo analogico, vengono inviati al PIC che li acquisisce tramite i suoi
13
convertitori analogico digitali. Si nota quindi che il primo tratto della procedura è costituito da un
flusso analogico. Il pic elabora i segnali analogici e stabilisce la giusta strategia per calcolare la
relativa uscita del sistema, da inviare al carico tramite i morsetti di uscita. Il segnale generato dal
pic, di tipo digitale, deve venire convertito in un segnale analogico di opportune caratteristiche, in
maniera da poter alimentare il carico. Questo adattamento viene effettuato dal blocco
contrassegnato come “condizionamento segnale”, che in pratica opera una conversione di tipo
digitale / analogico. Le scelte possibili per generare il segnale di uscita, sono due, utilizzare una
delle porte a 8 bit del PIC e un convertitore D/A, oppure usare l'uscita pwm del pic (10bit). Di
seguito analizzeremo i pro e i contro delle due soluzioni.
●
Utilizzando un convertitore D/A introduciamo un componente relativamente complesso,
inoltre con soli 8 bit a disposizione possiamo generare 256 passi in uscita. Con un semplice
calcolo, la risoluzione in uscita sarà di 30 volt diviso 256 passi, circa 117 milli volt per
passo. La soluzione quindi, non risulta buona ne dal punto di vista hardware, nel da quello
qualitativo, visto che la risoluzione ottenibile è particolarmente bassa.
●
Utilizzando una delle uscite pwm del pic, al contrario della soluzione precedente, ci
permette di ottenere ben 1024 passi (la massima risoluzione del pic sul pwm è appunto di 10
bit, quindi 2^10 passi). Il grosso problema da risolvere è quello di convertire i vari passi del
pwm in uscita in un segnale continuo. Questo perché vogliamo realizzare un alimentatore
lineare e non switching
Alla luce dei due punti visti prima si è deciso di percorrere la seconda strada, ossia utilizzare l'uscita
pwm, in quanto è l'unica soluzione a garantire una buona risoluzione (nella pratica, otterremo 30V
fratto 1024, circa 30mV, risoluzione più che sufficiente per un alimentatore). Questa soluzione pur
essendo migliore, introduce la problematica di come convertire l'onda pwm in un segnale continuo.
Tale argomento verrà trattato nel paragrafo successivo.
1.5.3
Conversione da digitale ad analogico del segnale pwm
In questo paragrafo verrà analizzato il metodo usato per convertire il segnale digitale generato dal
pic. Apriamo innanzi tutto una breve parentesi sulle caratteristiche del segnale pwm (schematizzato
in figura 2) ottenuto dal micro. Le caratteristiche sono :
●
Livello Alto +5V ; Livello basso 0V (Livelli logica CMOS)
●
Frequenza alla risoluzione di 10 bit circa 20 kHz
14
●
duty-cycle variabile da 0 a 100% (al massimo in 1024 passi, ossia 10 bit)
Figura 2: Segnale pwm generato dal micro
In termini di equazioni, le caratteristiche dell'onda sono definibili come segue :
periodo :T =TonToff
duty cycle: DC=
Ton
T
frequenza : fpwm=
1
T
Figura 3: Spettro del segnale pwm generato dal micro
15
Analizzando tramite lo sviluppo in serie di Fourier lo spettro del segnale pwm (figura 3), possiamo
notare che esso è costituito da una componente fondamentale, che ha la stessa frequenza del segnale
da scomporre, e da una serie di armoniche multiple della frequenza del fondamentale. Una
rappresentazione di questo studio è rappresentata nella figura 4. Si nota appunto la scomposizione
di un onda quadra, della quale vengono mostrate a titolo di esempio solo la quinta e la quindicesima
armonica.
Figura 4: Scomposizione di un onda quadra tramite l'analisi di Fourier
E' importante fare presente che se il segnale ha valore medio diverso da zero, nella scomposizione
apparirà anche un termine costante da sommare alle varie armoniche. Appare chiaro che una buona
idea per effettuare la conversione del segnale da digitale ad analogico è quella di filtrare tutto il
contenuto armonico, in maniera che rimanga solo ed esclusivamente la componente continua del
segnale pwm. Infatti il segnale pwm varia tra 0 e 5 volt, quindi anche il suo valore medio varia da 0
a 5 volt, rispettivamente per duty-cycle che valgono 0 e 100%. Una volta che la componente
continua sarà filtrata, sarà necessario amplificarne il valore di tensione, dal range 0-5 volt fino a
quello di uscita, ossia 0-30 volt. Analizziamo più in dettaglio, tramite la figura 4, lo spettro
dell'onda pwm tramite l'analisi di Fourier.
Notiamo immediatamente che le armoniche di ordine superiore. sono multipli dispari, ad ampiezza
decrescente dell'armonica fondamentale (che ha lo stesso periodo del segnale pwm, ossia T). La
16
frequenza fc è la frequenza di taglio (cut off) dell'elemento filtrante, ossia la frequenza in prossimità
della quale, il modulo del segnale perde 3db. Tale frequenza deve essere molto inferiore alla
frequenza del pwm, in maniera che sia la fondamentale, che le armoniche di ordine superiore
vengano completamente filtrate, venendosi a trovare a sinistra di fc. In questa situazione, solo la
componente continua passerà attraverso il filtro. Il riquadro verde rappresenta la banda passante,
ossia l'intervallo di frequenza nel quale il modulo del segnale non viene a trovarsi sotto l'azione del
filtro. La componente continua, visibile in blu in figura 3, è sovrapposta all'asse delle ordinate che
rappresenta la frequenza di 0 hertz.
Come criterio di massima per il dimensionamento del filtro, da verificare in via sperimentale,
possiamo affermare che sarà opportuno che :
fc≪ fpwm
Indicativamente valuteremo valori di fc a partire da 1/10, fino ad arrivare a 1/100 e oltre, di fpwm.
Utilizzare il valore limite, vicino a zero, per fc, potrebbe apparire una buona idea, purtroppo al
diminuire di fc aumentano i valori di capacità e resistenza richiesti dal filtro. Capacità troppo
grandi implicano riduzioni della dinamica del sistema, introducendo costanti di tempo troppo
elevate, mentre resistori di valore troppo elevato introducono rumori di tipo elettrico. Inoltre,
essendo la corrente in uscita dai pin del micro assolutamente insufficiente per alimentare carichi che
richiedono correnti elevate, oltre a un amplificazione della tensione, risulta necessario anche
amplificare la corrente del segnale di uscita. Senza soffermarci per ora sulla struttura fisica che
realizzerà tali operazioni, possiamo disegnare il diagramma a blocchi del modulo di
condizionamento del segnale. Anche in questo caso, per semplicità analizziamo il flusso dei segnali
senza considerare la retroazione. Il diagramma di riferimento è quello mostrato in figura 5.
17
Figura 5: Condizionamento del segnale generato dal micro
Riassumendo il segnale viene elaborato nel seguente ordine :
1. Il segnale pwm viene generato dal pic, in base ai valori letti sugli ingressi di comando
2. Il pwm viene trattato in un filtro passa basso che permette alla sola componente continua di
arrivare in uscita
3. Viene amplificata l'ampiezza della tensione del segnale in uscita dal filtro per portarla al
range utile ad alimentare i carichi in uscita. A questo punto la corrente non è ancora
sufficiente ad alimentare efficacemente nessun carico, in quanto la massima corrente
erogabile dai pin del pic è di soli 25mA
4. Viene quindi effettuata un ulteriore amplificazione del segnale, questa volta per quanto
riguarda la corrente. A questo punto il segnale è pronto per alimentare il carico collegato ai
morsetti di uscita.
18
1.5.4
La retroazione
Dopo aver delineato la struttura del sistema senza retroazione, è giunto il momento di trattare questa
delicata parte del progetto. Per effettuare la regolazione e il mantenimento delle grandezze in uscita,
è necessario che la logica abbia la possibilità di leggere tali valori, e nel caso essi fossero diversi da
quelli dettati dai rifermenti, essa si deve occupare di apportare la correzione per avvicinarsi il più
possibile (o al limite uguagliare) quanto imposto dagli ingressi di comando. E' utile a questo punto
definire una tabella che identifichi ingressi e uscite del sistema :
Acronimo
Ingressi di comando
Ingressi di controllo
(normalizzati nel range 0-5V)
Descrizione
Vimp
Tensione impostata
Iimp
Corrente impostata
Vmis'
Tensione misurata
Imis' o Vshunt' Corrente misurata
Vout
Tensione tra morsetto positivo e massa di
potenza
Iout
Corrente erogata ai morsetti in uscita
Vmis
Tensione misurata tra i morsetti positivo e
Uscite
negativo in uscita (ai capi del carico)
Ingressi di controllo ausiliari
Vshunt o Imis
Tensione ai capi dello shunt
Vst
Temperatura fornita dalla sonda temometrica
collegata sul dissipatore dei transistor finali
Tabella 1: Ingressi e uscite del sistema
●
Ingressi di comando : sono i potenziometri utilizzati per impostare la tensione in uscita e la
limitazione di corrente
●
Ingressi di controllo: sono le linee di segnale che indicano al micro i valori di tensione e
corrente presenti in uscita (sono formalmente diverse dalle uscite, in quanto normalizzate
per poter essere lette dal pic. Possono anche essere affette da errori causati da derive dei
componenti usati nei blocchi di conversione)
●
Uscite : sono le grandezze realmente presenti ai morsetti in uscita
●
Ingressi di controllo ausiliari : sono ingressi (nel nostro caso uno) che non intervengono
19
direttamente nel processo di retroazione. Disponiamo di un solo ingresso di questa tipologia,
ossia il valore prodotto dalla sonda di temperatura. Tale valore, viene usato come allarme,
per indicare che i finali di potenza hanno raggiunto la loro massima temperatura di esercizio.
In ogni caso il valore di Tst non interviene nel calcolo della tensione in uscita, ma come
detto è solo un allarme usato per mandare in blocco termico il sistema.
Figura 6:Schema di principio dei collegamenti tra ingressi e uscite
Come si può vedere in tabella 1, esistono due alias, ossia Vshunt = Imis e Vshunt'=Imis. Il pedice '
indica che le grandezze sono normalizzate, mentre l'alias tra Vshunt (tensione ai capi dello shunt) e
Imis (corrente misurata) e tra Vshunt' e Imis' viene utilizzato nella trattazione per rendere più
immediato il significato dei segnali in base al contesto. In figura 6 viene rappresentato uno schema
a blocchi all'interno del quale è possibile visualizzare graficamente quanto rappresentato in tabella 1
1.5.5
Normalizzazione dei segnali in ingresso al micro controllore
Tutte le uscite del sistema, che devono in qualche maniera essere lette dal micro, vanno
normalizzate al range di funzionamento degli ADC, ossia devono essere obbligatoriamente
20
comprese tra 0 e 5 V. Nel caso della tensione, sarà quindi necessario dividere il valore massimo
dell'uscita per una costante, in maniera tale da far coincidere tale valore, con il valore massimo che
l' adc può leggere (che vale 5V). In pratica si realizza una struttura che divide il segnale di uscita
per un coefficiente Kv, che si può determinare facilmente con la seguente formula :
Vout max
Vout max 30
=5 V quindi Kv=
= =6
Kv
5
5
Relazione 1:
Relazione 2:
La relazione 2 vale nel caso della Vout, mentre per la Iout la relazione andrà modificata in base a
quanto segue. La Iout è letta da un sensore di corrente che ci restituisce un segnale in tensione,
proporzionale alla corrente che lo attraversa. Utilizzando ad esempio uno shunt resistivo, avremo in
corrispondenza dei vari valori di corrente erogata , una tensione ai capi dello shunt stesso (che
chiameremo Vshunt). Tale tensione andrà poi normalizzata nel range adatto a essere letto dall'adc.
Visto che lo shunt, fornisce una tensione di pochi milli volt per ogni ampere letto, in questo caso il
blocco invece di dividere (come per la misura di tensione) dovrà moltiplicare. Risulterà quindi :
Vshunt max∗Ki=5V dalla quale ricaveremo che
Relazione 3:
Ki=
5
Vshunt max
Relazione 4:
La normalizzazione è molto importante, e oltre al suo scopo principale, che è quello di adattare il
segnale alle caratteristiche fisiche dell'adc, deve permettere di sfruttare a pieno la risoluzione di
quest'ultimo. Infatti l' ADC del pic ci permette una risoluzione di 10bit (ossia 2^10, quindi 1024
valori)nel range 0-5 volt, se noi utilizzassimo un sensore di corrente che fornisca ad esempio un
uscita in tensione che va da 0 a 2,5V per correnti che vanno da 0 a 10A (è stato preso in esame il
range di corrente che noi vogliamo poter utilizzare in questo progetto), utilizzeremo solo metà dei
valori che l' ADC può convertire, il tutto a scapito della precisione ottenibile. Nello schema di
figura 7 sono messi in evidenza i guadagni dei vari blocchi di condizionamento.
21
Figura 7: Guadagni statici dei blocchi di condizionamento
Per concludere questo paragrafo osserviamo che esiste un ultimo blocco, ossia il condizionamento
della sonda di temperatura. Anche in questo caso la sonda fornisce un uscita in tensione,
proporzionale al valore di temperatura letto. Analogamente al caso dello shunt, la tensione in uscita
dalla sonda è di pochi milli volt al °C, andremo quindi ad amplificare tale valore usando un blocco
con guadagno maggiore di uno, ottenibile dalla relazione cinque :
Vst max∗Kst=5 V quindi Kst =
5
Vst max
Relazione 5:
Il valore numerico, come nel caso di Ki, lo calcoleremo nel capitolo dedicato ai calcoli. La sezione
relativa ai comandi non è normalizzata perché i valori che fornisce sono già nel range 0-5V adatto a
essere letto dagli ADC alla massima risoluzione e nei margini di sicurezza di funzionamento.
22
1.5.6
Struttura del software
Il software di gestione del micro, è scritto per realizzare una parte ,tramite programmazione, della
funzione di trasferimento dell'intero sistema, più in particolare esso si occupa della regolazione del
duty-cycle del segnale pwm. Esso prevede due controlli ad anello, uno per la regolazione della
tensione e l'altro per la regolazione della corrente. L'anello di regolazione della corrente ha la
priorità su quello di tensione, per ovvi motivi derivanti dagli effetti termici della corrente elettrica.
Esiste inoltre un terzo anello, che si preoccupa di arrestare il sistema nel caso la temperatura dei
transistor finali superi limiti imposti dalla loro SOA (Safe Operating Area). L'esecuzione del
programma, come per la maggior parte dei micro attuali è di tipo sequenziale. Utilizzando la
frequenza massima di clock del micro, ossia 20Mhz, tale velocità di esecuzione è sufficientemente
alta da poter garantire una buona dinamica nella regolazione delle grandezze in uscita. Per evitare di
utilizzare un programma eccessivamente lungo e complesso, l'esecuzione è divisa in tre parti :
●
Sezione di regolazione : è costituito dai due anelli, uno di tensione e uno di corrente. Questa
parte di programma si occupa esclusivamente di regolare e mantenere l'uscita del sistema in
base ai riferimenti impostati tramite i comandi. E' compito di questa sezione anche la
commutazione dei secondari del trasformatore, (in funzione della tensione richiesta in
uscita) per minimizzare le perdite sui finali
●
Sezione Visualizzazione : è la parte di codice dedicata al display LCD. Essendo inutile
effettuare un aggiornamento in tempo reale (ossia una volta ogni ciclo completo del
programma) dell'andamento dei valori dell'uscita, tale parte di codice viene richiamata
ciclicamente ma non continuamente durante il flusso di programma. La motivazione del
richiamo ciclico è quella di diminuire la lunghezza media totale del programma per
privilegiare la velocità (infatti le routine per scrivere sull'LCD sono molto lente, anche se
utilizzate ad 8bit). L'aggiornamento viene comunque effettuato più volte nell'arco di un
secondo, cosa che unita alla persistenza delle immagini sulla retina, fa si che dall'esterno sia
impossibile capire che l'aggiornamento dell'LCD usa solo una frazione dei cicli rispetto alla
sezione di regolazione.
●
Sezione di allarme : è il ciclo più esterno, e più lento, che si occupa di segnalare che i
transistor della sezione di potenza si stanno surriscaldando. Questa parte, regola anche
l'accensione e lo spegnimento della ventilazione sul dissipatore dei finali. Essendo i
transitori termici molto più lenti di quelli elettrici, tale parte di codice, per le stesse
motivazioni della sezione di visualizzazione, è eseguita solamente ogni tot numero di cicli
23
eseguiti dalla sezione di regolazione. Questa sezione fornisce prima un allarme di
avvicinamento alla soglia critica, tramite l'accensione di un led sul sinottico. Una volta
superata la soglia critica, inibisce l'uscita pwm del pic finché la temperatura non è tornata al
di sotto della soglia di sicurezza.
Per ritardare la sezione di visualizzazione e quella di allarme, viene utilizzata come base dei tempi
una chiamata di interrupt interna al pic per poter scandire gli intervalli temporali che verranno
definiti successivamente. Il codice, come anticipato, è scritto in una versione modificate del
linguaggio basic, utilizzando un compilatore apposito per generare il codice da caricare all'interno
della memoria programma del pic. Le 3 sezioni del software si possono schematizzare nel seguente
diagramma (più la sezione è interna, più la priorità è alta).
Figura 8: Priorità degli anelli di regolazione
24
Figura 9: Schema di principio dell'elaborazione dei segnali in ingresso
Figura 10: Schema di principio della struttura del software di comando
Lo schema di figura 7, rappresenta il risultato finale di tutti i ragionamenti fatti in precedenza, anche
se andrà completato con la parte di retroazione. In ogni caso rappresenta pur sempre la base di tutto
il progetto, identificando anche le due grandi macro aree del progetto, ossia quella della
progettazione inerente l' hardware e quella dedicata alla programmazione del software.
Dedichiamo un ultimo diagramma, visibile in figura 10, prima di chiudere il paragrafo relativo alla
struttura del software. Pur non rappresentando una soluzione definitiva, è utile per definire le linee
guida alla realizzazione del software di governo del sistema. La sezione colorata di rosso
rappresenta l'anello di corrente, mentre quella in verde è l'anello di tensione. Per ora, non sono
volutamente rappresentate le parti riguardanti la sezione di visualizzazione e la sezione di allarme.
25
Il flusso seguito dal programma si può commentare nella seguente maniera :
●
Come prima cosa vengono letti gli ingressi di comando. Il passo successivo è rappresentato
dal ciclo di controllo, più precisamente dall'anello di corrente, che è prioritario rispetto a
quello di tensione.
●
L'anello di corrente viene percorso finché la corrente misurata non è minore di quella
impostata. Una volta raggiunto il riferimento è permessa l'uscita dal ciclo per poter eseguire
le parti rimanenti.
●
Una volta che la corrente si trova sotto la soglia impostata si passa all'anello di tensione. Se
la Vmis è uguale alla Vimp si riparte dall'inizio del programma, in quanto la tensione è in
uscita corretta, e la corrente è sotto la soglia limite.
●
In caso contrario si controlla se la tensione misurata è minore o maggiore di quella
impostata. In base al caso, si verifica un incremento o un decremento del dc e si ritorna
all'inizio del programma. Si fa notare che ogni modifica del valore di dc porta a percorrere
l'anello di corrente.
26
Capitolo2
Struttura e funzionamento del sistema
2.1
Introduzione
In questo capitolo andremo a definire la struttura effettiva dell'alimentatore. Una volta compiuto
questo passo analizzeremo in dettaglio come sono realizzati i singoli blocchi a livello hardware ( i
calcoli dei componenti, e i dettagli, verranno trattati nel capitolo 4, dedicato al dimensionamento e
al perfezionamento degli schemi. La parte di calcolo è stata volutamente spostata in un capitolo a
parte per non appesantire troppo la trattazione.
2.2
Suddivisione dei circuiti
L'alimentatore concettualmente e fisicamente è suddiviso in due parti principali :
●
Scheda di segnale (signal board): è la parte che include il micro controllore, i circuiti di
condizionamento, quelli ausiliari, l'ICP e il filtro attivo.
●
Scheda di potenza (power board): è la parte di circuito che fornisce l'uscita di potenza al
carico.
Formalmente esistono ancora due parti costituenti il sistema.
●
Parti accessorie: è il sotto insieme costituito da tutti i dispositivi / componenti che non
possono essere collegati o ospitati per dimensioni,o altri motivi, sulle sopracitate schede
(segnale e potenza). Nel particolare si tratta del trasformatore, del ponte di Graetz e di altre
parti che sono collegate tramite cablaggi alle due schede.
●
Sinottico: è la parte che raggruppa il display LCD, i comandi, le spie e gli strumenti di
misura. Anche questa parte è connessa alle schede di potenza e segnale tramite cablaggi.
La suddivisione si rende necessaria perché è sconsigliabile che i circuiti di segnale possano essere
percorsi dalla stessa corrente che viene inviata al carico. Il motivo è che sarebbe necessario
sovradimensionare le piste del pcb (per sopportare le intense correnti che l'alimentatore può
erogare), inoltre le piste più piccole, se venissero percorse da correnti troppo elevate, potrebbero
interrompersi oppure, vista la loro esigua sezione, dare cadute di tensione troppo elevate che
pregiudicherebbero il funzionamento dell'intero sistema. Inoltre per motivazioni analoghe è
auspicabile che la massa della parte di
segnale sia distinta dalla massa di potenza. Questa
separazione funzionale tra le due parti fa anche si che il sistema sia parzialmente modulare. Infatti
27
se supponiamo di voler raddoppiare la corrente che l'alimentatore può erogare, sarà sufficiente
riprogettare solamente la parte di potenza. Se i circuiti fossero fisicamente realizzati su un unico pcb
sarebbe necessario riprogettarlo da zero pur non dovendo modificare la parte di segnale. Per contro
ci saranno più fili di collegamento tra le due schede, ma i pregi derivanti dalla modularità
compensano in larga maniera la presenza di questi cablaggi.
2.3
Diagrammi a blocchi
La struttura a blocchi del sistema è utilizzata per visualizzare le varie parti che costituiscono il
sistema e le interconnessioni tra esse. Analizzeremo nell'ordine la scheda di segnale e quella di
potenza. Per ultimi ci occuperemo del sinottico e delle parti accessorie. All'interno dei diagrammi a
blocchi sono solo visualizzati i segnali che rappresentano dati e misure, per quanto riguarda le varie
linee di alimentazione inerenti la parte di potenza, la logica e tutto il resto, verranno analizzate alla
fine del capitolo. In ogni caso i valori di tensione necessari all'alimentazione di ogni blocco sono
indicati dalla figura a forma di rombo. All'interno della figura viene indicato S per le parti che
alimentano dispositivi di segnale (che assorbono quindi poca potenza) e P utilizzate nella sezione di
potenza. Anche per quanto riguarda la massa, vengono indicati i collegamenti a massa riferiti alla
parte di potenza e di segnale, rispettivamente p-gnd e s-gnd. Riassumiamo quanto detto nella
tabella 2 :
s12v
Alimentazione a 12 V per parti di segnale
s5v
Alimentazione a 5V per parti di segnale
s30v
Alimentazione a 30V per parti di segnale
P30v
Alimentazione a 30V per parti di potenza
s-gnd
Massa parte di segnale
p-gnd
Massa parte di potenza
Tabella 2: Acronimi delle linee di alimentazione del sistema
2.4
Diagramma a blocchi della scheda di segnale
Il diagramma a blocchi della scheda di segnale è rappresentato nella figura 11.
28
Figura 11: Diagramma a blocchi della scheda di segnale
Nella tabella tre vengono riassunte le funzioni dei singoli blocchi.
Come risulta dalla legenda dello schema, le frecce a tratto più spesso rappresentano linee multi
filari, mentre quelle sottili rappresentano un unico segnale. A questo punto iniziamo l'analisi dei
singoli blocchi.
29
Normalizzazione
Il suo compito è di adattare le escursioni dei segnali sui suoi ingressi al
range 0-5V, in maniera da pilotare l'ADC in sicurezza e alla massima
risoluzione
Protezione adc
E' una protezione per evitare che eventuali sovratensioni che eccedano i
5V, non smorzate dal blocco di normalizzazione, giungano agli ADC
danneggiandoli.
PIC16F877A
OSC
Rappresenta il micro che gestisce il sistema
E' il quarzo, corredato da accessori, che fornisce la base dei tempi al
micro
Filtro Attivo
Costituisce il dispositivo che filtra e amplifica la componente continua
del segnale pwm
Bypass Segnale
Questa parte si occupa di fornire la corrente di pilotaggio alla power
board, amplificando la corrente fornita dai pin del pic.
ICP
In Circuit Prgramming, rappresenta il blocco per programmare da remoto
il microcontrollore.
LCD
Il display LCD a 8bit. Pur non facendo parte fisicamente della signal
board, è necessario analizzarlo per capire come interfacciarlo al micro,
sia dal punto di vista hardware che software.
Tabella 3: Descrizione dei blocchi costituenti la scheda di segnale
2.4.1
Ingressi di comando
Sono rappresentati dai due potenziometri multi giro da 10k, in modo da rimanere nel range di
impedenza consigliato sul datasheet del pic. Per fare in maniera che L'escursione 0-10k sia già
normalizzata nel range 0-5 volt da inviare agli adc del pic, abbiamo alimentato i potenziometri con
la linea di alimentazione a 5V dedicata all'alimentazione del micro. E' poi stato sufficiente inviare
direttamente il terminale centrale del potenziometro all'adc corrispondente. Le uscite dei
potenziometri sono collegate direttamente ai convertitori senza nessun tipo di protezione, che
peraltro è già garantita dall'integrato monolitico che gestisce la linea di alimentazione a +5V. I
collegamenti dei potenziometri e gli adc sono realizzati seguendo la numerazione rappresentata in
tabella 4 (per completezza viene anche indicato l'ordine di collegamento dei rimanenti adc):
30
Vimp
adc0
Vmis'
adc1
Iimp
adc2
Vshunt'
adc3
Vst'
adc4
Tabella 4: Corrispondenza tra ingressi e convertitori adc
Lo schema elettrico del collegamento è il seguente :
Figura 12: Schema elettrico dei collegamenti tra potenziometri e relativi adc
I potenziometri sono di tipo lineare, e hanno un escursione di 20 giri. Essendo l'uscita pwm del pic a
10bit (1024 valori), ossia la stessa risoluzione dei canali dell'adc, avremmo un rapporto di
conversione 1 a 1 tra l'adc che rappresenta la Vimp e l'uscita pwm. In pratica ognuno dei 1024 passi
dell'adc della Vimp viene convertito nel relativo valore di dc sull'uscita pwm. Questa situazione è
valida se non è raggiunta la soglia di corrente impostata da Iimp, nel qual caso il software di
controllo modulerà l'uscita pwm solamente fino al limite di corrente imposto. Per fare chiarezza su
come viene modulata l'uscita pwm per alcuni valori notevoli di Vimp fare riferimento alla tabella 5.
31
Vimp
adc0
duty-cycle pwm
duty-cycle
[V]
[valore corrispondente]
[%]
[passo]
0
0
0
0
2,5
512
50%
512
5
1024
100%
1024
Tabella 5: Corrispondenza tra tensione impostata e dc generato dal micro
Per quanto riguarda la corrente impostata, possiamo correlare la soglia di corrente impostata con la
tensione presenti ai capi del potenziometro analizzando i valori della tabella 6.
Iimp
adc2
Limitazione della
[V]
[valore corrispondente]
corrente erogata
[A]
0
0
0
2,5
512
5
5
1024
10
Tabella 6: Corrispondenza tra corrente impostata e limitazione di corrente
2.4.2
Normalizzazione
In questo paragrafo tratteremo il blocco che si occupa della normalizzazione. Come si può vedere
in figura 11 gli ingressi di questo blocco sono tre, più precisamente Vout, Vshunt e Vst. Queste tre
grandezze devono opportunamente trattate per poter essere inviate al micro, che dopo averle lette le
utilizzerà nel processo di regolazione.
2.4.3
Normalizzazione tensione di uscita
Questa tensione è variabile nel range 0-30 volt ed è quella direttamente applicata al carico. Deve
essere quindi de amplificata e ridotta al range 0-5 volt per i motivi esposti nel paragrafo 1.10. La
tensione viene prelevata direttamente ai capi del carico (sui morsetti di uscita), verrà quindi
utilizzato un amplificatore operazione differenziale, in modalità non invertente con guadagno
minore di uno. Si usa la modalità non invertente poiché non è disponibile alimentazione duale.
Riprendendo quanto detto al punto 1.10, il coefficiente Kv vale sei, ciò vuol dire che uscita e
ingresso sono legati appunto da tale coefficiente di proporzionalità Lo schema che dovrà realizzare
tale operazione, ossia dividere il segnale di uscita per Kv è il seguente :
32
Vmis
Vout
Vmis'
Vshunt
Schema 1: Schema elettrico del blocco di condizionamento della tensione misurata
Essendo un divisore, lo stadio raffigurato nello schema 1 uno dovrà moltiplicare per un Kv minore
di uno. La relazione che lega il guadagno ai parametri resistivi della rete di reazione è la seguente :
Kv=
R4 1
=
R2 6
Relazione 6:
La tensione in uscita si può quindi esprimere come :
Vmis '=
R4
∗Vmis
R2
Relazione 7:
Per il corretto funzionamento, è opportuno che sia verificata la seguente uguaglianza tra i valori
delle resistenze :
R1=R2 e R3=R4
Relazione 8:
Nello schema 1, le resistenze di reazione sono costituite da dei trimmer, per poter garantire la
corretta taratura dello stadio nel realizzare il guadagno di 1/6. Dallo schema 1 si può anche scrivere
l'equazione della maglia di uscita, che è esprimibile con la seguente relazione :
33
Vout−Vmis−Vshunt=0
Relazione 9:
2.4.4
Normalizzazione della corrente misurata
Come detto in precedenza, per la misura della corrente che percorre il carico, è stato utilizzato uno
shunt. Nel dettaglio lo shunt è una resistenza in manganina del valore di 0,05 ohm, adatta per
correnti fino, e oltre, i 10A. Lo shunt è collegato a valle del carico, quindi uno dei suoi capi è
collegato al morsetto negativo, mentre l'altro capo è collegato direttamente alla massa di potenza.
In questo caso non è necessario un amplificatore di tipo differenziale, ma semplicemente un
amplificatore collegato in modalità non invertente. Al contrario del caso precedente, la tensione
presente ai capi dello shunt è di pochi millivolt, quindi andrà amplificata e non divisa. Lo schema
elettrico che rappresenta questa sezione è il seguente :
Iout
Iout
Vmis
Vout
Vshunt'
Vshunt
Schema 2: Schema elettrico del blocco di condizionamento della corrente misurata
La tensione massima ai capi dello shunt si può calcolare con la relazione dieci :
Vshunt max= Rshunt∗Iout max =0,05∗10=0,5 V
Relazione 10:
34
In base alla relazione 4 del paragrafo 1.10 possiamo calcolare il coefficiente Ki :
Ki=
5
5
=
=10
Vshunt max  0,5
Relazione 11:
Essendo l'amplificatore in modalità non invertente, possiamo esprimere Ki in funzione delle
resistenze presenti nello schema 2 (partendo dalla formula del guadagno statico di tale
configurazione):
Ki=1
R1
R1
quindi il rapporto
varrà dovrà valere 11
R2
R2
Relazione 12:
Anche in questo caso il trimmer R1 viene utilizzato per la regolazione del guadagno, in maniera da
far corrispondere il valore dell'uscita dell'amplificatore a 5V in corrispondenza della corrente
massima erogata, che vale 10A.
2.4.5
Normalizzazione del sensore di temperatura
La temperatura del dissipatore sui quali sono montati i transistor finali, viene letta tramite una sonda
di temperatura tipo LM35. La sonda fornisce un uscita in tensione con un coefficiente di
proporzionalità di 10mV per grado °C di temperatura. Fissiamo come limite superiore di misura
100°C. Avremo quindi la seguente corrispondenza di valori notevoli :
Tf
Vst
adc4
[°C]
[V]
[valore corrispondente]
100°C
1
1024
25°C
0,25
256
Tabella 7: Corrispondenza tra temperatura della sonda di temperatura e valore letto dall'adc
In questo caso, analogamente a quanto fatto prima, calcoliamo il coefficiente di amplificazione Kt
dello stadio operazionale. La normalizzazione deve far corrispondere il valore di 1V a 100°C alla
massima tensione leggibile dall'adc, che come sappiamo è di 5V. Come si può vedere in tabella 6,
nella prima riga è sufficiente moltiplicare per 5 per normalizzare il valore, tutti i valori inferiori
35
seguiranno di conseguenza. Utilizzeremo quindi uno stadio non invertente, come nel caso della Imis
di guadagno Kt :
Kt =
5
5
= =5
Vst max 1
Relazione 13:
Volendo modificare gli intervalli di temperatura è sufficiente modificare il valore del trimmer R1.
Lo schema usato è il seguente :
Vst
Vst'
Schema 3:Schema elettrico del blocco di condizionamento della temperatura misurata
Il coefficiente Kt si mette in relazione con le resistenze dello schema secondo la formula :
Kt =1
R1
R1
=5 quindi R1 e R2 stanno tra loro nel rapporto
=4
R2
R2
Relazione 14:
Nell'eventualità che Vshunt' oltrepassi i 5 volt, a causa di una non perfetta taratura del guadagno
dello stadio, l' adc relativo rimane pur sempre protetto dal blocco di protezione che analizzeremo
nel paragrafo seguente.
2.4.6
Protezione degli adc
Questo blocco si rende necessario per evitare che le tensioni in arrivo sulle varie linee degli adc
36
superino i 5V, danneggiandoli. Le linee in arrivo dai potenziometri sono già protette, essendo
l'alimentazione a 5 V già protetta. Rimangono da proteggere quindi le linee in arrivo dal sensore di
temperatura, dallo shunt e dalla misura differenziale della tensione. In tutti questi casi infatti., c'è la
possibilità di avere dei superamenti di tale soglia. Infatti gli operazionali, per poter leggere la
tensione in uscita di 30V, e per poterla generare (tramite il filtro attivo) necessitano di una tensione
di alimentazione leggermente superiore alla trentina di volt (causa cadute interne degli AO). A
causa di questo fattore, se un adc si portasse, anche solo momentaneamente, in saturazione,
provocherebbe immediatamente il danneggiamento degli adc. L' alimentazione degli operazionali e
del pic verrà in ogni caso trattata successivamente. Per semplificare il PCB, tutte le linee di
alimentazione degli operazionali sono servite da questa tensione (anche se l'operazionale che serve
l'LM35 potrebbe essere alimentato a soli 5V, che è la massima tensione in uscita dalla sonda). A
causa di questo fattore, come anticipato, le uscite degli stadi possono eccedere i 5V (ad esempio a
causa di un breve corto circuito sulla misurazione di corrente, e di una sovra temperatura letta dalla
sonda di temperatura). Ci vuole quindi una protezione aggiuntiva, che si può realizzare mettendo in
parallelo agli adc in esame (adc1, adc3 e adc4) un diodo zener adeguato, con la relativa resistenza di
limitazione.
Schema 4: Schema elettrico della protezione dei convertitori analogico digitali
37
I diodi zener devono avere una tensione di zener minima maggiore di 5V, per non “rubare”
risoluzione al relativo adc. Infatti se erroneamente usassimo uno zener da 5V, la sua tensione
minima è di 4,8V, caso per il quale perderemmo 0,2V di scala utile sull'adc.
2.4.7
Filtro attivo e bypass:
Il filtro attivo utilizzato è una cella di tipo sallen-key, che forma un filtro passa basso di secondo
ordine. L'uso di un filtro attivo, oltre a permetterci di gestire l'amplificazione del segnale, ha il
grande pregio di permetterci di non usare induttori nella realizzazione del filtro. Questo filtro
dispone di due poli e fornisce un attenuazione di 12db/ottava. L'ingresso del filtro, come detto in
precedenza è costituito dal segnale pwm, con duty-cycle variabile da 0 a 100%. La massima
tensione in uscita dal filtro sarà quindi corrispondente a 5V con il dc impostato a 100%. In pratica,
in uscita da questo filtro avremo costantemente il valore medio dell'onda pwm. Per essere nel range
di uscita deciso in fase di specifica, questa tensione va quindi amplificata per essere scalata dal
range 0-5 volt a quello 0-30 volt . Il fattore di amplificazione del filtro attivo dovrà quindi essere
di :
Vsk max=Kpwm∗Vpwm max quindi Kpwm=
Vsk max 
30
= =6
Vpwm max 5
Relazione 15:
Una problematica della cella sallen-key, è che per guadagni superiori a qualche unità, con alti valori
di capacità, si generano auto oscillazioni del filtro. Per evitare questo problema (visto che
utilizziamo capacità molto grandi per ottenere una fc molto bassa) abbiamo suddiviso il filtro in due
parti. La prima parte è il filtro passa basso, collegato in maniera da ottenere un guadagno unitario
(inseguitore). Il secondo stadio è invece costituito da un amplificatore non invertente di guadagno
kpwm. Lo schema completo è rappresentato nello schema 5 (IC1A è la cella sallen-key, mentre
IC1B è lo stadio di amplificazione). La relazione che rappresenta la frequenza di taglio del filtro è la
seguente :
fc=
1
 2∗∗R1∗R2∗C1∗C2
Relazione 16:
38
Vpwm
Onda pwm
Vsk
Schema 5: Schema elettrico del filtro attivo
Il bypass di segnale è realizzato con un transistor NPN collegato all'uscita dello stadio di
amplificazione (operazionale IC1B dello schema 5) del filtro, nella seguente maniera :
Vbe
Vsk*
Vpwm
Vsk
Schema 6: Bypass del filtro attivo
39
Con questo collegamento passante, si realizza che la corrente richiesta dalla power board per
pilotare gli amplificatori di corrente non debba venire fornita direttamente dall'operazionale. ma
bensì dal transistor T1. Questo fa si che in caso di modifica della power board (ad esempio per
ottenere più corrente), per il corretto pilotaggio dei transistor finali è sufficiente sostituire T1.
2.4.8
OSC:
Rappresenta il blocco dell'oscillatore, realizzato con un quarzo a 20MHz. Pur non essendo critica la
gestione del sistema senza una base di tempi affidabile, si è preferito usare il dispositivo al quarzo,
in ragione della rete RC. In un ottica futura di riduzione dei costi, previ accurati test, sarà possibile
passare all'oscillatore RC con delle minime modifiche. L'introduzione del quarzo non è indolore, in
quanto provoca l'irradiazione di disturbi, soprattutto lungo la linea di alimentazione del pic. In sede
di calcolo e di stesura dello schema finale sono stati quindi previsti condensatori di filtraggio per
prevenire queste problematiche
2.4.9
Comandi AUX:
Il blocco relativo ai comandi ausiliari, nasce dall'esigenza di non sovraccaricare le porte del pic
utilizzate come interruttori digitali per l'azionamento di dispositivi esterni. Nel nostro caso, gli unici
usi delle porte del pic, come interruttori, sono limitati ai seguenti dispositivi :
●
Comando Relè di commutazione dei secondari del trasformatore
●
Comando Ventola del dissipatore
●
Accensione Spie di segnalazione
Nei primi due casi risulta utile utilizzare un comune transistor NPN a mo di switch, la cui base è
comandata dalle porte del pic, mentre la corrente da inviare al carico viene prelevata dalla linea a 12
V tramite il collettore del BJT. Nel terzo caso, ossia le spie di segnalazione, possiamo collegare
direttamente le porte ai led, tramite una resistenza di limitazione. I transistor di comando andranno
anche protetti da sovratensioni, tramite diodi di ricircolo, questo a causa della natura induttiva dei
carichi collegati. Tutte le porte che necessitano dei collegamenti sopra citati, andranno collegate
seguendo lo schema numero 7. In questo caso il pilotaggio dei livelli cmos della porta del pic viene
utilizzato per comandare il transistor T1 come switch elettronico, riducendo drasticamente la
corrente erogata dal micro. D1 è il diodo di protezione usato specificatamente nel caso
dell'azionamento della bobina del relè e della ventola del dissipatore. In ogni caso la resistenza R3
deve essere accuratamente dimensionata, anche in base all'impedenza del carico da collegare,
40
questo per essere sicuri che in fase di accensione T1 lavori nella zona di saturazione. Nello schema
6 è mostrato il collegamento per l'azionamento della ventola / relè (azionato dalla generica porta X),
e quello per l'accensione dei led di segnalazione del sinottico (generica porta Y). Nel caso
dell'accensione dei led, non abbiamo usato un BJT per amplificare la corrente, ma abbiamo inserito
una semplice resistenza di limitazione, da tarare per non fare oltrepassare al pic la massima corrente
erogabile dalla porta interessata.
Schema 7: collegamento delle porte del pic usate come interruttore digitale
2.4.10
ICP:
L' icp o In Circuit Programming, rappresenta un interfaccia attraverso la quale poter programmare
il pic senza estrarlo dal suo zoccolo, banalmente a “bordo macchina”. La linea ICP è costituita dai
seguenti segnali :
●
Alimentazione a 12 V DC e relativa massa, provenienti dall'esterno
●
Linea seriale a 2 fili (Tx e Rx, rispettivamente terminale trasmissione e ricezione)
Durante la programmazione, in ogni caso l'alimentatore deve essere spento, per non interferire con i
segnali provenienti dal programmatore. Vanno inoltre predisposti dei diodi di blocco, per evitare
che la tensione a 12 V applicata su MCLR e sull'alimentazione del pic, provochi una circolazione di
corrente verso la signal board. Il dettaglio dei collegamenti verrà analizzato nello schema definitivo,
durante il prossimo capitolo. Il collegamento con l'esterno è realizzato con un connettore seriale.
41
Figura 13: Diagramma a blocchi della scheda di potenza
2.5 Diagramma a blocchi della scheda di potenza
La scheda di potenza, è realizzata tramite l'uso di transistor in tecnologia bipolare. Sono utilizzati 4
transistor NPN (con connessione interna di tipo darlington) ,in maniera tale che la corrente diretta
al carico venga divisa in 4 rami, facendo in modo che nessuno dei transistor lavori al di fuori della
sua SOA. La scheda di potenza accoglie anche il dissipatore di calore e la ventola. L'uso della
ventilazione forzata, si rende necessario per ridurre le dimensioni e quindi l'ingombro del
dissipatore. All'interno della power board, è anche collegato lo shunt, e un ulteriore filtro per
42
eliminare eventuali fluttuazioni residue della tensione in uscita. La power board è collegata tramite
cablaggi alla signal board. Sul dissipatore viene montato anche il sensore di temperatura Lm35. Lo
schema di principio della scheda rappresentato in figura 13. Procediamo ora con l'analisi di
massima dei singoli blocchi .
2.5.1
Transistor di bypass
I transistor di bypass sono collegati come mostrato nello schema numero 8. Le resistenze in serie ai
transistor (R1, R2, R3, R4), vengono utilizzate per compensare gli squilibri della corrente che
fluisce nei vari transistor a causa delle differenze delle caratteristiche interne esistenti tra i
transistor. Infatti con l'aumentare della temperatura, la Vbe di ogni BJT tende a diminuire (ma non
in modo uguale su tutti). Diminuendo tale tensione, la corrente nel relativo ramo tende ad
aumentare, visto che la Vbe ha un verso tale da opporsi allo scorrere della corrente. Se non
prendessimo provvedimenti, lo stesso aumento di corrente farebbe riscaldare ancora di più il
transistor, con ulteriore diminuzione della stessa Vbe, questo processo si reiterebbe fino alla
completa distruzione del componente. La resistenza posizionata sull'emettitore, fa si che vengano
compensati gli aumenti di corrente con una maggiore caduta sulla resistenza stessa. Il contro di
questo sistema è che le resistenze sono poste in serie al carico, quindi devono essere
opportunamente piccole per minimizzare la caduta e opportunamente dimensionate per sopportare
correnti elevate. Nel nostro caso, considerando la corrente massima erogabile dall'alimentatore di
10A, ogni resistenza dovrà poter dissipare almeno la potenza :
P 1,2 ,3 ,4=R1,2 ,3 ,4∗
Iout 2
 dove n è il numero di BJT usati nel bypass
n
Relazione 17:
Tale potenza, moltiplicata per 4, rappresenta a tutti gli effetti una perdita di potenza da valutare ai
fini del rendimento.
43
Vbe
Iout
Vshunt
Vsk*
Schema 8: Schema elettrico del collegamento dei transistor di potenza
2.5.2
Filtro e Shunt
Il filtro finale di uscita, viene utilizzato per livellare eventuali picchi residui presenti sull'uscita del
filtro attivo. Per ottenere questo risultato si è utilizzata una combinazione di due condensatori, uno
ceramico molto piccolo, per smorzare picchi a frequenze elevate, e uno elettrolitico di
considerevole capacita per rifornire velocemente eventuali picchi di corrente richiesti dal carico. I
condensatori sono montati sulla power board in parallelo tra i morsetti positivo e negativo. Lo shunt
in dettaglio è una spirale in manganina, materiale che ha una resistività molto stabile anche con
considerevoli aumenti di temperatura. Lo shunt, è stato montato a valle del carico, tra il morsetto
negativo e la massa di potenza, in questa maniera Vshunt è di facile misurazione e non richiede un
operazionale in configurazione differenziale per essere amplificata. Lo schema del filtro di uscita è
il seguente, con riferimento allo schema 8 si nota la posizione dello shunt.
Vout
Vmis
p-gnd
Schema 9: Filtro finale in uscita
44
2.5.3
Parti accessorie
In questo paragrafo, andremo a trattare le parti accessorie del sistema, ossia le linee di
alimentazione dell'elettronica di potenza, e di quella di segnale. A livello generale, possiamo
identificare le seguenti linee di alimentazione :
1. +5V DC (s5v) la linea che viene usata per alimentare il micro controllore , comandi, l'LCD e
la sonda di temperatura.
2. +30V DC (s30v), la linea utilizzata per alimentare gli operazionali
3. +12V DC (s12v), è la linea usata per l'alimentazione del relè di commutazione e della
ventola del dissipatore
4. +50V DC / 17V DC (p30v), è la linea in uscita dal ponte di potenza, che in base al relè
commuta tra questi due valori (che sono semplicemente i valori 36 e 12 moltiplicati per
radice 2)
Le linee 1,2,3 sono linee di segnale, sulle quali viene drenata poca corrente, dell'ordine delle
centinaia di milli ampere, mentre la linea numero 3 è quella che fornisce l'uscita di potenza, sulla
qualche scorrono correnti, che nel caso più gravoso arrivano a 10 ampere. Il trafo è un trasformatore
a mantello, con due uscite secondarie, una a 12V AC e l'altra a 36V AC. Le tensioni +5V DC e
+30V DC sono ottenute tramite due integrati monolitici, rispettivamente un LM7805 e un LM317.
La 12V DC è ottenuta semplicemente raddrizzando con un ponte a diodi e i relativi condensatori di
livellamento, il secondario a 12V AC. Nel dettaglio, sono presenti tre ponti di graetz, uno per la
parte di potenza e due per la parte di segnale. Il ponte per la sezione di potenza è di tipo monolitico,
ed è interposto tra il relè di commutazione e il banco di condensatori elettrolitici. In base alla
posizione del relè raddrizza la tensione sul secondario (12 o 36 V AC). Il secondo ponte raddrizza
esclusivamente il secondario a 12V AC, tale tensione viene poi sdoppiata e inviata sia all'LM7805,
sia all'alimentazione della ventola del dissipatore. Il terzo e ultimo ponte, raddrizza la 36V AC, tale
tensione viene poi inviata all'LM317 che la stabilizza a 30V DC e la invia agli operazionali. Non è
stato possibile usare un ponte unico sulla linea a 30V per le linee di segnale poiché nel caso della
linea a tensione minore (la 5V DC), ci sarebbe stata una caduta troppo grande ai capi dell'LM7805,
che insieme alla corrente da erogare, lo avrebbe portato a lavorare fuori dalla sua SOA. In figura 13
è riportato lo schema a blocchi di questa parte. Dallo schema si possono vedere tutte le provenienze
delle varie linee di alimentazione e i punti dove vengono derivate le masse.
Nel dettagli la massa di potenza è costituita dal pin negativo del ponte a diodi di potenza, mentre
45
Figura 14: Schema a blocchi delle linee di alimentazione
quella di segnale è l'unione dei pin negativi de due ponti di segnale. Il sinottico infine ospita le
seguenti strumentazioni :
●
display LCD con visualizzazione di grandezze impostate e misurate
●
voltmetro e amperometro analogici
●
comandi per impostare la tensione in uscita e la limitazione in corrente
●
Pulsante di accensione dell'alimentatore
●
Spia di funzionamento come generatore di tensione / corrente e ventilazione
●
Pulsante di reset del micro controllore e spia di blocco per sovrtemperatura
46
Capitolo3
Il software di gestione
3.1
Introduzione
n questo capitolo, analizzeremo il software di gestione che governa il micro controllore. Come già
detto in precedenza, viene utilizzato il mikrobasic, mentre per la programmazione vera e propria si
utilizza un programmatore parallelo di tipo PROPIC2. Il software per caricare i file generati. e
compilati. dal mikrobasic è l'IC-PROG. Nel dettaglio, la versione di mikrobasic utilizzata è la 6.0.
Per rendere il programma particolarmente semplice, sono stati usati esclusivamente cicli if then
else, cosa che rende semplice la lettura del listato anche ai non esperti. Prima di esporre la
trattazione del programma, inseriamo un diagramma contenente la piedinatura del pic, nel quale si
possono notare le varie linee a 8bit che lo costituiscono :
Figura 15: Piedinatura del PIC 16F877A
Pur potendo funzionare tutte come linee digitali (di tipo ON/OFF), alcune linee ha una particolare
modalità che la distingue dalle altre. Ad esempio la linea RA, contiene gli adc, mentre la RC i
moduli pwm.
47
Segue il listato completo del programma :
1: program debug4
2: 'variazioni'
3:
4: 'aggiunta tmr0'
5: 'controllo 0<DC<1024 per evitare reset OK funziona sia su tensione che
corrente'
6: 'aggiunta controllo temp + controllo ventola a isteresi'
7: 'aggiunta isteresi relè commutazione'
8: 'aggiunte isteresi su misure tensione / corrente'
9:
10: 'quarzo a 20mhZ'
11:
12: 'Routines per Gestione pwm a 10 bit Rc1 e Rc2
13: sub procedure PWM_10bit(dim dutyreg as word)
14: CCP1CON = 0 'reset del pwm'
15: T2CON=%00000100
16: PR2=255 'imposto freq pwm (19.53khz -> 10 bit)'
17: CCP1CON.5 = %00000001 and dutyreg 'CCP1CON 2 LSB of pwm'
18: CCP1CON.4 = %00000001 and (dutyreg >>1) 'CCP1CON 2 LSB of pwm'
19: CCPR1L=%11111111 and (dutyreg >>2) '8 msb pwm'
20: 'avvia il pwm'
21: CCP1CON.2=1
22: CCP1CON.3=1
23: end sub
24:
25: dim vmis as word
26: dim vimp as word
27: dim iimp as word
28: dim imis as word
29: dim T as word
30:
31: dim Vtoll as byte
32: dim Itoll as byte
33:
34: dim dutyreg as word
35: dim counter as byte
36:
37: 'lettura adc tensioni 0=vimp ; 1=vmis'
38: sub procedure VoltagesRead(dim a,b as byte)
39: vimp=adc_read(a)
40: delay_ms(2)
41: vmis=adc_read(b)
42: delay_ms(2)
43: end sub
44:
45: 'lettura adc correnti 2=iimp ; 3 =imis'
46: sub procedure CurrentsRead(dim c,d as byte)
47: iimp=adc_read(c)
48: delay_ms(2)
49: imis=adc_read(d)
50: delay_ms(2)
51: end sub
52:
53: 'lettura temperatura'
54: sub procedure TempRead(dim e as byte)
55: T=adc_read(e)
56: end sub
57:
48
58: 'chiamata dell'interrupt'
59: sub procedure interrupt
60: inc (counter) ' Increment value of counter on every
interrupt
61: TMR0 = 0 'azzera il contatore'
62: INTCON=$20 'riavvia il timer'
63:
64: end sub
65:
66: main:
67:
68: 'inizializzazione display'
69: Lcd8_config(portB, portD, 4,5,6, 7,6,5,4,3,2,1,0)
70: Lcd8_Cmd(Lcd_Clear)
71: Lcd8_Out(1,1, "Vimp=")
72: Lcd8_Out(2,1, "Iimp=")
73:
74:
75:
76: 'definisco le tolleranze'
77: Vtoll=10
78: Itoll=10
79:
80: 'inizializzo dutyreg'
81:
82: dutyreg=0
83:
84: 'impostazioni tmr0
85:
86: OPTION_REG = $87 ' setto il prescaler a 255
87: counter = 0 ' fisso a zero counter
88: INTCON = $A0 'abilita tmr0
89:
90:
91:
92:
93: 'setta le portA che uso come adc senza Vref'
94: 'ad0=vim ad1=vmis ad2=iimp ad3=imis ad4=libero
95: ADCON1=$82
96: 'imposto le porte'
97:
98: '***** portA *****'
99: trisa.0=1 'potenziometro vimp'
100: trisa.1=1 'potenziometro vmis'
101: trisa.2=1 'potenziometro iimp'
102: trisa.3=1 'potenziometro imis'
103: trisa.4=1 'sensore temp'
104: '***** portB *****'
105:
106:
107:
108: '***** portC *****'
109: trisc.2=0 'pin del pwm usato'
110: trisc.1=0 'pin del pwm libero'
111: trisc.3=0 'porta commutazione relè 12-24'
112: trisc.4=0 'porta che comanda il mosfet della ventola'
113:
114: '***** portD *****'
116: currentring:
117:
49
118: CurrentsRead(1,3)
119:
120: if imis < (iimp-Itoll) then
121:
122: goto voltagering
123:
124: else
125: if imis > (iimp+Itoll) then
126: if dutyreg >=1 then
127: dec (dutyreg)
128: PWM_10bit(dutyreg)
129: end if
130: end if
131:
132: goto currentring
133:
134: end if
135:
136: voltagering:
137:
138: 'commutazione secondari trafo, per ora intorno a 10V'
139: '1024 : 30 = X : 10 -> X=340
140: 'nb porta low = +5V ; porta high = 0V
141:
142: 'commutazione secondari con piccola finestra isteresi di 2 step'
143: if dutyreg>=355 then
144: 'eccita il relè (a 340*30mv=10V circa) e commuta sulla presa a 24
145: portc.3=1
146:
147: else
148:
149: if dutyreg<330 then
150: 'diseccità il relè e passa alla presa a 12
151: portc.3=0
152: end if
153:
154: end if
155:
156:
157: 'legge tramite la procedura gli adc 0 e 1'
158: VoltagesRead(0,2)
159:
160: incremento:
161: 'incrementa SOLO se non siamo già a dutyreg max (1023) altrimenti va in
overflow il pwm
162: if vmis < (vimp-Vtoll) then
163: if dutyreg <= 1022 then
164: inc (dutyreg)
165: PWM_10bit(dutyreg)
166: end if
167: else goto decremento
168: end if
169: goto voltageringend
170:
171: decremento:
172: 'decrementa solo se non siamo già a dutyreg min (0) altrimenti va in
overflow
il pwm
173: if vmis > (vimp+Vtoll) then
174: if dutyreg >=1 then
50
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
dec (dutyreg)
PWM_10bit(dutyreg)
end if
end if
voltageringend:
if counter=40 then
TempRead(4)
'controllo ventilazione (10mv/°C X A) con A=2.2
'accensione 50°C -> 1,1V -> 225 passi
'spegnimento 40°C -> 0,88V -> 180 passi
if T>230 then
portc.4=1
else
if T<180 then
portc.4=0
end if
end if
'azzera il contatore'
counter=0
end if
goto currentring
end.
Il software verrà quindi trattato in vari paragrafi seguendo l'ordine sequenziale con il quale è stato
presentato sopra.
3.2
Gestione del pwm
La gestione del pwm a 10bit viene gestita dalla seguente porzione di codice :
'Routines per Gestione pwm a 10 bit Rc1 e Rc2
sub procedure PWM_10bit(dim dutyreg as word)
CCP1CON = 0 'reset del pwm'
T2CON=%00000100
PR2=255
'imposto freq pwm (19.53khz -> 10 bit)'
CCP1CON.5 = %00000001 and dutyreg
'CCP1CON 2 LSB of pwm'
CCP1CON.4 = %00000001 and (dutyreg >>1) 'CCP1CON 2 LSB of pwm'
CCPR1L=%11111111 and (dutyreg >>2)
'8 msb pwm'
'avvia il pwm'
CCP1CON.2=1
CCP1CON.3=1
end sub
51
Il primo problema affrontato nella stesura di questa parte del software, è che il mikrobasic non
permette la gestione del pwm a 10bit nelle sue funzioni di alto livello (ma solo a 8 bit, quindi una
risoluzione insufficiente per i nostri scopi). Si è quindi reso necessario scrivere tramite degli include
le istruzioni necessarie, sotto forma di codice binario, direttamente all'interno dei registri del pic.
Utilizzando il data sheet del pic16F877A abbiamo notato che la risoluzione a 10bit del pwm è
disponibile solo a determinate frequenze. Utilizzando un quarzo a 20MHz (fosc), la formula che ci
fornisce la risoluzione del pwm in funzione della fosc e della frequenza del pwm è la seguente :
fosch

fpwm
log2 
 log
pwm res=
Relazione 18:
Che per un quarzo a 20Mhz si riassume nella seguente tabella :
Tabella 8: Risoluzione del pwm del pic 16F877A
Per questioni di dinamica del sistema abbiamo quindi deciso di operare alla massima frequenza
disponibile per poter lavorare a 10bit, ossia 19,53kHz. All'interno della tabella è anche indicato il
relativo valore di prescaler da impostare per configurare la frequenza di pwm, che nel nostro caso è
1. In base al prescaler, è necessario il calcolo di un coefficiente, che andrà inserito nel registro PR2
e che configurerà appunto il prescaler al valore determinato. La formula è la seguente :
pwm period =[ PR21]∗4∗Tosch∗TMR2 prescaler value 
Relazione 19:
Nota la frequenza di pwm e il valore di fosch, i tempi richiesti nella formula saranno i reciproci di
tali numeri, quindi possiamo scrivere :
52
1
1
=[ PR21]∗4∗
∗1
3
6
19,53∗10 
20∗10 
Relazione 20:
Il risultato della relazione 19 è che PR2 varrà 255, numero che andremo a caricare manualmente nel
registro stesso. Ora che il pwm è configurato, è necessario capire come impostarne il duty-cycle.
La procedura usata, analizzando la prima riga, usa come valore di duty-cycle del pwm il valore
della variabile dutyreg (in verde). Essendo tale variabile una word, ossia 16bit, potremmo
rappresentare 1024 passi, ossia duty-cycle spaziati circa dello 0,09%, infatti :
100 
≃0,09
1024
Relazione 21:
Una volta configurato il modulo pwm, dobbiamo passare l'argomento alla routine, ossia il valore del
duty-cycle da impostare, cosa che si ottiene tramite l'impostazione della variabile dutyreg. Il valore
binario di tale variabile, va inserito in due registri separati, i msb (most significant bit) vanno
inseriti in CCP1RL, mentre i lsb (less significant bit) vanno inseriti nel registro CCP1CON nelle
posizioni 4 e 5 del registro. Le operazioni di inserimento vengono effettuate tramite una operazione
di and e di shift (rispettivamente operatore and e >>) del valore binario di dutyreg (righe viola).
Il passo successivo è la scelta della porta pwm, il pic infatti dispone di 2 porte. Per selezionare la
porta si usa il registro T2CON, secondo la seguente tabella :
53
Tabella 9: Registro T2CON del PIC 16F877A
E' quindi sufficiente impostare tutto il registro a zero, tranne il bit della porta pwm che vogliamo
usare, che nel nostro caso è la numero 2, quindi il bit 2 di T2CON va posto a 1.
Dopo aver inserito i valori nel registro si procede con l'avviamento del pwm tramite la scrittura nel
registro CCP1CON. La struttura di tale registro è la seguente :
54
Tabella 10: Registro CCP1CON del pic 16F877A
Nel nostro caso per l'avviamento, inseriamo semplicemente due uno, rispettivamente nelle posizioni
numero 2 e 3 del registro
3.3
Variabili di sistema
Dopo aver scritto la subroutine del pwm, dichiariamo le variabili di sistema utilizzate
nell'esecuzione del programma
'Dichiarazione Variabili
dim vmis as word
dim vimp as word
dim iimp as word
dim imis as word
dim T as word
dim Vtoll as byte
dim Itoll as byte
55
dim dutyreg as word
dim counter as byte
dim temp as word
Iniziamo con il notare che sono state utilizzate solo variabili di tipo word (16bit) e di tipo byte
(8bit). Il significato delle variabili è il seguente:
●
Vmis e Vimp, sono le variabili che memorizzano la tensione misurata e quella impostata.
Essendo gli adc funzionanti a 10bit, la dimensione word combacia perfettamente con il
massimo numero di intervalli campionabili dall'adc.
●
Stesso discorso vale per Imis e Iimp, ossia la corrente misurata e quella impostata.
●
La variabile T rappresenta la temperatura del dissipatore
●
La variabile temp è usata per immagazzinare i dati temporanei di varie procedure
●
Vtoll e Itoll sono degli intervalli di tolleranza per definire delle isteresi all'interno dei cicli
di regolazione di tensione e corrente, non sono dichiarate come costanti, perché possono
essere variate per ampliare o diminuire gli intervalli di isteresi.
●
●
Il dutyreg è il parametro usato per impostare il duty-cycle dell'onda pwm.
counter è una variabile usata per scandire lo scorrere del tempo.
Le variabili verranno tutte trattate in dettaglio nei paragrafi successivi.
3.4
Lettura dagli adc
Vengono utilizzate due subroutine per la lettura degli adc, questo per evitare di ripetere all'interno
del codice gli stessi comandi più volte. Sono divise in 3 gruppi, la prima legge la tensione misurata
e impostata, la seconda la corrente misurata e imposta, mentre l'ultima legge il valore di temperatura
proveniente dal circuito di condizionamento della sonda LM35. E' stata inserita una pausa di 2 milli
secondi tra una lettura e l'altra per non stressare eccessivamente gli adc. Il comando mikrobasik che
si occupa della lettura è ADC_READ(n), dove n è il numero del relativo adc. Il risultato del
comando ADC_READ viene memorizzato nella variabile passata come argomento
'lettura adc tensioni 0=vimp ; 1=vmis'
sub procedure VoltagesRead(dim a,b as byte)
vimp=adc_read(a)
delay_ms(2)
56
vmis=adc_read(b)
delay_ms(2)
end sub
'lettura adc correnti 2=iimp ; 3 =imis'
sub procedure CurrentsRead(dim c,d as byte)
iimp=adc_read(c)
delay_ms(2)
imis=adc_read(d)
delay_ms(2)
end sub
'lettura temperatura'
sub procedure TempRead(dim e as byte)
T=adc_read(e)
end sub
3.5
Per
Scandire il tempo con l' interrupt
evitare che certi cicli vengano ripetuti ad ogni esecuzione del programma, è necessario
impostare una base dei tempi da utilizzare come condizione discriminante per l'esecuzione di queste
parti di programma. Volendo evitare di utilizzare una base dei tempi esterna (che complicherebbe
solo il circuito e la realizzazione del pcb), si è deciso di utilizzare un timer interno del pic, che unito
a una procedura di interrupt ci permette di scandire il tempo in maniera relativamente precisa. La
routine di interrupt sottostante, viene richiamata ciclicamente in base a un periodo che
determineremo successivamente.
Il suo compito è quella di incrementare di uno la variabile
counter, azzerare il timer0 e riavviarlo. La variabile counter, funzione del tempo, viene usata
all'interno del programma per eseguire particolari cicli. Nel paragrafo successivo, vedremo la
restante parte della subroutine.
'chiamata dell'interrupt'
sub procedure interrupt
inc (counter)
TMR0 = 0
INTCON=$20
' Increment value of counter on every interrupt
'azzera il contatore'
'riavvia il timer'
end sub
57
3.6
Inizializzazione delle variabili di sistema
Questo paragrafo si occupa dell'inizializzazione del display LCD e della definizione dei valori di
certe costanti. In questa parte del listato passiamo dalla parte che descrive le subroutine e gli
interrupt, al main del programma, ossia al cuore funzionante del sistema. Nelle prime righe si nota
come vengano scritte le parti statiche che appariranno sul display LCD, notiamo anche che viene
utilizzata la connessione a 8 bit (in ragione di quella molto più lenta a 4bit)) per velocizzare la
comunicazione e l'esecuzione del programma (comando LCD8). Va precisato che l'LCD si pilota
con due linee, come già detto esiste una linea dati a 8bit, in parallelo ad essa ci sono 3 segnali di
comando, RS (register select), RW (Read and Write) e E (Enable). Il comando LCD8 si occupa di
comunicare con l'LCD agendo in maniera trasparente a livello di queste linee, cosa che non sarebbe
vera se usassimo l' assembler come linguaggio di programmazione, nel qual caso dovremmo essere
noi a gestire i singoli segnali, introducendo una fase di studio su come utilizzare il display. Dopo
l'inizializzazione del display, si definiscono le tolleranze, e successivamente si imposta il dutyreg a
0, per evitare che l'alimentatore per qualsiasi motivo parta con una tensione diversa da quella
impostata dai comandi, ma sia obbligato a partire con l'uscita a zero volt. Per quanto riguarda le
righe successive, sono il completamento dei parametri della procedura di interrupt usata per
scandire il tempo. Utilizzando TMR0, dal datasheet si rileva che il suo registro di configurazione è
l'OPTION_REG. Il timer0 può funzionare utilizzando una frazione della frequenza dell'oscillatore
del PIC (fosc/4 più precisamente) oppure un ingresso esterno. Nel nostro specifico caso
utilizzeremo fosc, per non utilizzare componenti esterne. Timer0 ha la dimesione di 8 bit, quindi
può contare a 0 a 254, dopo di chè va in overflow. Utilizzeremo per l'appunto il suo overflow per
richiamare la procedura di interrupt e incrementare la variabile counter. Siamo obbligati a seguire
questa via perché il tempo base che usa timer0 vale fosch/4 ossia
fosc 20.000
1
=
=5 Mhz quindi Tmr0 Base=
=0,2  s
4
4
5∗10 6
Relazione 22:
In pratica ogni 0,2usec tmr0 si incrementa di 1, arrivando a 254 in circa 51 micro secondi .Abbiamo
però la possibilità di usare un prescaler, utile per dividere fosc/4. Utilizzandolo al suo massimo
valore, ossia 255, dividiamo fosc quarti per 255, ottenendo una frequenza base di

fosc

4
1
=19531,25 Hz quindi un periodo di Tmr0 di
ossia 51,2  s
256
19531,25
Relazione 23:
58
In questa configurazione per completare il ciclo di 255 passi, timer0 impiegherà circa 13 milli
secondi. Questo periodo sarà il nuovo tempo base, quindi ogni 13 milli secondi secondi, verrà
richiamata la procedura di interrupt del paragrafo precedente, verrà incrementato counter, e infine
verrà azzerato e riavviato il timer. A questo punto in base al valore di counter avremmo una stima
del tempo trascorso. Ad esempio se counter vale 40, vuol dire che sono stati percorsi 40 cicli da 13
milli secondi, ossia circa mezzo secondo. Pur non essendo un sistema preciso, è più che sufficiente
per scandire gli intervalli temporali che ci interessano. Le ultime due righe del codice che segue non
fanno altro che impostare il prescaler a 255, azzerano il timer e lo riavviano.
'inizializzazione display'
Lcd8_config(portB, portD, 4,5,6, 7,6,5,4,3,2,1,0)
Lcd8_Cmd(Lcd_Clear)
Lcd8_Out(1,1, "Vimp=")
Lcd8_Out(2,1, "Iimp=")
'definisco le tolleranze'
Vtoll=3
Itoll=3
'inizializzo dutyreg'
dutyreg=0
'impostazioni tmr0
OPTION_REG = $87
counter = 0
INTCON = $A0
3.7
' setto il prescaler a 255
' fisso a zero counter
'abilita tmr0
Configurazione porte ingresso uscita
In questa parte andremo a definire quali sono le porte di ingresso e uscita del PIC. Per prima cosa
impostiamo le porte della linea A che andremo a usare come adc. Ciò in base al datasheet si ottiene
scrivendo nel registro ADCON1 il valore 82 (esadecimale), come si deriva dalla tabella 11. Per
trovare la corrispondenza dei bit è sufficiente convertire 82 da esadecimale a binario, ossia
10000010.In questa maniera imposteremo i pin da 0 a 4 come adc. Successivamente dopo averli
configurati come adc vanno impostati come ingressi, e questo si ottiene con le linee trisa.X=1 dove
X identifica i pin degli adc (il comando tris ha la seguente sintassi tris(linea).(pin)=azione). Se
avessimo voluto impostare come ingressi sarebbe stato sufficiente porle uguale a 0. Nelle rimanenti
righe, impostiamo come uscite il pin del modulo pwm, e delle due porte usate rispettivamente per
59
avviare la ventola del dissipatore e per fare eccitare il relè commutazione secondari.
'setta le portA che uso come ADC senza Vref'
'ad0=vim ad1=vmis ad2=iimp ad3=imis ad4=libero
ADCON1=$82
'imposto le porte'
'***** portA *****'
trisa.0=1 'potenziometro vimp'
trisa.1=1 'potenziometro vmis'
trisa.2=1 'potenziometro iimp'
trisa.3=1 'potenziometro imis'
trisa.4=1 'sensore temp'
'***** portB *****'
'***** portC *****'
trisc.2=0 'pin del pwm usato'
trisc.1=0 'pin del pwm libero'
trisc.3=0 'porta commutazione relè 12-24'
trisc.4=0 'porta che comanda il mosfet della ventola'
'***** portD *****'
60
Tabella 11: Registro adcO1 del pic 16F877A
Come tensione di riferimento per gli adc utilizziamo la tensione di alimentazione del pic e non un
riferimento esterno.
3.8
Anello di corrente
L'anello di corrente viene eseguito sempre prima del controllo di tensione. Ogni modifica del pwm
fatta nella sezione dell'anello di tensione viene sistematicamente controllata dall'anello in corrente,
per evitare che venga superata la soglia della corrente impostata. La parte che apre questa sezione è
semplicemente un “label” e serve durante i salti che si fanno all'interno delle varie parti. L'anello è
costituito da due cicli if / then /else. Il primo verifica che la corrente misurata sia minore della
corrente impostata, se è verificato si passa a regolare la tensione. Il secondo ciclo viene eseguito
quando la corrente misurata è maggiore di quella impostata, in questo caso diminuisce il dc di 1
61
step, applica il cambiamento e torna all'inizio dell'anello di corrente. La condizione di uscita dal
ciclo rimane esclusivamente quella per la quale la corrente misurata è al di sotto della soglia della
corrente impostata, in caso contrario viene reiterato più volte il ciclo che diminuisce il dc fino ad
arrivare alla condizione di uscita.
currentring:
CurrentsRead(2,3)
if imis < (iimp-Itoll) then
goto voltagering
else
if imis > (iimp+Itoll) then
if dutyreg >=1 then
dec (dutyreg)
PWM_10bit(dutyreg)
end if
end if
goto currentring
end if
Figura 16: Diagramma dell'isteresi della misura della corrente
In riferimento a figura 16, mostriamo un diagramma che indica l'interfaccia di isteresi presente
all'interno del listato. La larghezza della banda di isteresi si può ricavare dalla seguente relazione, e
come si nota in figura vale 2 volte la tolleranza impostata :
CH =IimpItoll− Iimp−Itoll =2Itoll
Relazione 24:
62
Dal diagramma notiamo subito che affinché venga eseguita una qualsiasi operazione, è necessario
essere al di fuori della banda di isteresi della corrente (CH). Regolando opportunamente Itoll si può
aumentare o diminuire la precisione con la quale il sistema segue il riferimento. Una CH troppo
elevata porta il sistema a non essere preciso nell'inseguimento dei riferimenti, al contrario una CH
troppo piccola costringe il sistema ad andare continuamente in regolazione, sia per piccoli sbalzi di
corrente richiesta dal carico, sia per le inevitabili tolleranze che possono falsare la parte di misura
delle grandezze in uscita.
3.9
Anello di tensione
E' diviso in due parti, una effettua la commutazione dei secondari del trasformatore, per diminuire
le perdite di potenza su finali, diminuendo la tensione sul collettore dei transistore, l'altra parte si
occupa della regolazione vera e propria.
3.9.1
Commutazione secondari
voltagering:
'commutazione secondari trafo, per ora intorno a 10V'
'1024 : 30 = X : 10 -> X=340
'nb porta low = +5V ; porta high = 0V
'commutazione secondari con piccola finestra isteresi di 2 step'
if dutyreg>=355 then
'eccita il relè (a 340*30mv=10V circa) e commuta sulla presa a 24
portc.3=1
else
if dutyreg<330 then
'diseccità il relè e passa alla presa a 12
portc.3=0
end if
end if
Essendo il trasformatore provvisto di due secondari, uno a 12V e l'altro a 36V, si è deciso di
commutare tra l'uno e l'altro quando la tensione richiesta in uscita è di circa 15V. Per calcolare il
63
valore esatto di Vmis corrispondente a 15V usiamo la seguente uguaglianza.
1024 : 30V= X : 10V quindi X =
1024∗10
≈340
30
Relazione 25:
Quindi, al passo 340 dell'adc che legge il valore di Vmis dovrà essere effettuata la commutazione,
azionando sulla serie di porte C l'uscita numero 3. La commutazione a scendere non verrà effettuata
al passo 340 per evitare di creare oscillazioni, viene quindi commutato al passo 330, creando una
finestra di isteresi di circa 10 passi. Anche in questo caso, facciamo una trasposizione di quanto
detto in un grafico, visibile in figura 17, dove andiamo a vedere la finestra di isteresi nella quale si
nota la banda all'interno della quale non si effettuano regolazioni.
Figura 17: Diagramma dell'isteresi del controllo di commutazione tra i secondari del trafo
3.9.2
Regolazione di tensione
'legge tramite la procedura gli adc 0 e 1'
VoltagesRead(0,1)
incremento:
'incrementa SOLO se non siamo già a dutyreg max (1023) altrimenti va in overflow il pwm
if vmis < (vimp-Vtoll) then
if dutyreg <= 1022 then
inc (dutyreg)
PWM_10bit(dutyreg)
end if
else goto decremento
end if
goto voltageringend
64
decremento:
'decrementa solo se non siamo già a dutyreg min (0) altrimenti va in overflow il pwm
if vmis > (vimp+Vtoll) then
if dutyreg >=1 then
dec (dutyreg)
PWM_10bit(dutyreg)
end if
end if
voltageringend:
L'anello di tensione vero e proprio, è costituito anche esso da due cicli if then else, il primo si
occupa di inseguire la tensione impostata quando quella misurata è troppo bassa, il secondo al
contrario si occupa di raggiungere Vimp nel caso in cui Vmis sia troppo alta, quindi si occupa
esclusivamente del decremento. E' stato necessario inserire dei limiti sia all'incremento che al
decremento (parti blu), infatti nel caso non si riesca a raggiungere Vimp, il software continua a
incrementare dc, ma arrivato al limite superiore, ossia 1023, la variabile dc va in overflow e riparte
da 0. Lo stesso avviene nei decrementi, infatti nel caso in cui non si riesca a raggiungere il limite
inferiore di Vimp, il software decrementerebbe la variabile dc fino a zero, che andrebbe in overflow
positivo e ripartendo da 1023 a scendere (il tutto verrebbe riportato in uscita con una oscillazione
enorme tra 0 e 30 volt). Per questo sono stati aggiunti due cicli If che non eseguono decrementi se
dc è già al massimo e viceversa, non decrementano se dc è già al suo valore minimo. Come nel caso
dell'anello di corrente, riportiamo un grafico che rappresenta visivamente la finestra di isteresi.
Figura 18: Diagramma dell'isteresi del controllo di tensione
Come si vede in figura 18 le regolazioni si effettuano solo al di fuori della banda VH, che vale :
VH =VimpVtoll −Vimp−Vtoll =2∗Vtoll
Relazione 26:
65
3.9.3
Controllo Temperatura
Il ciclo di controllo della temperatura è il ciclo che sfrutta la temporizzazione del timer0. Questo
perché, essendo i transitori termici più lenti di quelli elettrici, è inutile eseguire questa porzione di
codice con la stessa frequenza degli anelli di tensione e corrente. Per questo la condizione per
entrare nel ciclo è che la variabile counter sia 40, ossia siano trascorsi 0,5 secondi (ricordiamo che
ogni incremento di counter avviene in 13msec come visto nel paragrafo 3.5). Una volta entrati nel
ciclo, si verifica la temperatura del dissipatore, e si avvia la ventola solo se la temperatura eccede
50°C. Lo spegnimento al contrario avviene solo se la temperatura è scesa sotto i 40°C, andando così
a creare una finestra di isteresi di circa 10°C, per evitare un continuo accendersi e spegnersi della
ventola intorno alla soglia di 50°C. Completata l'accensione o lo spegnimento della ventola, si
reinizializza la variabile counter a zero e si ritorna al label dove inizia il controllo di corrente.
if counter=40 then
TempRead(4)
'controllo ventilazione (10mv/°C X A) con A=2.2
'accensione 50°C -> 1,1V -> 225 passi
'spegnimento 40°C -> 0,88V -> 180 passi
if T>230 then
portc.4=1
else
if T<180 then
portc.4=0
end if
end if
'azzera il contatore'
counter=0
end if
goto currentring
end.
Lo schema che chiarisce questa parte è il seguente.
66
Figura 19: Diagramma dell'isteresi dell'azionamento della ventola
I valori Tmax e Tmin sono arbitrariamente impostabili all'interno del programma. In questo caso la
banda di isteresi sarà semplicemente determinata dalla seguente relazione
TH =Tmax−Tmin
Relazione 27:
3.10
Scrittura a display
L'ultima parte del listato è quella che si occupa della scrittura a display delle grandezze impostate e
misurate. La conversione tra passi dell' adc e grandezze reali viene effettuata con una semplice
moltiplicazione e relativa normalizzazione per inserire il punto decimale. Nel dettaglio, sappiamo
che :
●
Ogni step della Vmis è di circa 30 mV (ottenuto dividendo il valore disponibile ai morsetti
di uscita fratto 1024)
●
Ogni step della Imis è di circa 97 mA (come nel caso precedente, è il valore ottenuto
dividendo la massima corrente in uscita per 1024)
Nel dettaglio, per inserire il punto decimale, non usiamo variabili float (che occupano memoria e
appesantiscono l'esecuzione del software), ma usiamo la normalizzazione, ossia convertiamo il
risultato della moltiplicazione in una stringa di caratteri, dopo di chè aggiungiamo la virgola nel
punto esatto.
Prendiamo in esame la seguente porzione di codice ad esempio :
temp=vimp*29
Print_Dec(temp, "##.###", RJZ, stringa)
Lcd_Out(1, 4, stringa)
67
La prima stringa converte il valore adc in valore reale, successivamente la funzione Print_Dec è
incaricata di convertire il numero decimale in stringa e di applicare la virgola. In pratica, non
appena il risultato eccede le 3 cifre (che rappresentano i millivolt o i milli ampere) , Print_Dec,
inserisce il punto decimale. In questa maniera il comando LCD_Out ha già pronta una variabile
stringa da inviare in output sul bus dati dell' LCD. Similarmente a quanto fatto per la misura della
temperatura, il ciclo di visualizzazione a display viene effettuato ogni 15 conteggi della variabile
counter, infatti nel listato, tale parte di codice per essere eseguita è subordinata alla condizione
if counter=15 then
[codice]
end if
68
Capitolo4
4.1
Dimensionamento dei componenti
Dimensionamento componenti signal board
In questo capitolo ci occuperemo del dimensionamento dei componenti costituenti l'intero circuito.
Tutti i ragionamenti saranno riferiti allo schema numero dieci. Tutti i componenti aggiunti rispetto
ai capitoli precedenti, verranno trattati mano a mano durante i vari punti.
4.1.1 Dimensionamento delle resistenze accessorie degli operazionali
usati nei processi di feedback
Dimensioniamo a questo punto le varie resistenze utilizzate per ottenere i guadagni dei vari stadi.
Iniziamo a calcolare i valori usati negli operazionali che realizzano il feedback di corrente e di
temperatura. In riferimento allo schema 10 calcoliamo il guadagno statico Ki. Dal paragrafo 2.4.4
relazione 11 sappiamo che Ki deve valere undici. Per garantirci un minimo di regolazione, al posto
della resistenza di retroazione (R5) utilizziamo un trimmer multi giro. Avremo quindi che :
Ki=1
R5
R5
quindi
=10
R4
R4
Relazione 28:
Per garantire il rapporto R5/R4 utilizziamo un trimmer multi giro da 50k per R5 e una resistenza da
3300 ohm per R4. In questa configurazione il guadagno massimo dello stadio,a trimmer tutto
inserito, è dato dal rapporto 50000/3300 e vale circa 15.
Nel caso del feedback di temperatura, Kt vale 5, come visto al paragrafo 2.4. Avremo quindi che il
rapporto tra le resistenze dovrà valere :
Kt =1
R2
R2
quindi
=4
R3
R3
Relazione 29:
E' buona norma che le resistenze utilizzate nelle reti degli operazionali, siano comprese tra 1 e
100k. Il limite inferiore non va superato per non drenare correnti eccessive, mentre quello superiore
non va oltrepassato per l'insorgere di eccessivo rumore bianco ai capi dei resistori. Per non
utilizzare un numero eccessivo di valori delle resistenze, utilizziamo lo stesso valore per R5 e R2,
ad esempio 10k. Risulterà quindi che :
R3=
R2 10k
R5 10k
=
=2,5 k e R4= =
=1k
4
4
10 10
Relazione 30:
69
Schema 10: Schema elettrico della signal board
70
Nel caso di R4 prendiamo una resistenza di valore commerciale di 1200 ohm, in quanto possiamo
compensare la discrepanza con il trimmer R5. Come valore di R3 prendiamo una resistenza
commerciale da 2400 ohm, che realizza un guadagno dello stadio vicino a quello desiderato. Va
inoltre ricordato che le resistenze hanno tolleranza del 5% e potenza ¼ Watt, ed è il motivo per il
quale ogni stadio (eccetto la temperatura) dispone di trimmer per regolare in maniera corretta il
guadagno.
Per quanto riguarda il feedback in tensione, dal paragrafo 2.4 abbiamo che Kv vale un sesto.
Utilizziamo quindi, per avere margini di taratura, un trimmer da 10k in serie a una resistenza da 5k
sulla retroazione, mentre sui morsetti di ingresso usiamo una resistenza da 56k. In conclusione,
useremo R12=R13=5k e R10=R11=56k. Sappiamo anche che deve valere l'uguaglianza vista nella
relazione 8. Risulta quindi R28=R29=10k, R12=R13=5k, infine R10=R11=56k. In questo caso
potremmo variare il guadagno da 0,26 a 0,09, che sono rispettivamente i valori limite con
potenziometro tutti inserito e completamente escluso. Il valore di 1/6 (ossia 0,16) desiderato si trova
in ogni caso nel range ottenuto, garantendo buoni margini di regolazione.
4.1.2
Dimensionamento del filtro attivo
Durante vari test su bredboard siamo costantemente scesi con la frequenza di cutoff della cella
sallen-key, da 1/10 della fpwm a scendere. Dopo vari test abbiamo scelto di utilizzare la
configurazione con la fc più bassa, in corrispondenza della quale potevamo ancora usare
condensatori non polarizzati. Tale frequenza è di circa 0,5Hz, circa 1/10000 della frequenza di
pwm. Questa configurazione, pur garantendo una buona dinamica, permette di filtrare anche i
disturbi in bassa frequenza provenienti dalla rete di alimentazione o irradiati da altre sorgenti in
prossimità dell'alimentatore. In questa configurazione i valori delle resistenze sono i seguenti :
R27=R7=220k, C7=1uF mentre l'ultimo condensatore, il cui valore è 2uF è costituito da un
parallelo di 2 condensatori da 1uF (C28 e C29). Tutte le capacità sono di tipo ceramico, e le
resistenze hanno tolleranza 5% e potenza massima di ¼ Watt. In questa configurazione, la
frequenza di cut off vale, in riferimento alla relazione 15 :
71
fc=
1
2∗∗ R27∗R7∗C28C29∗C7 
sostituendo i valori numerici
1
=1,28 Hz
  2∗∗220∗10 ∗220∗103∗1∗10−6∗11∗10−6 
3
Relazione 31:
A questo punto è necessario dimensionare l'ultimo stadio di amplificazione (si ricorda che la cella
sallen-key è a guadagno unitario). Il guadagno di questo stadio vale kpwm e deve portare l'uscita a
30V quando il dc è al 100%, ossia quando il valore medio in uscita dalla cella è di 5V. Dalla
relazione 14 sappiamo che kpwm vale 6. Per realizzare questo guadagno, le resistenze del relativo
stadio devono valere :
R8
=6
 R17 R9
Relazione 32:
Utilizzeremo quindi una resistenza da 100k sul ramo di retroazione, accompagnata da un trimmer
da 10k con in serie un ulteriore resistenza da 10k. In questo caso i guadagni realizzabili variano da 4
a 10 relativamente al fatto che il potenziometro sia completamente inserito o completamente
escluso. Viene utilizzata una configurazione a guadagno variabile, questo perché prima di giungere
ai morsetti di uscita, questa tensione va ancora decurtata di una serie di cadute, sintetizzabili nello
schema di figura 20.
Partendo dal segnale pwm, il segnale viene filtrato e poi amplificato, quindi ragionevolmente
possiamo pensare di mantenerlo nel range 0-5V. Una volta uscito dal filtro, più precisamente
dall'amplificatore del filtro, attraversa il bypass di segnale (transistor Q2), dove dal suo valore va
sottratta la caduta Vbe. Arrivato al bypass di potenza, bisogna sottrarre un ulteriore caduta. Usciti
dal generico ramo scelto sul bypass di potenza, dobbiamo ancora sottrarre la caduta sulla resistenza
di emettitore, che può raggiungere anche valori elevati. Se supponiamo di stare erogando 10A, nel
generico ramo avremo ¼ della corrente, che moltiplicata per il valore della resistenza collegata
sull'emettitore del darlington (0,22 ohm) ci da una caduta massima di 0,55V. Va ulteriormente
conteggiato lo shunt, che va collegato tra il morsetto negativo e massa, la caduta massima ai suoi
capi sarà di 0,05 ohm moltiplicata per 10 ampere, ossia 0,5V. Stimando le cadute Vbe di 0,6V (che
non è l'ipotesi peggiorativa) abbiamo che prima di arrivare in uscita perderemo ben 2,75V. Questo
72
giustifica il fatto di utilizzare il guadagno variabile per l'amplificatore del filtro attivo. Infatti basterà
semplicemente tararlo per ottenere 30V nelle condizioni di massimo carico, andando a compensare
le cadute sopracitate.
Figura 20: Cadute di tensione tra ingresso e uscita
4.1.3
Linee di alimentazione
Dimensioniamo ora la componentistica a corredo degli integrati usati per regolare la tensione sulla
linea a +5V DC, e +30V DC. Sono stati utilizzati due integrati, un regolatore fisso per la linea a 5V,
ossia un comune LM7805 e un LM317 con voltaggio regolabile per la linea a 30V.
73
Figura 21: Schema del regolatore di tensione lm7805
I calcoli che seguono sono riferiti alla figura 16. Segue una tabella con il significato dei vari
parametri.
Vingresso
Tensione in ingresso al regolatore
V
Vuscita
Tensione in uscita dal regolatore
V
Ia
Corrente totale assorbita dal regolatore (somma di Ie+Iadj)
A
Ie
Corrente erogata dal regolatore
A
Iadj
Corrente assorbita dal regolatore per effettuare la regolazione A
Rgc
Resistenza termica giunzione/contenitore
°C/W
Rcd
Resistenza termica contenitore dissipatore
°C/W
Rda
Resistenza termica dissipatore ambiente
°C/W
Caduta ai capi del regolatore
V
Vingresso-Vuscita
Tabella 12: Parametri del regolatore di tensione lm7805
Il 7805 è alimentato da un ponte a diodi monolitico (siglatoB1 nello schema) di capacità 1A, una
corrente più che sufficiente per alimentare sia il pic che il display LCD. L'integrato è dotato di un
74
piccolo dissipatore passivo che ha resistenza termica Rda di circa 7,7°C/W La stima sulla
dissipazione è stata fatta seguendo il seguente ragionamento. Da prove al banco, se il display LCD è
completamente nero (tutte le celle accese), con retroilluminazione al massimo, la corrente che
assorbe sulla linea a +5V DC è di circa 240mA per la retroilluminazione e di 5mA per l'elettronica
di bordo. Il pic con l'uscita pwm attiva assorbe circa 10mA .Il totale risulta quindi di 255mA,
arrotondiamo a 300mA nel caso siano contemporaneamente attive le uscite che pilotano il relè e la
ventola (nei ragionamenti non consideriamo Iadj che è di pochi nano ampere). Considerando questa
corrente, risulta anche dimensionato correttamente il ponte B1. Il 7805 alimenta anche il pin di
MCLR, usato per mettere il pic in modalità di esecuzione del programma. Essendo la resistenza in
oggetto R1 di 4700 la corrente drenata è trascurabile. Per il calcolo della dissipazione di potenza sul
7805 dovremo quindi conoscere, oltre la corrente massima erogata, la differenza tra tensione
massima in ingresso e minima in uscita. Per quanto riguarda la tensione massima in ingresso, basta
prendere il valore di picco dell'alternata dell'avvolgimento a 12V AC e aumentarla del 10% per le
oscillazioni direte, quindi :
Vingresso max7805=12∗ 2∗1,1=18V
Relazione 33:
La tensione minima in uscita dall'integrato, si rileva dal datasheet e vale :
Vuscita min7805=4,8 V
Relazione 34:
La dissipazione varrà quindi, riferita alla corrente stimata di 700mA :
Pd max 7805 =Vingresso max7805 −Vuscita min7805 ∗Ia  max7805=18−4,8∗0,255=3,366 W
Relazione 35:
La temperatura massima raggiunta dall'integrato sarà quindi :
T  max7805 = RgcRcd  Rda∗Pd max Ta=51,47,7∗3,36625=72,46 ° C
Relazione 36:
La temperatura massima che raggiungerà l'integrato risulta di 72,46°C che risulta di molto inferiore
al limite di 125°C indicato sul datasheet. I condensatori C16, C4, C15 e C5 servono per migliorare
la stabilità del regolatore.
Ripetiamo gli stessi ragionamenti per quanto riguarda l'LM317. Il regolatore alimenta tutti gli
operazionali e il transistor Q2 che fa parte del bypass della scheda di segnale. Come ipotesi
peggiorativa, supponiamo che tutti gli operazionali abbiano l'uscita in corto circuito, quindi stiano
75
erogando la loro corrente massima, che è di 60mA. La somma di tutte le correnti sarà di 320mA.
La corrente ai morsetti in uscita, va divisa nei 4 rami del parallelo dei darlington. Se ora dividiamo
la corrente di ogni ramo per l' Hfe minimo del transistor, avrò la corrente massima richiesta dal
transistor per il suo pilotaggio, quindi :
 Iout / 4
Iout
2,5
=2,5 A quindi
=
=5mA
4
 Hfe mintip142 500
Se ogni ramo assorbisse 0,5mA, 4 rami per venire pilotati assorbirebbero 2mA, corrente trascurabile
se confrontata con i 320mA supposti prima. Consideriamo, come per il 7805, trascurabile la Iadj,
potremmo quindi scrivere :
Vingresso max317=36∗ 2=50V
Relazione 37:
36 volte radice 2 è il massimo valore che l'LM317 vede ai suoi capi, ossia la tensione di picco in
uscita dal ponte a diodi della parte di potenza (trascuriamo come per il ponte di graetz della parte di
segnale, la caduta sui diodi in conduzione). La tensione minima in uscita, sotto la quale non
vogliamo mai scendere, è quella che ci permette di avere almeno 30V in uscita. Tale tensione è stata
calcolata in precedenza, e vale circa 2,75V, per sicurezza maggioriamola e portiamola a 3V.
Vuscita min317 =Vout3=33V
Relazione 38:
Regolando l'LM317 per ottenere questa tensione, la potenza dissipata massima varrà
Pd max 317 =Vingressomax 317 −Vuscita min317 ∗Ia max317 =50−33∗0,320=5,44 W
Relazione 39:
La temperatura massima raggiunta dal corpo dell'integrato varrà quindi :
T  max317= RgcRcd Rda ∗Pd max317 Ta= 41,47,7∗5,4425=96,26 ° C
Relazione 40:
Anche in questo caso siamo sotto la temperatura massima ammessa che è di 125C°. Rispetto al caso
precedente, dobbiamo calcolare le resistenze per poter regolare la tensione in uscita. Dal datasheet
risulta che :
76
{
Vuscita 317=1,25 1
}
 R16 R18
 Iadj∗ R16R18
R6
Relazione 41:
Come ipotesi peggiorativa consideriamo il secondo termine nullo, in quanto la Iadj risulta al
massimo di 100 micro ampere. Utilizziamo come somma R16+R18 una resistenza da 3,9 k con in
serie un trimmer multi giro da 2k. La resistenza R6 viene scelta di 220 ohm. In questa
configurazione il range di escursione ottenibili, va da 22,72 volt con trimmer escluso a 35V con
trimmer completamente inserito. Il range risulta più che sufficiente per compensare le cadute di
figura 15. Il terminale di regolazione è bypassato dal condensatore C26 per evitare che il ripple
venga amplificato durante la regolazione. I condensatori posizionati sull'ingresso e sull'uscita sono
utilizzati, come per il 7805, per migliorare la stabilità. I diodi D5 e D6 sono diodi di protezione che
evitano che le capacità si scarichino sul regolatore quando viene a mancare la tensione di
alimentazione (D5 protegge dalla scarica di C10 e D6 dalla scarica di C28). L'ingresso dell'LM317
viene prelevato da un piccolo ponte a diodi di portata 1 ampere. Il fatto di non prelevare
l'alimentazione dal ponte a diodi di potenza, risiede nel fatto che in tale condizione l'LM317 sarebbe
alimentato dal banco di condensatori elettrolitici del filtro di potenza, di conseguenza, in condizione
di ripple elevati, la tensione in ingresso potrebbe scendere a valori troppo bassi. Eccetto i valori
delle resistenze, i valori dei condensatori sono stati in parte derivati dal data sheet e in parte scelti in
seguito a varie prove.
4.1.4
Filtri livellamento
In riferimento allo schema numero dieci, ci sono due filtri di livellamento, che servono
rispettivamente il ponte a diodi della parte di potenza e il ponte a diodi della parte di segnale. In
dettaglio il gruppo C3, C6, C11, C13, C14, C21 è il filtro di livellamento del ponte a diodi di
potenza, mentre C8 e C9 sono collegati a valle del ponte a diodi che serve la scheda di segnale. Si
porta a conoscenza che esiste anche anche un terzo ponte (da collegare tramite cablaggi), non
presente nello schema elettrico, che fornisce la tensione all' LM317. Ci sono vari approcci per il
dimensionamento dei condensatori di livellamento, il più diffuso è ragionare sugli esponenziali di
carica e scarica dei condensatori, riferiti alla resistenza di carico e alla resistenza del secondario del
trasformatore. Infatti si può immaginare il banco di condensatori che si carica attraverso il
secondario del trafo e si scarica sul carico, con due costanti di tempo distinte. In base alla differenza
tra le tau di carica e scarica avremo un determinato ripple, che può essere minimizzato facendo in
modo che la tau di scarica sia sempre molto maggiore di quella di carica. Questo metodo seppur
77
analiticamente più corretto è di difficile soluzione. Esiste un altro metodo, che si basa su
diagrammi, che per iterazioni successive ci porta al corretto valore di capacita per un determinato
carico. Nel nostro caso si è deciso di usare un approccio diverso ma pure sempre valido.
Immaginiamo che il carico sia un dispositivo che assorbe una corrente costante, indipendentemente
dal valore di tensione al quale è alimentato. Analizziamo la seguente figura :
v
T'
φφ
Vmin
Vr
Vmax
Vmin'
t
T
Figura 22: Ripple sul filtro di livellamento
Le linee nere rappresentano il profilo di scarica, la loro pendenza φè direttamente proporzionale alla
corrente drenata dal carico. Più la corrente è elevata, più la pendenza e ripida, e raggiunge valori di
Vmin bassi (linea blu, relativa al valore Vmin'), aumentando la Vr. Immaginiamo di posizionarci in
un generico istante t, all'apice della sinusoide. In questo istante, la quantità di carica immagazzinata
sarà :
Q max=Ctot∗Vmax
Relazione 42:
Alla fine della scarica, la quantità di carica rimasta nel banco di condensatori sarà :
Qmin=Ctot∗Vmax−Vr 
Relazione 43:
A questo punto facciamo un ipotesi, ossia poniamo che T' coincida con T, anche se ciò non risulta
78
vero, in quanto T' è minore di T. Potremmo dire che la variazione di carica vale :
Qmax−Qmin= I∗T '≈ I ∗T
Relazione 44:
Sostituendo la relazione 42 e 43 nella 44, otteniamo :
Ctot∗Vmax−C Vmax−Vr =I∗T quindi Ctot∗Vmax−Ctot∗Vmax Ctot∗Vr= I∗T ricaviamoC
I ∗T
Ctot=
Vr
Relazione 45:
Il dimensionamento di C si otterrà quindi dalla relazione 39, ponendo I uguale alla massima
corrente che può circolare, ossia 10 ampere, T=0,01 secondi (l'onda ha periodo doppio della
frequenza di rete, ossia 100Hz). Per Vr bisogna fare un ragionamento ulteriore, infatti il nostro
obbiettivo è che il valore di Vr non ci porti mai al di sotto del valore Vmin. In ogni caso, essendo
l'uscita dell'alimentatore regolabile tra 0 e 30 volt, appare sufficiente fissare la Vmin a 40V. Come
Vmax utilizzeremo la tensione massima in uscita dal ponte, con le condizioni più sfavorevoli, ossia
con la caduta massima sui diodi di potenza e la tensione di rete al 10% sotto il valore nominale.
Considerando il secondario del trafo a 36V, nella condizione più sfavorevole avremo 36V decurtato
del 10% ossia 32,4V. Da questa tensione dobbiamo sottrarre la caduta sui diodi del ponte (essendo
un full bridge dobbiamo moltiplicarla per 2) che in condizioni sfavorevoli vale 1V per ogni diodo.
Avremo quindi che ai capi del banco di condensatori la tensione minima varrà 30,4V moltiplicato
per radice 2 ossia circa 42 volt. In questo caso, fissata la Vmin a 40V, il ripple ammissibile varrà
solamente 2V, quindi il banco di condensatori dovrà avere una capacità di :
C=
I ∗T 0,01∗10
=
=0,05 F
Vr
2
Relazione 46:
A livello sperimentale, in ogni caso per questa prima release del progetto, utilizzeremo 4 capacità
elettrolitiche da 10.000uF con in parallelo altre due capacità di tipo diverso. Una è costituita da un
piccolo condensatore in poliestere, mentre l'altra è un elettrolitico di misura ridotta. L'uso di vari
condensatori in parallelo, che vanno a formare la grossa capacità richiesta, si rende necessario per
ridurre l'ESR totale del banco, mentre parallelare condensatori più piccoli e di tipo diverso, è utile
per eliminare disturbi e oscillazioni a frequenze diverse da quella della rete. Infatti i condensatori
ceramici e in poliestere, dispongono di un ESR ridotto, e sono più adatti a filtrare rumore a
79
frequenze alte, rispetto agli elettrolitici che lavorano bene in bassa frequenza. A livello di schema si
notano quindi 4 capacità da 10.000uF in parallelo (C3, C11, C13 e C14) a una capacità al poliestere
(C21) da da 100nF e un elettrolitico da 220uF (C11). Il compromesso migliore si ottiene in ogni
caso solamente per via sperimentale. Tutte le capacità devono avere una tensione di lavoro
maggiore della massima tensione in uscita dal ponte, in questo caso considereremo la tensione di
rete maggiorata del 10% e la caduta sui diodi del ponte nulla, quindi la tensione di lavoro dei
condensatori dovrà essere maggiore di 36V più il 10%, moltiplicato per radice 2 ,ossia 56V.
Per quanto riguarda il ponte a diodi B1 valgono gli stessi ragionamenti. In questo caso la capacità si
ricaverà sempre dalla relazione 40. Con riferimento alla corrente, utilizzeremo quella stimata in
precedenza al paragrafo 4,4 ossia la Ia(max) del 7805. La tensione minima in arrivo sul 7805, viene
nuovamente calcolata ponendo la caduta sui diodi del ponte a 1V ciascuno, e considerando la
tensione minima ai capi dell'avvolgimento a 12V ridotta del canonico 10%. Otteniamo quindi :
C=
 I  max7805 ∗T
Vr
Relazione 47:
Decurtiamo la tensione a 12V sul secondario del 10%, arriveremo a 10,8. Sottraiamo ancora 2V di
caduta sui diodi del ponte e arriviamo a 8,8. Moltiplicando per radice 2 avremo la tensione massima
disponibile sul banco dei condensatori, ossia 12,44V. Poniamo che sul 7805 non si scenda mai al di
sotto dei 10V, quindi partendo dal valore di cresta minimo di 12,44 non dovremo mai superare il
seguente valore di ripple, ossia 12,44-10=2,44V. Per sicurezza poniamo il valore del ripple a 2V.
Sostituendo nella relazione 41 i dati (si ricorda che I(max)7805 vale 0,255A), avremo che il banco
dei condensatori deve essere almeno di 1270uF. Utilizzeremo quindi analogamente al caso
precedente, due condensatori da 680uF. Non è necessario usarne uno di tipo ceramico di piccola
capacità poiché sono già presenti all'ingresso del 7805. In questo caso i condensatori dovranno
avere una tensione nominale maggiore di 12V, maggiorati del 10% (consideriamo nuovamente
nulle le cadute sui diodi del ponte), ossia almeno 13,2V.
4.1.5
Resistenza di scarica dei condensatori
E' stata anche prevista una resistenza di scarica per il banco di condensatori di potenza. Infatti vista
la grande capacità del banco, la tensione può rimanere elevata anche per giorni dopo lo spegnimento
del dispositivo. Si utilizza un piccolo relè in alternata, collegato sull'avvolgimento a 12 volt del
80
trafo come nella seguente figura. Quando il circuito è alimentato, il relè si eccita e disconnette la
resistenza di scarica Rsc. Quando viene levata alimentazione, il secondario del trafo non può più
mantenere eccitato il relè, quindi il contatto torna a chiudersi e il banco di condensatori si scarica su
Rsc.
Figura 23: Relè di scarica dei condensatori
Se supponiamo di voler scaricare il banco di condensatori in cinque minuti, assumendo come tempo
di scarica 6 tau, allora possiamo scrivere
6∗tau  scairca=Ctot∗Rsc quindi Rsc=
6∗tau scarica 
300
−6
=
∗10 =7500 ohm
Ctot
40000
Relazione 48:
La potenza massima istantanea che dovrà poter dissipare Rsc verrà calcolata ipotizzando che i
condensatori siano carichi al valore la tensione di cresta della sinusoide (ipotizziamo come fatto in
precedenza la tensione di caduta diretta dei diodi del ponte nulla).
P maxrsc =
V  maxrsc 2 36∗  22
=
=0,34 W
Rsc
7500
Relazione 49:
Utilizzeremo quindi una resistenza da ½ watt del valore commerciale di 6800 ohm.
4.1.6
Condensatori di Bypass o disaccoppiamento
Dallo schema si nota che ogni integrato, contiene 2 operazionali, e in parallelo ai suoi morsetti di
alimentazione, sono posizionati dei gruppi di condensatori. Questi paralleli di condensatori, servono
81
per evitare che i disturbi sulla linea di alimentazione degli operazionali vadano a interessare la linea
di segnale. Spesso infatti, i disturbi entrano nella catena di amplificazione proprio attraverso le linee
di alimentazione dell'operazionale, con il risultato di venire anche essi amplificati e sovrapposti al
segnale di uscita. Tali condensatori non rivestono solamente importanza perché schermano il
dispositivo, ma hanno anche il compito speculare di evitare che disturbi in radio frequenza si
irradino dal dispositivo alla linea di alimentazione che lo serve. Questo secondo caso si nota nel pic,
che utilizzando una linea di segnale pwm, durante il funzionamento irradia disturbi elettro
magnetici che inevitabilmente finiscono sui suoi pin di alimentazione e da li si irradiano nel resto
del circuito. Esistono varie tecniche per stimare il valore di tali condensatori, in ogni caso non
esistono calcoli precisi, ma occorre ragionare tenendo presente che :
●
I condensatori di disaccoppiamento vanno collegati a ridosso dei pin di alimentazione del
dispositivo da proteggere, in ogni caso il più vicino possibile minimizzando l'induttanza
serie il più possibile. A questo compito sono adatti i condensatori ceramici, di valore dai
10nF a 1uF
●
Qualora il disaccoppiamento non sia sufficiente, occorrerà utilizzare più condensatori di tipo
e capacità diversa con lo scopo di aumentare la banda dove il disaccoppiamento è reso con
efficacia.
Nel nostro caso, dopo varie prove abbiamo utilizzato il secondo metodo, ossia abbiamo utilizzato
una piccola batteria di condensatori ceramici, di varie capacità. Nel dettaglio ogni integrato
contenente operazionali, è bypassato da un parallelo di tre condensatori ceramici (tranne IC4 che
non ha dato particolari problemi a funzionare con la soluzione singola) rispettivamente di valore
0,1uF, 10nF e 1nF. Con il pic i risultati migliori si sono ottenuti con un condensatore singolo da 0,1
uF. Anche in questo caso i condensatori devono avere tensione minima di 56V, visto che sono
collegati sulla linea con tensione più elevata.
4.1.7
Protezione adc
La protezione degli adc è realizzata con dei semplici diodi zener. Il dimensionamento consiste
semplicemente nel calcolare la resistenza di limitazione. Per prima cosa utilizziamo uno zener che
non rubi risoluzione all'adc, quindi con tensione di soglia minima maggiore di 5 volt. Utilizziamo
quindi degli zener da 5,6 volt, con tensione di soglia minima di 5,1 volt. Dal datasheet la corrente di
zener vale circa 5mA. Supponiamo quindi che oltrepassata la tensione minima di zener, ossia 5,1
volt il diodo vada in conduzione. In riferimento al seguente schema potremmo calcolare la
82
Figura 24: Diodo zener per
la protezione degli adc
resistenza Rz da porre in serie al generico dispositivo.
Risulta quindi :
Rz=
V max 7805 −Vz min
Iz
Relazione 50:
Le condizioni peggiori sono quelle in corrispondenza di Vz(min), per le quali deve pur sempre
essere garantito l'intervento del diodo. Iz è fissata a 5ma, mentre Vmax stabiliamo che sia 5,2V (gli
adc sono già internamente protetti contro superamenti di tensione, in ogni caso abbiamo preferito
una protezione aggiuntiva. La relazione 42 diventa quindi :
Rz max =
5,2−5,1
=20 ohm
5∗10−3 
Relazione 51:
Questo è il massimo valore di resistenza da non superare per garantire l'intervento nelle condizioni
viste sopra. Vista l'esigua corrente, risulta sufficiente l'uso di una resistenza da ¼ di watt del valore
commerciale di 22 ohm. In riferimento allo schema 10 le resistenze in esame sono R21, R20 e R19.
Supponendo infine che un operazionale fissi la sua uscita alla tensione di alimentazione (a causa di
un guasto ad esempio) della linea s30v. Ricordando che gli operazionali erogano al massimo 60
mA, l'eventuale potenza dissipata dal diodo sarà :
Pd max zener= I maxlm358 2∗Rz max =60∗10−32∗20=72 mW
Relazione 52:
83
Potenza che risulta largamente inferiore agli 1,3 watt che il diodo può dissipare. Sapendo inoltre che
la resistenza termica del diodo nei confronti dell'ambiente è di 130°C/W, nella peggiore delle
ipotesi il diodo arriverà alla temperatura di :
T  max zener=Pd  max zener∗130 ° C / W Ta=72∗10−3∗13025=34 ° C
Relazione 53:
Essendo la temperatura massima ammissibile dalla giunzione di 150°C possiamo confermare il
corretto dimensionamento.
4.1.8
Transistor di bypass della scheda di segnale
In dettaglio abbiamo 3 transistor di bypass :
●
Bypass segnale costituito da Q2, pilotato da IC4B, che pilota i transistor di potenza
●
Bypass delle porte del pic, ossia Q3 e Q4 che pilotano rispettivamente la ventola e il relè di
commutazione dei secondari
In tutti i casi sono utilizzati dei transistor NPN di segnale, del tipo BC548. Il Q2 non dispone di
resistenze di polarizzazione, vista la sua connessione. Q3 e Q4 dispongono di un unica resistenza
per limitare la corrente che circola nella base. Tale resistenza deve essere dimensionata in funzione
del carico, in maniera che permetta la circolazione di corrente necessaria nelle condizioni più
sfavorevoli. Nel caso di Q3, il carico è costituito dalla bobina del relè. La resistenza della bobina è
di circa 400 ohm. Collegando il relè a 12V, ossia la sua tensione nominale, nella bobina scorrono
12/400, ossia 0,03 ampere. Il relè è collegato con un capo della bobina a 12V, mentre l'altro capo è
collegato al collettore di Q3. Quando la porta del pic è a 0 volt, il relè è isolato da massa, quindi
diseccitato. Quando la porta del pic viene posta a uno (ossia fissata a 5 V), inizia a circolare
corrente in base, limitata solamente dalla resistenza R4. Tale resistenza dovrà garantire che in
condizioni di Hfe minimo nel collettore possa scorrere almeno una corrente di 0,03 ampere (ossia
che siamo in saturazione).Considerando che l'uscita del pic a livello alto vale +5V (nel dettaglio
siamo sul pin 18), l'equazione alla maglia di Q3 sarà (vedi schema 10)
5−R14∗I b−Vbe=0 quindi R14 vale R14=
5−Vbe
Ib
Relazione 54:
Siccome ogni porta del pic non può erogare più di 25ma, assumiamo il limite cautelativo di 10ma,
quindi la resistenza R14 limiterà Ib a questa corrente. Considerando dal datasheet la Vbe di
84
saturazione massima, ossia 0,9V avremo che R14 dalla relazione 44 varrà 410 ohm. In questa
situazione nel collettore, considerando l' hfe minimo (110), possono scorrere ben 1,1 ampere,
corrente che ragionevolmente è più che sufficiente al relè per eccitarsi. Gli stessi ragionamenti
andranno seguiti per il calcolo di R15, del transistor Q4. In questo caso la ventola è collegata per un
capo a +12V, mentre il restante terminale è collegato al collettore di Q4. Essendo la ventola
alimentata da un elettronica propria, non è possibile determinare una resistenza costante che la
rappresenti. Dobbiamo semplicemente accontentarci dei dati presenti sulla carcassa, che sono la
tensione di alimentazione, 12 volt e la corrente nominale, ossia 0,13 ampere. Appare utile
riutilizzare i calcoli del transistor Q4, consapevoli del fatto che il dimensionamento della sua
resistenza di base garantiva una corrente di collettore di 1,1 ampere, la stessa resistenza risulta più
che adatta anche nel caso della ventola. Quindi possiamo concludere che R14 e R14 possono essere
due resistenze con un valore commerciale di 470 ohm, con potenza ¼ di watt. Va notato che ai capi
della bobina del relè è posto un diodo di ricircolo per evitare che durante la commutazione del relè,
le sovratensioni danneggino Q3.
4.2
Dimensionamento componenti power board
In questo paragrafo andremo a determinare i valori dei componenti presenti sulla power board. Lo
schema di riferimento è il numero 11.
p30v
Vce
Iout/4
Vmis
Vre
Filtro uscita
Iout
Vce
Vsk*
Vsk*
Schema 11: Schema elettrico della power board
85
4.2.1
Transistor di potenza
I transistor costituenti i finali di potenza sono degli NPN modello TIP142 con connessione interna
di tipo darlington. La corrente massima che può percorrere il collettore di questo tipo di transistor è
di 10 ampere. Con il collegamento dello schema 11 la corrente massima erogata dall'alimentatore,
proveniente dal banco dei condensatori di potenza viene divisa in 4, quindi ogni ramo del parallelo
è impegnato da 2,5 ampere (quando l'alimentatore si trova ad erogare la sua corrente massima). Non
essendo i transistor perfettamente simmetrici, a causa delle tolleranze costruttive, come detto in
precedenza, dobbiamo prevedere delle resistenze per equilibrare il parallelo. Tali resistenze sono
numerate R23, R24, R25 e R26, per il calcolo della massima potenza dissipata dal generico
transistor, dovremo quindi moltiplicare la corrente del ramo per la Vce del transistor. La Vce si
ottiene sottraendo dalla tensione presente ai capi del banco di condensatori elettrolitici che servono
la parte di potenza (linea p30v), la tensione in uscita. La potenza dissipata si ottiene moltiplicando
tale tensione per la corrente massima del ramo. In un ottica peggiorativa, supponiamo che :
●
Tensione in uscita a zero, ipotizziamo che stia scorrendo la massima corrente con un dc del
segnale pwm vicino a zero
●
Corrente nel generico ramo uguale al massimo valore teorico, ossia Iout/4
●
Tensione della linea p30v al massimo. I
Pd maxtip142 =Vce max∗I  maxtip142 =18,6∗2,5=46,6 W
Relazione 55:
La tensione sul collettore, per basse tensioni, proviene dal secondario a 12V AC e non il 36V AC,
grazie alla commutazione tra i secondari In questo caso supponendo la caduta sui diodi del ponte di
potenza nulla, e la maggiorazione della tensione di rete del 10% si trova appunta la tensione di 18,6
V. A livello di dissipazione di potenza, dal datasheet risulta che la potenza massima dissipabile dal
collettore è di 125W, quindi il parallelo di 4 elementi è sufficiente per rimanere nei limiti imposti
dal produttore. Va ricordato che la giunzione non deve, in nessun caso, oltrepassare la temperatura
di 150°C. Si fa presente che se non avessimo adottato il sistema di commutazione dei secondari,
nelle stesse condizioni la potenza dissipata sarebbe stata :
Pd max tip142 =Vce max∗I maxtip142 =18,6∗2,5=140W
Relazione 56:
Questo da conferma che un solo elemento non è sicuramente sufficiente a gestire la corrente di 10
ampere nella condizione peggiore.
86
Noto che la resistenza termica tra giunzione e case vale 1°C/W, possiamo stimare che la resistenza
di contatto tra transistor e dissipatore valga circa 0,4°C/W (valore comune per transistor con corpo
metallico con interposta mica isolante e pasta tra corpo e dissipatore). Il dissipatore usato è un
dissipatore commerciale da 0,25°C/W. La temperatura raggiunta dal singolo transistor sarà quindi :
T  maxtip142 = RgcRcd Rda ∗Pd max tip142 Ta=10,40,25∗46,625=101 °C
Relazione 57:
Abbiamo quindi verificato che la temperatura raggiunta dalla giunzione nel caso peggiore non
oltrepasserà la temperatura limite di 150°C. Senza l'uso della commutazione tra le prese del
secondario, sarebbe stato impossibile raffreddare efficacemente i finali, se non aumentandone il
numero e i relativi dissipatori. Rimane ancora da determinare il valore delle resistenze di emettitore
per diminuire il mismatch tra le correnti dei vari rami. Ammettendo di voler perdere al massimo 0,5
volt su ogni elemento, avremo che le resistenze dovranno valere :
Rem
0,5
0,5 / 2,50,2 ohm
 Iout / 4
Relazione 58:
La potenza massima che ogni resistenza deve poter dissipare vale :
Pd max Rem=Rem∗ Iout
2
max 2
10
 =0,22∗  =1,375 W
4
4
Relazione 59:
Dalla relazione 59, risulta quindi che il valore di 3 watt è sufficiente.
Per ottimizzare la dissipazione termica utilizziamo delle resistenze di tipo corazzato, ossia
contenute in un package metallico dotato di radiatore. Va notato che le resistenze utilizzate, devono
avere innanzi tutto una bassa tolleranza, questo perché il parallelo dei darlington deve essere il più
possibile bilanciato. L'uso di componenti con una tolleranza troppo alta, ad esempio oltre il 10%
rappresenta un serio pericolo, sopratutto vista la bassa entità del valore richiesto. Basta pensare che
il 10% di 0,22 ohm significa che il minimo e il massimo possono valere rispettivamente 0,198 e
0,242 ohm. Nel caso del minimo, significherebbe che la corrente tenderebbe a percorrere
interamente quel ramo portando velocemente alla distruzione del BJT. Risulta quindi intuitivo che
le resistenze di stabilizzazione sugli emettitori, oltre ad essere essenziali vanno opportunamente
scelte, sopratutto in termini di valore e tolleranza. Commercialmente la nostra scelta è ricaduta su
quattro resistenze a filo da 0,22 ohm. La potenza di queste resistenze è di 25W alla temperatura di
75°C . Un altro punto molto importante, è che questi componenti devono avere un ottimo
87
coefficiente di temperatura (ossia l'indice che indica la variazione della resistenza in funzione della
temperatura, solitamente espresso in parti per milione per grado centigrado ppm/°C.)
88
Capitolo5
Realizzazione e collaudo
5.1
Realizzazione del pcb
Procediamo ora con la realizzazione pratica del circuito. Innanzi tutto, per la costruzione del PCB
abbiamo utilizzato la tecnica della fotoincisione, che ora andremo brevemente a descrivere. I PCB
grezzi utilizzati in questa tecnica sono formati da tre substrati, il primo substrato di vetronite funge
da supporto fisico per il circuito. Sopra di esso è quindi depositato uno strato di rame, dal quale
andremo a ottenere, tramite apposito procedimento, le piste di rame. Infine, l'ultimo strato, è una
sottile pellicola di vernice scura, comunemente riconosciuta con il nome di fotoresist. La sequenza
per ottenere il circuito stampato è la seguente :
5.1.1
Realizzazione del master
La prima fase è quella di utilizzare un software specifico, per disegnare lo schema elettrico,
derivando da esso lo sbroglio delle piste che andremo ad applicare al PCB grezzo. Nel nostro caso
abbiamo usato il software Eagle Layout Editor, Tramite il quale è possibile disegnare sia lo schema
elettrico che il layout dello stampato. Prima di iniziare a disegnare lo schema è necessario munirsi
di tutti i componenti e verificare se sono presenti nella libreria del software, e che le dimensioni
geometriche coincidano. In caso contrario è necessario crearli manualmente. Dopo il disegno dello
schema elettrico, si passa alla sezione del software che gestisce lo sbroglio delle piste. Inizialmente
tutti i componenti sono svincolati, e rimane a noi dare una posizione iniziale a ognuno di essi. Fatto
questo si può iniziare a disegnare le varie piste che uniscono i componenti. Ovviamente ogni pista
va dimensionata, in larghezza, in funzione della corrente che dovrà percorrerla. Per questo le piste
che alimentano componenti di potenza devono essere più ampie, sia per poter condurre più corrente,
sia per poter essere stagnate, in modo da aumentarne la sezione. Il risultato di questo lavoro è
visibile in figura 25. Il condensatore C22 è stato posizionato per rendere visibile gli “elastici” che il
software inserisce all'atto della stesura dello schema elettrico. Il componente andrà poi piazzato
nella posizione migliore, e gli “elastici” andranno sostituiti dalle piste vere e proprie che andremo a
disegnare. Nel nostro caso abbiamo realizzato, per minimizzare i costi, uno stampato a singola
faccia. E' anche possibile usare una funzione di autorouting, ma non è efficiente e prevede la
realizzazione di troppi ponticelli. La soluzione migliore, anche se più lunga rimane quella di fare il
routing delle tracce in modalità manuale. Una volta che la disposizione è completata e le piste
89
tracciate, si può passare alla creazione del master. Il master è costituito esclusivamente da una
stampa su acetato del solo layout costituente le piste di figura 25. Il layout si ottiene disattivando i
vari layer (componenti, valori....) e stampando solo il layer che rappresenta le traccie di rame. Il
risultato è visibile in figura 26.
Signal Board
Power Board
Figura 25: Layout e disposizione componenti dei PCB
90
Signal board
Power Board
Figura 26: Lato piste dei PCB
5.1.2
Fotoincisione
A questo punto, ottenuto il master, possiamo passare alla fotoincisione. Per questa operazione, è
necessario l'uso di uno strumento chiamato bromografo, banalmente un contenitore dotato di un set
di lampade UV e dei dispositivi per la loro accensione (starter e reattori). La disposizione del master
all'interno del bromografo si evince facilmente dalla figura 27. Il vetro viene utilizzato per
mantenere il master aderente alla basetta. Prima dell'incisione vera e propria vengono fatte una serie
di prove di esposizione su sfridi di pcb pre sensibilizzato, dello stesso tipo di quello usato
nell'incisione definitiva, questo al fine di determinare con precisione l'esposizione corretta. Durante
questo processo, i raggi UV attraversano il vetro e giungono alla basetta solamente nelle zone
trasparenti del master in acetato, visto che la zona delle piste è protetta dalle tracce nere stampate
sul master. Il fotoresist colpito dai raggi UV va incontro a una trasformazione che lo rende
aggredibile da una soluzione diluita di soda caustica. Il fatto che il fotoresist, irradiato dai raggi UV
91
venga sciolto dalla soluzione di soda, fa si che solamente il rame protetto dalle tracce nere del
master rimanga protetto dalla pellicola del fotoresist. A questo punto non resta che lavare il pcb in
acqua, asciugarlo e immergerlo in una soluzione di tricloruro ferrico, che aggredirà solo il rame
“scoperto” consumandolo fino ad arrivare al substrato di vetronite. Alla fine dell'erosione
rimarranno solo le piste del master. Il risultato è visibile in figura 28.
Figura 27:Principio di funzionamento della foto incisione
Figura 28: PCB della signal board al termine del bagno nell'acido
92
5.1.3
Foratura e stagnatura
La fase finale di questa parte è la foratura del pcb, per accogliere i reofori dei componenti. Sono
state utilizzate per questo scopo un set di punte da 0,5 a 1,5 mm per adattare i fori ai vari
componenti. Una volta completata la foratura, il PCB va sgrassato e ripulito da ogni impurità con
del comune solvente. Prima di procedere alla stagnatura delle piste dei componenti di potenza e di
tutto il resto, le traccie vanno leggermente strofinate con della carta vetro fine per renderle rugose,
in maniera che lo stagno si attacchi più facilmente al rame. Il risultato, parziale, di questa fase si
può osservare in figura 29. Nella parte bassa della figura si può osservare tutta la stagnatura della
sezione che accoglie il banco di condensatori costituenti il filtro di potenza del raddrizzatore
principale
Figura 29: Stagnatura delle piste del PCB
93
5.2
Completamento del prototipo
Il completamento del prototipo passa attraverso la completa saldatura di tutti i componenti ed i
cablaggi tra la signal board e la power board. Una volta completata questa fase si è proceduto alle
verifiche finali e alle tarature.
5.2.1
Verifiche e tarature
Una volta completate tutte le saldature, è stata data tensione al circuito, avendo l'accortezza di non
collegare i circuiti integrati, ossia gli operazionali e il micro controllore. E' stato verificato con una
sonda termometrica che nessun componente si surriscaldasse e che le tensioni in ingresso e uscita
dai regolatori di tensione che servono le funzioni del circuito fossero corrette. Infine abbiamo
proceduto alla verifica dell'isolamento tra il corpo dei transistor di potenza e il dissipatore di calore.
Completata questa verifica è stato scritto un semplice software privo di retroazione che si limitasse
solamente a regolare la tensione in uscita in funzione del valore impostato dal potenziometro della
regolazione di tensione. Questo è stato fatto per poter tarare tutti gli operazionali tramite i rispettivi
trimmer. Sarebbe infatti stato impossibile effettuare una taratura corretta se l'anello fosse stato
chiuso, in quanto la retroazione avrebbe costretto il circuito continuamente in regolazione. Il
software usato è stato il seguente :
program pwmtest
dim vimp as word
dim duty as word
'Routines per Gestione pwm a 10 bit
sub procedure PWM_10bit(dim duty as word)
CCP1CON = 0 'reset del pwm'
T2CON=%00000100
PR2=255
'imposto freq pwm (19.53khz -> 10 bit)'
CCP1CON.5 = %00000001 and duty
'CCP1CON 2 LSB of pwm'
CCP1CON.4 = %00000001 and (duty >>1) 'CCP1CON 2 LSB of pwm'
CCPR1L=%11111111 and (duty>>2)
'8 msb pwm'
CCP1CON.2=1
CCP1CON.3=1
94
end sub
main:
adcON1=$82
'setto le trisC come uscite'
trisc=0
'setto le trisA (2adc+2potenziometri)che uso come ingressi'
trisa.0=1
trisa.1=1
trisa.2=1
trisa.3=1
trisa.4=1
'attivo relè di commutazione per fissare al max'
portc.3=1
voltagering:
vimp=adc_read(0)
delay_ms(5)
duty=vimp
PWM_10bit(duty)
goto voltagering
end.
Una volta caricato il software nel pic, abbiamo provveduto a portare il pwm al 100% e a regolare
l'operazionale IC4B (riferiti allo schema numero 10) affinché il suo guadagno portasse in
saturazione l'uscita, tarando quindi il massimo valore di tensione che l'alimentatore può fornire. Per
passaggi successivi abbiamo poi compensato la tensione di alimentazione degli operazionali,
tramite il trimmer di regolazione dell'LM317 per poter raggiungere il fondo scala di 30 volt
prefissato in fase di progetto. Ottenuto questo abbiamo regolato i trimmer del feedback di tensione
in modo da far coincidere alla tensione in uscita di 30 volt il valore di 5 volt, ossia il fondo scala
dell' adc. Fatto questo siamo passati al funzionamento sotto carico, questo per poter tarare il
feedback di corrente, in maniera da far coincidere alla massima corrente di 10 ampere il valore di 5
volt in uscita dal circuito di condizionamento di corrente. Rispettivamente la regolazione del
95
feedback di tensione e di corrente, si ottiene agendo sui trimmer R5, R28 e R29. Durante il
funzionamento sotto carico, è stata progressivamente aumentata la tensione di alimentazione degli
operazionali (unitamente al guadagno di IC4B), per compensare le cadute viste nel paragrafo
4.1.2 .La taratura del feedback di temperatura è stata effettuata utilizzando come riferimento un
termometro ad infrarossi. E' stato fatto funzionare l'alimentatore a piena potenza privo di
ventilazione, dopo di ché una volta che il corpo del transistor più caldo ha raggiunto la temperatura
di 80°C è stata misurata la temperatura del dissipatore. Tramite il software, visto che il feedback di
temperatura non ha regolazione, abbiamo fatto poi in maniera che il programma avviasse la ventola
non appena il feedback di temperatura misurasse quel determinato valore. Il circuito completo, con
tutti i cablaggi è visibile nella seguente immagine, nel montaggio al banco.
Figura 30: Montaggio al banco dell'alimentatore
5.3
Test di funzionamento
In questo ultimo paragrafo andremo ad analizzare il funzionamento del circuito a vuoto e a carico,
utilizzando per l'occasione carichi puramente ohmici, induttivi, misti e apparecchiature che
96
irradiano radio frequenza, il tutto per avere una verifica tangibile del corretto funzionamento
dell'alimentatore. Durante i test è stato inserito un fusibile sulla linea di alimentazione del collettore
dei transistor di potenza, questo per evitare che problemi alla retroazione del sistema portassero a
danneggiare i finali.
5.3.1
Qualità della Forma d'onda in uscita
Questo test si propone di verificare se, durante il funzionamento, il valore di tensione dell'uscita
rimane stabile, valutandone il ripple. I test sono stati effettuati a partire dalla minima tensione in
uscita, incrementando il dc generato dal pic dallo 0 al 100% . Vengono di seguito riportati i valori
corrispondenti ai seguenti dc, ossia 0, 20, 40, 60 e 100%. Per le misure è stato utilizzato un
oscilloscopio doppia traccia. La sonda uno è stata collegata sui morsetti di uscite, mentre la sonda
due è stata collegata a monte del filtro attivo, per poter visualizzare il valore del dc del segnale
pwm.
Figura 31: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=0%
97
Figura 32: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=20%
Figura 33: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=40%
98
Figura 34: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=60%
Figura 35: Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=80%
99
Figura 36:Forma d'onda di uscita e del segnale pwm (20us/div – 200mV/div) dc=100%
Il carico utilizzato per le prove è costituito da una resistenza variabile, la corrente in ogni prova è
stata fissata al 75% della corrente massima erogabile, inoltre le prove sono state eseguite
mantenendo sempre attiva la ventilazione del dissipatore. La scelta di un carico puramente ohmico è
dettata dal fatto che utilizzando dispositivi attivi, quali motori o altri dispositivi elettronici, la forma
d'onda in uscita risulta deformata dal loro funzionamento, impedendo di fatto le valutazioni.
Possiamo notare che la forma d'onda (traccia 1) si mantiene pressoché costante ed esente da
ondulazioni. Per tutti i valori di dc (traccia 2) notiamo la presenza di uno spike, di ampiezza
variabile, ai vari valori di tensione. L'ampiezza dell'impulso varia, durante il funzionamento, da
pochissimi milli volt a circa 800mV picco picco, mentre il suo periodo è di circa 3kHz (17
divisioni da 20 micro secondi). Dopo un attenta analisi, abbiamo scoperto che la causa di tale picco
è dovuto alla pessima qualità del motore brushless utilizzato dalla ventola montata sul dissipatore di
calore. In ogni caso l'ampiezza del picco, vista la sua alta frequenza, non provoca nessun problema
di funzionamento ne all'alimentatore ne ai carichi collegati. Va fatto notare che isolando la ventola
dal circuito, utilizzando un piccolo alimentatore dotato di un trasformatore di isolamento, il disturbo
si riduce notevolmente. Purtroppo parte del disturbo viene irradiata dalla ventola come disturbo
elettromagnetico, andando sempre a interessare il segnale di uscita con un fastidioso rumore di
fondo. Il problema non viene completamente risolto neanche con ventole di fattura migliore, in ogni
caso va ribadito che tali disturbi non sono significativi come detto in precedenza. Non è stato
possibile effettuare test a piena potenza poiché non abbiamo reperito nessun carico in grado di
100
assorbire stabilmente 10 ampere in modo continuativo ai vari valori di tensione.
5.3.2
Prove termiche
Con questo test abbiamo voluto verificare se i transistor di bypass finali potessero garantire il
corretto funzionamento in corrispondenza della massima corrente erogata. Per condurre il test
abbiamo usato come carico, una resistenza a filo da 0,05 ohm. Abbiamo quindi progressivamente
aumentato la tensione in uscita per gradi, fino ad avere la massima corrente erogabile. La
temperatura è stata misurata ad intervalli regolari, avendo cura di attendere un tempo sufficiente
affinché i transitori termici si esaurissero. Prima di eseguire la prova, è stato applicato uno strato di
pasta termo conduttiva tra la mica isolante di ogni transistor e il dissipatore e tra il transistor stesso e
la medesima. Lo stesso è stato fatto tra il corpo di ogni resistenza corazzata e il dissipatore. Il
risultato di questa prova è riassunto nella seguente tabella (ogni colonna corrisponde a un transistor)
:
Corrente [A]
1
3
5
7
9
10
T1 [°C]
T2 [°C]
T3 [°C]
T4 [°C]
32,5
33
33
33
36,5
37
37
37
38
38
38
38,5
39,5
40
40
40
40,5
41
41
41
45
45,5
45,5
46
Tabella 13: Prova riscaldamento transistor finali
Dalla tabella 13 possiamo notare che esiste una buona simmetria nel parallelo dei transistor, in
quanto non vi sono mai differenze di temperatura sostanziali tra i vari componenti. Le prove sono
state effettuate con la ventilazione forzata, alla temperatura ambiente di 27°C. I dati ottenuti
dimostrano che il dimensionamento del dissipatore e la suddivisione della corrente erogata in 4 rami
permettono agevolmente di mantenere i transistor all'interno della loro SOA. Riportiamo di seguito
anche il grafico che mostra la parziale sovrapposizione delle curve, andando a visualizzare
graficamente la buona ripartizione del calore tra i quattro transitori.
101
50
45
temperatura [°C]
40
35
30
T1 [°C]
25
T2 [°C]
20
T3 [°C]
T4 [°C]
15
10
5
0
0
2
4
6
8
10
12
corrente [A]
Figura 37: Grafico riscaldamento transistor finali
5.3.3
Test di protezione da sovracorrenti
Una caratteristica molto importante di questo progetto è che la protezione da sovracorrenti è
realizzata interamente dal software del micro controllore e senza l'ausilio di componentistica
esterna. Per l'esecuzione della prova abbiamo utilizzato una carico resistivo che in corrispondenza
della massima tensione in uscita facesse erogare all'alimentatore una debole corrente di circa 10mA.
Abbiamo successivamente ridotto il valore della corrente impostata sui comandi al limite superiore
entro il quale l'alimentatore non decrementava la tensione in uscita, ossia il valore limite tra
funzionamento come generatore di tensione e generatore di corrente. In questa condizione, ogni
variazione della resistenza del carico, verso il basso, porterebbe la corrente ad oltrepassare la soglia
impostata. In tale situazione,il micro è costretto a decrementare la tensione in uscita nel tentativo di
non superare tale limite. A questo punto abbiamo collegato un relè che cortocircuitasse i morsetti di
uscita, tramite opportuno comando, non venisse comandato in chiusura. Una volta eccitato il relè, il
cortocircuito porta la corrente in uscita a un valore altissimo, che in prima approssimazione è
limitato solamente dalla resistenza dello shunt e dalle resistenze corazzate di emettitore collegate ai
transistor di potenza. Tale corrente con l'uscita fissa a 30 volt assume in pochissimi istanti un valore
elevatissimo. Se la dinamica del sistema fosse particolarmente lenta, tale evento porterebbe alla
completa distruzione dello stadio di potenza e dei relativi cablaggi. Le condizioni sopracitate, sono
peggiorative, poiché una volta cortocircuitata l'uscita, la tensione è al massimo, quindi il sistema si
trova a dover percorrere tutto il campo di valori di tensione, fino allo zero, per tentare di riportare la
corrente all'esiguo valore impostato. Tutti gli eventi simili che occorreranno per valori di tensione in
102
uscita minori, saranno sicuramente meno gravosi perché necessiteranno di meno tempo per
estinguersi. I tempi sono stati stimati con l'uso dell'oscilloscopio in modalità singola. Il test per ogni
valore di tensione impostata è stato ripetuto tre volte, viene anche verificato l'effettivo valore di dc
impostato dal micro durante la fase di corto circuito. Il valore riportato nella tabella è il valore
medio arrotondato tra le tre misurazioni. Il risultato del test è riassunto nella seguente tabella :
Tensione impostata
Corrente impostata
Tempo di discesa [ms]
dc
[V]
[mA]
30
10
5
0
24
10
4
0
18
10
2
0
12
10
0,5
0
6
10
0,2
0
[%]
Tabella 14: Test della velocità di risposta al cto cto
Di seguito riportiamo l'andamento grafico dei valori ricavati :
6
5
tempo [ms]
4
3
2
1
0
0
5
10
15
20
25
30
35
tensione [V]
Figura 38: Grafico del test di velocità della risposta al cto. cto.
Possiamo notare che nella zona centrale vi è un andamento lineare, mentre per bassi valori di
tensione in uscita si perde la linearità e i valori si avvicinano sensibilmente gli uni agli altri. In ogni
caso la condizione peggiorativa non provocato nessun danno alla power board, non permettendo di
103
rilevare incrementi di temperatura significativi. Va inoltre osservato che durante ogni prova il micro
porta a 0% il dc, in quanto anche al minimo valore la corrente oltrepasserebbe il limite impostato di
10mA.
5.4
Analisi dei costi
Per la realizzazione di questo progetto, ha avuto molta importanza l'analisi dei costi. Non avendo un
budget abbastanza ampio, molte scelte sono state condizionate dalla ricerca del miglior componente
dal punto di vista del rapporto qualità prezzo. Purtroppo, una volta identificata una certa categoria
di componenti, ci siamo scontrati con un ulteriore problema. Infatti sul mercato sono disponibili
innumerevoli classi di componenti di pari valore e dalle performance simili. Questo concetto va
applicato sopratutto nella scelta del micro, infatti pur avendo a disposizione molti dispositivi simili,
dal prezzo e caratteristiche equivalenti, assume particolare importanza il tempo necessario per poter
iniziare ad utilizzarlo al meglio . Il tempo è un fattore molto importante nell'analisi dei costi, infatti
è ben diverso acquistare un dispositivo che si può utilizzare al meglio in una settimana, rispetto a un
altro che magari è nettamente migliore, addirittura più economica, ma che richiede un tempo di
start nettamente superiore. Va anche valutata l'attrezzatura necessaria al contorno, ad esempio kit
di sviluppo, documentazione e diffusione del dispositivo. Parliamo di diffusione, perche rappresenta
pur sempre un buon parametro per la scelta, in quanto a maggior diffusione, di solito corrisponde
una possibilità maggiore di informazioni utili allo sviluppo. Alla luce di quanto detto, i pic
sicuramente pur non essendo i micro dal valore unitario più basso, permetto di avviare lo sviluppo
delle prime applicazioni nel giro di pochi giorni. In termini di costi possiamo dire che i pic utilizzati
in questo progetto hanno un costo unitario di circa 6€, mentre un buon programmatore costa
all'incirca 50€. Per poter sviluppare efficacemente è anche necessario l'uso di una demo board
(visibile in figura 39) per i test, dispositivo che si assesta intorno ai 100€. L'ambiente di sviluppo
mikrobasik costa invece circa 99$ (circa 70€ al cambio attuale).
104
Figura 39: Esempio di demoboard commerciale
Per quanto riguarda resistenze, transistor e condensatori, non è stato necessario fare scelte
particolari, in quanto sono componenti di uso comune dal costo ormai unificato. L'unica scelta che
ha presentato qualche difficoltà è stata la selezione dei transistor finali e dei condensatori del filtro.
Infatti sia i condensatori che i finali, dovevano avere delle caratteristiche elettriche di un certo
livello. Nel caso dei condensatori abbiamo cercato quelli con un buon compromesso qualità prezzo
e con il minimo valore di esr, acquistando dei condensatori della ditta ELNA. Per quanto riguarda i
transitor di potenza, la scelta è caduta sul collaudatissimo ed economico tip142, avendo l'accortezza
di comprarli con numerazione consecutiva, per poterli accoppiare in parallelo efficacemente. Per
quanto riguarda le resistenze corazzate viste al paragrafo 4.2.1, il mercato non fornisce molta scelta
per tali valori di tolleranza, resistenza e potenza, quindi abbiamo valutato l'acquisto dal punto di
vista sopratutto della reperibilità, visto che non sono componenti molto facili da reperire in
commercio, almeno al pubblico.
Di seguito riportiamo una tabella riepilogativa dei costi sostenuti per l'attrezzatura e per avere un
esemplare funzionante del circuito :
105
Componente
Prezzo [€]
Quantità
Demoboard Mikroelettronica
100
1
Compilatore Mikrobasik
70
1
Programmatore Propic2
50
1
PIC 16F877A
6
6
Totale 256€
Tabella 15: Costo attrezzature necessarie
A questo starter kit va sicuramente aggiunto un oscilloscopio con banda passante di almeno 20Mhz
e un buon multimetro, possibilmente da banco. Il costo di tali attrezzature è di almeno 400€,
portando il costo iniziale a circa 700€. Completano l'attrezzatura un buon saldatore a stagno da
25W e un minimo di utensili, il tutto valutabile in ulteriori 200€. Con buona approssimazione
possiamo affermare quindi, che con vari extra, il laboratorio tipo per poter realizzare questo
progetto costa circa 1000€. Aggiungiamo ulteriori 100€ per un piccolo bromografo per poter
incidere il PCB . Il costo del materiale utilizzato per costruire il prototipo è riassunto nella tabella
16. Va notato che il prezzo si riferisce al prototipo, ossia alla creazione di un esemplare unico.
Ovviamente se fosse costruito in serie il suo costo sarebbe sicuramente minore, ma va fatto presente
che un alimentatore stabilizzato di classe media, di pari caratteristiche elettriche costa circa 150€ al.
Va infine calcolato il tempo necessario a sviluppare l'intero progetto, che nel caso di questo
dispositivo è stato di circa 6 mesi. Ovviamente un progettista esperto impiegherebbe sicuramente
meno tempo la realizzazione, ma va fatto notare che il costo finale del prototipo, viste le varie
limitazioni, non risulta per nulla elevato.
106
Componente
Prezzo [€]
Quantità
Resistenze 1/4W allen bradley
0,02
18
Resistenze corazzate a filo
3,70
4
Condensatori elettrolitici (filtro potenza)
7
4
Condensatori elettrolitici vari
1 (prezzo medio)
5
Condensatori poliestere e ceramici
0,1 (prezzo medio)
17
Diodi zener 5,1V
0,1
3
Diodi 1N4148
0,1
4
Ponte raddrizzatore di potenza
3
1
Ponti raddrizzatori di segnale
1,50
2
Regolatori di tensione
0,60
2
Relè commutazione
3
1
Relè scarica condensatori
2
1
PIC 16F877A
6
1
Operazionali LM358
1,50
3
Transistor BC358
0,25
3
Transistor TIP142
2,16
4
Display LCD
5
1
Morsettiere
1,50
5
Shunt
1
1
Quarzo
1,50
1
Trimmer multi giro
1
6
PCB presensibilizato
5
2
Voltmetro e Amperometro da pannello
10
2
Contenitore metallico
30
1
Cablaggi vari
10
XXXXXX
Zoccoli per integrati
0,5 (prezzo medio)
4
Trasformatore 300VA (0-12-36)
40
1
Dissipatore di calore con relativa ventola
14
1
Varie
20
XXXXXX
Totale
243,65€
Tabella 16: Quantità e costo del materiale necessario per realizzare il prototipo
107
Conclusioni
In questa breve parentesi conclusiva analizzeremo cosa è stato fatto e cosa poteva essere fatto per
ottenere un risultato migliore. Dai test effettuati, si dimostra che il dispositivo è più che valido e
sicuramente garantisce performance allineate, se non migliori di molti prodotti commerciali. L'idea
di utilizzare l'uscita pwm del micro per ottenere un segnale analogico si è dimostrata
particolarmente valida. Durante le ricerche effettuate sul web, sono stati trovati molti progetti che
iniziano a seguire questa filosofia nella creazione di alimentatori stabilizzati e regolatori di tensione,
sopratutto in campo automotivo. Per la realizzazione del progetto è stato necessario impiegare
molto tempo per acquisire il necessario know how, sopratutto per quanto riguarda lo sviluppo
software del micro controllore. Particolare attenzione è stata posta nella progettazione del filtro
attivo, infatti la configurazione utilizzata, sia per quanto riguarda il tipo di filtro, sia per quanto
riguarda la scelta della frequenza di cut off, è frutto di innumerevoli prove su svariati circuiti e con
moltissimi valori di componenti. Inoltre per ottenere i risultati mostrati nel capitolo 5, molto tempo
è stato impiegato per minimizzare il ripple in uscita dai regolatori di tensione, per evitare che si
propagasse all'interno del circuito. Tale risultato è stato ottenuto sia dal punto di vista
dell'ottimizzazione del layout del pcb, sia dal punto di vista dei componenti accessori, i cui valori
sono, anche in questo caso, frutto di innumerevoli prove. Purtroppo la mancanza di attrezzature
adeguate, quali oscilloscopi digitali, data logger e molti altri strumenti di laboratorio, ha fatto si che
non si potessero ottenere risultati migliori, visto che il progetto è stato sviluppato in via strettamente
personale con mezzi limitati. In ogni caso molti obbiettivi, pur alla luce delle limitazioni elencate in
precedenza, sono stati raggiunti in maniera soddisfacente, sopratutto quelli riguardanti il basso costo
, la semplicità costruttiva e la modularità. Durante la progettazione sono emersi problemi di varia
natura, problemi che raramente si incontrano, o vengono portati alla luce con un approccio
puramente didattico. L'aver incontrato queste difficoltà, sia in fase di progettazione che di
realizzazione, mi ha permesso di avere una visione molto più ampia nell'affrontare le problematiche
che probabilmente saranno oggetto della mia futura vita lavorativa. Inoltre dover realizzare da zero
l'oggetto di questa tesi ha portato particolarmente in risalto una delle problematiche principali che si
andranno a incontrare nel mondo reale, ossia l'analisi dei costi. Avendo avuto a disposizione risorse
(anche in termini di tempo) limitate, si è dovuto mettere in conto, fin dalle fasi di analisi iniziale del
progetto, che molte soluzioni tecnicamente ottime, non sarebbero potute essere seguite sia a causa
della mancanza di strumentazione, sia a causa dell'elevato costo del materiale. Per fare un esempio
di quanto detto in precedenza, possiamo dire che sicuramente utilizzare un micro controllore ST7 e
108
un filtro di ordine elevato, avrebbe dato al progetto una connotazione più professionale ed elegante.
Indubbiamente i risultati forse sarebbero stati migliori, in ogni caso ci sarebbe voluto molto più
tempo per imparare a programmare tale tipo di micro e molto probabilmente l'uso di filtri con un
numero di poli più elevato non avrebbe dato significativi miglioramenti al ripple in uscita, che
peraltro è già bassissimo in questa configurazione. Come visto al capitolo 5 inoltre, pur attuando
una progettazione rigorosa, a volte sono i componenti stessi utilizzati che non permettono di
ottenere i risultati voluti. Nel nostro caso, un esempio dell'affermazione precedente, è il ripple
rilevato in uscita. Tale disturbo è frutto delle emissioni condotte e irradiate della ventola del
dissipatore, quindi un componente sul quale non abbiamo la possibilità di intervenire, se non entro
certi limiti. In un ottica di sviluppo futuro di questo progetto, sicuramente si potrà intervenire sul
layout del pcb ottimizzandolo e riducendolo. Anche il software ha sicuramente dei margini di
miglioramento, pur garantendo già in questa release un ottima regolazione. Sicuramente è
migliorabile la sezione di condizionamento dei segnali misurati, infatti utilizzando operazionali di
qualità migliore si potrà raggiungere una migliore precisione nella retroazione, anche se va fatto
presente che l'utilizzo di un alimentatore stabilizzato, anche di ottima qualità, va sempre
accompagnato a un multimetro da banco per l'esatta misura del valore di tensione, o corrente, in
uscita. Volendo concludere, questa esperienza ha sicuramente arricchito la mia visione dello
sterminato campo costituente l'elettronica digitale e analogica, portando alla luce nuove
metodologie di lavoro e valutazioni, sia
nei confronti dei problemi che nell'approccio alla
progettazione.
109
Bibliografia
Libri
●
Paul Horowitz, Winfield Hill. The art of electronics 2nd edition. Cambridge University Press.
●
Ned Mohan, Tore M. Undeland, William P. Robbins. Power Electronics 3rd edition. 2003
●
Ignazio Mendola, Umberto Torelli. Formulario di elettronica. Ulrico Hoepli Editore 1989
●
R.Giometti, F.Frascari. Elettronica “La logica”. Edizioni Calderini 1993
●
R.Giometti, F.Frascari. Elettronica “L'analogica”. Edizioni Calderini 1993
Documentazione Online di pubblico dominio
●
On Semiconductor. Linear & Switching Voltage Regulator Handbook. HB206/D 2002
●
Nebojsa Matic . Programming PIC Microcontrollers in BASIC.
●
Mikroeleetronica. Mikrobasic Manual v.7.0.0.2 2008
Il presente documento non può essere riprodotto, modificato o citato previa comunicazione con
la mia persona. Per contattarmi scrivetemi a [email protected]
In ogni caso dalla stesura del documento sono state modificate e sostituite varie parti, se siete
interessati alla versione definitiva scrivetemi all'indirizzo sopra citato.
110