CONVERTITORE DA TENSIONE A PWM
Il seguente progetto è un convertitore da segnale analogico a segnale PWM,
questo
lavoro è stato da me svolto in diversi tempi nei quali mi sono
occupato di un pezzo di circuito alla volta progettandolo,
montandolo sulla scheda e collaudandolo. Ho chiamato ogni scheda
"modulo" seguito da un nome esplicativo della funzione che svolge così
da rendere comprensibile il funzionamento complessivo del progetto.
I moduli sono tre rappresentati, con i relativi collegamenti, nella seguente figura :
Qui sotto il circuito reale diviso in blocchi:
Spiegherò il funzionamento di ogni modulo partendo dal "generatore onda triangolare".
MODULO GENERATORE ONDA TRIANGOLARE
Lo schema da seguire è il seguente:

Come si nota che questo schema è diverso da quello rappresentato nella Fig. 1, manca infatti la parte
incorniciata di rosa nominata "controllo D.C." e al posto del
transistor Q5 c'è una resistenza R. Lo
schema in fig. 2 è quello relativo alle prime fasi del
progetto; quando collaudai il circuito mi resi conto che l'onda
triangolare era appoggiata su una tensione continua fluttuante, il che
avrebbe potuto portare il sistema alla saturazione con il conseguente
"clipping" del segnale. Per risolvere il problema ho
ricorso ad una retroazione negativa che corregge le fluttuazioni in
tempo reale tenendo il valor medio dell'onda triangolare a valori
prossimi allo zero volt. Dato però che il circuito senza controllo della D.C si presta meglio ad una
semplice spiegazione del funzionamento lo preferisco rispetto a quello più
complesso.
I quattro transistor con le relative resistenze compongono uno specchio di corrente duale, quando i transistor Q2 - Q3 presentano
identici parametri (BJT costruiti nello stesso die al silicio) e
le resistenze collegate ai loro emettitori
hanno gli stessi valori la corrente massima che può erogare Q3 (IQ3) è
uguale a quella circolante in R2 (IR2) (chiamata spesso corrente di
riferimento).
Lo
stesso discorso vale per la coppia Q1 - Q4, si nota però che le
resistenze R3 - R6 collegate agli emettitori sono diverse tra loro per cui IQ4 è diversa da IR2,
per il funzionamento corretto del sistema (vedremo perché dopo) la
corrente circolante in R6 deve essere il doppio di quella circolante in
R2, ovvero IQ4 = 2 * IR2 = 2 * IQ3,
Per determinare la resistenza R6 uso il seguente procedimento:
scelgo una corrente
dell'ordine del mA (con correnti troppo basse lo specchio di corrente
genera rumore e con quelle troppo alte dissipa più potenza), ad esempio
3.5 mA e tramite la seguente formula ricavo la somma delle resistenze R1 - R2 - R3:
(R1 + R2 + R3) = RT = (2 * VCC - VEB_Q2 - VBE_Q1) / IR2 = (10 - 0.7 -0.7) / 0.0035 = 2457 ohm
scegliendo a caso i valori per R1 ed R3, ad esempio 150 ohm, ricavo il valore della resistenza R2:
R2 = RT - (R1 + R2) = 2457 - 300 = 2157 ohm che approssimo a 2200 ohm
Per determinare la resistenza R6 occorre seguire il seguente procedimento:
si impone R6 = K * R3 e il K lo si determina con la seguente formula:
K = (ln(IR2 / IR6) * VT + R3 * IR2) / (R3 * IR6) =
(ln(0.0035 / 0.007) * 0.025 + 150 * 0.0035) / (150 * 0.007) =
0.483
da cui:
R6 =K * R3 = 0.483 * 150 = 72 Ohm
Per riassumere Q3 può erogare una IQ3 massima di 3.5mA e Q4 può
assorbire una IR6 massima di 7mA. In questa condizione il sistema è in
equilibrio e il punto A si trova a zero volt.
Il funzionamento del modulo è il seguente:
quando il segnale ad onda quadra è alto (+5V) il diodo D2 va in
conduzione e circola una corrente di 7mA
(fornita dall'onda quadra) nel collettore di Q4 (che può assorbire massimo 7mA), il diodo D1 viene
invece interdetto (la tensione nel punto B è a potenziale maggiore di
quella al punto A) e i il condensatori C9 si
carica alla corrente costante di 3.5mA fornita da Q3 (dato
che essa non può circolare in D1), essendo la corrente costante la
tensione ai capi del condensatore sale linearmente. Quando
il segnale ad onda quadra commuta al basso livello di -5V il diodo D2
va in interdizione (il punto B è a livello pari a -07V più alto di -5V)
mentre D1 va in conduzione. Il condensatore C9 si scarica attraverso
Q4 che avendo una massima corrente di sink pari a 7mA può assorbire sia
i 3.5mA forniti da Q3 sia i 3.5mA forniti dal
condensatore, dato che esso si scarica a corrente
costante la tensione ai suoi capi scende linearmente. Il risultato è un onda triangolare, vedi figura sotto:

Tutte le correnti circolanti nel circuito sono continue a parte quella fornita dall'onda quadra che genera corrente di
7mA quando la semionda è a +5V e 0mA quando la semionda è a -5V (diodo D2 interdetto).
Infatti Q3 fornisce corrente di 3.5mA per caricare il condensatore quando
la semionda dell'onda quadra è positiva e fornisce 3.5mA a Q4 quando la
semionda dell'onda quadra è negativa, mentre Q4 assorbe corrente di 7mA
quando la semionda dell'onda quadra è positiva e assorbe 7mA (3.5mA + 3.5mA) quando la semionda dell'onda quadra è negativa.
La formula per ricavare il valore della capacità C9 è la seguente:
C9 = IR2 * 0.5 * T / Vpp
dove:
T è il periodo del segnale triangolare, essendo 500KHz scelta in questo progetto la frequenza T è:
T = 1 / f = 1 /500000 = 2uS
Vpp è la tensione picco-picco del segnale triangolare. Dato che il
comparatore (sul "modulo comparatore") accetta massimo (minimo del
massimo) 8Vpp decido una tensione di 6Vpp per lasciare un margine di
tensione per Q3 e Q4 ed
evitare quindi che il segnale triangolare vada in clipping.
Immettendo
questi valori nella formula ottengo:
C9 = (0.0035 * 0.5 * 2 * 10 ^(-6)) / 6 = 583pF che approssimo a 620pF
NOTA:
C9 NON deve essere ceramico!
tenete conto però che il valore di C9 andrà ritoccato in fase di
collaudo perché esso è affetto leggermente da C2, in effetti io ne ho
usato uno da 1nF per ottenere quella tensione picco - picco.
I componenti R5, C2 e C3 sono stati determinati in modo empirico data
la difficoltà di misurare la resistenza di uscita vista verso il punto
A, il gruppo R5 - C2 elimina una oscillazione a circa 15MHz sulle punte
del segnale triangolare e C3 serve per disaccoppiare il modulo
"generatore onda triangolare" dal modulo "comparatore" (a causa dei
0.1V presenti sul punto A).
Adesso analizzo il sistema con il "controllo D.C.", vedere fig 4:

Per la descrizione inizio con un esempio. Immagino che sul punto A, per
qualsiasi motivo, aumenti la tensione, questo aumento viene
riportato, tramite R16, sul condensatore C5 e quindi sul piedino
non invertente di U1. Sul pin di uscita
dell'integrato è quindi presente lo stesso cambiamento amplificato di
molto che fa condurre meno il transistor Q5 con la conseguente
diminuzione della corrente ICQ3 che abbassa il livello della tensione
sul punto A. Maggiore è l'amplificazione di U1 e maggiore sarà
l'efficacia della regolazione.
L'amplificazione dell'integrato di U1 è molto alta, ad esempio
considerando una variazione a 0.1Hz (le fluttuazioni della tensione
sono molto lente) l'amplificazione conseguente è:
A = 1 / (2 * Pi * f * R9 * C4 = 1 / (2 * Pi * 500000 * 100 * 10^(-6)) = 15900
Questo significa che per una variazione di un volt in uscita occorre solo una variazione di 62uV in ingresso.
Il condensatore C6 è enigmatico, non dovrebbe esserci ma la sua
presenza migliora di molto il jitter del segnale triangolare,
forse è necessario solo nel mio prototipo dato che U1 l'ho aggiunto dopo
e si trova ad una certa altezza dal modulo e questo potrebbe creare
problemi di instabilità...
Una volta fissato il valore di R16 (che non deve scendere sotto i 10K
per non caricare troppo il punto A) ho determinato il condensatore C5
empiricamente; esso non deve essere minore di 10nF. Della resistenza
R13 parlerò dopo quando affronterò il modulo "generatore di onda
quadra".
NOTE:
Non lesinare sui condensatori di filtro posti sui rami della
alimentazione. E' bene, in fase di collaudo, mettere al posto di R6 un
trimmer da 100 ohm, andrà regolato per ottenere la massima linearità
dell'onda triangolare.
I regolatori di tensione 78L05
e 79L05 montati su questo modulo forniscono le alimentazioni a +/- 5V anche a
tutti gli altri moduli, la tensione in ingresso ai regolatori non
deve essere inferiore a +/-8V.
Qui sotto le foto del modulo con e senza controllo della D.C.
MODULO GENERATORE ONDA QUADRA
Fare riferimento alla fig.5:
I transistor Q7 e Q8 sono in connessione emitter follower e
forniscono un segnale a onda quadra simmetrico a +/-5V al modulo
"generatore onda triangolare". Prima ho scritto che quando il
segnale ad onda quadra è a +5V la coppia di transistor fornisce una
corrente di 7mA e quando il segnale è a -5V la coppia non assorbe alcuna
corrente, purtroppo non è così. A causa del tempo di ritardo dei diodi
(reverse recovery time trr)
si creano delle spike di corrente di notevole entità (dell'ordine
di centinaia di mA senza resistenza R13) al momento del passaggio
tra -5V a +5V e viceversa. Per capire questo fenomeno
osserviamo la Fig. 6 dove sono rappresentate le correnti
istantanee (sul modulo "generatore onda triangolare")
quando il livello dell'onda quadra passa da -5V a +5V.

Quando il livello è a -5V il diodo D2 è interdetto e il diodo D1
è in conduzione, nel momento del passaggio da -5V
a +5V il diodo D2 va in conduzione ma il diodo
D1 rimane anche lui in conduzione per il tempo trr (circa 10nS per il diodo 1N4148), in questo istante il transistor alto (Q7) della coppia di bjt sul modulo "generatore onda quadra"
eroga corrente che in parte passa attraverso Q4 (7mA) e in
parte attraversa il diodo D1 per chiudersi su C9 (Q3 è
interdetto).
Nella fig.7 sono rappresentate le correnti istantanee
(sul modulo "generatore onda triangolare") quando il livello
dell'onda quadra passa da +5V a -5V.

Quando il livello è a +5V il diodo D2 è in conduzione e il
diodo D1 è interdetto, nel momento del passaggio da +5V a -5V
il diodo D1 va in conduzione ma il diodo D2 rimane anche lui in
conduzione per il tempo trr (circa
10nS per il diodo 1N4148), in questo istante il condensatore C9
si scarica in parte in Q4 (nel quale circola anche la corrente IQ3)
e in parte nel transistor basso (Q8) della coppia di bjt sul modulo
"generatore onda quadra".
Queste spike, oltre a deformare la punta del segnale triangolare,
possono creare delle false commutazioni al comparatore e inoltre
possono distruggere i diodi e la coppia di transistor sul modulo
"generatore onda quadra". Per fortuna basta inserire una resistenza di
100 per limitarle a valori attorno ai 20mA.
Torniamo ora alla fig.5.
Per il dimensionamento del circuito sul modulo
"generatore onda quadra" per semplicità considero una erogazione di
corrente pari a 7mA per l'onda quadra a +5 e un assorbimento di
corrente pari a 0mA per l'onda quadra a -5 questo, sul punto A deve
essere
presente una tensione (VA) di almeno +/- 5.7V (0.7 è la caduta sulla
giunzione dei
transistor) per il funzionamento corretto. Tenete conto che essendo la
coppia dei bjt alimentata a +/-5V e pilotata a +5.7 c'è la situazione
in cui le giunzioni collettore - emettitore dei transistor sono
polarizzate in senso diretto con relativo extra assorbimento delle
basi, ma questo, ai fini del funzionamento, non ha importanza. Non sono
riuscito a misurare questa extra corrente con gli strumenti dato il suo
valore piccolo sormontato da rumore e allora ho simulato il circuito
con LTspice ottenendo una corrente di base, sia di Q8 che di Q7, di
circa 500uA superiore a quella che dovrebbe assorbire la base di Q7
anche considerando l'HFE minimo del SA9014:
IBQ7 = 7mA / 60 = 0.11mA
Quando il livello della onda quadra sul
punto A è a +5.7V il transistor Q6 è interdetto e la corrente della
base di Q7 (IBQ7) provoca una caduta su R10 pari a:
VR10 = R10 * IBQ7 = 1000 * 500 uA = 0.5V
essendoci +/-5.7 sul punto A la tensione sul punto B è:
VB = 2 * 5.7 = 11.4V
quindi la tensione VCC che alimenta Q6 deve essere:
VCC = VA + VR10 = 5.7 + 0.5 = 11.9V che ho approssimato a 12V
Il condensatore C7 non deve essere minore
di 1uF per evitare che si scarichi durante il semiperiodo della onda
quadra a -5.7V, in questo tempo Q6 è in saturazione e offre alla
capacità un percorso di scarica a bassa impedenza. Dato che è difficile
conoscere il valore dell'impedenza quando un bjt è in saturazione ho
determinato il valore C7 per tentativi.
La corrente di collettore di Q6 quando è esso in saturazione (considerando una tensione di saturazione nulla) è:
IQ6 = VCC / R10 = 12 / 1000 = 12mA
la corrente di base di Q6 considerando un HFE pari a 60 è:
IBQ6 = IQ6 / 60 = 12mA / 60 = 0.2mA
la resistenza R11 per il corretto funzionamento dovrebbe essere:
R11 = VD - VBEQ6 = (5 - 0.7) / 0.2mA = 21500 ohm
dove VD è il livello logico 1 (in uscita del pin Q1 del CD4040) e VBEQ è la tensione base emettitore di Q6.
Scegliendo una resistenza da 3K3 (un carico che il CD4040 è in grado di pilotare) si è sicuri che Q6 vada in saturazione.
Ho determinato il condensatore C8 per tentativi,
esso serve per limitare le piccole oscillazioni di L1 (che deve fungere
da R.F.C.) che causavano un duty-cycle diverso dal 50%.
Per il resto c'è poco da dire, il CD4040 è
un contatore divisore, sull'uscita del pin Q1 è presente un segnale a
metà frequenza (500KHz) di quella del segnale generato da l'oscillatore
quarzato.
Qui sotto la foto del modulo "generatore onda quadra":

NOTE:
Le alimentazioni a +/-5V vengono fornite dai
regolatori montati sul modulo "generatore onda triangolare", mentre i
12V devono essere forniti da un alimentatore esterno.
MODULO COMPARATORE
Qui sotto lo schema elettrico:

Al
pin invertente giunge il segnale triangolare e al pin non invertente il
segnale audio (ad esempio sinusoidale). Quando il livello del segnale
triangolare supera quello sinusoidale l'uscita va bassa, viceversa quando il livello del segnale triangolare è inferiore a quello sinusoidale l'uscita va alta.
Si ha quindi in uscita un onda quadra (PWM) con duty-cycle che varia al variare del livello del segnale sinusoidale in ingresso.
Qui sotto C'è una istantanea del segnale (e
il suo ingrandimento nella foto successiva) prelevato all'uscita
di U3 corrispondente al valore massimo si un segnale sinusoidale
(colore viola):


Nell'esempio Il duty - cycle del segnale PWM, con questo livello si segnale sinusoidale, è pari a:
D = TD / T = 1.520 uS / 2 uS = 0.76 (76%)
dove TD è il tempo durante il quale l'onda quadra è alta e T è il periodo del segnale.
In teoria il progetto si dovrebbe fermare qui dato che sono arrivato alla generazione del segnale PWM che era lo scopo di questo
lavoro, ma siccome ho voluto vedere quale fosse il suo risultato
ho aggiunto un filtro LC e un filtro notch a 500KHz per riportare il
segnale PWM ad onda sinusoidale. Qui sotto il risultato:

Il segnale viola è quello inviato al comparatore e quello giallo è quello prelevato in uscita dopo i filtri.
NOTE:
Le alimentazioni a +/-5V vengono fornite dai regolatori montati sul modulo "generatore onda triangolare".
NOTE FINALI:
Questo lavoro mi ha preso un po' di tempo ma il vederlo funzionare mi
ha dato molta soddisfazione, il circuito si può migliorare usando
componentistica più veloce. Grazie per avermi letto.
Fabio