MODULATORE PWM 500KHz
Il progetto di questo modulatore PWM è stato ideato dal
sig. Masashi Miyagawa della Texas Instruments (file sboa212b.pdf), io
mi sono limitato a realizzarlo su scheda e ad aggiungere dei componenti
per generare un "dead time" nel caso si volesse usare questo modulatore per realizzare un amplificatore in classe D. Ho
inoltre sostituito alcuni componenti perché non possedevo in
laboratorio quelli usati nel progetto originale, ho poi aggiunto una
resistenza e una linea per il feedback globale sempre nel caso si
volesse utilizzare questo modulatore per realizzare un amplificatore
in classe D, lo schema è rappresentato nella seguente figura:
PANORAMICA VELOCE DEL CIRCUITO
Per la panoramica del circuito fare riferimento allo schema a blocchi rappresentato nella seguente figura:
Il sistema è alimentato con
una tensione singola di +5V, molto conveniente dato che questa tensione
viene fornita dai comuni carica batteria per cellulari. Il modulatore
funziona con polarizzazione a metà tensione di alimentazione, ovvero a
+2.5V, dove si appoggia il segnale audio.
Il comparatore riceve il segnale triangolare fornito da IC5B e il
segnale sinusoidale fornito dal integratore IC1A, alla sua uscita è
presente in segnale PWM e PWM INVERTITO, entrambi questi due segnali
vanno al generatore di "dead time" costituito dall'integrato IC3,
all'uscita di questo integrato sono presenti gli stessi segnali PWM e
PWM IVERTITO ma con i loro fronti sfasati tra loro di un certo
tempuscolo regolabile mediante trimmer in modo che mai, per qualsiasi
ragione, i due segnali si trovino allo stesso livello
contemporaneamente. L'uscita PWM del comparatore IC2 viene sommata, tramite R8, al segnale AUDIO IN
invertita di 180° in modo da realizzare una retroazione negativa
locale.
Questa retroazione non serve solo a linearizzare il sistema,
aumentare la banda audio e ad abbassare la distorsione armonica del
segnale audio in uscita (per recuperarlo occorre mettere un filtro LC o
sull'uscita PWM o sull'uscita PWM INVERTITO) ma serve soprattutto a far
funzionare il modulatore; senza questa retroazione l'integrato IC1A
sarebbe un integratore puro
e per qualsiasi disturbo in ingresso la sua uscita si bloccherebbe o
alla tensione di alimentazione negativa o a quella positiva, ma anche
se questo non dovesse accadere esso sfaserebbe comunque il segnale di
ulteriori 90° che si sommerebbero ai 180° dovuti all'inversione
dell'ingresso invertente rendendo il circuito praticamente inutilizzabile.
Essendo invece inserito in una catena chiusa esso si comporta solo come
un filtro passa basso e la natura della sua inversione di 90° viene
cancellata dalla retroazione in modo che la fase tra ingresso e uscita
sia di 180° almeno fintanto la frequenza più alta del segnale audio
(20KHz) sia molto al di sotto della frequenza di taglio del sistema. Come
ho scritto prima ho aggiunto una linea con resistenza (R4) per
una retroazione globale, ovvero una retroazione che parte dal punto
centrale dei mosfet (o dai capi dell'altoparlante) invece che
dall'uscita PWM del comparatore, nel caso si volesse usare questo
modulatore per pilotare un finale in classe D, in questo caso R8 va
tolta. Tenete conto però che andrebbero fatte delle modifiche alla
polarizzazione di questo circuito per la incompatibilità della tensione
presente al punto centrale dei mosfet (sia nel caso che il finale
sia alimentato da tensioni singole o duali) e i +2.5V che servono per
far funzionare questo modulatore.
Entro ora nei particolari del funzionamento:
GENERATORE DI SEGNALE TRIANGOLARE
I componenti che costituiscono il generatore del segnale triangolare sono i seguenti: IC5B, IC4, R9, R7, R10, C8.
Le forme d'onda sono le seguenti: sul punto B c'è un segnale ad onda
quadra, sul punto C c'è un segnale ad onda triangolare e sul punto A
c'è lo stesso segnale con livello diverso.
Ipotizzo che il livello del segnale sul punto B sia appena
andato zero, il condensatore C8 si scarica linearmente (verso della
corrente da p2 a p1) partendo da un certo valore ti tensione alla quale
si era caricato precedentemente, in questa fase il terminale P2 è a
potenziale maggiore del terminale P1, Sul punto C c'è la stesso segnale
presente ai capi ci C8 ma invertito di pendenza, ovvero c'è una rampa
che cresce linearmente. Quando sul punto A il livello di questa rampa
crescente (diminuito in valore dal partitore R10, R7 a causa del
livello a zero volt dell'onda quadra) eguaglia la tensione di
riferimento VREF (2.5V) IC4 commuta la sua uscita portando il livello
della onda quadra a +5V, allora il condensatore
C8 si carica linearmente (verso della
corrente da p1 a p2) partendo da un certo valore ti tensione alla quale
si era scaricato precedentemente, in questa fase il terminale P1 è a
potenziale maggiore del terminale P2, Sul punto C c'è la stesso segnale
presente ai capi ci C8 ma invertito di pendenza, ovvero c'è
una rampa che decresce linearmente. Quando sul punto A il livello di questa rampa decrescente (aumentato in
valore dal partitore R10, R7 a causa del livello a +5V volt dell'onda quadra) eguaglia la tensione di riferimento VREF
(2.5V) IC4 commuta la sua uscita portando il livello della onda quadra di nuovo a zero volt e il ciclo si ripete.
Il livello presente sul punto A è impostato, come detto, dal partitore
R10, R7 che determina l'ampiezza massima del segnale triangolare sul
punto C, tale livello va deciso in base a due considerazioni; se si
scegliesse una ampiezza troppo bassa qualsiasi disturbo, anche di lieve
entità, presente sul punto D genererebbe elevati valori di duty-cycle
portando instabilità al sistema e conseguenti indesiderate
oscillazioni. Se si scegliesse una ampiezza troppo vicino alla tensione
di alimentazione gli integrati lavorerebbero con segnali troppo
vicini ai 5V e potrebbero generare distorsioni. In genere si sceglie il
massimo livello tra 80% al 90% dell'alimentazione, io ho deciso per il
90% ovvero per un massimo livello di picco di 4.5V (Vtri_picco),
ricordatevi che il segnale triangolare è appoggiato ad una continua di
2.5V quindi il valore picco-picco del segnale triangolare è:
Vtri_picco-picco = (Vtri_picco - VREF) * 2 = (4.5 - 2.5) * 2 = 4Vpp
La formula per determinare la resistenza R10 una volta fissata, ad esempio, R7 a 10K è la seguente:
R10 = Vtri_picco-picco * R7 / VHL_quadra = 4 * 10000 / 5 = 8K che approssimo a 8K2
dove VHL_quadra è il picco dell'onda quadra sul punto B che ovviamente, essendo il comparatore alimentato a +5V, è 5V
La frequenza di switching è stata scelta di
500KHz (fs), con la formula seguente determino la capacita di C8 per
questa frequenza, fissando a priori R9 a 5K6:
C8 = R7 / (4 * fs * R10 * R9) = 10K / (4 * 500KHz *8.2K * 5.6K) = 109pF che approssimo a 100pF
con 100pF il mio circuito lavora con una frequenza di switching di
515KHz, quindi un po' più alta di quella scelta in partenza, se volete
che il segnale triangolare abbia una frequenza precisa di 500KHz basta
che mettiate un trimmer capacitivo in parallelo a C8, ad esempio un
trimmer da 5 -12pF non richiede una regolazione critica e va benissimo.
La tensione VREF è pari a 2.5V, deve essere costante e fornita da una
sorgente a bassa resistenza, in questo circuito ho usato IC5A, sarebbe
bene usare per R11 e R12 resistenze con una tolleranza di 1% e
basso coefficiente di temperatura.
Qui sotto la forma d'onda triangolare sul punto C e quella quadrata sul punto B:
Lo slew rate del segnale triangolare si determina con la seguente formula:
SW = (VHL_quadra - 2.5) / (R9 * C8) = 2.5/ (5600 * 100pF) = 4.4 V/uS
l'operazionale IC5B deve avere un slew rate almeno 5 volte maggiore, ovvero 22 V / uS
Considerando almeno 10 armoniche per ricostruire il segnale triangolare l'operazionale IC5B deve avere una larghezza di banda di:
GBW = 19 * fs 19 * 500KHz = 9.5MHz
NOTA:
19 perché l'onda triangolare è costituita solo da armoniche dispari
Per quanto riguarda il comparatore IC4 bisogna sceglierne uno con tempo
di propagazione (tp) almeno 10 volte inferiore al periodo del segnale triangolare ovvero
tp <= T / 10 = 1 / (500KHz * 10) <= 200nS
INTEGRATORE IC1A (FILTRO PASSA BASSO)
Il
motivo principale per il quale si usa un integratore piuttosto che un
filtro attivo passa basso è per il suo elevato guadagno in continua; in
un modulatore PWM la costanza della tensione continua (2.5V su punto D) sulla
quale si appoggia in segnale audio da convertire è importantissima, se
non fosse costante nel tempo il modulatore darebbe errori nella
conversione. Con un elevato guadagno a catena aperta (garantito appunto
da un integratore) a catena chiusa la retroazione mantiene questa
tensione quasi rigorosamente a 2.5V.
Quando si analizza il circuito con catena chiusa
l'integratore perde alcune delle sue caratteristiche; la fase tra ingresso e
uscita, che nell'integratore preso a se stante è di 90°, viene portata a
180° valore per il quale un sistema retroazionato negativamente deve
funzionare, inoltre la sua risposta in frequenza, che notoriamente è
decrescente al crescere della frequenza, viene, per così dire,
livellata dalla retroazione (almeno lontano dalla frequenza di taglio
del sistema), in poche parole l'integratore viene visto, in catena chiusa,
come un filtro attivo passa basso ma con altissimo guadagno in continua.
A IC1A si sommano sul suo pin invertente il segnale audio proveniente
da una sorgente esterna con il segnale retroazionato sfasato di 180°,
qualsiasi differenza tra ingresso e uscita viene corretta dalla
retroazione (compresa, come ho detto, le variazioni in continua che si discostano da 2.5V)
Ho aggiunto una resistenza e un ingresso feed back che ho chiamato
esterno, questo ingresso può essere usato quando con questo modulatore
si pilota un finale in classe D, in questo caso questo l'ingresso va
collegato o al centro dei mosfet finali o dopo il filtro LC (in
parallelo all'altoparlante)), il valore della resistenza R4 va scelto
in base alla potenza di uscita del finale e la resistenza
R8 non va montata. Vanno però cambiate le polarizzazioni di questo
circuito!
Per avere 2.5V sul punto D (VD) occorre alimentare il pin non
invertente di
IC1A con una tensione pari a metà VREF (1.25V), questa tensione si
ricava mediante il partitore R2, R3, anche per queste due resistenze
vale lo stesso discorso che ho fatto per R11, R12.
A questo punto basta impostare R8 e R1 a 10K (valore scelto arbitrariamente) per avere un
guadagno dell'ingresso non invertente di IC1 pari a 2:
G+ = 1 + R8 / R1 = 1 + 10K / 10 K = 2
VD = VREF / 2 * G+ = 1.25 * 2 = 2.5V
Di C1 parlerò in seguito.
Per quanto riguarda la scelta dell'operazionale IC1A valgono le stesse considerazioni fatte per il generatore di segnale triangolare
COMPARATORE IC2
Il comparatore IC2 deve convertire il
segnale audio in segnale PWM confrontando il segnale audio stesso
presente sul punto D con il segnale triangolare presente sul punto C,
Per quanto riguarda la scelta del compratore valgono le stesse considerazioni fatte per il generatore di segnale triangolare.
GENERATORE DI DEAD TIME IC3
Il generatore di "dead time" è costituito da un invertitore
TTL molto veloce (Tp = 9.5nS), su due dei suoi ingressi sono presenti i
segnali complementari Q e QN, prendiamo in considerazione, ad esempio,
in segnale Q; quando esso va alto l'uscita dell'invertitore va quasi
istantaneamente bassa perché il diodo D2 bypassa il trimmer R6 (la
resistenza dinamica del diodo è molto bassa e quindi C6 si carica
subito), quando il segnale Q va basso l'uscita va alta dopo un certo
tempo td deciso dal trimmer R6 e il condensatore C6. Esattamente uguale
è la sezione relativa a QN.
La formula per ricavare il tempo morto td è la seguente (in relazione al segnale Q):
td = - R6 * C6 * ln(1 - VTH / VCC)
dove VTH è il livello di soglia di IC3 (che per comodità si approssima a 2.5V) e VCC è 5V.
Qui sotto una istantanea del segnale Q e QN in uscita dell'invertitore, in questo esempio td è pari a 48nS:

SCELTA DEL CONDENSATORE C1
C1 assieme alla resistenza R8 determina la
frequenza di taglio del sistema, per avere minima attenuazione e minimo
scostamento dai 180° del segnale audio alla frequenza più alta
(20KHz) occorre scegliere una frequenza di taglio dalle 5 alle 10
volte più alta di 20KHz. Il progettista ha deciso per 159KHz, la
formula per ricavare la capacità C1 è la seguente:
C1 = 1 / (2 * Pi * R8 * ft) = 1 / (2 * Pi * 10K * 159KHz) = 100pF
Qui sotto la foto del segnale sinusoidale a
1KHz preso sull'uscita Q tramite una cella LC, in giallo il segnale
audio in uscita e in viola il segnale audio in ingresso:

Qui sotto il segnale a 20KHz, notate il
piccolo sfasamento rispetto ai 180° tra il segnale in uscita e quello
in ingresso. Esso è dovuto al filtro LC e non al sistema. Infatti nella
foto successiva si nota come il segnale prelevato sul punto D sia a
180° con quello in ingresso:


Notate la scarica e carica di C1
sull'inviluppo della sinusoide, ovviamente questo segnale sovrapposto a
500KHz va via dopo il filtro LC in uscita.
Qui tutto il necessario per realizzare la scheda, la scheda rame è stata salvata con risoluzione di 600 d.p.i.
Fabio