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