Lezioni di Laboratorio di Segnali e Sistemi A.NIGRO Dipartimento di Fisica, Università La Sapienza di Roma (settembre 2016) 2 Introduzione Queste dispense costituiscono una rielaborazione delle lezioni da me tenute per il corso di Laboratorio di Segnali e Sistemi (Laboratorio di Fisica I, nel vecchio ordinamento) negli ultimi anni. Nella nostra Università questo corso ha sempre avuto la funzione di insegnare agli studenti l’Elettronica; di fatto è l’unico corso che molti ricevono in questo campo. L’obiettivo è di dare agli studenti una certa dimestichezza con questa materia, che li metta in grado, qualunque sia il loro mestiere futuro, di affrontare e risolvere semplici problemi applicativi, ovvero li metta in grado di interagire efficacemente con degli specialisti, per i problemi piu’ complessi. Oggi la cultura elettronica è fondamentale in qualunque campo della Scienza e della Tecnica ed è quindi fondamentale, per un laureato in Fisica, capire, o almeno intravedere, cosa si puo’, e cosa non si puo’ fare, con l’Elettronica. L’unico modo per conoscere seriamente questa materia è attraverso la pratica, quindi in questo corso hanno un ruolo centrale, come in passato, le esercitazioni che gli studenti svolgono in laboratorio parallelamente al corso in aula, imparando a progettare e a costruire circuiti via via più complicati1 . Nel corso degli ultimi anni l’Elettronica ha fatto progressi giganteschi che stanno rivoluzionando il mondo in cui viviamo. Alcuni potrebbero quindi trovare strano che ancora si parli di circuiti RC e si perda tempo con "antiquati" transistors, mentre si potrebbe meglio impiegare il tempo con circuiti ultra-moderni capaci di prestazioni esaltanti. Io, come molti altri, sono in totale disaccordo con questa filosofia: è la filosofia delle "scatole nere", che gli studenti imparano ad usare (leggendo i fogli illustrativi), senza nessuna possibilita’ di capire cosa succede. Invece, nella nostra filosofia, lo studente deve "capire" cosa succede, e padroneggiare completamente i circuiti che costruisce ed usa. In altre parole, se si conoscono i "fondamentali" si è in grado, studiando, di aggiornarsi e di arrivare, in modo consapevole, ad usare scatole che ora non saranno piu’ completamente nere, ma, almeno, semitrasparenti. 1 La Guida alle Esercitazioni costituisce oggetto di un fascicolo separato, reperibile sul sito http://wwwzeus.roma1.infn.it/nigro/. 3 4 Indice 1 Introduzione all’elettronica 1.1 Introduzione . . . . . . . . . . . . . . . 1.2 Riepilogo sulle reti lineari . . . . . . . 1.3 Amplificatori . . . . . . . . . . . . . . 1.4 Trasformazione di Laplace . . . . . . . 1.4.1 Definizione . . . . . . . . . . . 1.4.2 Anti-trasformazione di Laplace 1.4.3 Conclusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 12 19 25 25 29 32 2 Circuiti passivi 2.1 Introduzione . . . . . . . . . . 2.2 Circuito RC passa-alto . . . . 2.3 Circuito RC Passa-Basso . . 2.4 Derivatore e integratore . . . 2.5 Attenuatore compensato . . . 2.6 Filtri in cascata . . . . . . . . 2.6.1 Doppio passa-basso . . 2.6.2 Doppio passa-alto . . . 2.6.3 Passa-banda . . . . . . 2.7 Circuiti RLC . . . . . . . . . 2.7.1 RLC in serie . . . . . 2.7.2 Circuito RLC parallelo 2.8 Linee di trasmissione . . . . . 2.8.1 Linee reali . . . . . . . 2.8.2 Ulteriori applicazioni . 2.9 Cenni sul trasformatore . . . 2.10 Sorgenti di segnale . . . . . . 2.11 Circuiti reali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 38 41 43 46 46 48 49 50 51 56 58 63 65 67 68 72 3 Diodi 3.1 Introduzione . . . . . . . . 3.2 Fisica dei semiconduttori . 3.3 Il diodo a giunzione . . . . 3.4 Circuiti con diodi . . . . . 3.5 Altri diodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 75 75 85 87 89 . . . . . . . . . . 5 6 INDICE 4 Transistor a giunzione (BJT) 4.1 Il transistor a giunzione . . . . . . . . . . . . . . 4.1.1 Modello di Ebers-Moll del transistor . . . 4.1.2 Curve caratteristiche del transistor . . . . 4.1.3 Utilizzazione del transistor . . . . . . . . . 4.1.4 Il transistor pnp . . . . . . . . . . . . . . 4.2 Amplificatore ad emettitore comune . . . . . . . 4.2.1 Analisi per piccoli segnali . . . . . . . . . 4.2.2 Modelli lineari per piccoli segnali . . . . . 4.2.3 Polarizzazione del transistor . . . . . . . . 4.2.4 L’amplificatore a emettitore comune . . . 4.2.5 L’amplificatore a emettitore comune senza 4.3 Amplificatore a base comune . . . . . . . . . . . 4.4 Amplificatore a collettore comune . . . . . . . . . 4.5 Riepilogo . . . . . . . . . . . . . . . . . . . . . . 4.6 Altri circuiti di polarizzazione . . . . . . . . . . . 4.6.1 Doppia alimentazione . . . . . . . . . . . 4.6.2 Polarizzazione con generatore di corrente . 4.7 Amplificatore Darlington . . . . . . . . . . . . . . 4.8 La risposta in frequenza degli amplificatori . . . . 4.8.1 Il modello π ad alta frequenza . . . . . . . 4.8.2 L’effetto Miller . . . . . . . . . . . . . . . 4.8.3 La regione di bassa frequenza . . . . . . . 4.8.4 La regione di alta frequenza . . . . . . . . 4.8.5 Riepilogo . . . . . . . . . . . . . . . . . . 4.9 Amplificatori a due stadi . . . . . . . . . . . . . . 4.9.1 Amplificatore CE - CC . . . . . . . . . . . 4.9.2 Amplificatore CC - CB . . . . . . . . . . . 4.9.3 Amplificatore CE - CB (cascode) . . . . . 4.10 Stadio d’uscita negli amplificatori multi stadio . . 4.10.1 Amplificatori di classe A . . . . . . . . . . 4.10.2 Amplificatori di classe B . . . . . . . . . . 4.10.3 Amplificatori di classe AB . . . . . . . . . 4.11 Specchi di corrente . . . . . . . . . . . . . . . . . 4.12 Amplificatore differenziale . . . . . . . . . . . . . 4.13 La reazione negativa . . . . . . . . . . . . . . . . 4.13.1 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . capacita’ di emettitore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 93 96 98 106 109 109 109 112 118 120 124 128 130 133 134 134 135 136 137 138 140 142 145 151 151 152 152 153 156 156 157 158 161 163 175 178 6 Amplificatori operazionali 6.1 Introduzione . . . . . . . . . . . . 6.2 Caratteristiche generali . . . . . . 6.3 Amplificatori operazionali reali . 6.4 Applicazioni . . . . . . . . . . . . 6.5 Filtri attivi . . . . . . . . . . . . 6.5.1 Filtri VCVS . . . . . . . . 6.5.2 Filtri a reazione multipla . . . . . . . . . . . . . . . . . . . . . 183 183 183 188 197 208 209 211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 INDICE 7 Rumore 7.1 Introduzione . . . . . . . . . . . . . . . . . 7.2 Rumore termico . . . . . . . . . . . . . . . 7.3 Rumore shot . . . . . . . . . . . . . . . . 7.4 Rumore 1/f (flicker noise) . . . . . . . . . 7.5 Rumore burst e avalanche . . . . . . . . . 7.6 Rumore negli amplificatori . . . . . . . . . 7.6.1 Amplificatore a transistor bipolare 7.6.2 Amplificatore operazionale . . . . . 7.7 Generatori di rumore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 215 217 219 220 220 220 221 222 225 7 Circuiti digitali 7.1 Numerazione binaria ed algebra di Boole . . . . . . . . . . 7.2 Circuiti logici . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Famiglie logiche . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Famiglia DTL . . . . . . . . . . . . . . . . . . . . . 7.3.2 Famiglia TTL . . . . . . . . . . . . . . . . . . . . . 7.3.3 Famiglia CMOS . . . . . . . . . . . . . . . . . . . . 7.3.4 Famiglia ECL . . . . . . . . . . . . . . . . . . . . . 7.3.5 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . 7.4 Circuiti digitali combinatori . . . . . . . . . . . . . . . . . 7.4.1 Sommatori . . . . . . . . . . . . . . . . . . . . . . 7.4.2 Moltiplicazione e divisione . . . . . . . . . . . . . . 7.4.3 Comparatore digitale . . . . . . . . . . . . . . . . . 7.4.4 Multiplexer e demultiplexer . . . . . . . . . . . . . 7.4.5 Encoder e decoder . . . . . . . . . . . . . . . . . . 7.5 Circuiti sequenziali . . . . . . . . . . . . . . . . . . . . . . 7.5.1 Flip-flop . . . . . . . . . . . . . . . . . . . . . . . . 7.5.2 Registro a scorrimento . . . . . . . . . . . . . . . . 7.5.3 Contatore asincrono . . . . . . . . . . . . . . . . . 7.5.4 Contatore sincrono . . . . . . . . . . . . . . . . . . 7.6 Conversione digitale-analogica . . . . . . . . . . . . . . . . 7.6.1 Convertitore digitale-analogico a pesiera . . . . . . 7.6.2 Convertitore digitale-analogico con rete R-2R . . . 7.6.3 Convertitore digitale-analogico a somma di correnti 7.7 Conversione analogico-digitale . . . . . . . . . . . . . . . . 7.7.1 Campionamento . . . . . . . . . . . . . . . . . . . 7.7.2 Analisi di campioni digitali . . . . . . . . . . . . . 7.7.3 Realizzazione di convertitori analogico-digitale . . . 7.7.4 Convertitore analogico-digitale a conteggio . . . . . 7.7.5 Convertitore analogico-digitale a doppia rampa . . 7.7.6 Flash ADC . . . . . . . . . . . . . . . . . . . . . . 7.7.7 ADC a pipeline . . . . . . . . . . . . . . . . . . . . 7.8 Multivibratori . . . . . . . . . . . . . . . . . . . . . . . . . 7.8.1 Multivibratore bistabile . . . . . . . . . . . . . . . 7.8.2 Multivibratore astabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 227 233 235 237 237 242 244 245 246 246 249 250 251 252 253 255 261 262 264 265 265 266 267 270 271 274 276 276 278 280 281 282 282 283 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 INDICE 7.9 7.8.3 Multivibratore monostabile . . . . . Il timer 555 . . . . . . . . . . . . . . . . . . 7.9.1 Multivibratore astabile con 555 . . . 7.9.2 Multivibratore monostabile con 555 . 7.9.3 Multivibratore bistabile con 555 . . . 8 Il microprocessore Z80 8.1 Introduzione . . . . . . . . . . . . . . 8.1.1 Il sistema esadecimale . . . . 8.1.2 Logica "tri-state" . . . . . . . 8.2 Struttura dello Z80 . . . . . . . . . . 8.3 Programmazione dello Z80 . . . . . . 8.3.1 Temporizzazione dello Z80 . . 8.3.2 Le istruzioni dello Z80 . . . . 8.3.3 Il concetto di "catasta" . . . 8.3.4 Operazioni di ingresso/uscita 8.3.5 Interruzioni . . . . . . . . . . 8.4 La scheda didattica Z80 . . . . . . . 8.4.1 Descrizione circuitale . . . . . 9 Microcontrollori 9.1 Introduzione . . . . . . . . . . . . 9.2 I microcontrollori ATMEL AVR . 9.3 Il microcontrollore ATMega328P 9.3.1 Caratteristiche generali . 9.3.2 Input-output . . . . . . . 9.3.3 Comunicazione seriale . . 9.3.4 Lock bits e fuse bits . . . 9.4 La scheda Arduino Uno . . . . . 9.4.1 Introduzione . . . . . . . 9.4.2 Precauzioni . . . . . . . . 9.4.3 Programmare Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 287 288 293 293 . . . . . . . . . . . . 297 . 297 . 299 . 299 . 302 . 306 . 309 . 312 . 316 . 317 . 317 . 319 . 319 . . . . . . . . . . . 325 . 325 . 327 . 328 . 328 . 334 . 336 . 340 . 340 . 340 . 346 . 346 Capitolo 1 Introduzione all’elettronica 1.1 Introduzione Oggetto di questo corso e’ lo studio teorico - pratico dell’Elettronica. In pratica questo termine indica oggi l’insieme di conoscenze pratiche e teoriche necessarie per progettare e realizzare apparati in grado di elaborare grandezze fisiche, tradotte per mezzo di opportuni dispositivi, servendosi di grandezze fisiche relative ai fenomeni elettrici. Le realizzazioni dell’elettronica sono dei circuiti elettronici costituiti da componenti, attivi e passivi, collegati per mezzo di tracciati conduttivi, in genere metallici, attraverso cui circolano correnti elettriche. L’elettronica non va confusa con l’elettrotecnica, anche se le discipline sono strettamente legate: mentre l’elettrotecnica ha come scopo principale la trasmissione della potenza elettrica e la gestione e il progetto delle macchine elettriche, l’elettronica si occupa soprattutto dell’uso e dell’elaborazione dei segnali elettrici in quanto portatori di informazione. Segnali La parola segnale puo’ assumere un significato molto vasto e si applica ad una grande quantita’ di fenomeni e situazioni, piu’ o meno complesse. Segnale puo’ essere considerata l’informazione prodotta ad esempio da un termometro elettrico: un opportuno dispositivo (trasduttore) traduce la grandezza fisica temperatura, T , in una tensione elettrica, V V = f (T ) (1.1) Se il trasduttore e’ lineare al posto della 1.1 avremo la piu’ semplice relazione V = aT + b (1.2) Segnale e’ anche una voce che ci arriva l’altoparlante di una radio. E’ un’informazione acustica (sostanzialmente variazioni di pressione dell’aria) che colpisce il nostro orecchio. Ma prima di cio’ l’informazione ha viaggiato nell’etere sotto forma di onda elettromagnetica, e’ stata captata dalla radio e trasformata in una tensione elettrica, la quale, a sua volta e’ stata trasformata in onda di pressione nell’altoparlante (trasduttore). E’ chiaro che ora l’informazione e’, in una certa fase, contenuta in una tensione elettrica variabile nel tempo, ottenuta, all’origine, trasformando l’onda di pressione della voce umana grazie ad un opportuno trasduttore. 9 10 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA Noi non siamo interessati all’operazione di trasduzione. Quindi ci limiteremo agli aspetti strettamente legati ai fenomeni elettrici, il che vuol dire che assumeremo l’esistenza di un segnale elettrico (con un certo contenuto informativo) e ci concentreremo sulle operazioni necessarie per processare questo segnale mediante l’uso di sistemi e dispositivi elettronici. Spettro in frequenza dei segnali Una caratterizzazione dei segnali molto utile e’ quella in termini di spettro di frequenza. Questa descrizione e’ ottenuta utilizzando le serie di Fourier, per i segnali periodici, e la trasformata di Fourier per situazioni piu’ generali. Ricordiamo anzitutto che una funzione periodica del tempo,f (t), puó essere sviluppata in serie di Fourier, cioe’ X 1 f (t) = a0 + {an cos nω0 t + bn sin nω0 t} 2 n (1.3) dove Z 1 T f (t) cos nω0 tdt T 0 Z 1 T f (t) sin nω0 tdt T 0 an = bn = e T = (1.4) (1.5) 2π ω0 (1.6) é il periodo della funzione. Se prendiamo ad esempio un’onda quadra di periodo T e ampiezza V (Fig.1.1(a)), essa v 4V π T +V t ωo 3ωo 5ωo 7ωo 9ωo ω -V (a) (b) Figura 1.1:(a) Onda quadra;(b) Spettro in frequenza dell’onda quadra puo’ essere espressa come v(t) = 1 1 4V (sinω0 t + sin 3ω0 t + sin 5ω0 t + . . .) π 3 5 (1.7) 11 1.1. INTRODUZIONE Poiche’ le ampiezze decrescono progressivamente la serie puo’ essere troncata e fornire un’approssimazione dell’onda quadra. Nella Fig. Fig.1.1(b) e’ riportato graficamente questo sviluppo, che rappresenta appunto lo spettro in frequenza dell’onda quadra. Le funzioni non periodiche non sono sviluppabili in serie di Fourier, dobbiamo quindi utilizzare la trasformazione di Fourier. Z ∞ 1 g(ω)ejωt dω (1.8) f (t) = 2π −∞ dove g(ω) = Z ∞ f (t)e−jωt dt (1.9) −∞ La funzione g(ω) e’ detta la trasformata di Fourier della funzione f (t) e rappresenta lo spettro in frequenza della funzione f (t), che e’ quindi continuo e non discreto come quello delle funzioni periodiche 1 . In conclusione un segnale puo’ essere rappresentato o come funzione del tempo, o in termini del suo spettro di frequenza. Le due rappresentazioni, nel dominio del tempo, o nel dominio della frequenza, sono assolutamente equivalenti. La rappresentazione in frequenza, come vedremo in seguito ci sara’ utile per analizzare circuiti e dispositivi il cui comportamento sia dipendente dalla frequenza. Le precedenti considerazioni ci fanno capire che i segnali di tipo sinusoidale sono fondamentali in elettronica, proprio perche’ ad essi si puo’ ricondurre in sostanza qualunque segnale. Sono pero’ importanti anche i segnali di tipo impulsivo, come ad esempio quello rappresentato in Fig. 1.2, che prende il nome di impulso rettangolare. Un impulso di questo V T Va t t1 Figura 1.2: Un segnale impulsivo di ampiezza Va e durata T , che arriva all’istante t1 . genere ha dei contenuti informativi: ampiezza, durata e tempo di arrivo, che posso essere legati a grandezze fisiche di nostro interesse. Naturalmente l’impulso rettangolare e’ una pura astrazione, non esistono in natura sorgenti che emettano segnali di questo tipo, cioe’ perfettamente squadrati. Gli impulsi reali come vedremo in seguito, hanno forme assai meno definite. Tuttavia questo tipo di segnali e’ molto importante e ci capitera’ di farne uso. Da un punto di vista matematico l’impulso rettangolare puo’ essere ben descritto utilizzando la funzione di Heaviside, u(t), nota anche come funzione a gradino. La definizione di u(t) e’: 1 Non tutte le funzioni sono trasformabili secondo Fourier, ma questo non e’ rilevante per le nostre considerazioni 12 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA u(t) = 0 se t < 0 u(t) = 1 se t > 0 ed e’ rappresentata nella Fig. 1.3. La funzione u(t) realizza un gradino all’istante t = 0. Si puo’ ottenere un gradino ad un V 1 t Figura 1.3: La funzione u(t). istante qualunque, ad esempio t = t1 , scrivendo semplicemente u(t−t1 ). Quindi utilizzando la funzione di Heaviside possiamo scrivere un impulso rettangolare di altezza Va , durata T , e tempo di arrivo t1 come r(t) = Va [u(t − t1 ) − u(t − (t1 + T ))] (1.10) cioe’ come sovrapposizione di un gradino positivo e un gradino negativo temporalmente sfasati di un intervallo T . Il comportamento dei circuiti con segnali di tipo impulsivo non e’ indipendente da quello con segnali sinusoidali; vi e’ una complementarita’ nelle due situazioni come comprenderemo meglio in seguito. 1.2 Riepilogo sulle reti lineari E’ utile fare un riepilogo di nozioni elementari sui circuiti elettrici, apprese nei corsi precedenti, che costituiranno il punto di partenza di questo corso. Una rete lineare é un circuito che da luogo a equazioni o sistemi di equazioni lineari. Prendiamo ad esempio il circuito in Fig.1.4(a): il circuito e’ composto da un generatore di tensione costante, V , e da alcuni resistori. Risolvere il circuito significa trovare le correnti che circolano in ogni elemento, supposti noti tutti i valori dei componenti, cioe’ V , R1 , R2 e R3 . E’ un problema molto semplice che consiste nel risolvere un sistema di equazioni algebriche lineari. In Fig. 1.4(b) abbiamo invece un esempio di circuito molto piu’ complicato, in cui abbiamo un generatore di tensione variabile nel tempo, v(t), resistori, induttori e capacitori. Risolvere il circuito significa ora, in linea generale, risolvere un sistema di equazioni differenziali lineari: le incognite non sono dei numeri, come nel caso precedente, ma delle funzioni del tempo (le correnti che circolano nei vari elementi). E’ chiaramente un problema molto complicato e dovremo imparare le tecniche piu’ idonee per affrontarlo. Ma prima conviene riepilogare le nostre nozioni sugli "elementi" che costituiscono un circuito. I piú semplici sono quelli "bipolari", nei quali esiste una relazione funzionale tra la corrente i(t) che circola nell’ elemento e la differenza di potenziale v(t) tra i suoi estremi. 13 1.2. RIEPILOGO SULLE RETI LINEARI R1 L1 R2 _ C1 + + V L2 R3 R4 v(t) _ R1 (a) R2 R3 (b) Figura 1.4:(a) Un semplice circuito elettrico;(b) Un circuito più complesso Si ha quindi: v(t) = f [i(t)] (1.11) i(t) = g[v(t)] (1.12) Dove, evidentemente g = f −1 Le suddette relazioni funzionali tra tensione e corrente non sono necessariamente di tipo algebrico, ma possono essere più in generale di tipo analitico, cioe’ espresse attraverso operazioni di derivazione o integrazione. Dalla forma della funzione f , gli elementi si possono distinguere tra lineari e non lineari, dove la linearità va intesa in senso esteso, cioe’ anche analitica. Un’ altra importante distinzione va operata tra gli elementi attivi e passivi, cioé tra quelli che rispettivamente contengono e non contengono sorgenti interne di energia. Gli elementi passivi che conosciamo sono: • Resistore • Induttore • Condensatore (o capacitore) Possiamo in modo del tutto generale scrivere: (1.13) v(t) = {z}i(t) (1.14) i(t) = {y}v(t) dove l’operatore {z} si chiama impedenza, mentre l’operatore inverso {y} si chiama ammettenza. Si ha, per i tre elementi suddetti: Resistore Induttore Condensatore {z} ≡ R d {z} ≡ L dt 1 R dt {z} ≡ C {y} ≡ G 1 R dt {y} ≡ L {y} ≡ C d dt 14 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA Come si vede questi tre elementi passivi sono di tipo lineare. Vedremo in seguito esempi di elementi non lineari. Se diversi elementi sono connessi in serie l’impedenza complessiva del sistema e’ data dalla somma delle impedenze dei singoli elementi: X {z} = {zi } i Se invece sono connessi in parallelo l’ammettenza complessiva e’ data dalla somma delle ammettenze dei singoli elementi: X {y} = {yi } i Gli elementi attivi sono invece: • Generatore di tensione ideale • Generatore di corrente ideale Nella Fisica Generale e’ stato introdotto il concetto di generatore di forza elettromotrice: un dispositivo in grado di mantenere una differenza di potenziale tra i suoi "morsetti" e di erogare una corrente elettrica. In Elettronica e’ conveniente schematizzare un generatore in due diversi modi, cioe’ attraverso la definizione di due possibili modelli ideali di esso. Il generatore di tensione ideale e’ un dispositivo in grado di mantenere una differenza di potenziale tra i suoi morsetti, indipendentemente dal carico ad esso connesso, cioe’ indipendentemente dalla corrente erogata. Invece il generatore di corrente ideale e’ un dispositivo in grado di erogare una ben definita corrente, indipendentemente dal carico ad esso connesso. I generatori reali hanno ovviamente un comportamento diverso da entrambi questi modelli, come vedremo tra poco. E’ bene infine ricordare che se in un circuito ci sono _ + Resistore Generatore di tensione Capacitore Generatore di corrente Induttore Figura 1.5: Simboli degli elementi bipolari piú induttori si ha tra essi una mutua induzione: salvo casi particolari, noi trascureremo questo effetto. Nella Fig. 1.5 sono riassunti i simboli circuitali degli elementi bipolari di cui abbiamo parlato. Elementi di una rete Una rete puó essere pensata come composta da tanti elementi dipolari opportunamente connessi. Gli elementi topologici di una rete sono i nodi, i rami e le maglie (Fig. 1.6). Chiamiamo nodo ogni punto della rete in cui confluiscono più di due elementi. I rami sono costituiti dagli elementi che uniscono tra loro due nodi. Chiamiamo invece maglia qualunque percorso chiuso possiamo effettuare partendo da un nodo per tornare al nodo 1.2. RIEPILOGO SULLE RETI LINEARI 15 4 1 2 3 Figura 1.6: Una generica rete con 4 nodi. La linea tratteggiata indica una possibile scelta dei rami scheletro (3). medesimo. Data una rete con n nodi, ci sará un certo numero m di maglie, non tutte indipendenti tra loro. I rami possono essere distinti in: • rami scheletro, essenziali per connettere i nodi; • rami anello, non essenziali per connettere i nodi, ma necessari per formare le maglie. Vi sono ovviamente vari modi di scegliere i rami scheletro, ma il loro numero non cambia, essendo dato da: rs = n − 1 dove n e’ il numero di nodi. Prendendo un nodo come riferimento di tensione, rs rappresenta il numero di coppie di nodi indipendenti. Il numero di maglie, m,coincide con il numero di rami anello, ra : m = ra = r − rs = r − n + 1 dove r e’ il numero totale di rami. Analisi delle reti Fare l’analisi di una rete consiste nel calcolare le risposte di una rete note le eccitazioni. Ad esempio, nel circuito in Fig. 1.4(a) abbiamo tre incognite, i1 , i2 , i3 , ovvero le correnti che circolano nei 3 rami del circuito, e quindi bisogna scrivere tre equazioni, che leghino le incognite al valore degli elementi del circuito. Per fare questo possiamo utilizzare i cosidetti Principi di Kirchoff: • Principio di Kirchoff delle maglie La somma delle cadute di potenziale lungo un percorso chiuso e’ uguale a zero, ovvero, se nel percorso scelto sono presenti generatori di tensione, essa e’ uguale alla d.d.p. erogata dal (o dai generatori). Questo principio deriva dalla conservazione dell’energia. • Principio di Kirchoff dei nodi La somma (algebrica) delle correnti che confluiscono in un nodo e’ sempre pari a zero. Questo principio deriva dalla conservazione della carica elettrica; quindi le correnti che "entrano" in un nodo devono essere bilanciate dalle correnti che "escono" dal nodo stesso. 16 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA I principi di Kirchoff danno luogo ad un numero di equazioni sempre superiore al numero di incognite del problema, cioe’ ad un sistema di equazioni non linearmente indipendenti. Dobbiamo quindi provvedere a ridurre il sistema ad un numero di relazioni indipendenti pari al numero di incognite. Anziche’ fare questa riduzione in modo empirico, esistono due metodi classici per avere immediatamente il numero giusto e minimo indispensabile di relazioni. Essi vanno sotto i nomi di metodo delle correnti di maglia e metodo delle tensioni ai nodi. R1 + R2 ib ia V _ R1 R3 1 R2 + R4 R3 V _ R4 2 (a) (b) Figura 1.7: Risoluzione del circuito di Fig. 1.4(a): (a) Con il metodo delle correnti di maglia; (b) Con il metodo delle tensioni ai nodi Esempio Proviamo a risolvere il circuito in Fig. 1.4(a) con il metodo delle correnti di maglia. In questo circuito, con 2 maglie, le incognite sono le correnti che circolano nei vari elementi, cioe’ i1 (nel resistore R1 ), i2 (nella serie R2 - R4 ) e i3 nel resistore R3 . Introduciamo 2 variabili ausiliarie, le correnti di maglia, ia e ib , con verso arbitrario (FIg. 1.7(a)). Abbiamo allora i = ia 1 i2 = ib i =i −i 3 a b In altre parole, se un elemento appartiene ad una sola maglia, la corrente che vi circola coincide con la corrente di maglia. Se invece un elemento e’ comune a due maglie, la corrente che vi circola e’ data dalla somma (o differenza) delle due correnti di maglia pertinenti. Possiamo ora scrivere le equazioni delle 2 maglie: V = ia R1 + (ia − i )R3 b 0 = (i − i )R + i (R + R ) a 3 2 4 b b Una volta risolto il sistema, troviamo i valori di ia e ib , da cui si ricavano facilmente le correnti che effettivamente circolano nei vari resistori. Possiamo risolvere lo stesso circuito con il metodo delle tensioni ai nodi (Fig. 1.7(b)). Abbiamo 2 nodi; prendendo il nodo 2 come nodo di riferimento dobbiamo quindi scrivere 17 1.2. RIEPILOGO SULLE RETI LINEARI una sola equazione, utilizzando come incognita la tensione del nodo 1, V1 , e scegliando arbitrariamente i versi delle correnti: V − V1 V1 V1 = + R1 R3 R2 + R4 Risolvendo questa equazione possiamo ricavare il valore di V1 e, quindi, delle correnti che circolano nei vari rami. Come si vede il metodo delle tensioni ai nodi e’ più conveniente, poiche’ da luogo ad un minor numero di equazioni. Cio’ e’ generalmente vero: il numero di coppie di nodi indipendenti e’ in genere minore (o al più uguale) del numero di maglie indipendenti. Quindi il metodo dei nodi e’ spesso più conveniente di quello delle maglie. Ulteriori proprietà delle reti Zeq A + (a) Rete veq _ B A Rete (b) ieq Zeq B Zeq + (c) ieq Zeq veq _ Figura 1.8: (a) Teorema di Thevenin; (b) Teorema di Norton; (c) Equivalenza tra le due rappresentazioni. Ricordiamo alcune importanti proprietà di cui godono le reti lineari; esse ci saranno utili nel seguito. • Teorema di sovrapposizione La risposta di un circuito lineare si ottiene considerando separatamente le singole sorgenti e sommando le relative risposte. Ció segue direttamente dalla linearitá delle equazioni che governano il circuito (in ultima analisi, dalle equazioni di Maxwell). 18 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA • Teorema di Thevenin Ogni rete, vista da due terminali, puó essere sostituita da un generatore di tensione ideale in serie ad una opportuna impedenza. Il valore del generatore equivalente, veq é ovviamente la tensione che si misura fra A e B (quando non sono connessi tra loro esternamente). Zeq é l’impedenza che la rete presenta fra i terminali A e B (Fig. 1.8(a)). • Teorema di Norton: Ogni rete, vista da due terminali, puó essere sostituita da un generatore di corrente ideale, con una opportuna impedenza in parallelo. Il valore del generatore equivalente, ieq e’ uguale alla corrente che circola tra i due terminali quando essi sono esternamente cortocircuitati, con in parallelo l’impedenza che il circuito presenta fra i terminali stessi (Fig. 1.8(b)). Poiché per ogni rete possiamo applicare il teorema di Thevenin e quello di Norton, segue che veq ieq = Zeq E’ quindi sempre possibile trasformare un circuito sostituendo un generatore di tensione ad uno di corrente, e viceversa (vedi Fig. 1.8(c)). Ovviamente se la rete e’ composta da sole resistenze l’impedenza equivalente e’ puramente resistiva. Questi due teoremi ci fanno comprendere quindi che un generatore di forza elettromotrice reale, ovvero la sorgente di un segnale, qualunque sia il suo principio fisico di funzionamento, e’ sempre schematizzabile come un generatore ideale (di tensione o corrente) con una opportuna impedenza (in serie o in parallelo). In genere (ma non sempre) questa impedenza e’ puramente resistiva e prende il nome di resistenza d’uscita del generatore. Le due schematizzazioni sono matematicamente equivalenti e come tali possono essere usate indifferentemente. Tuttavia e’ preferibile usare la schematizzazione di Thevenin quando l’impedenza e’ piccola, e quella di Norton quando l’impedenza e’ grande. Quadrupoli v(t) i Rete v(t) o Figura 1.9: Rete quadrupolare Molto spesso studieremo sistemi destinati a processare (ovvero elaborare) un segnale. In genere questi dispositivi sono di tipo quadrupolare: in questo caso e’ importante conoscere la risposta del circuito, intesa come tensione di uscita, vo (t), in funzione del segnale, ovvero della sollecitazione, che applichiamo all’ ingresso, vi (t) (Fig. 1.9). E’ chiaro quindi che i teoremi di Thevenin e Norton sono particolarmente utili in questo caso, perche’ possono aiutarci a semplificare il problema, dal punto di vista dell’uscita. In modo speculare, è possibile semplificare il problema dal punto di vista dell’ingresso, 19 1.3. AMPLIFICATORI introducendo il concetto di impedenza d’ingresso del quadrupolo,Zi , definita come il rapporto tra la tensione applicata all’ingresso e la corrente che entra nel quadrupolo stesso(Fig. 1.10). L’utilita’ del concetto di impedenza d’ingresso puo’ essere meglio compresa attraii Zi v(t) i Figura 1.10: Impedenza d’ingresso di una rete verso un esempio. Nella Fig. 1.11 abbiamo una rete con impedenza d’ingresso Ri cui viene ii Rs vs(t) + v(t) i _ Ri Figura 1.11: Un sorgente di segnale vs (t) e’ collegata all’ingresso di una rete collegata una sorgente di segnale vs (t), che a sua volta, ha una resistenza d’uscita Rs (l’esempio e’ puramente resisistivo pe semplicita’, ma e’ valido per impedenze piu’ generali). La frazione di segnale che arriva effettivamente all’ingresso della rete e’ vi = Ri vs Ri + Rs (1.15) Se Ri ≫ Rs , si ha vi ≃ Vs , ovvero tutto o quasi tutto il segnale viene trasmesso alla rete. Viceversa, se Ri ≪ Rs , sola una piccola frazione del segnale emesso dalla sorgente raggiunge il quadrupolo. Per questo motivo, quando si progetta un dispositivo destinato a elaborare un segnale, e’ necessario valutare anche questo aspetto; in linea generale e’ bene che il nostro sistema abbia un’alta impedenza d’ingresso, se vogliamo ricevere la massima frazione del segnale. Una situazione analoga si ha dal lato dell’uscita della rete: il segnale di uscita, vo (t) dovra’ essere inviato, presumibilmente, ad un qualche altro dispositivo utilizzatore, e quindi e’ rilevante il rapporto tra l’impedenza d’uscita della rete e l’impedenza d’ingresso di quest’ultimo dispositivo 2 . 1.3 Amplificatori Concettualmente l’amplificazione e’ un processo di elaborazione del segnale molto semplice. L’amplificazione e’ spesso necessaria perche’ la sorgente ci fornisce un segnale debole, cioe’ valori di tensione bassi e con poca potenza, quindi difficili da utilizzare. Percio’ la prima operazione da fare e’ quella di amplificarli, utilizzando un blocco funzionale che si chiama appunto amplificatore. Gli amplificatori costituiranno una grossa parte di questo 2 In queste considerazioni abbiamo esaminato il trasferimento del segnale di tensione. Ci sono situazioni in cui invece e’ necessario o opportuno massimizzare il trasferimento di potenza, che pone condizioni diverse. 20 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA corso. E’ quindi appropriato introdurli subito e discuterne le proprieta’ generali. La piu’ importante caratteristica di un amplificatore e’ la linearita’. Quando amplifivo vi Figura 1.12: La caratteristica di trasferimento di un amplificatore; la pendenza della retta direttamente Av . chiamo un segnale vogliamo che l’informazione in esso contenuta non sia alterata o persa: vogliamo che il nuovo segnale sia un’esatta replica dell’originale, salvo avere una maggiore ampiezza. In sostanza vogliamo che vo (t) = A vi (t) (1.16) dove vi e’ il segnale d’ingresso (il segnale originario), vo il segnale amplificato e A un fattore costante, il guadagno dell’amplificatore. L’amplificatore e’ quindi un quadrupolo, che possiamo schematizzare come in Fig.1.13(a). Ingresso Uscita Ingresso Uscita Figura 1.13: (a) (a) Simbolo circuitale di un amplificatore (b) Un amplificatore con massa comune. (b) In genere ingresso e uscita condividono lo stesso riferimento di tensione e quindi possiamo usare la rappresentazione della Fig.1.13(b). Un amplificatore aumenta la potenza di un segnale3 , ovvero trasferisce al carico (in sostanza l’utilizzatore del segnale) una potenza maggiore di quella che riceve al suo ingresso (Fig. 1.14), quindi ha un guadagno di potenza Ap ≡ potenza sul carico vo io = potenza all’ingresso vi ii (1.17) dove ii e’ la corrente che l’amplificatore assorbe dalla sorgente e io la corrente che fornisce al carico. Si definisce quindi anche una amplificazione di corrrente Ai ≡ io ii (1.18) Si vede quindi che Ap = Ai Av (1.19) I guadagni di un amplificatore tutti adimensionali, rapporti di quantita’ omogenee. Per 3 Si potrebbe pensare di utilizzare un trasformatore per aumentare la tensione di un segnale; ma un traformatore non aumenta la potenza di un segnale, anzi, semmai ne dissipa una parte. 21 1.3. AMPLIFICATORI ii io vi vo RL Figura 1.14: Un amplificatore riceve all’ingresso un segnale vi (t) ed e’ connesso in uscita ad una resistenza di carico RL . molte ragioni in elettronica si esprimono spesso i guadagni in scala logaritmica, utilizzando il decibel (dB) come unita’ di misura4 . Guadagno di tensione = 20 log10 |Av | (dB) Guadagno di corrente = 20 log10 |Ai | (dB) (1.20) (1.21) Poiche’ la potenza e’ legata al quadrato della tensione (o della corrente) il guadagno di potenza e’ dato da Guadagno di potenza = 10 log10 Ap (dB) (1.22) Per aumentare la potenza del segnale l’amplificatore deve avere una sorgente interna di Alimentazione ii vi io vo RL Figura 1.15: Un amplificatore riceve all’ingresso un segnale vi (t) ed e’ connesso in uscita ad una resistenza di carico RL . energia, cioe’ l’alimentazione. L’alimentazione e’ data da un generatore (o piu’ generatori, a volte) di tensione costante: l’amplificatore assorbe energia dall’alimentazione e la immette nel segnale di uscita. Si puo’ quindi definire un bilancio energetico Pi + Pdc = PL + Pdiss (1.23) dove Pi e’ la potenza fornita dal segnale in ingresso, Pdc e’ la potenza assorbita dall’alimentazione, PL la potenza fornita al carico e, infine, Pdiss la non evitabile potenza dissipata all’interno dell’amplificatore stesso. Se si trascura la potenza Pi , in genere piccola, e’ utile definite l’efficienza energetica dell’amplificatore come η≡ PL Pdc (1.24) Questo parametro e’ rilevante per gli amplificatori di potenza, cioe’ dispositivi destinati a fornire molta potenza (come ad esempio lo stadio finale di un apparecchio stereo). 22 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA ii Ro io + Ri vi (a) _ ii Rs Ro vs _ vo io + + (b) A vvi vi Ri _ A vvi vo RL Figura 1.16: (a) Modello circuitale per l’amplificatore di tensione; (b) L’amplificatore con la sorgente di segnale e il carico. Modelli circuitali degli amplificatori Come vedremo nel seguito gli amplificatori possono essere dispositivi piu’ o meno complicati. Tuttavia da un punto di vista globale essi possono essere sempre ricondotti ad un modello semplice che ne caratterizzi il comportamento. I valori dei parametri di questo modello possono a volte essere trovati analiticamente, a volte devono essere misurati direttamente. La Fig. 1.16(a) mostra il modello circuitale dell’amplificatore di tensione: un generatore controllato di tensione, con guadagno Av , una resistenza d’ingresso Ri e una resistenza d’uscita Ro . Nel momento in cui esso viene utilizzato e’ connesso ad una sorgente di segnale vs (con resistenza d’uscita Rs ) e fornisce il segnale ad un carico resistivo RL . Le prestazioni di questo sistema sono espresse dal rapporto tra il segnale ricevuto dal carico e quello fornito dalla sorgente A′v ≡ vo RL Ri = Av vs Ri + Rs RL + Ro (1.25) In sostanza abbiamo un partitore all’ingresso, costituito da Ri ed Rs , e un partitore all’uscita, costituito da RL e Ro .Quindi, onde non perdere una significativa frazione del segnale d’ingresso, l’amplificatore deve essere progettato in modo da avere Ri ≫ Rs (1.26) Inoltre, per non perdere segnale all’uscita dell’amplificatore, e’ opportuno avere Ro << RL 4 (1.27) L’uso dei valori assoluti e’ necessario perche’ a volte i guadagni di tensione o corrente sono negativi. Questo indica semplicemente che il segnale d’uscita e’ sfasato di 180◦ rispetto al segnale d’ingresso 23 1.3. AMPLIFICATORI Figura 1.17:I quattro modelli circuitali di un amplificatore Si comprende quindi che l’amplificatore di tensione ideale dovrebbe tendere ad avere Ri = ∞ e Ro = 0. Nella progettazione di sistemi elettronici vi sono a volte esigenze diverse. Per esempio, alcune sorgenti di segnali o, se vogliamo, trasduttori, hanno intrinsecamente un’alta resistenza d’uscita e sono quindi piu’ appropriatamente da schematizzare come sorgenti di corrente. In altri casi, vi possono essere situazioni in cui si e’ piu’ interessati alla corrente d’uscita, anziche’ alla tensione d’uscita. Sebbene il piu’ utilizzato, l’amplificatore di tensione non e’ l’unico modello di amplificatore. La Fig. 1.17 mostra i 4 possibili modelli di amplificatore. In linea di principio essi sono equivalenti completamente, in pratica vi sono spesso motivi che ne rendono preferibile uno in particolare. Si verifica facilmente che Ro Ri = G m Ro Rm = Ri Av = Ai (1.28) Av (1.29) Av (1.30) 24 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA Dobbiamo infine sottolineare che questi modelli sono unidirezionali: il segnale fluisce solo dall’ingresso verso l’uscita. A volte gli amplificatori reali hanno invece una retro-azione: la maglia d’ingresso e la maglia d’uscita non sono cioe’ disgiunte come apparso finora. Studieremo queste situazioni al momento opportuno. Limitazioni degli amplificatori reali Non possiamo sperare di costruire un amplificatore in grado di soddisfare totalmente la condizione posta dall’equazione 1.16: un amplificatore reale ha inevitabilmente delle limitazioni, che qui esamineremo in via generale, che portano ad una distorsione del segnale d’uscita, che quindi non riproduce fedelmente la forma del segnale d’ingresso. Anzitutto vi e’ una limitazione legata alle alimentazioni. Prendiamo ad esempio il cirvo V+ V+ io ii vi vo V- (a) vi RL V- (b) Figura 1.18: (a) Un amplificatore con 2 alimentazioni, V+ positiva e V− negativa; (b La caratteristica di trasferimento cuito in Fig.1.18(a): e’ un tipico amplificatore con 2 alimentazioni di segno opposto.V+ e’ un generatore di tensione positiva, mentre V− e’ un generatore di tensione negativa. Il segnale d’uscita e’ limitato, in ampiezza, tra queste 2 tensioni e non potra’ mai superarle5 , quindi la caratteristica di trasferimento diviene quella mostrata in Fig. 1.18(b) e il segnale d’uscita potrebbe essere distorto. Affinche’ non vi sia distorsione occorre che V− V+ ≤ vi ≤ Av Av (1.31) ovvero segnale d’ingresso e’ limitato in un certo intervallo. Spesso ci si riferisce a questo aspetto come alla dinamica dell’amplificatore. Un’altra limitazione e’ legata alla risposta in frequenza dell’amplificatore. Come abbiamo visto nella sezione 1.1 un segnale ha un certo spettro in frequenza (continuo o discreto): affinche’ il segnale d’uscita non sia distorto esso deve avere lo stesso spettro di frequenza del segnale d’ingresso, cioe’ l’amplificatore deve avere una amplificazione costante e non dipendente dalla frequenza (come e’ implicito nella relazione 1.16). Purtroppo, gli amplificatori reali non godono di questa proprieta’ e Av e’ funzione della frequenza. Nella Fig. 5 In realta’ l’intervallo e’ leggermente piu’ ristretto, ma trascuriamo questo dettaglio. 1.4. TRASFORMAZIONE DI LAPLACE 25 20 log |Av| Larghezza di banda ν1 ν2 ν Figura 1.19:La dipendenza di Av dalla frequenza per un tipico amplificatore 1.19 e’ mostrato un tipico esempio: l’amplificazione decresce per frequenze basse e per frequenze alte, e resta costante solo nell’intervallo compreso tra ν1 e ν2 . Quindi un segnale potrebbe uscire distorto da questo amplificatore, perche’ lo spettro in frequenza e’ stato alterato. Su questo aspetto avremo modo di approfondire piu’ avanti6 . Infine, gli amplificatori non sono mai completamente immuni dai disturbi. Al segnale d’ingresso si aggiungono inevitabilmente segnali spurii (rumore) che possono essere amplificati e aggiunti quindi al segnale d’uscita, con inevitabile perdita di informazione. Le fonti di rumore sono molteplici, a partire dai componenti stessi dell’amplificatore, le alimentazioni, i segnali elettromagnetici presenti nell’ambiente. 1.4 Trasformazione di Laplace Come abbiamo ricordato nella sezione 1.2 l’analisi di circuiti con reattanze comporta la risoluzione di equazioni, o sistemi di equazioni, integro-differenziali. La complicazione puo’ quindi essere proibitiva. In un caso molto particolare, quello cioe’ di circuiti con generatori di tensione sinusoidali, il problema puo’ essere semplificato grazie al cosiddetto metodo simbolico, e quindi all’introduzione del concetto di impedenze complesse. Noi vogliamo invece affrontare il problema nel caso piu’ generale, avendo cioe’ in mente circuiti in cui i segnali hanno andamenti temporali qualunque, e non solo sinusoidali. Per ottenere cio’ dobbiamo introdurre la trasformazione di Laplace, che ci fornira’ gli strumenti per trovare in modo piu’ semplice la soluzione. 1.4.1 Definizione La trasformata di Laplace di una funzione f (t) e’ una funzione reale della variabile complessa s definita come Z ∞ e−st f (t)dt (1.32) F (s) ≡ 0 6 Per valutare la risposta in frequenza degli amplificatori e’ necessario costruire dei modelli in cui si tiene conto delle reattanze presenti nel circuito (induzioni e capacita’). I modelli di amplificatore considerati finora sono quindi inadeguati da questo punto di vista 26 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA jω σo σ Figura 1.20: Il piano complesso: l’area tratteggiata costituisce il dominio di trasformabilita’ della funzione Chiameremo σ la parte reale di s e jω la sua parte immaginaria Affinche’ la trasformata esista e’ necessario che l’integrale sia convergente e non sempre cio’ avviene in tutto il piano complesso. In generale quindi una funzione e’ detta trasformabile purche’ l’integrale sia convergente in un semipiano definito dalla condizione (1.33) Re[s] > σo dove σo e’ la cosidetta ascissa di convergenza (Fig. 1.20). La anti-trasformazione, che ci riporta alla funzione di partenza, e’ data da: f (t) = 1 2πj Z σo +j∞ F (s)est ds (1.34) σo −j∞ Chiaramente non tutte le funzioni sono trasformabili secondo Laplace; non lo sono ad esempio funzioni del tipo ebt con b > σo . Se una funzione trasformabile possiede anche la trasformata di Fourier, allora quest’ultima coincide con la trasformata di Laplace calcolata per s = jω. Questo ci aiuta anche a comprendere il significato della variabile complessa s; la sua parte immaginaria e’ una frequenza angolare (o pulsazione), mentre la parte reale non ha significato fisico. La trasformazione di Laplace gode di alcune interessanti proprietà: 27 1.4. TRASFORMAZIONE DI LAPLACE Pn Pn a) Linearita’ L[ b) Traslazione temporale L[f (t − to )] = F (s)e−to s c) Traslazione in frequenza L[f (t)e−at ] = F (s + a) df L[ ] = sF (s) − limt→0+ f (t) dt Rt L[ 0 f (t′ )dt′ ] = 1s F (s) d) Derivazione e) Integrazione f) Valore finale k ak fk (t)] = k ak Fk (s) lim sF (s) = lim f (t) s→0 g) Valore iniziale t→∞ lim sF (s) = lim f (t) s→∞ t→0 Le proprieta’ a), d), e) sono quelle che permettono di trasformare equazioni integrodifferenziali in equazioni algebriche; le altre sono utili per semplificare il calcolo di trasformate e anti-trasformate. Esempi di trasformate di Laplace sono riportati nella Tab. 1.1. La trasformata di Laplace non dipende dai valori che la funzione f(t) assume per t < 0; questo non crea inconvenienti nello studio dei circuiti, data l’arbitrarieta’ nella scelta dell’origine dei tempi. In linea di principio la soluzione di problemi con equazioni integro-differenziali comporta quindi i seguenti passi: a) trasformazione delle equazioni in equazioni algebriche nel dominio complesso s; b) soluzione delle equazioni algebriche; c) anti-trasformazione per tornare nel dominio reale t. L’ultimo passo implica il calcolo di integrali nel piano complesso, il che puo’ essere molto complicato. In realta’ vedremo che il problema e’ spesso molto piu’ semplice, grazie alla conoscenza delle coppie trasformata, anti-trasformata, delle funzioni piu’ comuni, che sono quelle di interesse concreto in elettronica. Applicazione all’analisi di circuiti Come gia’ detto, con la tecnica delle trasformazioni, le equazioni differenziali delle reti si trasformano in equazioni algebriche. Possiamo verificarlo con un esempio, il circuito RLC L C + vi _ R vo Figura 1.21: Circuito RLC in serie serie (vedi Fig 1.21). Si trova facilmente l’equazione della maglia Z d 1 dt + L }i(t) v(t) = {R + C dt (1.35) 28 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA f (t) F (s) k k s k s2 kn! sn+1 1 1 s+a 1 (s + a)2 a s2 + a 2 s s2 + a 2 ω (s + a)2 + ω 2 ) s+a (s + a)2 + ω 2 a s2 − a 2 s s2 − a 2 e−t1 s F (s) kt ktn δ(t) e−at te−at sin at cos at e−at sin ωt e−at cos ωt sinh at cosh at f (t − t1 ) Tabella 1.1: Trasformate di Laplace di alcune funzioni Applicando ad ambo i membri la trasformazione di Laplace si ottiene V (s) = RI(s) + da cui si ricava I(s) = I(s) + sLI(s) sC V (s) R + 1/sC + sL A questo punto, trovando l’antitrasformata di I(s) si ottiene la funzione incognita i(t). Notiamo che abbiamo ottenuto un’equazione formalmente identica a quella che si otteneva con il cosidetto metodo simbolico (dove al posto di s avevamo jω). Infatti quest’ultimo non e’ altro che l’applicazione della tecnica della trasformazione di Laplace nel caso particolare di funzioni sinusoidali; nel prossimo paragrafo giustificheremo rigorosamente questa affermazione. In generale, data una rete quadrupolare (Fig. 1.22), l’applicazione della trasformazione di Laplace porta ad una relazione del tipo: Vu (s) = T (s)Vi (s) ovvero T (s) = Vu (s) Vi (s) (1.36) (1.37) 29 1.4. TRASFORMAZIONE DI LAPLACE V(s) i T(s) V(s) o Figura 1.22: rete quadrupolare La funzione T (s) e’ detta funzione di trasferimento della rete. E’ interessante notare che, per Vi (s) = 1, Vu (s) coincide con T (s). Ovvero, T (s) rappresenta la trasformata della risposta di un circuito per una eccitazione vi (t) = δ(t). La conoscenza della funzione T (s) ci permette di prevedere la risposta del circuito per qualunque eccitazione. In generale essa e’ una funzione complessa, per cui dovremo conoscerne il modulo |T (s)| e la fase φ(s). Ma per procedere dobbiamo ora parlare della anti-trasformazione. 1.4.2 Anti-trasformazione di Laplace L’anti-trasformazione di Laplace nei casi di interesse elettronico puo’ essere eseguita, come abbiamo gia’ detto, in modo relativamente semplice. In particolare ci concentreremo sulle reti quadrupolari. Abbiamo visto che, in generale, la risposta di un circuito é data dalla 1.36: dobbiamo quindi anti-trasformare questa espressione. In generale, nei casi fisici, la T(s) e’ una funzione del tipo T (s) = a 1 s + a 2 s2 + . . . a m sm G(s) = H(s) b1 s + b2 s2 + . . . bn sn (1.38) cioé un rapporto tra polinomi, in cui n ≥ m. Il polinomio H(s) può essere scritto come H(s) = (s − s1 )r1 (s − s2 )r2 . . . (s − sn )rn (1.39) dove ovviamente r1 + r2 + . . . rn = n. Le costanti s1 . . . sn sono sono le radici di H(s) e costituiscono i poli della funzione di trasferimento. Nel caso di n poli semplici H(s) = (s − s1 )(s − s2 ) . . . (s − sn ) (1.40) si può allora dimostrare che la T (s) può essere posta nella forma T (s) = n X j=1 kj s − sj (1.41) Vediamo come si determinano le costanti kj . Moltiplicando ambo i membri per (s − si ) si ha n X kj (1.42) (s − si )T (s) = (s − si ) s − sj j=1 30 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA e, passando al limite per s → si lim (s − si )T (s) = lim (s − si ) s→si s→si n X j=1 kj s − sj (1.43) Per effetto del limite tutti i termini a secondo membro si annullano, tranne il termine per j = i, che vale proprio ki . Quindi le costanti ki sono date da ki = lim (s − si )T (s) s→si (1.44) Una volta che la funzione di trasferimento sia stata posta nella forma 1.41 é facile dimostrare (vedi Tabella 1.1) che la sua anti-trasformata é semplicemente data da f (t) = n X k j e sj t (1.45) j=1 Quindi, se un polo é sull’asse reale, l’esponenziale é reale (crescente o decrescente); se il polo é complesso, anche il suo complesso coniugato é un polo della funzione, e si hanno onde sinusoidali moltiplicate per esponenziali reali (se il polo ha una parte reale diversa da zero). Nel caso di poli multipli il ragionamento é un po’ piú complicato, ma analogo, e si ottiene f (t) = mi n X X i=1 g=1 kig tmi −g esi t (mi − g)! (1.46) l’indice g va da 1 a mi , cioé la molteplicitá del polo i-esimo. I coefficienti kig si calcolano con la 1 dg−1 kig = lim (1.47) [ g−1 (s − si )mi T (s)] s→si (g − 1)! ds La collocazione dei poli nel piano complesso caratterizza completamente l’andamento della anti-trasformata f (t). É chiaro infatti che ad un polo puramente immaginario corrisponde un termine sinusoidale, mentre le parti reali danno luogo ad esponenziali reali. Il polinomio a numeratore ,G(s), influisce solo sull’ampiezza relativa dei contributi dei vari poli. Naturalmente lo studio della T (s) non risolve completamente il problema, perché dobbiamo, in generale, anti-trasformare Vu (s), cioé il prodotto T (s)Vi (s), che puo’ avere una struttura complicata. Possiamo pero’ esaminare esplicitamente due casi: la sollecitazione a gradino, e la sollecitazione sinusoidale. Sollecitazione a gradino La tensione d’ingresso sia la funzione gradino unitario u(t): allora, come abbiamo visto in precedenza, Vi (s) = 1/s e quindi T (s) Vu (s) = (1.48) s Ricordando la 1.38, possiamo scrivere Vu (s) = G(s) sH(s) (1.49) 31 1.4. TRASFORMAZIONE DI LAPLACE questo significa, al massimo, aggiungere un polo per s = 0, e questo corrisponde semplicemente ad un termine costante additivo nell’antitrasformata. Possiamo prendere, a titolo di esempio, di nuovo il circuito RLC in serie (Fig. 1.21): otteniamo quindi, dopo qualche semplice passaggio, la funzione di trasferimento T (s) = sRC s2 LC + sRC + 1 (1.50) RC s2 LC + sRC + 1 (1.51) e, per una sollecitazione a gradino, Vu (s) = I poli della funzione possono essere allora trovati risolvendo l’equazione algebrica s2 LC + sRC + 1 = 0 (1.52) e quindi le costanti ki , mediante la 1.44 o la 1.47. Sollecitazione sinusoidale L’altro caso importante é quello della sollecitazione sinusoidale. Possiamo a questo punto dedurre in modo rigoroso la validità del metodo simbolico, partendo appunto dalle trasformazioni di Laplace. Consideriamo infatti un circuito generico con funzione di trasferimento T (s), soggetto ad una sollecitazione sinusoidale con pulsazione ω0 . La sollecitazione può essere scritta come vi = |vi |ejωo t (1.53) |vi | s − jωo (1.54) la cui trasformata é data da Vi = La risposta del circuito sarà quindi Vu (s) = T (s) |vi | s − jωo Il secondo membro può essere sviluppato, come abbiamo visto, in una somma di termini tipo kj (s − sj ) I poli della Vu (s) saranno dati da tutti i poli della T (s) più il polo per s = jωo . I poli della T (s) devono avere parte reale negativa quindi danno luogo a termini esponenziali tipo e−at , che vanno a zero dopo un tempo sufficientemente lungo e quindi non interessano quando si voglia conoscere la soluzione stazionaria.7 Resta il termine corrispondente al polo s = jω0 e per la soluzione stazionaria si ha quindi Vu (s) = kω s − jω0 (1.55) 7 Questa affermazione andrebbe dimostrata rigorosamente, tuttavia e’ abbastanza intuitivo che debba essere cosi’: esponenziali reali positivi darebbero luogo a divergenze, difficili da giustificare, anche in termini energetici. 32 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA Il coefficiente kω si determina con il metodo descritto in precedenza: si ottiene kω = T (ωo )|vi | e infine Vu (s) = T (ωo ) |vi | s − jω0 (1.56) (1.57) Antitrasformando si ottiene la funzione di risposta vu (t) = T (ωo )|vi |ejωo t = |T (ωo )||vi |ejωo t eφ (1.58) Ritroviamo il risultato noto, cioé che la risposta ha un andamento sinusoidale, con pulsazione ω0 , ampiezza pari al prodotto di |vi | per il modulo di T (ω0 ) e sfasamento dato dalla fase di T (ω0 ), cioe’ φ. Quindi tutta l’informazione necessaria per conoscere la risposta quando la sollecitazione é sinusoidale, con frequenza ω0 , é data dalla funzione di trasferimento T (s), calcolata nel punto s = jω0 . 1.4.3 Conclusione La conoscenza della funzione di trasferimento T (s) per s = jω ci permette di prevedere la risposta del circuito quadrupolare per qualunque segnale sviluppabile in serie di Fourier o comunque trasformabile secondo Fourier. Possiamo quindi direttamente parlare di T (ω), cioe’ della funzione di trasferimento in funzione della frequenza, che esprime il comportamento del circuito in funzione della frequenza: e’ una funzione complessa, per cui dovremo conoscerne il modulo |T (ω)| e la fase φ(ω). Di solito il modulo e’ espresso in scala logaritmica, in decibel; quindi si riporta la quantità 20 log10 |A| in funzione di log10 (ω/ωo ), dove ωo e’ una pulsazione di riferimento arbitraria (spesso e’ una pulsazione "caratteristica" del particolare circuito, ma al limite può anche essere semplicemente la pulsazione unitaria). Il diagramma che ne risulta prende il nome di diagramma di Bode. Invece, per quanto riguarda l’angolo di fase, si riporta φ(ω) (in gradi) in funzione di log10 (ω/ω0 ). Lo studio della risposta per segnali non periodici e non trasformabili secondo Fourier richiede in generale l’uso della tecnica di Laplace in modo esplicito, come ad esempio nel caso di sollecitazione a gradino. E’ infine istruttivo comprendere il significato delle proprieta’ di limite delle traformazioni di Laplace lim sF (s) = lim f (t) (1.59) lim sF (s) = (1.60) s→∞ t→0 s→0 lim f (t) t→∞ gia’ citate. Consideriamo un quadrupolo soggetto ad una sollecitazione a gradino, ovvero vi (t) = u(t) Applicando la trasformazione di Laplace si ha quindi Vi (s) = 1 s 33 1.4. TRASFORMAZIONE DI LAPLACE e la funzione di trasferimento diviene T (s) = sVu (s) Applicando le due suddette proprietà ne deriva lim T (s) = lim sVu (s) = lim vu (t) s→0 t→∞ s→0 e lim T (s) = lim sVu (s) = lim vu (t) s→∞ s→∞ t→0 In sostanza, se s = jω, T (0) = lim vu (t) t→∞ T (∞) = lim vu (t) t→0+ Ciò vuol dire che il valore asintotico della funzione di trasferimento é legato alla risposta asintotica (a t → 0 e a t → ∞) ad una sollecitazione a gradino. Queste proprietà matematiche hanno un significato fisico, che si può immediatamente comprendere, in modo qualitativo e non rigoroso come segue: lo sviluppo in frequenza di una funzione a gradino contiene un grande addensamento di onde ad altissima frequenza attorno a t = 0, mentre per t → ∞ si ha un prevalente contenuto di onde a bassissima frequenza. Quindi la risposta del circuito per t → 0 e’ quella tipica delle alte frequenze, mentre per t → ∞ e’ quella tipica delle bassissime frequenze. Vi e’ quindi una corrispondenza fra alte frequenze e "tempi brevi" ovvero basse frequenze e "tempi lunghi". Nel prossimo Capitolo rivisiteremo alcuni circuiti passivi noti, utilizzando le nozioni fin qui apprese, e questo ci aiutera’ a comprenderne meglio il significato 34 CAPITOLO 1. INTRODUZIONE ALL’ELETTRONICA Capitolo 2 Circuiti passivi 2.1 Introduzione In questo capitolo cominceremo a prendere familiarita’ con i circuiti studiando approfonditamente alcuni esempi di quadrupoli passivi, esaminandone la risposta per sollecitazioni di tipo sinusoidale ed impulsivo. 2.2 Circuito RC passa-alto C + R vi(t) - Figura 2.1: Circuito RC passa-alto Consideriamo il circuito di Fig. 2.1; scrivendo l’equazione della maglia si ha: Z 1 t ′ vi = idt + Ri C 0 avendo fatto l’ipotesi che il condensatore sia inizialmente scarico. membri: dvi 1 di = i+R dt C dt e, ovviamente vu = Ri (2.1) Derivando ambo i (2.2) (2.3) Risposta in regime sinusoidale Supponiamo ora che la sollecitazione sia di tipo sinusoidale; possiamo allora utilizzare il metodo delle trasformate cioe’, ponendo s = jω, il metodo simbolico; le equazioni 2.2 e 2.3 35 36 CAPITOLO 2. CIRCUITI PASSIVI divengono: 1 I(ω) + jωRI(ω) C Vu (ω) = RI(ω) jωVi (ω) = (2.4) (2.5) e, combinando le due equazioni si ottiene Vu (ω) = jωR 1 + JωR C Vi (ω) (2.6) La funzione di trasferimento del circuito e’ quindi data da T (ω) = 1 1 1+ jωτ (2.7) dove abbiamo posto RC = τ . Il fattore τ ha le dimensioni di un tempo, ed e’ comunemente indicato come costante di tempo del circuito. Il modulo e la fase della funzione di trasferimento sono quindi |T (ω)| = 1 (2.8) s 1 1+ 2 2 ω τ φ = arctan 1 ωτ (2.9) Osserviamo che per ω → 0 T (ω) → 0 , mentre per ω → ∞ |T (ω)| → 1; inoltre se 1/(ω 2 τ 2 ) ≫ 1 (cioe’ se ω ≫ 1/τ ) 1 = ωτ |T (ω)| ≈ p 1/ω 2 τ 2 (2.10) cioé |T (ω)| tende a zero linearmente con ω. La risposta complessiva del circuito e’ quindi rappresentata dal diagramma di Bode in Fig. 2.2. Come si vede il circuito attenua i segnali a bassa frequenza, mentre trasmette le alte frequenze, da cui il nome del circuito stesso. La fase invece tende asintoticamente a 0 per ω → ∞ , e a 90o per ω → 0. La frequenza di taglio, fT , e’ definita come la frequenza a cui la risposta del circuito e’ attenuata di 3dB, cioe’ da cui segue che 20 log |T (fT )| = −3 (2.11) 1 |T (fT )| ≃ √ 2 (2.12) e quindi fT ≃ 1 2πτ (2.13) 37 2.2. CIRCUITO RC PASSA-ALTO Figura 2.2: Diagramma di Bode del circuito RC passa-alto E’ spesso conveniente scrivere la funzione di trasferimento come T (f ) = 1 (2.14) fT 1−j f Possiamo allora riassumere il comportamento di questo circuito: per frequenze molto inferiori alla frequenza di taglio la funzione di trasferimento e’ una retta con pendenza di 20 dB/decade, mentre al di sopra di essa e’ una retta orizzontale. Risposta in regime impulsivo Per studiare la risposta del circuito in regime impulsivo possiamo applicare come segnale d’ingresso un gradino unitario, u(t), e risolvere il problema utilizzando la trasformazione di Laplace. Abbiamo Vu (s) = T (s) Vi (s) (2.15) 1 1 (2.16) = 1 s 1+ sτ 1 (2.17) = 1 s+ τ Abbiamo quindi una funzione con un polo in S1 = −1/τ . Il residuo k1 puo’ essere calcolato utilizzando il metodo studiato nel Cap. precedente; abbiamo 1 k1 = lim (s + ) s→s1 τ 1 1 s+ τ =1 (2.18) 38 CAPITOLO 2. CIRCUITI PASSIVI Quindi la soluzione nel dominio del tempo e’ data da t (2.19) vu (t) = 1 e− τ E’ facile poi generalizzare: se vi (t) = vr u(t), si avra’ Figura 2.3: Risposta del circuito passa-alto in regime impulsivo t (2.20) vu (t) = vr e− τ Un segnale d’ingresso rettangolare, di periodo T , puo’ essere opportunamente descritto come combinazione di 2 funzioni a gradino vi (t) = vr [u(t) − u(t − T )] (2.21) La risposta sara’ data da (vedi Fig. 2.3) t vu (t) = vr e− τ per 0 < t < T e t vu (t) = vr [e− τ − e− t−T τ ] per t > T (2.22) (2.23) La risposta per una sollecitazione rettangolare periodica puo’ essere facilmente dedotta a partire da quella relativa al singolo impulso. 2.3 Circuito RC Passa-Basso Consideriamo ora il circuito in Fig. 2.4. Nel caso di sollecitazione sinusoidale, con il metodo delle trasformate si ha: Vi = (R + Vu = I jωC 1 )I jωC (2.24) (2.25) 2.3. 39 CIRCUITO RC PASSA-BASSO R vi(t) + C - Figura 2.4: Circuito RC passa-basso da cui si ricava 1 jωC Vu = Vi 1 R+ jωC La funzione di trasferimento del circuito e’ quindi (2.26) Figura 2.5: Diagramma di Bode del circuito RC passa-basso T (ω) = 1 1 + jωτ (2.27) avendo anche qui posto RC = τ . Il modulo e la fase della funzione di trasferimento sono allora |T (ω)| = √ 1 1 + ω2 τ 2 φ(ω) = − arctan ωτ (2.28) (2.29) I valori asintotici della funzione di trasferimento sono |T (0)| = 1 |T (∞)| = 0 (2.30) 40 CAPITOLO 2. CIRCUITI PASSIVI in questo caso, se ω 2 τ 2 ≫ 1, cioé se ω ≫ 1/τ 1 (2.31) ωτ La risposta complessiva del circuito e’ quindi rappresentata dal diagramma di Bode in Fig. 2.5. Come si vede, il circuito ora attenua le frequenze alte, lasciando imperturbati i segnali di bassa frequenza. Anche in questo caso si definisce la frequenza di taglio, fT , corrispondente ad una attenuazione di 3 dB. Si ha chiaramente |T (ω)| ≈ 1 (2.32) 2πτ Per frequenze molto maggiori della frequenza di taglio la curva di risposta ha una pendenza di −20 dB/decade. fT = Risposta in regime impulsivo Possiamo, anche in questo caso, risolvere il problema utilizzando il formalismo di Laplace. Se inviamo all’ingresso un gradino unitario, u(t), abbiamo Vu (s) = T (s) Vi (s) (2.33) 1 1 (2.34) = 1 + sτ s In questo caso abbiamo due poli, per s1 = −1/τ e s2 = 0; e’ facile, con il metodo usuale calcolare i residui e si trova k1 = −1 e k2 = 1. La soluzione nel dominio del tempo e’ allora data da t vu (t) = 1 − e− τ (2.35) In generale, per un gradino di altezza vr avremo t vu = vr (1 − e− τ ) (2.36) Come si puo’ vedere dalla Fig. 2.6 il segnale e’ ora deformato ai tempi brevi. Un modo molto utilizzato per parametrizzare questa distorsione é attraverso l’introduzione del tempo di salita, ts , definito come il tempo impiegato dalla tensione di uscita per passare dal 10% al 90% del suo valore massimo. Chiamando t1 e t2 gli estremi di questo intervallo (ts = t2 −t1 ) si ha t1 vr (1 − e− τ ) = .1vr (2.37) vr (1 − (2.38) t2 e− τ ) = .9vr Dividendo tra loro le due equazioni si ottiene e− t2 −t1 τ = 1/9 (2.39) da cui ts = τ ln 9 ≈ 2.2τ (2.40) Possiamo poi porre in relazione tempo di salita e frequenza di taglio: dai risultati precedenti si ottiene ts ≈ .35/fT (2.41) 2.4. 41 DERIVATORE E INTEGRATORE Figura 2.6: Risposta impulsiva del passa-basso 2.4 Derivatore e integratore Consideriamo di nuovo il circuito passa-alto. Dall’equazione gia’ vista si ha che cioé ora, se vu ≪ vi vu dvu dvi = + dt RC dt (2.42) d(vi − vu ) vu = dt RC (2.43) dvi (2.44) dt quindi vu é circa proporzionale alla derivata del segnale d’ ingresso1 . Consideriamo invece il circuito passa-basso. Possiamo riscrivere l’equazione della maglia vu ≈ RC vi = Ri + vu (2.45) vi − vu = Ri (2.46) ovvero integrando ambo i membri se vi ≫ vu Z (vi − vu )dt = R Z 1 vi dt ≃ R Z Z idt idt ≃ RCvu (2.47) (2.48) (2.49) La condizione vu ≪ vi equivale a dire che la caduta di tensione ai capi di R deve essere molto piccola rispetto a quella ai capi di C. 42 Figura 2.7: a) Diagramma di Bode del derivatore ideale; b) Diagramma di Bode dell’integratore ideale; c) Risposta impulsiva del derivatore ideale; d) Risposta impulsiva dell’integratore ideale; CAPITOLO 2. CIRCUITI PASSIVI 43 2.5. ATTENUATORE COMPENSATO cioé il circuito si comporta da integratore, se la caduta di tensione su C é piccola rispetto a quella su R. Possiamo vedere la cosa da un punto di vista diverso. Un derivatore ideale dovrebbe essere un circuito in cui la tensione di uscita e’ proporzionale alla derivata della tensione d’ingresso, ovvero dvi (2.50) vu = k dt in termini di trasformate si dovrebbe quindi avere Vu (ω) = kωVi (ω) (2.51) In sostanza, la funzione di trasferimento del circuito dovrebbe essere T (ω) = kω (2.52) Il corrispondente diagramma di Bode e’ mostrato il Fig. 2.7a. E’ chiaro allora che il circuito RC si approssima al derivatore ideale per ωτ ≪ 1, ovvero per frequenze basse, dove l’ impedenza di C é alta. Viceversa l’integratore ideale ha una funzione di trasferimento T (ω) = 1 ωk (2.53) (Fig. 2.7b). Quindi la funzione di trasferimento del RC passa basso approssima bene l’integratore ideale per ωτ ≫ 1, nella regione delle alte frequenze, dove l’impedenza di C é bassa. In termini di forme d’onda, per un segnale d’ingresso a gradino, si avrebbero in uscita le forme d’onda mostrate in Fig 2.7c e 2.7d. Queste proprieta’ dei circuiti RC sono spesso utilizzate nella elaborazione dei segnali impulsivi. Infatti un segnale impulsivo porta con se’ generalmente due informazioni: una legata al suo tempo di arrivo, l’altra legata alla sua ampiezza (ovvero spesso all’integrale nel tempo dell’ampiezza). Poiche’ i segnali reali non sono mai esattamente rettangolari, ma hanno sempre un tempo di salita diverso da zero (seppur piccolo) il tempo di arrivo del segnale puo’ risultare piu’ o meno mal definito e mal misurabile: facendo passare il segnale attraverso un derivatore, il tempo di salita viene diminuito drasticamente e il tempo di arrivo del segnale risulta quindi piu’ facilmente misurabile. Viceversa, se si e’ interessati all’area sotto il segnale, l’integratore e’ il circuito adatto per fornire meglio questa informazione. 2.5 Attenuatore compensato Gli effetti distorcenti dovuti alle capacita’ non si manifestano solo quando si costruiscono dei circuiti RC, ma anche, spesso, per la presenza di capacita’ parassite. L’esempio tipico e’ quello dell’oscillografo: noi preleviamo un segnale tra due nodi di un circuito (tipicamentre tra un nodo e la massa) e lo portiamo all’ingresso dell’oscillografo. Quest’ultimo e’ caratterizzato da una resistenza d’ingresso, con in parallelo una capacita’, quindi l’operazione di trasferimento del segnale avviene attraverso una rete del tipo esemplificato in 44 CAPITOLO 2. CIRCUITI PASSIVI a) b) R1 R1 vi R2 C2 vi C1 R2 C2 Figura 2.8: a) Partitore resistivo con capacita’ parassita; b) Partitore compensato Fig. 2.8a, in cui R1 rappresenta la resistenza d’uscita del nodo sotto esame, mentre R2 e C2 rappresentano l’impedenza d’ingresso dell’oscillografo. Questo circuito si comporta come un passa-basso (per capirlo basta fare l’equivalente di Thevenin del circuito a monte di C2 ), con una costante di tempo τ = C2 R1 R2 R1 + R2 (2.54) Una situazione del genere si incontra di frequente, ovvero tutte le volte che si trasferisce un segnale da un quadrupolo ad un altro: alla partizione resistiva si aggiunge una distorsione dovuta alla (ineliminabile) capacita’ parassita d’ingresso. Se questa distorsione non e’ accettabile, conviene aggiungere una capacita’ C1 in parallelo ad R1 Fig. 2.8b. Possiamo allora scrivere le due equazioni: R1 R2 I+ I 1 + jωR1 C1 1 + jωR2 C2 R2 I 1 + jωR2 C2 Vi = Vu = (2.55) (2.56) da cui ricaviamo la funzione di trasferimento T (ω) = = R2 1 + jωR2 C2 R1 R2 + 1 + jωR1 C1 1 + jωR2 C2 1 R1 1 + jωR2 C2 1+ R2 1 + jωR1 C1 (2.57) (2.58) Si vede subito che, se R1 C1 = R2 C2 il partitore é perfettamente compensato, cioé non distorce il segnale. Infatti, in questo caso si ha: T (ω) = 1 R1 1+ R2 (2.59) 45 2.5. ATTENUATORE COMPENSATO E’ tuttavia interessante notare che, se R2 C2 6= R1 C1 , alle basse frequenze, cioé per ωR2 C2 ≪ 1 e ωR1 C1 ≪ 1 si ha ancora T (ω) ≈ 1 (2.60) R1 1+ R2 Alle alte frequenze, cioé per ωR2 C2 ≫ 1 e ωR1 C1 ≫ 1 si ha invece T (ω) = 1 C1 1+ C2 = C1 C1 + C2 (2.61) cioé l’attenuazione dipende solo dal rapporto delle capacitá. Possiamo comprendere in modo piu’ intuitivo questo risultato, ridisegnando il circuito (Fig. 2.9a). Chiaramente, se C2 R1 = (2.62) R2 C1 tra i punti A e B del circuito non vi e’ differenza di potenziale, quindi il ramo che li connette puo’ essere omesso e si vede che l’uscita e’ data solo dalla partizione R1 , R2 . Nella realta’ a) Rs b) R1 A C1 R1 C1 C2 R2 C2 B R2 c) Rs C1 C2 Figura 2.9: a) Partitore compensato ridisegnato; b) Un caso piu’ realistico; c) Equivalente di Thevenin approssimato non sempre e’ possibile mettere un capacitore C1 in parallelo ad R1 : spesso quest’ultima non e’ altro che la resistenza d’uscita del primo stadio (quindi "non accessibile"). Il caso piu’ realistico e’ quindi descritto in Fig. 2.9b, in cui preleviamo l’uscita attraverso un 46 CAPITOLO 2. CIRCUITI PASSIVI partitore compensato. Ora pero’, se Rs ≪ R1 + R2 , attraverso il teorema di Thevenin, arriviamo al circuito mostrato in Fig. 2.9c. Il tempo di salita é dato da t′s = 2.2 Rs C1 C2 C1 + C2 (2.63) Se non ci fossero C1 ed R1 , si avrebbe un tempo di salita ts = 2.2 Rs C2 (2.64) ts C1 + C 2 = t′s C1 (2.65) ed il rapporto tra i due Quindi, aggiungendo il condensatore C1 possiamo ridurre il tempo di salita. Il prezzo che paghiamo e’ nella maggiore attenuazione del segnale: infatti se vogliamo guadagnare un fattore 10 nel tempo di salita, dobbiamo attenuare dello stesso fattore il segnale. La sonda dell’oscillografo Le considerazioni precedenti sono abbastanza vere anche in assenza di perfetta compensazione, e sono alla base del funzionamento delle sonde che corredano gli oscillografi. Prendiamo ad esempio un’oscillografo con resistenza d’ingresso 1 M Ω e capacita’ d’ingresso 10 pF : supponiamo di connettere, tramite un normale cavetto, l’oscillografo ad un particolare punto, o meglio, nodo di un circuito e che la resistenza d’uscita di questo nodo sia 100 k. Il tempo di salita del segnale diviene ts = 2.2 × 100 k × 10 pF = 2.2 µs (2.66) cioe’ piuttosto alto; utilizzando invece una sonda con attenuazione 10 il tempo di salita migliora dello stesso fattore. 2.6 2.6.1 Filtri in cascata Doppio passa-basso Consideriamo il circuito in Fig. 2.10 Applicando il metodo dei nodi, per il nodo 1 abbiamo V1 V1 Vi − V1 = + R1 Z 1 R2 + Z 2 (2.67) mentre la tensione d’uscita e’ data da V0 = Z2 V1 R2 + Z 2 (2.68) 47 2.6. FILTRI IN CASCATA dove abbiamo indicato con Z1 e Z2 le impedenze dei due condensatori. Dalla prima relazione ricaviamo V1 = Vi = 1 (2.69) 1 1 1 R1 ( + + ) R1 Z 1 R2 + Z 2 1 (2.70) R1 R1 1+ + Z 1 R2 + Z 2 per ottenere la funzione di trasferimento combiniamo la 2.68 con la 2.70. Infatti V0 V1 V1 Vi 1 T (ω) = = (2.71) 1 R2 R1 R1 1+ 1+ + Z2 Z 1 R2 + Z 2 1 1 1 + jωC2 R2 1 + jωC1 R1 + = = 1− ω2 C (2.72) (2.73) R1 R2 + 1/jωC2 1 1 R1 C2 R2 + jωC1 R1 + jωC2 (R2 + R1 ) (2.74) (2.75) Ora, se R2 ≫ R1 : R1 vi(t) 1 R2 + C1 C2 Vo - Figura 2.10: Due passa-basso in cascata T ≈ = 1 1− 1 R1 C2 R2 + jωC1 R1 + jωC2 R2 1 (1 + jωC1 R1 )(1 + jωC2 R2 ) ω2 C (2.76) (2.77) (2.78) T coincide col prodotto delle funzioni di trasferimento dei 2 passa-basso in cascata. Questo esempio ci fa comprendere che, in generale, la funzione di trasferimento di due quadrupoli 48 CAPITOLO 2. CIRCUITI PASSIVI in cascata non e’ uguale al prodotto delle due funzioni di trasferimento, perche’ il comportamento del primo stadio e’ perturbato dalla presenza del secondo. Quand’e’ che questa perturbazione puo’ essere trascurata? Quando l’impedenza d’ingresso del secondo stadio e’ molto maggiore dell’impedenza d’uscita del primo. Infatti se ora consideriamo il doppio passa-basso alla luce di questa affermazione, osserviamo che l’impedenza di ingresso del secondo stadio e’data da: Zi2 = R2 + 1 jωC2 (2.79) mentre l’impedenza d’uscita del primo stadio (applicando il teorema di Thevenin) e’: 1 1 = + jωC1 Zo1 R1 (2.80) Volendo avere la condizione di non perturbazione a tutte le frequenze, si deve imporre proprio che R2 ≫ R1 . Possiamo sfruttare questa proprieta’ per costruire filtri passa-basso con una selettivita’ migliore. Infatti, se scegliamo i componenti in modo che R1 C1 = R2 C2 (mantenendo naturalmente R2 ≫ R1 ), otteniamo un filtro con una discesa asintotica di 40 dB/decade 2.6.2 Doppio passa-alto C1 vi(t) 1 C2 + R1 - R2 Vo Figura 2.11: Due passa-alto in cascata Naturalmente le stesse considerazioni si applicano al doppio passa-alto, cioe’ il circuito in Fig. 2.11. Applicando anche qui il metodo dei nodi si ha: Vi − V1 = Z1 V0 = V1 V1 + R1 R2 + Z 2 R2 V1 R2 + Z 2 (2.81) (2.82) 49 2.6. FILTRI IN CASCATA e, sviluppando il calcolo, analogamente al caso precedente, si arriva a T (ω) = = 1 1 1 1+ jωR2 C2 1 1 jωC1 R2 1+ + jωR1 C1 1 1+ jωC2 R2 1 (2.83) 1 1 1 1 1− 2 + + + ω R1 C1 R2 C2 jωR1 C1 jωC2 R2 jωC1 R2 (2.84) Anche in questo caso, se R2 ≫ R1 , 1 1 ≫ jωC1 R1 jωC1 R2 (2.85) quindi l’ultimo addendo si trascura, e si ha T (ω) ≈ 1 (2.86) 1 1 (1 + )(1 + ) jωR1 C1 jωR2 C2 cioé il prodotto di due passa-alto. 2.6.3 Passa-banda R1 vi(t) 1 C2 + - R2 C1 Vo Figura 2.12: Passa-banda E’ possibile, utilizzando un passa-basso ed un passa-alto, ottenere un circuito passa-banda. Naturalmente dovremo scegliere i componenti in modo che la frequenza di taglio del passabasso, f2 , sia superiore alla frequenza di taglio del passa-alto, f1 . La larghezza di banda sara’ allora data da B = f2 − f1 (2.87) Abbiamo Vi − V1 = R1 V0 = V1 V1 + Z 1 R2 + Z 2 R2 V1 R2 + Z 2 (2.88) (2.89) 50 CAPITOLO 2. CIRCUITI PASSIVI Con il solito metodo si arriva a T (ω) = = 1 1 1 jωC2 R1 1+ 1 + jωR1 C1 + jωR2 C2 1 + JωC2 R2 1 1 1 + jωR2 C2 1 − ω 2 R1 C1 R2 C2 + jωR1 C1 + jωR2 C2 + jωC2 R1 jωR2 C2 1 + jωR2 C2 (2.90) (2.91) Se R2 ≫ R1 l’ultimo addendo si trascura, e si ha T (ω) ≈ 1 1− ω2 R 1 C1 R2 C2 + jωR1 C1 + jωR2 C2 jωR2 C2 (2.92) che é uguale al prodotto di un passa-basso e di un passa-alto, cioé 1 T (ω) ≈ 2.7 1 (1 + ) jωR2 C2 1 (1 + jωR1 C1 ) (2.93) Circuiti RLC I filtri passa-banda sono molto importanti e necessari per numerosissime applicazioni. In alcuni casi e’ sufficiente il circuito che abbiamo visto nel paragrafo precedente, ma in genere, se si ha bisogno di un circuito molto selettivo, si devono introdurre degli induttori, per costruire circuiti RLC. Notiamo infatti che, se abbiamo un induttore ed un capacitore in serie, l’impedenza complessiva e’ 1 jωC 1 = j(ωL − ) ωC ZS = jωL + (2.94) (2.95) Si vede quindi che ZS si annulla se ω=√ 1 LC (2.96) mentre diviene infinita per ω = ∞ o per ω = 0. Se invece prendiamo il parallelo tra un induttore e un capacitore abbiamo un comportamento analogo per l’ammettenza complessiva YP 1 jωL 1 = j(ωC − ) ωL = jωC + (2.97) (2.98) 51 2.7. CIRCUITI RLC In questo caso l’impedenza del parallelo, ZP , diviene infinita quando 1 (2.99) LC Questa frequenza critica del circuito si chiama, in entrambi i casi, frequenza di risonanza del sistema; i circuiti che ora vedremo sfruttano questi andamenti delle impedenze dei sistemi LC per ottenere una andamento della funzione di trasferimento selettivo in frequenza. ω=√ 2.7.1 RLC in serie Rs L C + vi(t) - R Figura 2.13: Circuito RLC in serie Cosideriamo anzitutto il circuito RLC in serie (Fig. 2.13). Nel dominio complesso possiamo scrivere Vi = (Rs + R + sL + 1 )I sC (2.100) (2.101) Vo = RI Combinando le due equazioni si ottiene la funzione di trasferimento T (s) = R 1 Rs + R + sL + sC Moltiplicando numeratore e denominatore per s/L e riordinando si ottiene R s L T (s) = Rs + R 1 s2 + s+ L LC Consideriamo per ora Rs trascurabile rispetto ad R. Introducendo le variabili ω0 = Q = √ 1 LC ω0 L R (2.102) (2.103) (2.104) (2.105) la 2.103 puo’ essere scritta ωo s Q T (s) = ωo s2 + s + ωo2 Q (2.106) 52 CAPITOLO 2. CIRCUITI PASSIVI Risposta del circuito in regime sinusoidale Figura 2.14: Ampiezza e fase della funzione di trasferimento del circuito RLC serie, con Q = 2 e Q = 10 (con R >> Rs ). Nel caso di segnale d’ingresso sinusoidale la 2.106 puo’ essere riscritta in termini di jω e, con qualche manipolazione si ottiene T (ω) = 1 ω0 ω 1 + jQ( − ) ω0 ω (2.107) Il modulo e la fase di T sono quindi date da |T (ω)| = 1 (2.108) s ω0 ω 1 + Q2 ( − ) 2 ω0 ω φ(ω) = arctan[−Q( ω ω0 − )] ω0 ω (2.109) Come si vede dalla Fig. 2.14 il modulo di T ha l’andamento richiesto, ovvero quello di passa-banda. Alla frequenza di risonanza si ha |T (ω0 )| = 1 (2.110) 53 2.7. CIRCUITI RLC mentre la larghezza del picco attorno al valore di risonanza diminuisce al crescere di Q, che, per questo motivo, prende il nome di fattore di merito. Per una data frequenza di risonanza Q dipende da R ed L; si potrebbe pensare di aumentare il fattore di merito riducendo R. Ma, per comprendere meglio, conviene ricalcolare la funzione di trasferimento senza trascurare Rs ; si ottiene facilmente T (ω) = 1 Rs + R ω ω0 + jQ( − ) R ω0 ω (2.111) Il modulo e la fase di T sono ora date da |T (ω)| = 1 s (2.112) Rs + R 2 ω ω0 ( ) + Q2 ( − ) 2 R ω0 ω φ(ω) = arctan[− R ω ω0 Q( − )] Rs + R ω 0 ω (2.113) Alla frequenza di risonanza si ha |T (ω0 )| = R R + Rs (2.114) Quindi la diminuzione di R provoca anche una diminuzione dell’ampiezza sul picco (al limite, per R = 0 il fattore di merito e’ infinito, ma il segnale in uscita avrebbe ampiezza nulla!). Inoltre R e’ sostanziamente, nei casi reali, il carico rappresentato dallo stadio successivo del circuito, quello cioe’ in cui la frequenza filtrata deve essere utilizzata ed e’ quindi determinato anche da altre considerazioni. Un discorso analogo vale per Rs (resistenza d’uscita del generatore, ovvero dello stadio precedente): sarebbe comodo avere Rs molto piccolo, per poter ridurre conseguentemente R ed avere un alto fattore di merito, ma non e’ detto che cio’ sia fattibile in pratica. Si noti poi che l’induttore ha intrinsecamente una resistenza parassita, r, che e’ in genere non trascurabile (puo’ anche essere di decine di Ohm); le nostre formule restano invariate se si interpreta Rs come la somma di r e della resistenza d’uscita del generatore, ma e’ quindi chiaro che Rs non puo’ essere mai annullata del tutto. E’ interessante notare che il fattore di merito é anche definibile in termini di energia come il rapporto tra il valore max dell’energia accumulata e l’energia dissipata in un periodo, moltiplicato per 2π Il modulo della funzione di trasferimento gode di una particolare simmetria (simmetria geometrica): infatti, per ogni valore ω ′ < ω0 esiste un valore ω ′′ > ω0 per cui |T (ω ′ )| = |T (ω ′′ )| (2.115) ω ′ ω ′′ = ω02 (2.116) ed inoltre La dimostrazione e’ molto facile: infatti la condizione 2.115 implica che ( ω ′ ω0 ω ′′ ω0 − ′ ) = −( − ′′ ) ω0 ω ω0 ω (2.117) 54 CAPITOLO 2. CIRCUITI PASSIVI da cui si ottiene subito la 2.116. Possiamo infine introdurre la larghezza di banda, B, definita come la banda compresa tra le due frequenze, ω1 e ω2 , dove il modulo di T diminuisce di 3 dB rispetto al valore massimo, cioe’ ω 2 − ω1 (2.118) B= 2π dove T (ω1 ) T (ω2 ) 1 | |=| |= √ (2.119) T (ω0 ) T (ω0 ) 2 E’ facile intuire che B e’ correlata a Q; dalle definizioni (sfruttando la simmetria geometrica), si trova facilmente che ω0 (2.120) B= 2πQ e viceversa ω0 ω0 = (2.121) 2πB ω2 − ω1 Quindi il parametro Q puo’ essere valutato sperimentalmente misurando ω0 , ω1 ed ω2 . Q= Risposta del circuito in regime impulsivo Studiamo ora la risposta del circuito RLC parallelo in regime impulsivo, cioe’ per una sollecitazione a gradino. In questo caso Vi (s) = 1/s qunidi, riprendendo la 2.106 si ha ωo Q Vo (s) = T (s)Vi (s) = ωo s2 + s + ωo2 Q (2.122) Per trovare l’anti-trasformata di Vo (s) dobbiamo individuare i suoi poli, che sono dati dalle radici dell’equazione di secondo grado al denominatore, ovvero s ωo ωo 1 s1,2 = − ( )2 − 4ωo2 ± (2.123) 2Q 2 2Q ωo p ωo 1 − 4Q2 (2.124) ± = − 2Q 2Q Le radici sono reali e distinte se Q < 0.5, reali e coincidenti se Q = 0.5 e complesse coniugate altrimenti. Si hanno allora 2 casi: Q 6= 0.5: I poli sono distinti. I residui sono dati da k1 = k2 = lim (s − s1 )Vo (s) (2.125) lim (s − s2 )Vo (s) (2.126) s→s1 s→s2 (2.127) 55 2.7. CIRCUITI RLC Questi limiti possono essere calcolati molto facilmente poiche’ possiamo scrivere la Vo (s) nella forma ωo Q (2.128) Vo (s) = (s − s1 )(s − s2 ) e si trova 1 (2.129) k1 = p 1 − 4Q2 1 k2 = − p 1 − 4Q2 (2.130) (2.131) La soluzione e’ quindi data da vo (t) = = ωo ωo √ ω o ωo √ + − (− 1−4Q2 )t 1−4Q2 )t 1 p e 2Q 2Q e 2Q 2Q −p (2.132) 1 − 4Q2 1 − 4Q2 ωo ωo √ ωo √ 2 )t 2 )t t ( − 1−4Q (− 1−4Q 1 p e 2Q e 2Q − e 2Q (2.133) 1 − 4Q2 (− 1 Se Q < 0.5 gli esponenziali sono reali; se Q > 0.5 possiamo porre p p 1 − 4Q2 = j 4Q2 − 1 e si ha vo (t) = = 1 j p 4Q2 − 1 ωo √ 2 ωo ωo √ 2 4Q −1)t (−j 4Q −1)t t (j − e 2Q e 2Q e 2Q − ωo t ωo p 2 p e 2Q sin( 4Q − 1) 2Q 4Q2 − 1 2 (2.134) − (2.135) dove nell’ultimo passaggio abbiamo utilizzato le formule di Eulero. La soluzione e’ quindi un’oscillazione smorzata. Infine, se Q = 0.5 i poli sono coincidenti, s2 = s1 , quindi la Vo (s) puo’ essere scritta come ωo Q Vo (s) = (2.136) (s − s1 )2 e l’anti-trasformata si trova immediatamente ωo ωo − 2Q t te = 2ωo t e−ωo t (2.137) vo (t) = Q ovvero di nuovo una funzione esponenziale decrescente. In Figura 2.15 e’ esemplificato l’andamento di vo (t) per vari valori di Q: per valori di Q minori di 0.5 si ha un impulso che muore esponenzialmente; per Q > 0.5 si ha un’oscillazione smorzata; Q = 0.5 e’ il valore di transizione tra i due regimi (smorzamento critico). L’oscillazione e’ tanto piu’ persistente quanto piu’ Q e’ grande (nel limite non realistico di Q infinito si avrebbe un’oscillazione perenne, sia pure di ampiezza infinitamente piccola). 56 CAPITOLO 2. CIRCUITI PASSIVI Figura 2.15: Risposta impulsiva di un circuito RLC serie per vari valori di Q. 2.7.2 Circuito RLC parallelo a) b) Rs vi(t) C L R vi(t) Rs Rs C L R Figura 2.16: a) Circuito RLC in parallelo; b) Circuito equivalente Passiamo ora a studiare il circuito RLC in parallelo (Fig. 2.16a); ci conviene trasformare il circuito utilizzando il teorema di Norton (Fig. 2.16b) e scrivere quindi l’equazione del nodo d’uscita nel dominio complesso 1 1 1 Vi = Vo ( + + + sC) Rs R Rs sL 1 1 + sC) + = Vo ( RP sL (2.138) (2.139) (2.140) 57 2.7. CIRCUITI RLC dove RP e’ il parallelo tra R ed Rs . Se R >> Rs si ha RP ≃ Rs ; in questo caso definendo ω0 = Q = √ 1 LC Rs ω0 L (2.141) (2.142) possiamo esprimere la funzione di trasferimento T nella consueta forma ωo s Q T (s) = ωo s2 + s + ωo2 Q (2.143) Troveremo quindi gli stessi risultati che abbiamo ottenuto per il circuito in serie, sia in regime sinusoidale che in quello impulsivo. Nel caso in cui non fosse soddisfatta la condizione R ≫ Rs si puo’ facilmente trovare la funzione di trasferimento esatta (in regime sinusoidale) ovvero: T (ω) = 1 Rs ω ω0 + jQ0 ( − ) RP ω0 ω (2.144) Si noti che l’ampiezza sul picco e’ data ora da |T (ω0 )| = RP Rs (2.145) quindi, se R >> Rs , RP ≃ Rs e l’ampiezza dell’uscita e’ massima. D’altra parte ora il fattore di merito cresce al crescere di Rs ; potremmo quindi incrementare Rs (aggiungendo per es. una resistenza in serie) per migliorare il fattore di merito, ma cio’ penalizzerebbe l’ampiezza dell’uscita, a meno di non incrementare anche R (cioe’ la resistenza d’ingresso dello stadio successivo). Di fatto, anche in questo caso, i fattori di merito realmente ottenibili sono abbastanza limitati. In questa configurazione la resistenza parassita dell’induttore ha un’influenza piu’ complicata rispetto al caso in serie, il circuito effettivo e’ quello mostrato in Fig 2.17. Scrivendo l’equazione del nodo di uscita si ha, in regime sinusoidale: Vi 1 1 = Vo ( + jωC + ) Rs RP ZL (2.146) ZL = r + jωL (2.147) dove Possiamo osservare che 1 = ZL = = 1 r + jωL r − jωL r 2 + ω 2 L2 jωL r − 2 2 2 2 r +ω L r + ω 2 L2 (2.148) (2.149) (2.150) 58 CAPITOLO 2. CIRCUITI PASSIVI a) b) vi(t) Rs L RP vi(t) Rs C RP R* L* C r Figura 2.17: a) Circuito RLC in parallelo; b) Circuito equivalente L’equazione 2.146 diviene allora: 1 r jωL Vi = Vu ( + 2 + jωC − 2 ) 2 2 Rs RP r + ω L r + ω 2 L2 (2.151) La 2.151 puo’ essere interpretata come l’equazione del circuito in Fig. 2.17b, dove e’ stata introdotta un resistore R∗ = ω 2 L2 ω 2 L2 r 2 + ω 2 L2 =r+ = r(1 + 2 ) r r r (2.152) ed un induttore r2 + 1) (2.153) ω 2 L2 Non risolveremo esplicitamente l’equazione 2.151; si noti tuttavia che sia la frequenza di risonanza che il fattore di merito sono alterati dalla presenza di r. La situazione diviene piu’ semplice nella regione di alta frequenza; infatti se ω é abbastanza grande, (ωL)/r ≫ 1, e quindi L∗ = L( ω 2 L2 r ≈ L R∗ ≈ L∗ 2.8 (2.154) (2.155) Linee di trasmissione Negli esempi visti finora abbiamo trascurato il fatto che la velocita’ di propagazione dei segnali elettrici e’ finita. In altre parole, abbiamo fatto l’ipotesi che le variazioni nel tempo della sollecitazione producano i loro effetti istantaneamente in tutti i punti del circuito. Questo comportamento non puo’ essere esatto, visto che al massimo il "segnale" si propaghera’ alla velocita’ della luce c. Tuttavia il nostro trattamento costituisce una buona approssimazione quando le dimensioni fisiche del circuito sono "piccole", tali cioe’ per cui il tempo di propagazione del "segnale" e’ piccolo rispetto alla scala dei tempi che ci interessa. Per segnali impulsivi questa scala dei tempi e’ data dai "tempi di salita" che abbiamo, mentre per sollecitazioni sinusoidali e’ data dal periodo T . Per esempio, se il nostro circuito ha dimensioni tipiche dell’ordine di ∼ 30 cm, i tempi di propagazione 59 2.8. LINEE DI TRASMISSIONE (nell’ipotesi che il segnale si propaghi a velocita’ c) sono di ∼ 1 ns. Se i nostri impulsi hanno tempi di salita dell’ordine dei µs non ha senso preoccuparsi del tempo di propagazione. Lo stesso se il nostro generatore sinusoidale ha una frequenza di 1 M hz (T = 1 µs). Invece, se la frequenza e’ di 1 Ghz (T = 1 ns) non possiamo trascurare il tempo di propagazione, che e’ dello stesso ordine. Inoltre e’ evidente che non possiamo trascurare il tempo di propagazione quando siamo interessati a trasmettere un segnale, sia sinusoidale che impulsivo, su lunghe distanze (decine o centinaia di metri). In questo paragrafo studieremo quindi il problema della trasmissione di un segnale, attraverso una coppia di conduttori, che prende il nome di linea di trasmissione. Questa coppia puo’ essere composta da 2 fili paralleli tra loro (linea bifilare), da 2 conduttori coassiali, ovvero da un filo e da un piano conduttore (situazione tipica, per es. di un segnale che si propaga su un circuito stampato). Se consideriamo un tratto infinitesimo di linea, esso puo’ essere schematizzato, nel modo piu’ generale possibile, come in Fig. 2.18. Si noti che v(x,t) i(x,t) Ldx Rdx Cdx Gdx v(x,t) + ∂v dx ∂x i(x,t) + ∂i dx ∂x Figura 2.18: Tratto infinitesimo di linea R,L,G e C sono intese per unita’ di lunghezza. Possiamo quindi definire Z = R + jωL Y = G + jωC Applicando i principi di Kirchoff si hanno le due equazioni cioe’ − ∂V dx = ZIdx ∂x − ∂I dx = Y V dx ∂x ∂V = −ZI ∂x ∂I = −Y V ∂x Derivando ancora rispetto ad x, si ottiene ∂2V − γ02 V = 0 ∂x2 ∂2I − γ02 I = 0 ∂x2 60 dove CAPITOLO 2. CIRCUITI PASSIVI p √ γ0 = − ZY = − (R + jωL)(G + jωC) che si puó scrivere anche come γ0 = −τ0 s −ω 2 + jω( R G RG + )+ L C LC √ dove τ0 = LC ha le dimensioni di un tempo per unitá di lunghezza e prende il nome di ritardo per unita’ di lunghezza. Il rapporto s s Z R + jωL = Z0 = Y G + jωC prende il nome di impedenza caratteristica. Se si verifica la condizione R G = L C allora s L = R0 Z0 = C cioé l’impedenza caratteristica é reale ed ha le dimensioni di una resistenza. Si ha allora s R R γ0 = −τ0 ( + jω)2 = −τ0 ( + jω) L L cioé la linea si dice non distorcente. Vediamo ora un caso ancora piú semplice, in cui R e G sono trascurabili (linea non dissipativa). Si ha allora ∂v ∂i = −L ∂x ∂t ∂v ∂i = −C ∂x ∂t Derivando la prima equazione rispetto ad x, e la seconda rispetto a t ∂2v ∂2i = −L ∂x2 ∂t∂x ∂2v ∂2i = −C 2 ∂t∂x ∂t cioé ∂2v ∂2v − LC =0 ∂x2 ∂t2 ovvero un’equazione delle onde con velocitá di propagazione u= √ 1 LC = 1 τ0 61 2.8. LINEE DI TRASMISSIONE Le soluzioni sono quindi del tipo v(x, t) = f1 (x − ut) + f2 (x + ut) 1 [f1 (x − ut) − f2 (x + ut)] R0 Supponiamo ora di avere una linea di lunghezza infinita alimentata da un generatore di segnale con resistenza di uscita Rg (Fig. 2.19a). Si ha i(x, t) = Rs Rs vs(t) LL vs(t) Linea infinita Rs Linea di lunghezza L: aperta LL Rs LL R vs(t) vs(t) Linea di lunghezza L: in corto Linea di lunghezza L: carico R Figura 2.19: a) Linea di lunghezza infinita; b) Linea di lunghezza finita,L; c) Linea chiusa in corto circuito; d) Linea chiusa su un carico R v(x, t) = R0 vg (t − τ0 x) R0 + Rg i(x, t) = 1 vg (t − τ0 x) R0 + Rg cioé, dal punto di vista dell’ingresso, la linea si comporta come un carico resistivo R0 . Se ora consideriamo una linea finita e terminata con una resistenza R0 , le equazioni della linea restano le stesse, ed anche la soluzione particolare é la stessa, cioé non ci sono onde retrograde. Dal punto di vista del segnale, quindi, una linea chiusa su una resistenza R0 e’ equivalente ad una linea infinita (linea adattata) Supponiamo ora che la linea sia aperta e di lunghezza finita: τ = τ0 L e’ il tempo di propagazione del segnale lungo la linea. Nel punto L la corrente deve essere 0, quindi ci deve essere un’onda retrograda, cioé i(x, t) = 1 [vg (t − τ0 x) − vg (t − τ0 (2L − x))] R0 + R g Questo é vero solo per t ≪ 2τ0 , per tempi successivi l’onda retrograda, arrivata all’origine,viene nuovamente riflessa e si somma alle altre. Ció non é vero se Rg = R0 ; in tal caso la linea é adattata sul lato del generatore e non si hanno ulteriori riflessioni. 62 CAPITOLO 2. CIRCUITI PASSIVI Figura 2.20: Risposte della linea per sollecitazioni a gradino: a) Linea aperta; b) Linea chiusa in corto. Se la linea e’ invece chiusa in corto circuito (Fig. 2.19c) Si deve imporre la condizione v(L, t) = 0 quindi si deve avere un’onda riflessa di tensione uguale cambiata di segno. v(x, t) = R0 [vg (t − τ x) − vg (t − τ (2L − x))] R0 + Rg i(x, t) = 1 [vg (t − τ x) + vg (t − τ (2L − x))] R0 + R g In generale, considerando la linea chiusa su una resistenza generica R (Fig. 2.19d) si avrá nel punto L una riflessione parziale; potremo definire un coefficiente di riflessione Γ2 Γ2 = R − R0 R + R0 Nei vari casi avremo infatti R = R0 Γ 2 = 0 R=0 Γ2 = −1 R=∞ Γ2 = 1 Si avrá quindi v(x, t) = R0 [vg (t − τ x) + Γ2 vg (t − τ (2L − x))] R0 + Rg i(x, t) = 1 [vg (t − τ x) − Γ2 vg (t − τ (2L − x))] R0 + Rg 63 2.8. LINEE DI TRASMISSIONE Se Rg 6= R0 si puó analogamente definire un coefficiente di riflessione all’inizio della linea Γ1 = Rg − R 0 Rg + R 0 e le soluzioni conterranno ulteriori termini dovuti a questa riflessione. Nella Fig. 2.20 sono riportati alcuni esempi di risposte della linea soggetta ad una sollecitazione a gradino, u(t), per vari valori di Γ1 e Γ2 . 2.8.1 Linee reali Abbiamo visto che i parametri fisicamente rilevanti di una linea non dissipativa sono la velocita’ di propagazione,v, e la resistenza caratteristica, R0 ; essi sono dati da: s 1 L v=√ R0 = C LC L’induttanza per unita’ di lunghezza,L, e la capacita’ per unita’ di lunghezza, C, dipendono dalla geometria della linea e dalle caratteristiche elettro-magnetiche del mezzo interposto tra i conduttori. Nel caso di linea coassiale (Fig. 2.21a ) sono date da: C= 2πǫ µ L= log D/d log D/d 2π v=√ 1 1 =√ µǫ LC In genere la permeabilita’ magnetica del mezzo e’ uguale a quella del vuoto, µ0 , per cui, ricordando la definizione di velocita’ della luce nel vuoto, c: c v≈√ ǫr dove ǫr e’ la costante dielettrica relativa del mezzo (∼ 2 per i dielettrici normalmente utilizzati nella costruzione dei cavi). Si ha poi s s L µ µ 1 D = ( 2 log2 D/d)1/2 = (log ) R0 ≡ C 4π ǫ 2π d ǫ Si noti che R0 dipende pochissimo dalla geometria del cavo ( solo attraverso il logaritmo del rapporto delle dimensioni geometriche). Valori tipici per un cavo coassiale utilizzato comunemente in ambiente elettronico (cavo RG58) sono: C ≃ 100pF/m L ≃ 250nH/m v ≃ 0.7c R0 ≃ 50Ω Il cavo coassiale utilizzato per le antenne televisive ha invece una resistenza caratteristica di 75 Ω, valore standard in questo ambiente. 64 CAPITOLO 2. CIRCUITI PASSIVI D D d d d Linea coassiale Linea bifilare d d D D Filo + piano Striscia + piano Figura 2.21: a) Linea coassiale; b) Linea bifilare; c) Filo + piano d) Strisce Invece, nel caso di linea bifilare (Fig. 2.21b): C= πǫ µ L = log(2D/d) log(2D/d) π che danno luogo ad una espressione della velocita’ identica a quella del cavo coassiale e ad una espressione della resistenza caratteristica assai simile. Ulteriori possibili geometrie sono rappresentate nella Fig. 2.21. Tutte le situazioni raffigurate sono caratterizzate da una dipendenza logaritmica dalle costanti geometriche e da una velocita’ di propagazione dipendente solo da ǫr . Quindi tutte le geometrie portano a resistenze caratteristiche comprese tra le decine e le centinaia di Ohm. Finora abbiamo fatto l’ipotesi, poco realistica, di trascurare gli effetti ohmici della linea, cioe’R e G. Nel caso di cavi reali e’ in genere lecito trascurare G, ma non R, in genere piccolo ma non trascurabile completamente, se stiamo utilizzando una linea di considerevole lunghezza. La condizione di non-distorsione non e’ piu’ esattemente rispettata; inoltre il segnale verra’ attenuato in modo esponenziale. Supponendo di avere una linea infinita (ovvero adattata all’estremita’ "lontana"), l’ampiezza del segnale lungo la linea sara’ data 65 2.8. LINEE DI TRASMISSIONE da: v(x, t) = R0 vg (t − τ x)e−αx R0 + Rg dove α = R/R0 é detto coefficiente di attenuazione della linea. Per i cavi commerciali R e’ dell’ordine di 10−2 Ω/m. Dobbiamo infine tenere presente che una linea va anche studiata per quelli che sono i suoi effetti complessivi sul trasporto del segnale. Consideriamo infatti una linea di lunghezza L (supposta adattata dal lato del generatore): vista dall’estremo lontano essa e’ comunque equivalente ad un passa-basso con parametri complessivi Rt = RL e Ct = CL. Essa introduce quindi una frequenza di taglio f2 = 1/(2πRt Ct ), ovvero, per segnali impulsivi, un tempo di salita ts = 2.2Rt Ct . E’ chiaro quindi che la linea ha una banda passante finita, dipendente quadraticamente dalla lunghezza. Inoltre possono essere non trascurabili gli effetti della induttanza complessiva della linea. Figura 2.22: Forma d’onda per una linea chiusa in corto 2.8.2 Ulteriori applicazioni Una linea puo’ essere utilizzata anche per modificare la forma di un segnale. Consideriamo ad esempio una linea di lunghezza L chiusa in corto, adattata dal lato del generatore. Se il segnale fornito dal generatore e’ rettangolare, di lunghezza T , con T > 2τ L, il segnale prelevato all’inizio della linea sara’ composto da due segnali rettangolari, uno positivo ed uno negativo, di lunghezza 2τ L (Fig. 2.22). Tralasciando il segnale negativo (che puo’ essere opportunamente eliminato, come vedremo in seguito), il segnale d’uscita puo’ quindi essere formato a piacimento, variando L. Peraltro, per L molto corto, l’uscita e’ approssimativamente proporzionale alla derivata del segnale d’ingresso, e questo puo’ essere verificato anche per forme d’onda d’ingresso non rettangolari. Quanto studiato finora ci fa anche comprendere che sono necessarie delle cautele quando si connettono tra loro cavi con impedenza diversa, ovvero quando si vuole suddividere un segnale su varie linee (Fig. 2.23). 66 CAPITOLO 2. CIRCUITI PASSIVI a) Z1 Z2 R b) Z1 R Z2 Z c) R Z R Z Figura 2.23: a) Connessione di cavi a diversa impedenza (Z1 < Z2 ); b) Connessione di cavi a diversa impedenza (Z1 > Z2 ); c) "Splitting" di un segnale a) Connessione di due cavi con impedenza diversa, con Z1 < Z2 : per evitare che il segnale "veda" nel punto di connessione un aumento di impedenza, occorre aggiungere una resistenza verso massa, in modo che il parallelo di R e Z2 eguagli Z1 , cioe’: R= Z1 Z2 Z2 − Z1 b) Z1 > Z2 : il segnale vedrebbe una diminuzione di impedenza, quindi cio’ puo’ essere evitato mettendo in serie un resistore R = Z1 − Z2 . Le stesse considerazioni si applicano per un carico RL che debba essere adattato a una linea Z. Se RL > Z occorre aggiungere un resistore in parallelo; mentre Se RL < Z occorre aggiungere un resistore in serie. c): se si vuole suddividere un segnale su due o piu’ linee, si ha inevitabilmente un disadattamento, che deve essere rimosso aggiungendo in serie dei resistori R. Il valore di R si trova imponendo che R+Z =Z 2 cioé R=Z. Se lo splitting é in n rami: R+Z = Z ⇒ R = (n − 1)Z n 67 2.9. CENNI SUL TRASFORMATORE 2.9 Cenni sul trasformatore Il trasformatore e’ un dispositivo comunemente noto per le sue applicazioni in elettrotecnica. Vogliamo qui studiarne brevemente il comportamento per sollecitazioni impulsive. Il trasformatore puo’ essere schematizzato (Fig. 2.24b) come due induttori accoppiati tra loro da un coefficiente di mutua induzione M . a) b) M vi( t ) LP( 1 - k 2 ) vi( t ) α2RL αvu k 2 LP LP LS c) R1 LP( 1 - k 2 ) k 2 LP vi( t ) d) vi( t ) R1 LP( 1 - k 2 ) α2RL αvu C e) C α2RL αvu vi( t ) R* L αvu Figura 2.24: a) Trasformatore; b) Circuito equivalente; c) Circuito equivalente completo; d) Circuito semplificato ai tempi brevi; e) Circuito semplificato ai tempi lunghi Le equazioni del circuito sono: di di v i = Lp p − M s dt dt 0 = −M dip + L dis + i R s s L dt dt Si definisce M k≡p Lp Ls Per un trasformatore ideale k = 1 e Lp → 0 (in realtá k < 1 per qualche percento) e si ha s Ns Ls v u ip = = = =n vi is Lp Np 68 CAPITOLO 2. CIRCUITI PASSIVI E’ conveniente schematizzare il trasformatore come in Fig. 2.24b dove il parametro α e’ dato da s k Lp = α=k Ls n Il circuito e’governato dalle equazioni di k 2 di v i = Lp p − Lp s dt α dt 2 2 0 = −k 2 L dip + k L dis + α RL is p p dt α dt α Dividendo l’ultima equazione per α si verifica che effettivamente i due circuiti sono equivalenti. In realtá il circuito equivalente completo é dato dalla Fig. 2.24c dove R1 = Rg + Rp rappresenta la resistenza del generatore piu’ la resistenza del primario, mentre 1 1 1 = + R2 R′ α2 (RL + R2′ ) dove R2′ é la resistenza del secondario e R′ é la resistenza in parallelo che viene dalle correnti di Foucault,ecc; C é il contributo complessivo delle capacitá. Ai tempi brevi il circuito si semplifica come in Fig. 2.24d. Per una sollecitazione a gradino vi = u(t), si risolve l’equazione differenziale del circuito: le soluzioni sono del tipo ept , con p p = −ω0 ξ ± jω0 1 − ξ 2 dove ω0 = √ 1 σCa a= R2 R1 + R2 R1 1 1 + ) σ R2 C 2ω0 Si ha quindi una situazione analoga a quella del circuito RLC, e la forma d’onda d’uscita e’ legata al valore del parametro ξ. Ai tempi lunghi il circuito si semplifica come in Fig. 2.24e; applicando il teorema di Thevenin,esso si semplifica ulteriormente come in Fig. 2.24f. La risposta é quindi un esponenziale reale del tipo avi e−t/τ dove τ = L/R. ξ=( 2.10 Sorgenti di segnale Come abbiamo detto nell’Introduzione il nostro obiettivo e’ lo studio dei segnali e dei circuiti destinati all’elaborazione dei segnali, in senso lato. Ma il lettore potrebbe a questo punto chiedersi come sono fatte in realta’ le sorgenti dei segnali che trattiamo. I teoremi di Thevenin e Norton ci hanno fatto capire che, indipendentemente dalla sua natura fisica, una sorgente di segnale e’ sempre vista dal circuito come un generatore ideale di tensione con una impedenza in serie (o di corrente con una impedenza in parallelo). Quindi non e’ necessario per i nostri studi conoscere nulla di piu’; tuttavia puo’ essere interessante ed istruttivo dare qualche cenno sulle sorgenti. Ne vedremo qui di tre tipi: le antenne, i trasduttori e le sorgenti a ionizzazione. 69 2.10. SORGENTI DI SEGNALE Antenne Si puo’ definire con il termine antenna qualunque dispositivo che permette la trasmissione dell’energia elettromagnetica da un generatore allo spazio libero. Analogamente e’ anche un’antenna ogni dispositivo che convoglia l’energia associata ad un’onda elettromagnetica dallo spazio libero ad un apparato limitato nello spazio (in genere un circuito). L’antenna e’ generalmente connessa al trasmettitore, o al ricevitore, attraverso una linea di trasmissione: possiamo quindi dire che le antenne sono in sostanza degli adattatori di impedenza tra la linea di trasmissione e lo spazio. Infatti l’adattemento di impedenza e’ la condizione che si richiede per ottenere il massimo trasferimento di energia. Lo studio delle antenne esula completamente dagli scopi di questo testo, quindi ci limiteremo solo a delle semplici considerazioni generali. Una linea di trasmissione (ad esempio bifilare), alimentata ad un estremo da un generatore e adattata all’altro estremo sulla propria impedenza caratteristica, e’ essa stessa un’antenna trasmittente: infatti la propagazione di un’onda di tensione e di corrente lungo la linea e’ associata alla propagazione di un campo elettromagnetico irradiato nello spazio circostante. Dal punto di vista circuitale la perdita di energia per irraggiamento e’ del tutto equivalente ad una perdita ohmica lungo la linea stessa. Possiamo quindi in generale trattare l’antenna come una linea dissipativa; idealmente sarebbe desiderabile che tutte le perdite fossero associate all’irraggiamento, mentre in realta’ ogni antenna avra’ anche una dissipazione ohmica vera e propria. E’ chiaro quindi che anche per un’antenna trasmittente possiamo, in stretta analogia a quanto fatto per le linee, definire un’impedenza d’ingresso, la cui parte reale contiene un contributo Rr , resistenza di radiazione, che tiene conto proprio delle perdite di energia per irraggiamento. La stessa linea di trasmissione costituisce anche un’antenna ricevente: il ZA ZL ZL Figura 2.25: Antenna ricevente e suo circuito equivalente campo elettrico associato all’onda che investe il conduttore induce una corrente, che puo’ essere trasferita ad un ricevitore. Da un punto di vista circuitale si ha quindi la situazione presentata in Fig. 2.25, dove il generatore equivalente VE e’ chiaramente legato al campo 70 CAPITOLO 2. CIRCUITI PASSIVI elettrico E dell’onda2 . Si puo’ scrivere VE = Eh (2.156) Il parametro h, avente dimensioni di una lunghezza, e’ detto altezza equivalente dell’antenna. Peraltro il principio di reciprocita’3 ci consente di dire che l’impedenza caratteristica dell’antenna e’ la stessa in trasmissione ed in ricezione. L’impedenza equivalente dell’antenna, ZA e’ naturalmente legata alla geometria dell’antenna stessa e conterra’ una componente reattiva; la componente resistiva sara’ data da RA = Rr + Rd (2.157) dove Rd e’ legato alle perdite ohmiche dall’antenna e Rr e’ la resistenza di radiazione dell’antenna. E’ chiaro infatti che anche un’antenna ricevente irradia (proprio per il sopra citato principio di reciprocita’), quindi parte dell’energia captata viene reirradiata all’esterno. La potenza complessiva captata dall’antenna e’ data da W = (Eh)2 RL + Rr + Rd (2.158) La frazione RL /(RL + Rr + Rd ) viene assorbita dal carico; la frazione Rd /(RL + Rr + Rd ) e’ dissipata, mentre la parte rimanente e’ reirradiata. La massima potenza che un’antenna puo’ estrarre dall’onda che la investe si ha quando (Rd + RL ) eguagliano la resistenza di radiazione, e la parte reattiva del carico sia uguale ed opposta alla parte reattiva di ZA . Trasduttori Un trasduttore e’ un dispositivo che genera una tensione (o una corrente) legata da una relazione funzionale con una variabile fisica: in generale quindi abbiamo v(t) = F [y(t)] (2.159) dove y(t) e’ la grandezza fisica in oggetto. E’ evidente l’interesse di dispositivi di questo generale, ed e’ chiaro che in generale si desidera una relazione lineare tra v e y. Discuteremo qui brevemente un solo esempio, quello del microfono a capacita’ (Fig. 2.26), cioe’ un dispositivo che traduce l’onda di pressione associata al suono in un segnale elettrico. Il condensatore C ha un’armatura fissa, mentre l’altra e’ libera di vibrare quando e’ investita dal suono. Se ω e’ la pulsazione dell’onda, la capacita’ varia con una legge L’equazione della maglia e’ 2 C = C0 + C1 sin ωt (2.160) Q − V0 + iR = 0 C(t) (2.161) Si noti che l’antenna, in quanto linea, e’ costituita dal conduttore (verticale nel caso in figura) e dal piano di terra. 3 Questo principio, valido in generale per le reti lineari, si puo’ enunciare come segue: se un generatore ideale di tensione V , posto tra i nodi A e B di un circuito, provoca tra i nodi A′ e B ′ (tra loro cortocircuitati) una corrente I, allora ponendo lo stesso generatore tra i nodi A′ e B ′ , si avra’ tra i nodi A e B (corto-circuitati tra loro) la stessa corrente I. 71 2.10. SORGENTI DI SEGNALE + Onda incidente C Vo Co R v eq R Figura 2.26: a) Schema di principio di un microfono capacitivo; b) generatore di segnale equivalente che possiamo quindi scrivere Z i dt′ − CV0 + RC(t)i = 0 (2.162) Derivando rispetto a t e riordinando opportunamente i termini si arriva a R(C0 + C1 sin ωt) di + (1 + RC1 ω cos ωt)i = V0 ωC1 cos ωt dt (2.163) Ora, se C1 << C0 e ωRC1 << 1, l’equazione si semplifica in RC0 di + i = V0 ωC1 cos ωt dt la cui soluzione e’ data da i= C1 V0 cos(ωt − φ) s C0 1 R2 + 2 2 ω C0 (2.164) (2.165) dove 1 (2.166) ωRC0 E’ interessante notare che, se le condizioni anzidette non sono soddisfatte, la soluzione e’ piu’ complessa, ma soprattutto contiene termini oscillanti in ω, 2ω, 4ω, . . . . Naturalmente un buon microfono deve soddisfare quelle condizioni; si vede comunque dalla 2.165 che il trasduttore e’ equivalente (Fig. 2.26b) ad un generatore di tensione tan φ = ve q = C1 V0 cos(ωt − φ) C0 (2.167) con una impedenza in serie data dalla capacita’ C0 (non includiamo R, che rappresenta in sostanza il carico su cui il segnale viene riversato). Come si vede questo e’ un esempio di generatore con una impedenza d’uscita tipicamente reattiva, anche se e’ sicuramente presente una parte resistiva che qui abbiamo trascurato (si pensi, per esempio alla resistenza del generatore costante V0 ). 72 CAPITOLO 2. CIRCUITI PASSIVI Vo vu - + + + i eq C R vu + + Figura 2.27: a) Schema di principio di un rivelatore a ionizzazione; b) generatore di segnale equivalente Sorgenti a ionizzazione L’ultimo caso che esamineremo e’ quello di sorgenti in cui il segnale e’ generato attraverso meccanismi di ionizzazione. Esistono svariati esempi di dispositivi di questo tipo, molti dei quali utilizzati proprio per la rivelazione di particelle ionizzanti. In linea di principio il meccanismo di funzionamento e’ quello illustrato nella Fig. 2.27. Due elettrodi racchiudono una porzione di spazio riempita per es. da un gas. Il passaggio di una particella carica attraverso questo spazio provoca la ionizzazione di un certo numero di molecole e la formazione di coppie elettrone-ione. Sotto l’effetto del campo elettrico applicato ai due elettrodi gli ioni migrano verso il polo negativo e gli elettroni verso quello positivo: si ha quindi un segnale che viene rivelato all’uscita, sovrapposto alla tensione costante V . E’ chiaro quindi che, anche in questo caso, la sorgente di segnale ha un’impedenza d’uscita con una parte reattiva importante, data proprio dalla capacita’ degli elettrodi di raccolta. Naturalmente questa e’ una sorgente di tipo impulsivo (si avra’ un fiotto di carica collegato temporalmente al passaggio della particella); la forma dell’impulso, oltre ad essere legata alla dinamica del fenomeno in se’, e’ anche determinata dai valori di R e C, che nel loro insieme formano un’integratore. 2.11 Circuiti reali Nei precedenti paragrafi abbiamo approfonditamente studiato il comportamento di circuiti con reattanze. Vedremo nel seguito che, in particolare, i circuiti RC sono di estrema im- 2.11. CIRCUITI REALI 73 portanza e molto frequentemente usati. Vale anche la pena di sottolineare che, spesso, il comportamento di circuiti reali e’ influenzato anche da reattanze parassite. In particolare, capacita’ parassite sono inevitabilmente presenti in ogni circuito, generando accoppiamenti RC di tipo "passa basso"; nascono quindi frequenze di taglio superiori, che limitano la banda passante. Circuiti destinati ad essere utilizzati per altissime frequenze devono quindi essere progettati con particolare cura (con inevitabile aumento del costo); inoltre queste considerazioni si applicano anche ai regimi impulsivi; si comprende come sia concettualmente impossibile avere impulsi con tempo di salita "zero", mentre tempi di salita molto corti implicano notevoli aumenti nel costo. Naturalmente ci aspettiamo che siano presenti anche induttanze parassite, e quindi in linea di principio ogni circuito puo’ dare luogo a frequenze di "risonanza" indesiderate. Queste frequenze in genere sono molto alte (poiche’ sono legate al prodotto LC), ma il loro effetto puo’ a volte essere osservato, per es. in regime impulsivo, per l’insorgere di oscillazioni. Infine va ricordato che gli stessi componenti elementari presentano caratteristiche "parassite". Abbiamo gia’ visto il caso degli induttori; ma anche resistori e condensatori presentano, in genere in misura molto minore, lo stesso problema. In linea di principio ogni componente costituisce un piccolo circuito RLC : tuttavia le caratteristiche indesiderate divengono influenti solo a frequenze altissime, lontane in genere dalla regione che ci interessa. Per questo motivo trascureremo, nel seguito, questo aspetto. 74 CAPITOLO 2. CIRCUITI PASSIVI Capitolo 3 Diodi 3.1 Introduzione I dispositivi a semiconduttore costituiscono i mattoni fondamentali dell’elettronica odierna. I meccanismi fisici che sono alla base dei semiconduttori sono abbastanza complessi e vengono approfonditamente studiati nei corsi di Struttura della Materia. Qui ci limiteremo ad una breve e non rigorosa sintesi che utilizzeremo come punto di partenza per lo studio dei dispositivi a semiconduttore, cioe’ diodi e transistor. 3.2 Fisica dei semiconduttori Conduzione elettrica nei metalli Ricordiamo brevemente come avviene la conduzione elettrica nei metalli. Questi materiali hanno un’energia di ionizzazione molto bassa, quindi gli elettroni esterni si separano molto facilmente dai rispettivi atomi e sono sostanzialmente liberi all’interno della struttura solida. Quindi, applicando dall’esterno un campo elettrico E essi sono accelerati nella direzione del campo (in verso opposto). A causa degli urti con il reticolo, essi mantengono tuttavia una velocità media finita, data in modulo da vd = µE (3.1) detta velocità di drift. Il fattore di proporzionalita’, µ, e’ detto mobilità. Se consideriamo un conduttore di lunghezza L ed area A, che contenga N elettroni, sotto l’influenza di un campo elettrico E, la corrente risultante è data da I= qN vd L J= qN vd LA e la densità di corrente è data da cioè J = qnvd 75 (3.2) 76 CAPITOLO 3. DIODI dove n è la concentrazione degli elettroni, ovvero numero di elettroni per unita’ di volume. Combinando la 3.2 con la 3.1 si ha J = qnµE = σE (3.3) dove σ = qnµ è la conducibilità del materiale. Questa equazione è la legge di Ohm. I semiconduttori Nei semiconduttori la situazione e’ diversa, perche’ l’energia di ionizzazione e’ molto piu’ alta. Possiamo comprendere cosa avviene prendendo in esame il comportamento del Silicio1 . Un cristallo di silicio puro ha una struttura reticolare in cui gli atomi sono mantenuti in elettroni di valenza +4 +4 +4 atomi di silicio Figura 3.1: +4 +4 +4 Rappresentazione bidimensionale di un cristallo di silicio. I cerchi rappresentano gli atomi legami covalenti di silicio, il +4 indica la carica positiva neu- +4 +4 +4 tralizzata dai 4 elettroni di valenza. Ogni atomo forma 4 legami covalenti con i vicini. Alla temperatura di 0 ◦ K tutti i legami sono intatti e non vi sono elettroni liberi disponibili per la conduzione. posizione da legami covalenti formati dai 4 elettroni di valenza che ogni atomo possiede (Fig. 3.1). A temperature vicine allo zero assoluto tutti i legami sono intatti e nel materiale non vi sono elettroni liberi disponibili per la conduzione. Tuttavia, a temperature alte, per esempio a temperatura ambiente, un certo numero di legami si rompe per ionizzazione termica e conseguentemente vi sono degli elettroni liberi. Come si vede dalla Fig. 3.2 un elettrone che si libera lascia una carica positiva non bilanciata, una lacuna, nel suo atomo originario; questa carica positiva puo’ quindi attrarre un elettrone da un atomo vicino, che a sua volta restera’ con una carica positiva non bilanciata. Si ha quindi una situazione dinamica di creazione di coppie elettrone-lacuna, e di ricombinazione delle medesime: elettroni liberi e lacune si muovono quindi in maniera casuale all’interno del cristallo, il numero di elettroni e’ sempre pari al numero di lacune. Indicando con n la concentrazione di elettroni (cioe’ il numero di elettroni per unita’ di volume) e con p la concentrazione di lacune si ha quindi: n = p ≡ ni 1 I semiconduttori piu’ importanti sono Germanio e Silicio; la tecnologia dei semiconduttori e’ basata essenzialmente sul Silicio, il Germanio, utilizzato per primo per costruire diodi e transistor, e’ oggi scarsamente utilizzato. 77 3.2. FISICA DEI SEMICONDUTTORI La concentrazione intrinseca, ni , e’ chiaramente funzione della temperatura; la fisica dei semiconduttori 2 mostra che essa e’ data dalla relazione n2i EG = B T e kT 3 − (3.4) dove B e’ un parametro dipendente dal materiale (B = 5.4 × 1031 per il silicio), EG , e’ un parametro noto come larghezza della gap proibita (EG = 1.12 eV per il silicio), e k e’ la costante di Boltzmann (8.62 × 10−5 eV /K). Per il silicio a temperatura ambiente si ha ni ≃ 1.5 × 1010 portatori/cm−3 , da confrontare elettrone libero elettroni di valenza +4 +4 +4 lacuna atomi di silicio + +4 +4 +4 Figura 3.2: legami covalenti A temperatura ambiente alcuni le+4 +4 +4 gami covalenti si rompono per ionizzazione termica. Ogni legame rotto da luogo ad un elettrone libero e ad una lacuna; entrambi sono disponibili per la conduzione. con la densita’ atomica che e’ circa 5 × 1022 atomi/cm−3 ; quindi solo un piccolissima frazione di atomi risulta ionizzata. Se ora applichiamo un campo elettrico esterno al cristallo di silicio le cariche elettriche libere vengono accelerate e acquisiscono una velocita’ (nella direzione del campo) e proporzionale all’intensita’ del campo, che e’ detta velocita’ di drift, vd : le lacune si muovono nel verso positivo del campo e gli elettroni nel verso negativo. Indicando con E l’intensita’ del campo elettrico si ha per le lacune vdp = µp E (3.5) e per gli elettroni vdn = µn E (3.6) Le due costanti, µp e µn , sono dette le mobilita’, rispettivamente delle lacune e degli elettroni. Si noti che le due mobilita’ sono molto diverse, essendo la mobilita’ delle lacune molto inferiore3 : per il silicio si ha µp ≃ 480 cm2 /V · s e µn ≃ 1350 cm2 /V · s. 2 Una descrizione corretta e quantitativa dei semiconduttori, come di tutta la materia, richiede la Meccanica Quantistica. Qui ci limitiamo ad utilizzare i risultati che ci interessano, assumendone la validita’. 3 E’ intuitivo che sia cosi’: il moto delle lacune lungo la direzione e verso del campo e’ indiretto. In realta’ sono gli elettroni, che spostandosi in verso opposto, lasciano via via dietro di se posti liberi nella struttura reticolare. 78 CAPITOLO 3. DIODI La corrente elettrica complessiva viene quindi dal contributo di entrambi i tipi di portatori; la densita’ di corrente e’ data dalla relazione (3.7) J = q(pµp + nµn )E = qni (µp + µn )E dove q e’ la carica elettrica dell’elettrone. E’ in sostanza la legge di Ohm J = σE (3.8) σ = qni (µp + µn ) (3.9) dove la conducibilita’, σ, e’ data da elettroni di valenza +4 +4 elettrone libero +4 impurezza pentavalente atomi di silicio +4 +5 +4 legami covalenti +4 +4 +4 Figura 3.3: Un cristallo di silicio con impurezze pentavalenti. Ogni atomo pentavalente fornisce un elettrone libero, disponibile per la conduzione (materiale tipo n). Semiconduttori drogati Nel silicio intrinseco, ovvero puro, la concentrazione di portatori negativi (elettroni) e’ identica alla concentrazione dei portatori positivi (lacune). Questa situazione puo’ essere fortemente modificata introducendo nel silicio delle impurezze, cioe’ atomi di specie diversa che vengono inglobati nel reticolo cristallino, sostituendo atomi di silicio. Se, introduciamo nel reticolo alcuni atomi pentavalenti, per esempio fosforo, si ha la situazione rappresentata nella Fig. 3.3. L’atomo pentavalente, cioe’ con 5 elettroni di valenza, sostituisce nel reticolo un atomo di silicio; 4 elettroni formano legami covalenti con i vicini, mentre il quinto elettrone e’ sostanzialmente libero. Percio’ ogni atomo di fosforo (detto atomo donatore) si ionizza e fornisce un elettrone disponibile per la conduzione, senza pero’ generare una corrispondente lacuna. In questa situazione quindi la concentrazione di elettroni, n, non e’ piu’ pari a quella delle lacune, p. Tuttavia le due concentrazioni non sono indipendenti: si puo’ dimostrare che np = n2i (3.10) ovvero che il prodotto delle concentrazioni e’ uguale al quadrato della concentrazione intrinseca. Quindi un aumento di n, dovuto alle impurezze, provoca una simultanea diminuzione 79 3.2. FISICA DEI SEMICONDUTTORI della concentrazione delle lacune. Se la concentrazione di impurezze di atomi donatori, ND , e’ abbastanza alta si ha sostanzialmente n ≃ ND (3.11) n2i ND (3.12) e, di conseguenza p≃ Ne segue quindi che p e’ funzione della temperatura, visto che ni lo e’, mentre n e’ indipendente dalla temperatura. Un esempio numerico puo’ aiutarci a comprendere. Consideramo un cristallo di silicio con una concentrazione di impurezze pentavalenti ND = 1017 cm−3 . Si ha allora n ≃ 1017 cm−3 e p≃ 2 × 1020 n2i = 2 × 103 = ND 1017 Come si vede la concentrazione di lacune e’ piu’ di 13 ordini di grandezza inferiore rispetto a quella degli elettroni! Percio’ il materiale ha sostanzialmente solo portatori di carica negativi. Il silicio drogato con impurezze pentavalenti e’ detto percio’ di tipo n intendendo con cio’ il fatto che ha solo portatori negativi. E’ possibile costruire un materiale di tipo p introducendo impurezze trivalenti, ad esempio elettroni di valenza +4 +4 lacuna +4 impurezza trivalente atomi di silicio +4 +3 + +4 legami covalenti +4 +4 +4 Figura 3.4: Un cristallo di silicio con impurezze trivalenti. Ogni atomo trivalente da origine ad una lacuna, disponibile per la conduzione (materiale tipo p). atomi di Boro (Fig. 3.4). Ogni atomo di Boro accetta, ovvero cattura, un elettrone dal cristallo per completare i legami covalenti con i vicini; quindi da luogo ad una lacuna (queste impurezze percio’ prendono il nome di atomi accettori). Se la concentrazione di impurezze di atomi accettori, NA , e’ abbastanza alta si ha sostanzialmente p ≃ NA (3.13) 80 CAPITOLO 3. DIODI La concentrazione di portatori minoritari (elettroni) puo’ essere calcolata, in analogia al caso precedente, e si ha n2 n≃ i (3.14) NA E’ bene sottolineare che comunque il cristallo nel suo insieme e’ sempre elettricamente neutro. Le cariche libere (elettroni nel tipo n e lacune nel tipo p) sono bilanciate dalle cariche fisse degli atomi ionizzati. Giunzione pn Possiamo ora costruire una giunzione pn immaginando di saldare tra loro un cristallo di tipo p ed uno di tipo n (Fig. 3.5(a)). In realta’ cio’ viene fatto producendo un unico cristallo con una parte drogata con impurezze di tipo n ed una parte drogata con impurezze di tipo p. Poiche’ la concentrazione di lacune e’ molto alta nel lato p e molto bassa nel lato n, le Regione di svuotamento (a) p n ID IS Figura 3.5: V (b) Barriera di potenziale x (a) La giunzione pn a circuito aperto. A cavallo della giunzione nasce una differenza di potenziale e si crea una regione priva di cariche libere, la regione di svuotamento (zona tra le due linee tratteggiate); (b) Andamento del potenziale lungo una coordinata x ortogonale alla giunzione. lacune diffondono attraverso la giunzione andando nel lato n; analogamente gli elettroni diffondono in verso opposto, verso il lato p, dando luogo alla corrente di diffusione ID . Le lacune diffuse nel lato n si ricombinano con gli elettroni liberi presenti e quindi scompaiono. Questa ricombinazione ha peraltro l’effetto di eliminare elettroni liberi, percio’ in quella zona le cariche positive fisse degli atomi non sono piu’ neutralizzate. Vi e’ percio’ una regione adiacente alla giunzione, carica positivamente e priva di cariche libere, che prende il nome di regione di svuotamento. Un fenomeno analogo e speculare avviene nel lato p: gli elettroni diffusi si ricombinano con le lacune e scompaiono. Quindi, anche da quel lato si ha una regione di svuotamento, priva di cariche libere e non piu’ elettricamente neutra, bensi’ carica negativamente. 81 3.2. FISICA DEI SEMICONDUTTORI Questo doppio strato di carica genera pero’ un campo elettrico interno, diretto dal p al n e quindi una differenza di potenziale (Fig 3.5(b) che tende ad opporsi alla diffusione e quindi crea una situazione di equilibrio. Bisogna considerare anche i portatori di minoranza che comunque esistono nel materiale. A causa dell’agitazione termica vi e’ una continua creazione di coppie elettrone-lacuna in tutto il cristallo. La lacune generate nel lato n diffondono casualmente nel cristallo; se raggiungono la regione di svuotamento, a causa del campo elettrico presente, vengono spinte verso il lato p. Analogamente, elettroni nati nel lato p vengono iniettati nel lato n. La somma di questi due effetti e’ una corrente che attraversa la giunzione, IS , diretta dal lato n al lato p. Poiche’ non vi sono connessioni con l’esterno la corrente complessiva, all’equilibrio deve essere nulla, ovvero |ID | = |IS | (3.15) Questa condizione di equilibrio e’ mantenuta dalla barriera di potenziale. Se per qualche ragione ID cresce, la barriera di potenziale cresce, la regione di svuotamento si allarga, e questo riduce ID . Viceversa, se IS cresce, la regione di svuotamento si riduce, la barriera di potenziale si riduce, provocando una crescita di ID che ripristina l’equilibrio. Si puo’ dimostrare che la barriera di potenziale, Vo , e’ data da Vo = VT ln( NA ND ) n2i (3.16) dove NA e ND sono le concentrazioni di impurezze nel lato p e nel lato n, mentre VT e’ il cosiddetto “equivalente in Volt della temperatura”: VT = kT q Tipicamente, nel Silicio a temperatura ambiente Vo e’ nell’intervallo 0.6 − 0.8 V . Se il lato p e il lato n hanno la stessa concentrazione di impurezze (cioe’ NA = ND ) la regione di svuotamento si estende simmetricamente attorno alla giunzione. Ma in generale non e’ cosi’, NA ed ND sono spesso molto diversi. Si puo’ facilmente dimostrare che lo spessore di svuotamento e’ piu’ grande nel lato meno drogato e che vi e’ la relazione xn NA = xp ND (3.17) r (3.18) Lo spessore complessivo, Ws e’ dato da Ws = xn + xp = 2ǫs 1 1 ( + )Vo q NA ND dove ǫs e’ la costante diettrica del silicio (ǫs = 11.7ǫo ). Tipicamente Ws e’ dell’ordine di 0.1 ÷ 1 µm. Giunzione pn polarizzata inversamente Consideriamo la situazione raffigurata in Fig. 3.6: la giunzione e’ collegata ad un generatore di tensione esterno, VR , in modo che il lato p sia a tensione piu’ bassa. 82 CAPITOLO 3. DIODI Il potenziale esterno si aggiunge alla barriera gia’ esistente, e quindi la corrente di diffusione, ID , diminuisce, mentre IS resta costante. Si ha quindi una corrente totale che fluisce nella giunzione I = IS − ID (3.19) In realta’ e’ sufficiente una piccolissima tensione VR per rendere ID completamente VR Regione di svuotamento (a) p n ID IS V VR (b) Barriera di potenziale x Figura 3.6: La giunzione pn polarizzata inversamente (a) La regione di svuotamento di allarga, ID diminuisce e si ha quindi una corrente totale non zero; (b) La barriera di potenziale aumentata di VR . trascurabile, e in sostanza si ha I ≃ IS (3.20) La corrente e’ quindi sostanzialmente indipendente da VR , e dipende invece fortemente dalla temperatura. La regione di svuotamento si allarga al crescere di VR Ws = xn + xp = r 1 2ǫs 1 ( + )(Vo + VR ) q NA ND (3.21) quindi il doppio strato di carica a cavallo della giunzione aumenta. La giunzione in sostanza e’ una capacita’ elettrica, che dipende da VR . Chiamando A la superficie della giunzione, la sua capacita’ e’ data dalla classica espressione del doppio strato di carica: ǫs A Cj = (3.22) Ws In assenza di tensione esterna, ricordando la 3.18, si puo’ calcolare questa capacita’ per una giunzione ideale in cui si ipotizza che la concentrazione di impurezze cambi bruscamente 83 3.2. FISICA DEI SEMICONDUTTORI attraversando la giunzione4 e si ottiene r Cjo = A ( NA ND 1 ǫs q )( )( ) 2 N A + N D Vo (3.23) In presenza di una tensione esterna VR si ha Cj = Cjo VR m (1 + ) Vo (3.24) dove m e’ un parametro empirico che dipende appunto da come la concentrazione di impurezze varia attraversando la giunzione (m varia tra 0.3 e 0.5). La capacita’ Cj , detta capacita’ di transizione, e’ normalmente dell’ordine del pF , e come vedremo nel seguito, puo’ diventare rilevante nello studio di circuiti ad alta frequenza. La regione di breakdown Se la tensione inversa applicata esternamente cresce oltre un certo limite il comportamento del diodo cambia bruscamente e si ha un fenomeno di breakdown, che puo’ essere dovuto a due diverse cause, l’effetto Zener o l’effetto avalanche. L’effetto Zener si ha quando il campo elettrico nella regione di svuotamento diviene talmente forte da rompere i legami covalenti e generare coppie elettrone-lacuna. Questi portatori vengono accelerati dal campo e costruiscono quindi una corrente. Una volta arrivati alla soglia di questo meccanismo si puo’ avere una corrente molto forte con anche piccoli incrementi di tensione. L’effetto avalanche avviene quando i portatori minoritari, accelerati dal campo elettrico, acquistano sufficiente energia cinetica da rompere i legami covalenti attraverso urti. I portatori liberati da questo effetto, anch’essi accelerati, possono creare, attraverso altri urti, nuove coppie, e quindi innescare un processo a valanga. Questi effetti non sono distruttivi, purche’ la dissipazione di potenza all’interno del cristallo, non provochi un eccessivo e distruttivo aumento di temperatura del medesimo. Le soglie di tensione di questi fenomeni sono dipendenti dal livello di drogaggio. Nei diodi normali e’ dell’ordine di 80 − 100 V . Ci sono poi diodi appositamente costruiti per lavorare nella regione di breakdown, i diodi Zener, che trovano applicazione come limitatori di tensioni. Ne parleremo brevemente in seguito. Giunzione pn polarizzata direttamente Ora consideriamo la situazione opposta, rappresentata nella Fig 3.7: la giunzione e’ collegata ad un generatore di tensione esterno, VF , in modo che il lato p sia a tensione piu’ alta. La barriera di potenziale diminuisce, e quindi la corrente ID aumenta. Viceversa IS rimane costante (dipende solo dalla temperatura), e si ha quindi una corrente netta I = ID − IS 4 (3.25) Nella realta’, la transizione non e’ cosi’ brusca. Come abbiamo detto la giunzione e’ formata da un unico cristallo cui si fanno inglobare le impurezze durante il processo di fabbricazione 84 CAPITOLO 3. DIODI VF Regione di svuotamento (a) p n ID IS V Figura 3.7: (b) VF Barriera di potenziale x La giunzione pn polarizzata direttamente (a)La regione di svuotamento si stringe, ID aumenta e si ha quindi una corrente totale non zero; (b)La barriera di potenziale diminuita di VF . nel verso da p a n, la cui intensita’ e’ legata al valore di VF . Quando questa tensione supera Vo la barriera e’ completamente annullata e la giunzione si comporta approssimativamente come un conduttore, con una piccola resistenza. Si puo’ dimostrare che la relazione tra corrente I e tensione VF e’ data da VF I = Is (e ηVT − 1) (3.26) dove il parametro η e’ un fattore empirico che vale circa 2. Anche nel caso di giunzione polarizzata direttamente si hanno degli effetti capacitivi, associati questa vota all’accumulo dei portatori liberi iniettati dalla regione in cui sono maggioritari a quella in cui sono minoritari. In altre parole, in corrispondenza di un certo valore di tensione diretta, VD , nelle regioni esterne alla regione di svuotamento (dette regioni quasi neutre) si e’ in presenza di un eccesso di cariche minoritarie, che varia al variare della polarizzazione, anche qui in modo non lineare. Questa capacita’ viene denominata capacita’ di diffusione e tipicamente e’ di circa un ordine di grandezza maggiore rispetto alla capacita’ di transizione. Equazione della giunzione L’equazione 3.26 e’ sostanzialmente valida anche quando la giunzione e’ polarizzata inversamente. Possiamo quindi riscriverla come V I = Is (e ηVT − 1) (3.27) 85 3.3. IL DIODO A GIUNZIONE dove V e’ la tensione esterna con segno: positiva se la giunzione e’ polarizzata direttamente, negativa se e’ polarizzata inversamente. Il fattore VT vale circa 25 mV a temperatura ambiente, quindi, se la giunzione e’ polarizzata inversamente I ≃ −IS (3.28) non appena |V | supera qualche decimo di Volt. Se invece la giunzione e’ polarizzata direttamente, quando V >> ηVT possiamo approssimare la 3.27 con V (3.29) I = Is e ηVT La Fig. 3.8 mostra il grafico di I in funzione di V per un tipico diodo al silicio. Figura 3.8: Caratteristica corrente tensione di un tipico diodo al silicio. Si noti la diversa scala di corrente e di tensione nei due semipiani. 3.3 Il diodo a giunzione Il diodo e’ un componente realizzato mediante un cristallo di silicio che contiene una giunzione pn. La Fig.3.9(a) mostra il simbolo circuitale: la punta del triangolo indica il lato n della giunzione (catodo). Il diodo si presenta come un piccolo contenitore cilindrico (alcuni mm di lunghezza), con due conduttori metallici; il catodo e’ in genere individuato da una striscia nera o colorata riportata sul cilindro (Fig. 3.9(b)). La maggioranza degli usi del diodo e’ legata alla sua caratteristica non lineare, in particolare alla sua unidirezionalita’. Per comprendere meglio possiamo partire da un componente idealizzato, cioe’ il diodo ideale, e verificare poi quanto un diodo a giunzione vi si avvicini. 86 CAPITOLO 3. DIODI Catodo Anodo (a) Figura 3.9: Il diodo a giunzione (a)Simbolo circuitale: il verso della freccia va dal lato p (anodo) al lato n (catodo); (b)Diodo commerciale: un contenitore cilindrico lungo alcuni mm, con due conduttori metallici. Una fascia colorata, o nera, contraddistingue il catodo (b) Diodo ideale Il diodo ideale ha una caratteristica corrente-tensione come quella mostrata nella Fig. 3.10. Uno dei piu’ comuni usi del diodo e’ per costruire un circuito raddrizzatore, o i polarizzazione inversa polarizzazione diretta v Figura 3.10: Caratteristica del diodo ideale: la resistenza e’ zero in polarizzazione diretta e infinita in polarizzazione inversa. rettificatore, come in Fig.3.11(a). se il diodo e’ ideale, la transcaratteristica e’ quella mostrata in Fig.3.11(b): quando il diodo e’ polarizzato inversamente, cioe’ Vi < 0, la tensione d’uscita, Vo , e’ nulla; quando il diodo e’ polarizzato direttamente, Vi > 0, la tensione d’uscita e’ uguale alla tensione di entrata. Quindi, se ad esempio la tensione d’ingresso e’ sinusoidale (Fig.3.11(c)), la tensione d’uscita assume la forma mostrata in Fig,3.11(d): le semionde negative sono cancellate. Il diodo reale a giunzione ha una caratteristica corrente tensione abbastanza diversa. Per risolvere il circuito Fig.3.11(a) possiamo scrivere l’equazione della maglia vi = vD + iR (3.30) e ricavare poi la tensione d’uscita come vo = iR (3.31) Per risolvere l’equazione 3.30 occorre conoscere la relazione tra i e vD che e’ di tipo non lineare, ovvero la3.27, quindi il problema e’ abbastanza complicato, quando vi e’ variabile nel tempo. Per molte applicazioni e’ sufficiente approssimare il diodo con un modello 87 3.4. CIRCUITI CON DIODI vo (a) (b) + vi R vo _ vi (c) vi vo (d) t t Figura 3.11: Circuito rettificatore: (a) Schema del circuito; (b) Transcaratteristica ideale; (c) Segnale d’ingresso sinusoidale; (d) Segnale d’uscita per il diodo ideale. lineare (Fig.3.12(b)). Il diodo e’ equivalente ad un generatore di tensione costante, Vγ in serie ad una resistenza (normalmente piccola) Rf , quando la tensione ai suoi capi supera Vγ , e come una resistenza Rr molto grande (al limite infinita) altrimenti (Fig. 3.12(c)). i i (a) (b) (c) + Vγ - Rf Rr 1 vD (V) 1 V > Vγ V < Vγ vD (V) Vγ Figura 3.12: (a) Caratteristica del diodo a giunzione; (b) Modello lineare; (c) Equivalente circuitale del diodo. 3.4 Circuiti con diodi Raddrizzatore a singola semionda Il raddrizzatore ( o rettificatore) e’ un dispositivo molto utilizzato perche’ e’ frequente la necessita’ di generare una tensione continua a partire da una tensione alternata tipicamente sinusoidale. Da questo punto di vista il circuito che abbiamo visto (Fig. 3.11(a) ) ha delle 88 CAPITOLO 3. DIODI v + vi R _ vo C t vi (a) (b) Figura 3.13: (a) Raddrizzatore con filtro capacitivo; (b) Forme d’onda: la linea tratteggiata e’ la sinusoide all’ingresso, mentre la linea continua rappresenta la tensione d’uscita vo . prestazioni molto modeste: la tensione d’uscita ha un valor medio positivo, ma e’ ben lungi dall’essere costante. Un miglioramento notevole puo’ essere ottenuto aggiungendo un opportuno condensatore al circuito, come nella Fig. 3.13(a). Se la costante di tempo RC e’ grande rispetto al periodo dell’onda di ingresso, la forma d’onda d’uscita e’ quella riportata in Fig. 3.13(b). Raddrizzatore a ponte + vi R vo _ t (a) (b) Figura 3.14:(a) Raddrizzatore a ponte;(b) Forma d’onda d’uscita per un ingresso sinusoidale. Si possono poi avere prestazioni ancora migliori con il circuito raddrizzatore a doppia semionda (raddrizzatore a ponte) mostrato in Fig. 3.14(a), dove la tensione d’uscita e’ prelevata ai capi di R. La forma d’onda d’uscita e’ quella riportata in Fig. 3.14(b). L’aggiunta di un opportuno condensatore in parallelo al carico RL puo’, anche in questo caso, migliorare ulteriormente la forma d’onda d’uscita (Fig. 3.15. Limitatori I diodi hanno molte altre utilizzazioni. Un caso tipico (che vedremo anche in seguito) e’ quello dei circuiti limitatori, come ad esempio lo schema in Fig. 3.16. Il diodo entra in conduzione quando la differenza di potenziale ai suoi estremi eccede la soglia di 0.6 ÷ 0.7 V . Percio’ la tensione in uscita del quadrupolo viene limitata inferiormente dal circuito ovvero 89 3.5. ALTRI DIODI + vi R _ C Figura 3.15: Raddrizzatore a ponte con filtro capacitivo. - V + R Figura 3.16: Circuito limitatore. si ha sempre vo > (VR − 0.7). Nella Fig. 3.17 abbiamo un limitatore doppio. In questo caso la tensione d’uscita e’ + VR1 + - VR2 Figura 3.17: Circuito limitatore doppio. limitata in un intervallo e si deve sempre avere (VR1 − 0.7) < vo < (VR2 + 0.7). Rivelatori di picco Un altro classico esempio e’ il rivelatore di picco (Fig. 3.18(a)). Data una tensione variabile nel tempo in modo qualunque l’uscita indica sempre il valore massimo raggiunto, come rappresentato nell’esempio di Fig. 3.18(b). 3.5 Altri diodi Diodi Zener I diodi Zener (il simbolo circuitale e’ mostrato nella Fig. 3.19(a)) sono componenti realizzati specificamente per lavorare nella regione di breakdown e sono comunemente utilizzati come stabilizzatori di tensione. Il valore della tensione Zener, VZ , e’ determinato dalla concentrazione di impurezze nel silicio, quindi e’ possibile fabbricare diodi con valori VZ predefiniti, in un ampio intervallo, da pochi Volt, fino ad alcune decine di Volt5 . Le altre caratteristiche importanti di un diodo Zener sono la resistenza dinamica, rz , ovvero la pendenza della curva caratteristica nella regione di breakdown (Fig. 3.19(b)) , e la massima potenza dissipabile, cioe’ in sostanza la massima corrente che il diodo puo’ sopportare senza distruggersi. 5 Non e’ facilissimo controllare con grande precisione il livello di impurezze durante il processo di fabbricazione della giunzione pn. E’ pero’ ovviamente possibile, a posteriori, un processo di selezione per ottenere esemplari con valori Zener compresi in intervalli ristretti e commercialmente soddisfacenti 90 CAPITOLO 3. DIODI vi + vi t C _ vo vo t (a) (b) Figura 3.18: (a) Rivelatore di picco; (b) Forme d’onda: l’uscita resta al valore massimo raggiunto dalla tensione d’ingresso. Un diodo Zenere puo’ avere, ad esempio, una tensione Vz di 5 V e una resistenza dinamica rz = 10 Ω con 10 mA di corrente. Questo significa che una variazione del 10% nella corrente provoca una variazione di tensione di 10 mV , dimostrando quindi la capacita’ stabilizzatrice del diodo. La stabilizzazione puo’ essere ottenuta con un circuito come quello schematizzato in Fig 3.20, dove RL e’ il carico utilizzatore, e Vin e’ una sorgente di tensione maggiore di VZ , tensione Zener del diodo. In tale situazione la tensione Vout e’ stabilizzata al valore VZ . La scelta del valore ottimale del resistore R e’ legata al valore del carico RL e quindi alla corrente che deve essere fornita dal sistema, nonche’ al valore della resistenza dinamica del diodo utilizzato. I V (b) (a) Zener reale Zener ideale Figura 3.19: (a) Simbolo circuitale del diodo Zener; (b) Curva caratteristica del diodo nella regione di breakdown: lo Zener ideale dovrebbe avere resistenza dinamica zero, ovvero mostrare una pendenza infinita in questa regione. 91 3.5. ALTRI DIODI R Vin RL Vout Figura 3.20: Stabilizzatore con diodo Zener. LED I LED (Light Emitting Diode) sono particolari tipi di diodi costruiti per emettere luce. Sono costituiti da una giunzione pn costituite da particolari sostanze (arseniuro di gallio, fosfuro di gallio, e diverse altre). Quando la giunzione e’ polarizzata direttamente si ha una ricombinazione continua di elettroni e lacune, e l’energia guadagnata viene emessa sotto forma di luce. L’esatta scelta dei semiconduttori determina la lunghezza d’onda dell’emissione di picco dei fotoni, l’efficienza nella conversione elettro-ottica e quindi l’intensità luminosa in uscita. La caduta di tensione ai capi del LED e’ anch’essa variabile, in base al tipo, ed e’ in genere nell’intervallo 1 ÷ 2 V . I LED devono quindi essere alimentati in polarizzazione diretta6 con una sorgente di tensione costante e protetti da una resistenza in serie per evitare superare la corrente massima che essi possono sopportare. Fotodiodi Il fotodiodo e’ costituito da una giunzione pn polarizzata inversamente. Un fotone incidente nella regione di svuotamento , se ha l’energia sufficiente, puo’ ionizzare un legame e dar luogo ad una coppia elettrone-lacuna; in sostanza, la luce incidente sulla giunzione provoca la nascita di una corrente inversa nel diodo. Il fotodiodo puo’ quindi essere utilizzato come rivelatore di luce. Se non si applica nessuna polarizzazione esterna si ha comunque una corrente legata alla luce incidente, dato che la giunzione e’ polarizzata inversamente di per se. Questo e’ il principio di funzionamento delle cosidette celle fotovoltaiche. Diodo Schottky Figura 3.21: Simbolo del diodo Schottky. Il diodo Schottky e’ una giunzione tra un metallo e un semiconduttore di tipo p7 . Quando si forma la giunzione si ha una diffusione di elettroni dal metallo al silicio;gli elettroni neutralizzano le lacune, si crea un campo elettrico ed una regione di svuotamento nelle vicinanze della giunzione stessa. Nasce quindi una barriera di potenziale e una situazione di equilibrio che impedisce l’ulteriore diffusione. Notare che in questo caso non si ha diffusione di portatori p dal silicio al metallo, quindi la regione di svuotamento e’ solo nel lato p. Questo diodo ha un comportamento simile al diodo pn e un’analoga curva 6 In genere l’anodo del LED, ovvero il terminale positivo, e’ riconoscibile dalla maggiore lunghezza. Si puo’ costruire un diodo Schottky anche con un materiale semiconduttore di tipo n, per brevita’ ci limitiamo a parlare del tipo p. 7 92 CAPITOLO 3. DIODI caratteristica. Applicando una differenza di potenziale esterna positiva si puo’ abbassare la barriera di potenziale ed avere una corrente; se invece la tensione esterna e’ negativa il diodo non conduce. Il ginocchio della curva e’ pero’ a circa 0.35 V , cioe’ abbastanza piu’ basso rispetto ad un normale diodo. La velocita’ di commutazione del diodo Schottky e’ molto piu’ elevata e la capacita’ della giunzione e’ piu’ bassa8 . Il simbolo comunemente utilizzato per il diodo Schottky e mostrato in Fig 3.21. Il diodo Schottky ha varie applicazioni; ne vedremo una quando parleremo dei circuiti logici nel Cap7. 8 Non tutte le giunzioni metallo-semiconduttore danno luogo all’effetto Schottky, ovvero all’effetto di rettificazione. Entrano in gioco il potenziale di estrazione del metallo e la concentrazione di impurezze del silicio, quindi il discorso e’ abbastanza complesso, e non conviene qui approfondirlo. Capitolo 4 Transistor a giunzione (BJT) 4.1 Il transistor a giunzione (b) (a) C E n Emettitore p Base n C B Collettore E B Figura 4.1:(a) Il transistor npn;(b) Simbolo circuitale Il transistor e’ un dispositivo realizzato con un cristallo semiconduttore composto da tre regioni di diverso drogaggio: due di tipo p separate da una sottile regione di tipo n (in questo caso si parla di transistor pnp), ovvero due di tipo n separate da una sottile regione di tipo p (transistor npn). Nella Fig. 4.1(a) e’ mostrato la struttura di principio un transistor npn: le tre regioni (ciascuna dotata di una opportuna connessione metallica verso l’esterno) prendono il nome di Emettitore, Base e Collettore. Nella Fig. 4.1(b) e’ mostrato il simbolo circuitale del transistor: la freccia nel terminale di emettitore ricorda il verso della giunzione pn tra base ed emettitore. Quando il transistor non e’ connesso con l’esterno si crea una situazione di equilibrio che possiamo comprendere ricordando il comportamento del diodo. A cavallo delle due giunzioni si creano due regioni di svuotamento (Fig. 4.2(a)); le cariche fisse non neutralizzate generano attorno ad ogni giunzione un campo elettrico e, in definitiva, due barriere di potenziale (Fig. 4.2(b)). Le giunzioni sono attraversate da correnti, di drift e di diffusione, complessivamente nulle. Ci sono naturalmente quattro possibili modi di polarizzare un transistor con dei generatori di tensione esterni, in relazione alla polarizzazione, diretta o inversa, delle due giunzioni. 93 94 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Regioni di svuotamento (a) n p Emettitore (b) n Collettore Base V Barriera di potenziale x Figura 4.2: (a) Vista espansa delle due giunzioni, per mettere in evidenza le regioni di svuotamento; (b) Andamento del potenziale lungo una coordinata ortogonale alle giunzioni. Ognuno dei modi ha un nome specifico, come segue: Polarizzazione della Polarizzazione della Modo giunzione Emettitore - Base giunzione Collettore - Base diretta inversa Attivo inversa inversa Interdizione diretta diretta Saturazione inversa diretta Attivo-inverso Esaminiamo anzitutto il modo attivo: la giunzione base - emettitore e’ polarizzata direttamente, mentre la giunzione collettore - base e’ polarizzata inversamente (Fig. 4.3). In questa situazione, come abbiamo visto per il diodo, si ha una corrente di diffusione tra emettitore e base: lacune diffondono dalla base verso l’emettitore, e elettroni diffondono in senso inverso. Poiche’ in genere lo spessore della base e’ abbastanza piccolo, una grossa frazione degli elettroni puo’ arrivare all’altra giunzione: qui essi vengono accelerati dal campo elettrico attraverso la regione di svuotamento e passano nel collettore. La residua frazione (piccola) di elettroni si ricombina con le lacune maggioritarie nella base. Ora l’intensita’ delle due correnti di diffusione (delle lacune e degli elettroni) e’ diret- 95 4.1. IL TRANSISTOR A GIUNZIONE elettroni raccolti nel collettore elettroni iniettati nella base n p n IC IE E C lacune iniettate nell’emettitore VBE B IB elettroni ricombinati nella base Figura 4.3: Flusso delle correnti in un transistor npn polarizzato nella regione attiva (non sono mostrate le correnti di drift inverse dovute ai portatori minoritari). VCB tamente legata alla concentrazione di impurezze; percio’ si costruisce il transistor con un emettitore fortemente drogato, e la base solo lievemente drogata. In questa situazione il contributo della corrente di diffusione delle lacune puo’ essere reso trascurabile. In sostanza allora si ha che la corrente che fluisce nell’emettitore, IE , e’ dovuta solo agli elettroni e la corrente di collettore, IC , e’ uguale a IC = −αF IE (4.1) dove il segno meno e’ dovuto alla scelta convenzionale dei versi delle correnti (tutte entranti nel transistor). Il parametro αF rappresenta appunto la frazione di elettroni raccolta dal collettore e, come abbiamo visto, e’ molto vicina ad 1. La corrente che entra nella base, IB , e’ facilmente calcolabile dalla relazione IB + IC + IE = 0 (4.2) Combinando la 4.1 e 4.2 otteniamo facilmente tutte le relazioni tra le correnti IB = −(1 − αF )IE IB IE = − 1 − αF αF IC = IB 1 − αF (4.3) (4.4) (4.5) In particolare, l’ultima relazione puo’ essere scritta IC = β F IB dove βF = αF 1 − αF (4.6) (4.7) Poiche’ αF e’ prossimo ad 1, βF e’ un numero grande e rappresenta appunto il rapporto tra corrente di collettore e corrente di base, quando il transistor e’ polarizzato in modo 96 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) attivo. In realta’, nel nostro ragionamento, abbiamo trascurato il contributo della corrente di polarizzazione inversa del diodo collettore - base, ISC , considerata costante e indipendente dalla tensione di polarizzazione inversa 1 . A stretto rigore, quindi, la corrente di collettore e’ data da IC = −αF IE + ISC (4.8) ISC e’ molto piccola e quindi generalmente trascurabile. Come comprenderemo in seguito si ha interesse ad avere il fattore αF il piu’ possibile vicino E B C n p n Figura 4.4: La struttura effettiva di un transistor npn: con questa geometria il collettore raccoglie molto efficacemente gli elettroni provenienti dall’emettitore. ad 1. Percio’ la geometria effettiva del transistor e’ assai simile a quella schematizzata in Fig. 4.4: il collettore “avvolge” l’emettitore e gli elettroni iniettati nella base hanno quindi poche possibilita’ di sfuggire alla cattura da parte del collettore stesso, ricordando che lo spessore della base e’ estremamente piccolo. Modo attivo-inverso In linea di principio il comportamento del transistor in modo attivo-inverso e’ speculare rispetto al modo attivo. Ora la giunzione collettore-base e’ polarizzata direttamente, mentre la giunzione emettitorebase e’ polarizzata inversamente. Gli elettroni iniettati dal collettore nella base sono in parte raccolti dall’emettitore. Se il contributo delle lacune e’ trascurabile, si ha, in analogia alla 4.1, I E = αR I C (4.9) E possiamo poi anche definire un parametro βR , come αR βR = 1 − αR (4.10) che costituisce il rapporto tra corrente di emettitore e corrente di base. Tuttavia, come abbiamo detto, il transistor e’ costruttivamente asimmetrico. Di fatto il valore di αR e’ molto lontano da 1 (puo’ essere dell’ordine di 0.4 − 0.6) e non ha quindi nessun senso utilizzare il transistor in questo modo. 4.1.1 Modello di Ebers-Moll del transistor Dalle considerazioni che abbiamo fatto si comprende che il transistor puo’ essere quantitativamente descritto come un sistema di due diodi, correlati tra loro, come mostrato nella Fig. 4.5. La giunzione emettitore-base e’ qui rappresentata da un diodo, con in parallelo un generatore (ideale) di corrente che rappresenta appunto il contributo proveniente dall’altro diodo; lo stesso avviene nel ramo di collettore. 1 Nello studio del diodo avevamo chiamato questo parametro IS . Qui lo chiamiamo ISC per ricordare che e’ pertinente alla giunzione collettore - base. 97 4.1. IL TRANSISTOR A GIUNZIONE αRICD αF IED IE IC IED VBE ICD IB Figura 4.5: Modello di Ebers-Moll del transistor npn. Si noti che abbiamo scelto il verso di tutte le correnti come entrante. VBC Usando le equazioni dei diodi2 si ha IE = αR ICD − IED IC = αF IED − ICD VBC VBE = αR ISC (e VT − 1) − ISE (e VT − 1) VBC VBE = αF ISE (e VT − 1) − ISC (e VT − 1) (4.11) (4.12) Le quantità ISC e ISE sono le correnti di saturazione inversa dei due diodi. ISC , ISE , αR , αF sono funzione delle densità di impurezze e della geometria. In sostanza sono parametri costruttivi e possono essere determinati solo sperimentalmente. La quantita’ piu’ importante e’ ovviamente αF ISE ; si puo’ dimostrare che questo fattore, che spesso viene denominato Is e’ dato da Is ≡ αF ISE = AqDn n2i NA W (4.13) dove A e’ l’area della giunzione pn, W lo spessore della base, Dn il coefficiente di diffusione degli elettroni, NA la concentrazione di impurezze nella base, ni la concentrazione intrinseca dei portatori nel silicio. Poiche’ quest’ultima e’ fortemente dipendente dalla temperatura, anche Is lo e’. Comunque si vede che Is dipende in modo semplice dalla geometria, il che e’ chiaramente importante nella progettazione del transistor. Si puo’ poi dimostrare che esiste una relazione tra i vari parametri αR ISC = αF ISE (4.14) che e’ detta condizione di reciprocita’. Come gia’ abbiamo detto αF ≈ .9 ÷ .995; invece αR ≈ .4 ÷ .8. Le costanti IES e ICS sono dell’intervallo 10−12 − 10−18 A. Infine e’ chiaro che la corrente di base, IB , e’ facilmente calcolabile IB = −(IE + IC ) Le equazioni di Ebers - Moll consentono di descrivere il comportamento del transistor in tutti i modi di polarizzazione. Se ad esempio il transistor e’ polarizzato in modo attivo 2 Nell’equazione del diodo (vedi Cap. 3) avevamo un fattore correttivo η nell’esponenziale. Questo fattore e’ circa 1 nei transistor al silicio, salvo casi particolari, quindi verra’ nel seguito omesso. 98 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) (ovvero VBC < 0 e VBE > 0), avremo IE IC VBE ≃ −ISE (e VT − 1) VBE ≃ αF ISE (e VT − 1) (4.15) (4.16) cioè IC ≃ −αF IE (4.17) quindi ritroviamo quanto avevamo dedotto in modo empirico. Lo stesso si verifica se il transistor e’ in modo attivo inverso. Se entrambe le giunzioni sono polarizzate in modo inverso, tutte le correnti sono praticamente nulle; si dice allora che il transistor e’ in interdizione. Possiamo poi vedere cosa succede se entrambe le giunzioni sono polarizzate direttamente (regione di saturazione); approssimando l’equazione 4.12 VBE VBC IC ≃ αF ISE e VT − ISC e VT (4.18) Utilizzando la relazione 4.14 e approssimando αF ad 1 si ottiene VBC VBE I SE )e VT IC ≃ ISE e VT − ( αR (4.19) i due termini sono in sottrazione, percio’ la corrente diminuisce; ma il secondo, a causa di αR , cresce piu’ rapidamente del primo e comincia a giocare un ruolo quando VBC ≃ 0.4 V , e la corrente del collettore diminuisce fino ad annullarsi, quando VBC cresce oltre un certo limite. 4.1.2 Curve caratteristiche del transistor Configurazione a base comune Possiamo ora cominciare a utilizzare il transistor in un circuito, per capire come dovremo trattarlo. Partiremo dalla cosiddetta configurazione a base comune, rappresentata nella Fig. 4.6. Il nome deriva dal fatto che il terminale di base costituisce l’elemento comune tra le due maglie. Le equazioni delle due maglie sono IE RE IC RC IB VEE VCC Figura 4.6: Configurazione a base comune. 99 4.1. IL TRANSISTOR A GIUNZIONE = IC RC + VCB (4.20) −VEE = RE IE + VEB (4.21) IB + IC + IE = 0 (4.22) VCC Inoltre abbiamo la relazione Infine tra le correnti IE , IC e le tensioni VCB e VBE si hanno le condizioni imposte dalle iE (a) v BE Regione attiva Regione di saturazione iC iE = IE1 (b) iE = IE2 iE = IE3 iE = IE4 iE = IE5 v CB Figura 4.7: Configurazione a base comune: (a) Caratteristica d’ingresso; (b) Caratteristiche di uscita. equazioni di Ebers-Moll. Queste ultime contengono i parametri costruttivi specifici del transistor che si sta utilizzando. Si capisce quindi che lo studio del circuito e’ un problema non lineare di non facile soluzione. In realta’, come vedremo, utilizzando ragionevoli approssimazioni, si puo’ arrivare molto facilmente a risolverlo; ma prima e’ conveniente ed istruttivo visualizzare il comportamento del transistor attraverso alcuni grafici, le curve caratteristiche del transistor, ricavate dalle quazioni di Ebers-Moll. E’ di uso comune utilizzare due grafici. Nel primo (Fig. 4.7(a)) si riporta iE in funzione di vBE , quando la giunzione base-emettitore e’ polarizzata direttamente. Come si vede e’ sostanzialmente la curva del diodo polarizzato direttamente che abbiamo studiato nel Capitolo precedente. Lo stato del diodo base-collettore e’ sostanzialmente non influente, 100 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) come si capisce dall’equazione di Ebers-Moll 4.123 . Nell’altro grafico si riporta IC in funzione di VCB , per vari valori della corrente IE (Fig. 4.7(b)). Per VCB > 0 il transistor e’ nella regione attiva; le varie curve sono sostanzialmente orizzontali, ad un’ordinata IC ≃ IE , come ci aspettiamo da quanto abbiamo visto in precedenza. Quando VCB diviene negativo e supera un valore di circa −0.4 V si entra nella regione di saturazione (vedi la 4.19): le curve si schiacciano addensandosi e IC arriva a zero. iB (a) iC Regione di saturazione v BE Regione attiva (b) iB = IB1 iB = IB2 iB = IB3 iB = IB4 iB = IB5 v CE Figura 4.8: Configurazione a emettitore comune: (a) Caratteristica d’ingresso; (b) Caratteristiche di uscita. Configurazione a emettitore comune E’ naturalmente possibile inserire il transistor in modo diverso in un circuito. La Fig. 4.9 mostra un esempio di configurazione ad emettitore comune: questa volta e’ il terminale di emettitore comune alle due maglie. E’ usuale anche in questo caso studiare graficamente la relazione tra le variabili elettriche del transistor. Nella Fig. 4.8(a) si riporta iB in funzione di vBE . Poiche’ iB e’ sostanzialmente proporzionale ad iE queste curve sono simili a quelle della Fig. 4.7(a). Nella 3 In realta’ la corrente iE ha una lieve dipendenza da VCB , dovuta all’effetto Early, di cui parleremo piu’ avanti. Si ha quindi una famiglia di curve, molto vicine tra loro, che descrivono questa dipendenza. Tuttavia questa dipendenza e’ irrilevante ai fini pratici. 4.1. IL TRANSISTOR A GIUNZIONE IC IB RB RC IE VBB 101 VCC Figura 4.9: Configurazione a emettitore comune. Fig. 4.8(b) si riporta iC in funzione di vCE per vari valori di iB . Nella regione attiva ci aspettiamo che iC sia proporzionale ad iB e sostanzialmente indipendente da VCE . Questo e’ vero solo approssimativamente, in realta’, come mostrato nel grafico, le curve hanno una pendenza positiva: iC cresce leggermente al crescere di vCE , in modo non previsto dalle equazioni di Ebers-Moll. Questo effetto, noto come effetto Early, verra’ discusso piu’ avanti. Quando VCE si avvicina a zero si entra nella regione di saturazione: il diodo base-collettore comincia a condurre (vedi la 4.19)e non si ha piu’ una relazione lineare tra IC e IB e le curve si addensano: piccole variazioni di VCE provocano enormi variazioni di corrente. Questo avviene per valori di VCE di circa 0.2 V (per transistor al silicio). Ai fini pratici questa quantita’ puo’ essere considerata praticamente costante ed e’ denominata comunemente VCEsat . Quando VCE diviene molto grande (dell’ordine di 80−100; V ) si puo’ raggiungere la regione di breakdown: la giunzione inizia a condurre in modo violento e’ le curve di iC acquistano una fortissima pendenza (questo fenomeno non e’ riportato nel grafico). Configurazione a collettore comune Il transistor puo’ essere anche utilizzato in una configurazione a collettore comune, come vedremo meglio successivamente. Il comportamento in questa configurazione si riconduce facilmente a quello del caso precedente e non richiede quindi uno studio particolare. Modello del transistor in continua Quando utilizziamo un transistor dobbiamo polarizzarlo, ovvero costruire una rete che lo mantenga nello stato (o, come si dice spesso, nella regione) desiderato. Possiamo imparare a farlo utilizzando la configurazione ad emettitore comune, con il circuito schematizzato in Fig. 4.10. Osserviamo anzitutto che in questa configurazione le due tensioni di polarizzazione hanno lo stesso segno, quindi e’ molto piu’ semplice ed economico utilizzare un solo generatore di tensione, VCC , anziche’ due, come avevamo nella Fig. 4.9. Possiamo scrivere le equazioni delle due maglie VCC = RB IB + VBE (4.23) VCC = RC IC + VCE (4.24) L’equazione 4.24 rappresenta una retta nel piano iB − vBE (retta di carico): la sua intersezione con la curva caratteristica consente di determinare i valori di effettivi di corrente 102 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC RC RB Figura 4.10: Transistor a emettitore comune, con un’unica alimentazione. e tensione, che abbiamo indicato con IBQ e VBEQ nella Fig. 4.11(a). L’equazione 4.24 rappresenta invece una retta nel piano iC − vCE (retta di carico): la sua intersezione con la curva iB = IBQ (determinata nell’altro grafico) ci consente di determinare ICQ e VCEQ (Fig. 4.11(b)). L’insieme dei valori di corrente e tensione definisce quello che si chiama il punto di lavoro del transistor. Percio’, scegliendo VCC , RC ed RB potremo in sostanza determinare il punto di lavoro a nostro piacimento e, in particolare, decidere se vogliamo lavorare nella regione attiva, o, come a volte e’ necessario, nella regione di saturazione. Purtroppo questa procedura e’ iB VCC VCC iC RC RB iB = IBQ ICQ IBQ VBEQ v BE VCC VCC (a) v CE VCEQ (b) Figura 4.11: Il punto di lavoro del transistor: (a) Retta di carico e punto di lavoro nella maglia di base; (b) Retta di carico e punto di lavoro nella maglia di collettore. In questo esempio il punto di lavoro e’ nella regione attiva abbastanza complessa, poiche’ la determinazione del punto di lavoro richiede la soluzione di sistemi non lineari. Ma soprattutto e’ del tutto accademica: la nostra conoscenza delle curve iC − vCE e’ molto modesta. Pur tralasciando la piccola pendenza delle curve dovuta all’effetto Early, il loro livello, approssimandole a rette orizzontali, e’ determinato dal 103 4.1. IL TRANSISTOR A GIUNZIONE parametro βF 4 . Questo parametro varia moltissimo da un esemplare all’altro della stessa famiglia di transistor. Prendendo ad esempio il transistor commerciale 2N2222A si legge nei fogli caratteristici che esso puo’ variare tra 30 e 300. E’ percio’ poco sensato fare calcoli precisi, ma inutilmente complicati. E’ piu’ ragionevole procedere con grossolane ma del tutto adeguate approssimazioni. Possiamo quindi anzitutto risolvere l’equazione 4.24 assumendo che la caduta di tensione ai capi della giunzione base-emettitore sia costante VBEQ ≃ 0.7 V (4.25) ovvero la stessa approssimazione che viene comunemente utilizzata per la caduta di tensione ai capi di un diodo. Ricaviamo quindi immediatamente IBQ ≃ VCC − 0.7 RB (4.26) Possiamo a questo punto ricavare la corrente di collettore, nella regione attiva ICQ ≃ βF IBQ (4.27) VCEQ ≃ VCC − RC ICQ (4.28) e infine Nell’ipotesi di conoscere βF (sostanzialmente significa misurarlo per l’esemplare che stiamo utilizzando) questa semplice procedura ci consente di progettare il nostro circuito. Un esempio numerico puo’ servire a chiarire questo procedimento. Supponiamo di avere un transistor con βF = 100 (misurato) e di voler costruire una rete che polarizzi il transistor nella regione attiva, utilizzando un alimentatore con VCC = 10 V . Purtroppo a priori non si sa se il transistor è nella regione attiva o no: bisogna quindi fare l’ipotesi che lo sia e verificare a posteriori se i risultati ottenuti sono coerenti con l’ipotesi. Scegliamo RB = 300 kΩ, avremo allora IB = 10 − 0.7 ≃ 31 µA 300 kΩ Quindi, nell’ipotesi che il transistor sia nella regione attiva IC = βF IB = 3.1 mA Scegliamo infine RC = 2 kΩ, con cui otteniamo VCE = 10 − 3.1 mA × 2 kΩ ≃ 3.8 V Troviamo che VCE > VCEsat , quindi e’ verificata l’ipotesi di essere nella regione lineare. Supponiamo ora di sostituire il nostro transistor, con un altro esemplare, della stessa famiglia, ma con βF = 200. Si trova allora IB = 31µA IC = 6.2mA 4 Questo parametro e’ normalmente denominato hF E dai fabbricanti di transistor, per motivi che diverranno chiari piu’ avanti. 104 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) e VCE = VCC − IC RC < 0 cioe’ un risultato fisicamente assurdo. Questo vuol dire che il transistor non é nella regione attiva, bensì in saturazione. Quando un transistor e’ in saturazione non c’e’ una relazione lineare tra IB e IC ; possiamo pero’ approssimativamente conoscere il valore di VCE , ovvero VCE = VCEsat ≃ 0.2 V Si ha quindi IC = VCC − VCEsat = 4.90 mA RC Da questo esempio dovrebbe quindi essere chiaro che lo stato del transistor dipende in modo articolato dal complesso dei parametri circuitali, e da βF . Se si desidera che il transistor sia nella regione attiva occorre assicurarsi che VCE = VCC − βF (VCC − VBE ) RC >> VCEsat RB Molto approssimativamente questo significa che dobbiamo avere βF RC < RB se vogliamo che il transistor sia in regione attiva, l’opposto se invece vogliamo che il transistor sia in saturazione . E’ chiaro che questo circuito e’ molto critico, perche’ il suo comportamento dipende da C B 0.7V β IB F C B VBEsat VCEsat E E (a) (b) Figura 4.12: (a) Circuito equivalente nella regione attiva; (b) Circuito equivalente nella regione di saturazione. un parametro poco riproducibile e difficilmente controllabile. Vedremo in seguito come problemi di questo tipo possono essere risolti. Per concludere, da quanto abbiamo discusso qui emerge che il transistor, nella regione attiva, e’ equivalente al circuito rappresentato nella Fig. 4.12(a), mentre nello stato di saturazione puo’ essere rappresentato dal circuito in Fig. 4.12(b). Effetto Early Le equazioni di Ebers-Moll descrivono correttamente il transistor, ma occorre tenere presente che αF (e anche αR , ma e’ assai poco rilevante) non e’ costante. Quando il transistor e’ nella regione attiva, esso e’ in realta’ dipendente dal valore di VCB . Questo effetto, noto come effetto Early, e’ dovuto alla variazione dello spessore effettivo della base al variare di VCB (e quindi anche di VCE ). Quando VCB cresce, la regione di svuotamento a cavallo della giunzione base-collettore si allarga e questo migliora l’efficienza di raccolta degli elettroni nel collettore: in sostanza αF cresce, anche se di poco. Queste variazioni hanno un 105 iC Regione di saturazione 4.1. IL TRANSISTOR A GIUNZIONE Regione attiva iB = ... iB = ... iB = ... iB = ... v CE -VA Figura 4.13:IC in funzione di VCE C B 0.7V β IB F ro Figura 4.14: E Circuito equivalente del transistor in regione attiva, modificato per tener conto dell’effetto Early. effetto poco visibile nella configurazione a base comune ma sono visibili nella configurazione a emettitore comune, poiche’ piccolissime variazioni di αF producono variazioni non del tutto irrilevanti in βF . Nella Fig. 4.13 mostriamo di nuovo le curve iC in funzione di vCE , per vari valori di iB , in scala ingrandita per chiarezza. I tratti rettilinei delle curve mostrano una pendenza positiva; estrapolando le curve verso sinistra esse incontrano l’asse vCE in un singolo punto, indicato in figura con VA . Questa dipendenza puo’ essere quindi espressa come vBE vCE iC = IS e VT (1 + ) (4.29) VA In termini circuitali questo effetto si traduce nel fatto che la resistenza d’uscita guardando il collettore non e’ infinita. Il circuito equivalente della Fig. 4.12(a) dovrebbe essere modificato come mostrato nella Fig. 4.14. La resistenza ro e’ definita come 1 ∂iC (4.30) ≡ ro ∂vCE v =cost BE e dalla 4.29 possiamo quindi ricavare ro = VA + vCE iC (4.31) cioe’ questa resistenza decresce all’aumentare di iC (come e’ evidente dai grafici, peraltro). Ai fini della polarizzazione del transistor l’effetto Early puo’ essere trascurato e si puo’ 106 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) considerare iC dipendente solo da IB . Viceversa la resistenza ro puo’ non essere irrilevante nello studio degli amplificatori a transistor, come vedremo in seguito. 4.1.3 Utilizzazione del transistor Uno dei piu’ importanti campi di utilizzazione dei transistor e’ nella realizzazione di amplificatori, e su questo argomento discuteremo ampiamente nel resto di questo Capitolo. Il punto fondamentale sta nel fatto che quando il transistor e’ nella regiona attiva esso iC Q Figura 4.15: La transcaratteristica iC − vBE del transistor. Per piccole variazioni di vBE attorno al punto di lavoro v BE Q la curva puo’ essere approssimata con una retta. agisce come una sorgente di corrente controllata in tensione. Variazioni nella tensione baseemettitore, vBE , provocano variazioni nella corrente di collettore, iC . Quindi il transistor puo’ essere utilizzato come amplificatore di transconduttanza (vedi Capitolo 1); l’amplificazione di tensione puo’ poi semplicemente essere ottenuta facendo passare la corrente di collettore in un resistore RC , come vedremo. Per ottenere il nostro scopo dovremo far lavorare il transistor nella regione attiva, quindi polarizzarlo opportunamente in modo da avere una certa tensione di quiete VBE ed una certa corrente di quiete IC . Poi sovrapporremo il segnale da amplificare, vbe , alla tensione continua VBE ; dovremo limitare l’ampiezza di vbe ad essere piccola, in modo che la corrispondente variazione di iC sia linearmente correlata ad essa. Studieremo piu’ avanti in grande dettaglio il comportamento del transistor per piccoli segnali. Qui vogliamo comprendere il comportamento globale. Nella Fig. 4.16(a) vediamo la struttura base di un amplificatore ad emettitore comune, cioe’ la configurazione piu’ comunemente usata. La tensione d’ingresso totale, vI (segnale + polarizzazione), e’ applicata alla base, mentre la tensione totale d’uscita, vO (segnale piu’ polarizzazione) e’ prelevata tra il collettore e la massa. il resistore RC , oltre a servire per la polarizzazione, ha anche il compito di convertire il segnale di corrente ic in un segnale di tensione, vce (ovvero vo ). La Fig. 4.16(b) mostra la caratteristica di trasferimento, cioe’ la relazione tra vO e vI . Per comprendere questa curva possiamo anzitutto esprimere vO come vO ≡ vCE = VCC − RC iC (4.32) Osserviamo poi che se vI < 0.5 V il transistor e’ in interdizione; pertanto iC e’ trascurabile e vO e’ praticamente uguale a VCC . In sostanza il transistor, tra collettore ed emettitore, 107 4.1. IL TRANSISTOR A GIUNZIONE vO Interdizione VCC VCC iC Regione attiva Saturazione RC Q VCE vO vI Figura 4.16: VCEsat 0.5 (a) VBE 1.0 (b) vI (V) (a) Struttura base di un amplificatore a emettitore comune; (b) Caratteristica di trasferimento vo − vI . puo’ essere visto come un interruttore aperto. Quando vI supera 0.5 − 0.6 V il transistor comincia a condurre e iC cresce, quindi vO diminuisce: in questa regione piccoli incrementi di vI provocano una larga variazione di iC e quindi vO decresce fortemente. Qui abbiamo infatti vI vBE (4.33) i C = I S e VT = I S e VT dove abbiamo trascurato per semplicita’ l’effetto Early. Quindi otteniamo vO = VCC vI − RC I S e V T (4.34) Questa discesa si esaurisce quando la tensione del collettore diventa piu’ piccola di quella della base di circa 0.4 V : il transistor entra nella regione di saturazione. A questo punto variazioni di vI non hanno effetto su vO , che rimane a un valore circa costante attorno a 0.2 V (VCEsat ). Si noti che in questa situazione la resistenza tra collettore ed emettitore, RCEsat , e’ molto bassa, quindi il transistor puo’ essere pensato come un interruttore chiuso. Per utilizzare questo circuito come amplificatore occorre polarizzarlo su un punto di lavoro interno alla regione attiva (il punto Q nella Fig. 4.16(b)), dove i valori statici delle grandezze elettriche sono IC = IS vBE e VT (4.35) e VCE = VCC − RC IC (4.36) Se ora applichiamo all’ingresso un segnale vi abbastanza piccolo, sovrapposto a VBE , il punto di lavoro si muove lungo la curva di trasferimento: l’amplificazione di tensione e’ 108 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) data quindi dalla pendenza di questa curva attorno al punto di lavoro dvO Av ≡ dvI v =V I (4.37) BE Utilizzando la 4.35 e la 4.36 ricaviamo vBE RC IC 1 Av = − RC IS e VT = − VT VT (4.38) Notiamo che l’amplificazione e’ negativa: cio’ vuol dire che il segnale d’uscita e’ sfasato ◦ di 180 rispetto al segnale d’ingresso. La semplice espressione 4.38 ci dice inoltre che l’amplificazione e’ semplicemente data dal rapporto tra la caduta di tensione RC IC e VT . Questo in sostanza determina un limite massimo all’amplificazione che si puo’ ottenere, per un valore fissato dell’alimentazione VCC . Se, ad esempio, vogliamo construire un amplificatore in grado di amplificare nella stessa misura la parte positiva e la parte negativa del segnale, senza distorsione, dovremo scegliere il punto di lavoro all’incirca al centro della regione attiva, ovvero VCC 2 e quindi la massima amplificazione ottenibile sara’ data da VCE ≃ Avmax = − VCC 2VT (4.39) (4.40) VCC RB RC IC vo Figura 4.17: Il transistor utilizzato come interruttore. Il transistor puo’ anche essere utilizzato per realizzare interruttori pilotati (switch), come nel circuito esemplificativo mostrato in Fig 4.17. Se la base e’ connessa a massa, il transistor e’ in interdizione, la corrente IC e’ nulla e l’uscita rimane alla tensione vo = VCC . Se invece la base e’ connessa alla tensione positiva, il transistor va in saturazione (scegliendo opportunamente RB ed RC ). Allora vo = VCEsat ≃ 0.2 V e la corrente IC e’ data da VCC − 0.2 RC Funzionamenti di questo tipo sono il punto di partenza per la costruzione di circuiti logici che studieremo nel Capitolo 7.7. IC = 109 4.2. AMPLIFICATORE AD EMETTITORE COMUNE 4.1.4 Il transistor pnp lacune raccolte nel collettore lacune iniettate nella base (a) p n (b) p C IC IE E C B E elettroni iniettati nell’emettitore B IB VBE lacune ricombinate nella base VCB Figura 4.18: (a) Flusso delle correnti in un transistor pnp polarizzato nella regione attiva (non sono mostrate le correnti di drift inverse dovute ai portatori minoritari); (b) Simbolo circuitale del transistor pnp Il funzionamento di un transistor pnp e’ del tutto simile a quello del transistor npn. Nella fig. 4.18 e’ mostrato un transistor pnp polarizzato per operare nella regione attiva. Percio’ la tensione VBE deve essere positiva, e la tensione VCB negativa. In questo caso la corrente e’ portata principalmente dalle lacune iniettate nella base dall’emettitore, mentre il contributo degli elettroni iniettati in verso opposto e’ mantenuto trascurabile dallo scarso livello di drogaggio della base. Il comportamento di questo componente e’ quindi specularmente identico a quanto visto per il transistor npn; non e’ quindi necessario discuterlo ulteriormente. 4.2 Amplificatore ad emettitore comune Come abbiamo gia’ detto la configurazione a emettitore comune e’ comunemente usata per realizzare amplificatori di tensione. Prima di studiare in dettaglio la concreta realizzazione circuitale conviene esaminare le caratteristiche concettuali. 4.2.1 Analisi per piccoli segnali Prendiamo lo schema concettuale della Fig. 4.19(a), dove il transistor e’ polarizzato nella regione attiva grazie a due tensioni costanti VCC e VBE . 110 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC IC VCC iC RC RC VCE vCE vbe VBE + _ VBE (a) Figura 4.19: (a) Struttura base di un amplificatore a emettitore comune, polarizzato nella regione attiva; (b) All’ingresso viene sovrapposto il segnale da amplificare. (b) Possiamo quindi scrivere le seguenti relazioni: IC IE IB VCE VBE = I S e VT IC = αF IC = βF = VCC − IC RC (4.41) (4.42) (4.43) (4.44) Se ora applichiamo un segnale vbe all’ingresso, la tensione istantanea base-emettitore diviene vBE = VBE + vbe (4.45) conseguentemente iC vBE = I S e VT VBE + vbe VT = IS e VBE vbe = I S e VT e VT (4.46) (4.47) (4.48) Utilizzando la (4.42) possiamo infine scrivere vbe i C = I C e VT (4.49) Ora, se vbe << VT possiamo approssimare la (4.49) sviluppando in serie al primo ordine iC ≃ IC (1 + IC vbe ) = IC + vbe VT VT (4.50) 4.2. AMPLIFICATORE AD EMETTITORE COMUNE 111 In questa approssimazione la corrente istantanea di collettore e’ composta dalla corrente continua di polarizzazione, IC , e da una componente di segnale, ic , data da IC vbe VT (4.51) ic = gm vbe (4.52) ic = che possiamo riscrivere dove gm , che prende il nome di transconduttanza, e’ data da gm = IC VT (4.53) In termini piu’ formali (vedi Fig. 4.20) possiamo definire la transconduttanza come la iC la tangente alla curva nel punto Q Q Figura 4.20: La transconduttanza del transistor e’ la pendenza della tangente alla curva iC − vBE nel punto Q. v BE derivata della corrente iC rispetto alla tensione vBE , calcolata nel punto di lavoro ∂iC (4.54) gm ≡ ∂vBE i =I C C Questa analisi dimostra che il transistor si comporta come una sorgente di corrente controllata in tensione. La transconduttanza varia linearmente con la corrente statica IC , quindi, per avere un valore costante di essa, dovremo cercare di mantenere costante IC . Si puo’ ottenere un segnale di tensione prelevando l’uscita sul collettore. La tensione istantanea e’ data da vCE = VCC − iC RC = VCC − (IC + ic )RC = (VCC − IC RC ) − ic RC = VCE − ic RC (4.55) (4.56) (4.57) (4.58) Quindi il segnale di tensione, vce , e’ dato da vce ≡ vCE − VCE = −ic Rc = −gm RC vbe (4.59) 112 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) e l’amplificazione di tensione risulta essere Av ≡ vce = −gm RC vbe (4.60) Di nuovo notiamo che l’amplificazione di tensione e’ costante nella misura in cui lo e’ IC e quindi gm . Ricordando la (4.53) abbiamo infine Av = − I C RC VT (4.61) Possiamo ora determinare la corrente di base e la resistenza d’ingresso nella base. Abbiamo iB = iC IC 1 IC = + vbe βF βF β F VT (4.62) Quindi la corrente di base e’ composta da un termine statico, IB , e una componente di segnale, ib , data da gm 1 IC vbe = vbe (4.63) ib = β F VT βF La resistenza di ingresso nella base per piccoli segnale e’ percio’ data da rπ ≡ vbe βF = ib gm (4.64) Possiamo infine determinare la corrente di emettitore iE = − iC IC ic = −( + ) = IE + ie αF αF αF (4.65) dove, come al solito, ie e’ la componente di segnale della corrente ie = − ic IC gm =− vbe = − vbe αF αF VT αF (4.66) Si definisce quindi la resistenza di emettitore che e’ data da re ≡ 4.2.2 vbe αF 1 veb =− = ≃ ie ie gm gm (4.67) Modelli lineari per piccoli segnali L’analisi che abbiamo fatto ci mostra che ogni grandezza elettrica del transistor e’ data dalla sovrapposizione di una quantita’ statica e di una componente di segnale. Le quantita’ statiche sono determinate dal circuito in Fig. 4.19(a) e dalle relazioni imposte dal transistor (equazioni da (4.42) a (4.44)). Viceversa, una rappresentazione circuitale delle componenti di segnale puo’ essere ottenuta eliminando le sorgenti di tensione continue e sostituendole con dei corti circuiti, come abbiamo fatto nella Fig. 4.21. Si noti che questo circuito e’ puramente concettuale, serve solo a evidenziare i rapporti tra le componenti di segnale. 4.2. AMPLIFICATORE AD EMETTITORE COMUNE ic RC vce ib vbe 113 + _ ie Figura 4.21: Il circuito amplificatore di Fig. 4.19(a), in cui i generatori di tensione costante sono stati sostituiti da un corto circuito. Modello π In Fig. 4.22(a) e’ rappresentato un equivalente circuitale del transistor, per le componenti di segnale. Esso fornisce le corrette relazioni tra le componenti di segnale presenti nelle grandezze elettriche del transistor, come puo’ essere facilmente verificato. Questo modello e’ comunemente chiamato modello π, o modello di Giacoletto. La resistenza sulla base e’ universalmente indicata con rπ e la differenza di potenziale tra base ed emettitore con vπ percio’ ci siamo adeguati a questa convenzione. In alcuni casi, come vedremo, puo’ essere piu’ conveniente utilizzare uno dei modelib ic C B vπ gmvπ rπ Figura 4.22: ie E Circuito equivalente del modello π: il transistor e’ sostituito da una resistenza d’ingresso e da un generatore di corrente controllato in tensione; li alternativi rappresentati nella Fig. 4.23. Nel circuito di Fig. 4.23(a) il transistor e’ rappresentato da un generatore di corrente controllato in tensione e la resistenza re sull’emettitore, come definita nella (4.67). Alternativamente, si puo’ utilizzare un generatore di corrente, controllato in corrente, come nella Fig. 4.23(b). L’effetto Early, che abbiamo discusso in precedenza, provoca una dipendenza della corrente di collettore, iC , dalla tensione vCE , oltreche’ da iB . Questa dipendenza puo’ essere inclusa nei nostri modelli, sostituendo al generatore ideale di corrente (cioe’ un generatore con resistenza infinita) un generatore con una resistenza ro in parallelo. Questa resistenza e’ stata definita nella (4.31) VA + VCE VA ro = ≃ (4.68) IC IC dove VA e’ la tensione di Early. Nella Fig. 4.24 si vede come vanno modificati i tre modelli per tener conto della resistenza finita di collettore. Vedremo concretamente, quando sara’ il momento, in quali casi e’ 114 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) C C ic ic gmv π α F ie ib ib B B vπ vπ re ie re ie Figura 4.23: E Circuiti equivalenti dei modelli T: il transistor e’ sostituito da una resistenza sull’emettitore e da un generatore di corrente controllato in tensione, con due varianti. E (a) (b) C ib gmv π C B C ib vπ rπ gmv π ro ro B vπ E (a) α F ie re ib ro B vπ E (b) re E (c) Figura 4.24:I 3 modelli del transistor modificati per includere la resistenza ro .; possibile trascurare ro nella nostra analisi. Modello h Un modello alternativo, spesso utilizzato, e’ quello rappresentato nella Fig. 4.25. Qui abbiamo un generatore di corrente controllato in corrente sul ramo di collettore e un resistore sul ramo della base. Questo modello e’ comunemente noto come modello h, o modello a parametri ibridi. Abbiamo anche qui utilizzato le denominazioni universalmente utilizzate: la resistenza sulla base e’ denominata hie , mentre il fattore di controllo del generatore (adimensionale) e’ denominato hf e Dovrebbe essere chiaro il significato del parametro hf e : rappresenta il rapporto tra la cor- 4.2. AMPLIFICATORE AD EMETTITORE COMUNE ib 115 ic C B hie hfe i b Figura 4.25: ie Circuito equivalente del modello h: il transistor e’ sostituito da una resistenza d’ingresso e da un generatore di corrente controllato in corrente. E rente di collettore, ic e la corrente di base ib . Quindi e’ in sostanza il fattore βF 5 . Anche questo modello puo’ essere migliorato per tener conto dell’effetto Early. Cio’ si ottiene con l’aggiunta di un resistore in parallelo al generatore di corrente. Si noti che, per ragioni storiche, si indica comunemente con hoe la conduttanza del resistore, e non la sua resistenza. ib C B hie hfe i b hoe Figura 4.26: E Circuito equivalente del modello h con la conduttanza hoe per tener conto dell’effetto Early Relazioni tra i modelli L’esistenza di tutti questi modelli puo’ ingenerare confusione: sono modi diversi di rappresentare il transistor in modo lineare, ma sono del tutto equivalenti, e possiamo facilmente trovare le relazioni tra i vari parametri. E’ anzitutto ovvio che le due resistenze d’ingresso coincidono hie ≡ rπ (4.69) Inoltre dobbiamo avere l’equaglianza tra i due generatori di corrente, quindi gm vbe = hf e ib (4.70) vbe = rπ ib (4.71) Possiamo poi scrivere 5 C’e’ una sottile differenza in realta’ tra βF e hf e . Il primo rappresenta il rapporto tra le correnti totali, iC , iB ; mentre il secondo e’ il rapporto tra le rispettive componenti di segnale, ovvero tra le variazioni attorno al valore statico. Formalmente, quindi, hf e e’ la derivata parziale di iC rispetto a iB , calcolata nel punto di lavoro; se si assume che βF sia costante e indipendente da altre variabili le due quantita’ coincidono. Non e’ cosi’ se si tiene conto dell’effetto Early. 116 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) da cui ricaviamo gm rπ ib = hf e ib (4.72) hf e = gm rπ (4.73) In definitiva oppure, al contrario hf e hf e = (4.74) rπ hie Infine, e’ del tutto evidente la relazione tra ro e hoe . Rappresentano lo stesso effetto fisico, ma, come detto prima, hoe indica la conduttanza, percio’ si ha semplicemente gm = hoe = 1 ro (4.75) In qualche modo il modello π fornisce piu’ informazione quantitativa, perche’ il valore dei parametri e’ riconducibile ai valori statici delle correnti. Tuttavia anche il modello h e’ spesso utilizzato ed e’ quindi importante avere padronanza di entrambi. Inoltre i costruttori dei transistor utilizzano proprio i parametri h nei fogli caratteristici6 . Come vedremo in seguito e’ molto comodo utilizzare uno di questi modelli nello studio degli amplificatori. Deve essere chiaro che essi rappresentano il comportamento del transistor ai fini dei segnali, per un ben preciso punto di lavoro, dato che il valore parametri cambia se si modifica il punto di lavoro, anche se a volte sorvoleremo su questo. In linea di principio la linearizzazione del transistor attorno al punto di lavoro e’ valida solo per piccoli segnali. Tuttavia e’ normale utilizzarli con una certa disinvoltura anche per segnali non strettamente piccoli; l’effetto della non linearita’ e’ spesso trascurabile e comunque poco influente. Infine, e’ facile convincersi che i modelli qui studiati sono validi e utilizzabili anche per transistor pnp, senza nessun cambio di polarita’. Per concludere, i modelli per piccoli segnali del transistor ci consentiranno di analizzare in modo sistematico le prestazioni degli amplificatori. Il processo di studio passera’ attraverso i seguenti passi: • Determinazione del punto di lavoro statico del transistor, in particolare della corrente IC ; • Calcolo del valore dei parametri del modello per piccoli segnali: gm , rπ , re ; • Sostituzione dei generatori di tensione costante con corti circuiti; • Sostituzione del transistor con uno dei modelli per piccoli segnali; • Analisi del circuito risultante per determinare le quantita’ richieste: amplificazione di tensione, resistenza d’ingresso, ecc. Seguiremo questa procedura per caratterizzare vari esempi di amplificatori. Nella Tavola 4.1 abbiamo riassunto i vari modelli che abbiamo esaminato e tutte le relazioni utili tra i parametri rilevanti. Questo sommario sara’ estremamente utile per analizzare e progettare amplificatori. 6 A questo proposito e’ bene sapere che nei fogli caratteristici dei transistor il parametro βF e’ normalmente denominato hF E (con pedici maiuscoli) 117 4.2. AMPLIFICATORE AD EMETTITORE COMUNE ib ib C B rπ vπ gmv π C B hie ro hfe i b E E C C gmv π ib α F ie ro B vπ hoe ib ro B vπ re re E E Parametri del modello π in funzione delle correnti statiche VT VT VT VT IC re = = αF rπ = = βF gm = VT IE IC IB IC Relazioni tra i parametri del modello π 1 βF αF ≃ rπ = re = gm gm gm ro = rπ = (1 + βF )re Relazioni tra modello π e modello h hie = rπ hf e = gm rπ hoe = 1 ro Relazioni tra le correnti ic = hf e ib ie = −(1 + hf e )ib ie = − 1 + hf e ic hf e Tabella 4.1:Riepilogo dei modelli per piccoli segnali e relazioni utili tra i parametri |VA | IC 118 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Per concludere, e’ utile avere un’idea di come variano i parametri h al variare del punto di lavoro. In Fig 4.27 sono riportati gli andamenti tipici di hf e , hoe e hie in funzione di IC per il transistor 2N 3904. Come si può vedere, all’aumentare di IC , hf e e hoe crescono mentre hie decresce. Questi andamenti sono piu’ o meno analoghi in tutti i transistor. Figura 4.27: Andamento dei parametri h in funzione di IC per il transistor 2N 3904. 4.2.3 Polarizzazione del transistor Polarizzare il transistor significa mantenere il transistor nella regione attiva con un valore della corrente di collettore IC predicibile e non sensibile a variazioni di temperatura nonche’ alle grandi variazioni di βF che si osservano tra esemplari diversi dello stesso tipo di transistor. Inoltre il punto di lavoro deve essere scelto in modo da consentire la massima escursione del segnale di uscita, per sfruttare al meglio possibile l’amplificazione. Ci sono vari approcci per soddisfare queste esigenze che ora esamineremo. Prima pero’ e’ istruttivo esaminare le due soluzioni piu’ semplici, per convincerci che esse sono inadeguate ai nostri scopi. Vediamo anzitutto la soluzione piu’ immediata, rappresentata nella Fig. 4.28(a), che peraltro abbiamo gia’ utilizzato per comprendere il funzionamento del transistor stesso. In 119 4.2. AMPLIFICATORE AD EMETTITORE COMUNE VCC VCC RB RC R1 VCC RC R1 VCC RC RC VBB R2 (a) R2 (b) RB RE (c) RE (d) Figura 4.28: Alcuni possibili circuiti di polarizzazione del transistor a emettitore comune: (a) IB fissa; (b) VBE fissa; (c) VBE fissa con resistenza di retro-azione sull’emettitore. (d) Il circuito (c) dopo l’applicazione del teorema di Thevenin. Le soluzioni (a) e (b) non danno garanzie di stabilita’. questo caso la corrente IB e’ sostanzialmente fissa (IB ≃ (VCC − 0.7)/RB ); ma la corrente di collettore IC puo’ variare molto, causa la variazione di βF , e non ci garantisce quindi una transconduttanza predicibile. La seconda soluzione, schematizzata nella Fig. 4.28(b), cerca invece di fissare la tensione VBE con un partitore. Ma e’ un approccio sconsigliabile: le inevitabili piccole differenze di VBE rispetto al valore di progetto si traducono in grandi variazioni di IC , data la relazione esponenziale che lega queste due grandezze e rendono quindi assai difficile ottenere nella pratica le prestazioni di progetto. Invece una buona soluzione, comunemente usata, e’ quella schematizzata nella Fig. 4.28(c), che e’ ottenuta dalla precedente con l’aggiunta di una resistenza sull’emettitore. Per comprendere questo schema e’ utile applicare il teorema di Thevenin per arrivare al circuito di Fig. 4.28(c), dove VBB = RB = R2 VCC R1 + R 2 R1 R2 R1 + R 2 (4.76) (4.77) Si puo’ facilmente calcolare la corrente IE ottenendo IE = − VBB − VBE RB RE + 1 + βF (4.78) 120 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Per ottenere una corrente IE costante7 , ovvero insensibile a variazioni della temeratura o del parametro βF , dobbiamo soddisfare due condizioni: VBB >> ∆VBE RB RE >> 1 + βF (4.79) (4.80) La prima condizione rende trascurabili le variazioni del numeratore della (4.78) dovute a variazioni di VBE 8 ; la seconda stabilizza il denominatore nei confronti di variazioni di βF . La prima condizione implica scegliere VBB piu’ grande possibile, ma questo ha dei limiti dettati da altre considerazioni. Per una tensione VCC fissata, aumentare VBB implica aumentare anche la tensione del collettore e quindi ridurre la caduta RC IC , cioe’ l’amplificazione. Percio’ e’ necessario fare dei compromessi, come vedremo meglio in seguito. La seconda condizione implica scegliere RB piccolo, ovvero R1 e R2 piccoli. In sostanza quello che si deve ottenere e’ che la tensione della base sia indipendente dal valore di βF e determinata unicamente dal rapporto di partizione. Pero’ R1 e R2 piccoli hanno come risultato un grande assorbimento di corrente dal generatore (cosa certamente non positiva) ed inoltre, come capiremo meglio piu’ avanti, si riduce la resistenza d’ingresso complessiva del dispositivo, in genere non auspicabile. Anche su questo e’ percio’ necessario un compromesso per bilanciare le varie esigenze. Il senso complessivo di questa soluzione puo’ comunque essere apprezzato considerando la retro-azione introdotta da RE . Supponiamo che, per qualunque motivo, la corrente di emettitore aumenta. Questo fa aumentare la caduta di tensione su RE e quindi la tensione VE aumenta. Ora, se VB e’ mantenuta costante dal partitore, la differenza VBE diminuisce e questo provoca una diminuzione di IC e IE , una variazione opposta a quella di partenza. Naturalmente lo stesso effetto, in senso inverso, si ha se la corrente di emettitore diminuisce. La resistenza RE genera quindi una reazione negativa che stabilizza il punto di lavoro (parleremo compiutamente di reazione negativa alla fine di questo capitolo). 4.2.4 L’amplificatore a emettitore comune Possiamo finalmente analizzare in dettaglio le prestazioni dell’amplificatore a emettitore comune completo in tutti i suoi dettagli (Fig. 4.29(a)). Supporremo di aver correttamente polarizzato il transistor nella regione attiva e scelto opportunamente i valori dei resistori R1 ,R2 ,RC e RE , e della tensione VCC . La sorgente del segnale da amplificare, vs , (con la sua resistenza d’uscita Rs ) e’ connessa all’ingresso dell’amplificatore (la base del transistor) attraverso un capacitore C1 . Questo capacitore e’ indispensabile per evitare che il punto di lavoro del transistor venga modificato9 . Il segnale amplificato e’ prelevato dal collettore del transistor e trasmesso alla resistenza di carico RL attraverso un capacitore C2 . In questo modo si disaccoppia il carico dal livello di tensione continua presente sul collettore, e viene trasmessa solo la componente di segnale della tensione di uscita. Infine, abbiamo messo 7 Questo automaticamente garantisce anche la stabilita’ di IC , dato che IC = αF IE , e αF e’ un parametro abbastanza stabile 8 Questo parametro e’ sensibilmente dipendente dalla temperatura della giunzione; nei transistor al silicio dVBE /dT ≈ −1.6 mV /◦ C 9 Senza il capacitore C1 la tensione statica della base sarebbe determinata non piu’ dal partitore R1 −R2 , ma dal partitore formato da R1 con il parallelo R2 k Rs ! 121 4.2. AMPLIFICATORE AD EMETTITORE COMUNE VCC R1 C2 vo C1 Rs (a) RC RL + vs vi _ R2 CE RE R out R in Rs B ib ic C vo + (b) vs vi _ RB vπ rπ gmv π ro RL RC ie E R in R out Figura 4.29: L’amplificatore a emettitore comune completo: (a) Schema del circuito; (b) Circuito equivalente per piccoli segnali. un capacitore CE in parallelo alla resistenza RE . Se CE e’ abbastanza grande l’impedenza complessiva tra l’emettitore e la massa diviene trascurabile e, ai fini dei segnali, potremo considerare l’emettitore direttamente connesso a massa. E’ chiaro che questi tre capacitori disturbano il comportamento dell’amplificatore alle basse frequenze, poiche’ introducono dei filtri passa-alto nel circuito. Studieremo piu’ avanti, in modo quantitativo questo effetto; per ora supporremo che, alle frequenze di interesse, essi possano essere considerati dei corti circuiti. E’ facile, seguendo le prescrizioni illustrate in precedenza, costruire il circuito equivalente per piccoli segnali ((Fig. 4.29(b)). I due resistori R1 e R2 , nel momento in cui si corto circuita il generatore VCC , appaiono in parallelo verso la massa; li abbiamo quindi sostituiti con il resistore RB RB = R1 k R2 = R1 R2 R1 + R2 (4.81) 122 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) L’analisi del circuito per determinarne le prestazioni e’ ora immediata. La resistenza d’ingresso dell’amplificatore, Rin e’ data da Rin = RB k rπ (4.82) La tensione effettiva all’ingresso dell’amplificatore, vi , coincide con vπ e risulta quindi vi ≡ vπ = Rin vs Rin + Rs (4.83) All’uscita dell’amplificatore abbiamo vo = −gm vπ (ro k RC k RL ) (4.84) L’amplificazione di tensione, intesa come rapporto tra vo e vi e’ quindi data da Av = −gm (ro k RC k RL ) (4.85) A circuito aperto, cioe’ con carico RL infinito, la (4.83) si riduce a Avo = −gm (ro k RC ) (4.86) L’effetto di ro e’ quindi quello di ridurre leggermente l’amplificazione. Tipicamente ro >> RC e quindi ritroviamo il risultato atteso Avo ≃ −gm RC (4.87) La resistenza d’uscita dell’amplificatore emerge immediatamente dallo schema di Fig. 4.29(b): essa e’ data dal parallelo di ro e RC Rout = ro k RC ≃ RC (4.88) dove l’ultimo passaggio presuppone di nuovo che ro >> RC . Il guadagno effettivo dell’amplificatore infine e’ pero’ il rapporto tra segnale d’uscita e segnale fornito dal generatore, quindi, combinando la (4.83) e la (4.85) abbiamo Avs ≡ vo Rin =− gm (ro k RC k RL ) vs Rin + Rs (4.89) Se RB >> rπ l’espressione si semplifica in Avs ≡ rπ vo =− gm (ro k RC k RL ) vs r π + Rs (4.90) Il guadagno effettivo, come ci aspettiamo, dipende dalla relazione tra la resistenza d’uscita della sorgente e la resistenza d’ingresso dell’amplificatore. Quando Rs << Rin esso e’ massimo, ed e’ dato semplicemente da Avs = Av = −gm (ro k RC k RL ) (4.91) Possiamo infine valutare il guadagno di corrente, cioe’ il rapporto tra la corrente iL sul carico e la corrente is fornita dalla sorgente. Si ha iL = vo RL (4.92) 4.2. AMPLIFICATORE AD EMETTITORE COMUNE is = Combinando si ottiene A′is ≡ vπ Rin vo Rin Rin iL = = Av is v π RL RL 123 (4.93) (4.94) Cioe’ il guadagno di corrente effettivo e’ dato dal prodotto del guadagno di tensione per il rapporto tra resistenza d’ingresso e resistenza di carico. E’ usuale poi considerare il guadagno di corrente di corto circuito, Ais , cioe’ il guadagno che si ha quando l’uscita e’ corto circuitata (ovvero RL = 0). In questo caso la corrente in uscita e’ semplicemente io = −gm vπ (4.95) mentre la corrente fornita dalla sorgente e’ is = si ottiene dunque Ais ≡ vπ Rin io = −gm Rin is (4.96) (4.97) Se rπ << RB la (4.97) si semplifica in Ais = −gm rπ = −hf e (4.98) Ritroviamo cioe’ quanto ci aspettavamo, cioe’ hf e rappresenta appunto il guadagno di corrente tra collettore e base del transistor. In conclusione, l’amplificatore ad emettitore comune puo’ fornire grandi amplificazioni di tensione (dell’ordine 102 ), con una resistenza d’ingresso non molto grande, dell’ordine dei kΩ, e una resistenza d’uscita anch’essa dello stesso ordine di grandezza. Esempio Si supponga di voler costruire un amplificatore ad emettitore comune capace di fornire un’amplificazione di tensione (a vuoto) Av ≃ −100, utilizzando un transistor 2N2222A, e avendo a disposizione un generatore di tensione VCC = 10 V . Abbiamo visto che l’amplificazione di tensione e’ data da Av = RC I C VT Percio’, ricordando che a temperatura ambiente VT ≃ 25 mV , dobbiamo avere RC IC = 2.5 V . Possiamo ottenere questo con un resistore da 2.4K e quindi una corrente IC ≃ 1 mA. Di conseguenza avremo VC = 7.5 V A questo punto possiamo scegliere la tensione di base, VBB . Ricordiamo che e’ opportuno avere questa tensione abbastanza alta (VBB >> VBE ), ma comunque piu’ bassa della tensione di collettore. Una scelta semplice e’ di avere VBB = VCC /2 = 5 V , che puo’ essere ottenuta con due resistori R1 e R2 uguali. Se la base e’ a 5 V , l’emettitore e’ ad una tensione VE ≃ 4.3 V . Poiche’ vogliamo avere una corrente IE di circa 1 mA, dobbiamo 124 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) scegliere RE = 4.3K. Dobbiamo ora scegliere i valori (uguali) di R1 ed R2 , ricordando che e’ opportuno avere RB ≡ R1 k R2 << RE βF Dai fogli caratteristici del transistor vediamo che, con IC ≃ 1 mA βF e’ dato variare in un intervallo 50 − 300. Prendendo percio’ il caso peggiore dobbiamo imporre che RB << 4.3K × 50 = 215K E’ percio’ ragionevole scegliere R1 = R2 = 47K. Questo ci da RB ≃ 23K, circa 10 volte inferiore al limite. Sempre dai fogli caratteristici osserviamo che la resistenza di base rπ (i costruttori la indicano come hie ) e’ nell’intervallo 2K − 8K, possiamo percio’ valutare la resistenza d’ingresso complessiva in questo ordine di grandezza. Inoltre, la resistenza ro e’ data nell’intervallo 30K − 200K, quindi sicuramentre molto maggiore di RC . La scelta dei capacitori e’ naturalmente legato ai valori di frequenza cui siamo interessati, e per il momento tralasceremo questo aspetto. E’ invece importante valutare la dinamica dell’amplificatore che abbiamo progettato. Se immaginiamo di voler amplificare un segnale sinusoidale senza distorsione occorre che la tensione istantanea del collettore, vC non esca dalla regione lineare. Ovvero si deve avere VBB < vC < VCC (vedi Fig. 4.16) Questo implica che la sinusoide in uscita vo non puo’ superare il valore massimo di 2.5 V ; il buon funzionamento dell’amplificatore e’ quindi garantito solo se i segnali d’ingresso hanno un’ampiezza inferiore a 25 mV . Segnali in ingresso maggiori verranno deformati in uscita. 4.2.5 L’amplificatore a emettitore comune senza capacita’ di emettitore Le prestazioni dell’amplificatore cambiano considerevolmente se non si include la capacita’ sull’emettitore (Fig. 4.30(a)). Il circuito equivalente per piccoli segnali e’ lo stesso, salvo che ora la resistenza RE non e’ corto circuitata e pertanto va considerata (Fig. 4.30(b)), ma in questo caso e’ piu’ comodo utilizzare per il transistor il modello T. Si noti che, per non complicare inutilmente l’analisi, abbiamo tralasciato la resistenza ro . Calcoliamo anzitutto la resistenza d’ingresso, Rin , che conviene ora esprimere come il parallelo tra RB e la resistenza Rib che si vede entrando nella base: essa e’ data dal rapporto tra vi e ib . vi = −(re + RE )ie (4.99) il segno meno essendo dovuto alla scelta dei versi delle correnti. Ricordando che ie = −(1 + hf e )ib (4.100) Rib = (1 + hf e )(re + RE ) (4.101) si ha e la resistenza d’ingresso complessiva e’ data da Rin = RB k [(1 + hf e )(re + RE )] (4.102) 125 4.2. AMPLIFICATORE AD EMETTITORE COMUNE VCC R1 C2 vo C1 Rs (a) RC RL + vs vi _ R2 RE ic C R in α F ie Rs B R out vo RC RL ib + (b) vs vi _ re RB ie E R in R out RE R ib Figura 4.30: L’amplificatore a emettitore comune senza capacita’ di emettitore: (a) Schema del circuito; (b) Circuito equivalente per piccoli segnali. Si noti che abbiamo tralasciato la resistenza ro . Confrontando con la (4.82) si vede quindi che la resistenza d’ingresso e’ ora molto piu’ alta, e questo e’, come sappiamo, un fattore positivo. Naturalmente affinche’ questo effetto si traduca in un effettivo vantaggio occorre che la resistenza d’ingresso non sia poi depressa da RB : in altre parole sarebbe opportuno avere RB >> Rib . Possiamo calcolare l’amplificazione di tensione Av ; come nel caso precedente abbiamo vo = −ic (RC k RL ) = αF ie (RC k RL ) (4.103) Combinando la (4.103) con la (4.99) otteniamo Av ≡ αF (RC k RL ) vo =− vi r e + Re Poiche’ αF ≃ 1 Av ≃ − (RC k RL ) r e + RE (4.104) (4.105) 126 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Questa relazione e’ interessante e molto utile.Il guadagno dalla base al collettore e’ uguale al rapporto tra la resistenza totale sul collettore e la resistenza totale sull’emettitore. Questa e’ un’affermazione generale che si applica ad ogni tipo di amplificatore. A circuito aperto, ovvero senza carico RL , avremo Av ≃ − RC r e + RE (4.106) Con alcuni passaggi puo’ essere anche espressa come Avo = − g m RC 1 + g m RE (4.107) Confrontando con gli analoghi risultati ottenuti in precedenza (relazioni (4.85) e (4.87)) si vede che ora le amplificazioni si riducono di un fattore (1 + gm RE ). In particolare, se gm RE >> 1, abbiamo (RC k RL ) Av ≃ − (4.108) RE e RC (4.109) Avo ≃ − RE ovvero le amplificazioni diventano totalmente indipendenti dai parametri del transistor e legate solamente a rapporti di resistenze. Questo costituisce un enorme vantaggio in termini di stabilita’ e riproducibilita’ delle prestazioni del circuito. Naturalmente dobbiamo poi considerare l’amplificazione effettiva del circuito, ovvero il rapporto tra segnale d’uscita e segnale fornito dalla sorgente. Come nel caso precedente abbiamo Rin vi = vs (4.110) Rin + Rs e quindi l’amplificazione complessiva si trova facilmente Avs ≡ vo Rin (RC k RL ) ≃− vs Rin + Rs RE (4.111) dove abbiamo tralasciato ro e ipotizzato gm RE >> 1. Le amplificazioni concretamente ottenibili con questo circuito sono evidentemente piu’ basse, come vedremo tra poco, perche’ non e’ pratico avere un rapporto RC /RE alto. Tuttavia in molti casi questo aspetto e’ secondario rispetto ai vantaggi di questo circuito in termini di stabilita’ e di maggiore resistenza d’ingresso. La resistenza d’uscita di questo amplificatore, Rout , e’ la stessa che avevamo trovato nell’amplificatore con capacitore sull’emettitore Rout = RC (4.112) Possiamo infine valutare il guadagno di corrente, cioe’ il rapporto tra la corrente iL sul carico e la corrente is fornita dalla sorgente.Abbiamo is = (re + RE )ie vi =− Rin Rin (4.113) 4.2. AMPLIFICATORE AD EMETTITORE COMUNE 127 ie (RC k RL ) vo ≃ RL RL (4.114) iL = e quindi otteniamo A′is = − RC k RL Rin r e + Re RL (4.115) Rin RL (4.116) Ovvero A′is = Av Troviamo di nuovo il guadagno di corrente effettivo e’ dato dal prodotto del guadagno di tensione per il rapporto tra resistenza d’ingresso e resistenza di carico. Anche questa e’ una relazione generale valida per tutti gli amplificatori. Infine, e’ molto semplice verificare che il guadagno di corrente di corto circuito, Ais , e’ immutato Ais = −hf e (4.117) Esempio Si voglia costruire un amplificatore con amplificazione (senza carico) Av ≃ −10, con un transistor 2N2222A, utilizzando un’alimentazione VCC = 12 V . I segnali d’ingresso da amplificare hanno un’ampiezza massima di 200 mV . Per capire come procedere scriviamo anzitutto l’equazione della maglia di uscita VCC = RC IC + VCE + VE (4.118) Poiche’ vogliamo amplificazione pari (in modulo) a 10, dobbiamo avere VCC = 10VE + VCE + VE (4.119) Dobbiamo scegliere VCE in modo che i segnali siano amplificati senza distorsione, ovvero VCE deve poter variare di ±2 V attorno al punto di lavoro senza uscire dalla regione attiva: possiamo imporre VCE ≈ 5 V , per avere anche un ampio margine. Tenendo conto di tutto, la (4.119) ci da 11VE = 12 − 5 = 7 (4.120) Quindi VE deve essere piccolo, possiamo scegliere VE = 0.5 V . Ne segue che VB = 1.2 V Possiamo a questo punto scegliere RE che definira’ la corrente del transistor. Si puo’ porre RE = 1K, da cui segue RC = 10K, per avere l’amplificazione richiesta. Infine dobbiamo scegliere i resistori del partitore, in modo da avere VB = 1.2 V . Quindi R2 1 = R1 + R2 10 (4.121) E’ bene che la corrente del partitore sia grande rispetto alla corrente di base. Vogliamo quindi che RB ≡ (R1 k R2 ) ≪ hf e RE (4.122) Nella peggiore delle ipotesi, per un transistor 2N2222A, hf e = 50, quindi dovremo porre RB ≈ 5K. Questo si puo’ ottenere con R2 = 5K e R1 = 45K. Riassumendo, abbiamo allora: 128 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) R1 = 45K R2 = 5K RE = 1K RC = 10K IC = IE = 0.5 mA VCE = 6.5 V . Da questo esempio comprendiamo che non e’ molto facile avere grandi amplificazioni. Necessariamente occorre scegliere VE , e quindi VB , abbastanza basse e questo sembra contraddire il criterio (4.80). In realta’ non e’ vero: quel criterio cercava di stabilizzare la corrente IC per garantire stabilita’ a gm e quindi all’amplificazione, ma in questo caso non e’ necessario. L’amplificazione e’ stabile e indipendente da variazioni possibili di IC dovute a qualunque causa. In questo senso non e’ quindi nemmeno necessario applicare in modo stringente, come abbiamo fatto, il criterio (4.80). Il partitore di base puo’ anche avere resistenze piu’ grandi, per diminuire l’assorbimento e aumentare la resistenza d’ingresso effettiva dell’amplificatore. 4.3 Amplificatore a base comune Nell’amplificatore a base comune il segnale d’ingresso viene applicato all’emettitore e il segnale d’uscita prelevato sul collettore (Fig. 4.31(a)). Come si puo’ constatare e’ sostanzialmente lo stesso circuito che abbiamo studiato in precedenza, con l’unica differenza che ora la base viene connessa a massa attraverso un capacitore CB ; in questo modo, per la componente di segnale, la base e’ a tensione zero. Possiamo percio’ non discutere la polarizzazione di questo circuito e passare direttamente allo studio delle sue prestazioni per i segnali, assumendo, come al solito, che alle frequenze di interesse i condensatori sono equivalenti a dei corti circuiti. Questo ci porta quindi al circuito equivalente per piccoli segnali disegnato nella Fig. 4.31(b). Osserviamo anzitutto che re ed RE appaiono dall’ingresso come in parallelo; infatti hanno un estremo in comune mentre l’altro estremo e’ a massa per entrambe. Percio’ la resistenza d’ingresso e’ data da Rin = RE k re (4.123) Tipicamente abbiamo RE >> re e possiamo allora approssimare Rin ≃ re (4.124) Possiamo ora calcolare l’amplificazione di tensione. Abbiamo vo = αF ie (RC k RL ) (4.125) v i = re i e (4.126) e da cui si ricava α(RC k RL ) vo = = gm (RC k RL ) (4.127) vi re L’amplificazione e’ percio’ identica, ma cambiata di segno, a quella dell’amplificatore ad emettitore comune. L’amplificazione ad uscita aperta, cioe’ senza carico, e’ semplicemente Av ≡ 129 4.3. AMPLIFICATORE A BASE COMUNE VCC RC R1 C2 CB vo Rs C1 (a) R2 RE RL + vi _ vs R out R in ic C α F ie io RC vo RL i B b re (b) Rs ie is R out E + vs vi _ RE R in Figura 4.31: L’amplificatore a base comune: (a) Schema del circuito; (b) Circuito equivalente per piccoli segnali. Si noti che abbiamo tralasciato la resistenza ro . data da Avo = gm RC (4.128) La resistenza d’uscita e’ di nuovo data da Rout = RC (4.129) e infine il guadagno di corrente di corto circuito, Ais e’ Ais = αF i e = αF ≃ 1 ie (4.130) Il guadagno di tensione appare alto, ma l’amplificazione effettiva e’ molto piu’ bassa, data la bassa resistenza d’ingresso. Abbiamo infatti vi Rin re = = vs Rin + RS r e + RS (4.131) 130 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) e quindi Avs = α(RC k RL ) (RC k RL ) re ≃ r e + RS re r e + RS (4.132) Come si vede questo guadagno puo’ essere molto basso, se Rs e’ grande, ma praticamente indipendente dai parametri del transistor e quindi particolarmente stabile. Per riassumere, l’amplificatore a base comune ha una resistenza d’ingresso molto bassa, un guadagno di tensione alto (e positivo), una resistenza d’uscita medio-alta, data da RC , e un guadagno di corrente unitario. 4.4 Amplificatore a collettore comune VCC R1 RC C1 Rs C2 (a) vo + vs vi _ R2 RE RL R in R out ic C α F ie Rs B ib + (b) vs vi _ re RB ie E R in vo RE RL R ib R out Figura 4.32: L’amplificatore a collettore comune: (a) Schema del circuito; (b) Circuito equivalente per piccoli segnali. Si noti che abbiamo tralasciato la resistenza ro . Vediamo ora l’ultimo degli amplificatori fondamentali, un circuito molto importante e di frequentissimo uso, l’amplificatore a collettore comune, comunemente indicato come emitter follower, o inseguitore di tensione. Una possibile realizzazione e’ mostrata nella Fig. 4.32(a). E’ in pratica sempre lo stesso 4.4. AMPLIFICATORE A COLLETTORE COMUNE 131 circuito base, ma ora si preleva l’uscita dall’emettitore; a questo punto la resistenza RC non svolge nessuna funzione e puo’ essere eliminata. Il circuito equivalente per piccoli segnali e’ schematizzato nella Fig. 4.32(b); anche in questo caso abbiamo utilizzato il modello T, piu’ conveniente, e abbiamo omesso la resistenza ro per semplicita’. Cominceremo calcolando la resistenza d’ingresso, Rin , e quindi valutiamo anzitutto Rib Rib ≡ −ie [re + (RL k RE )] vi = ib ib (4.133) sostituendo ib al posto di ie nel numeratore (ie = −(1 + hf e )ib ) si ottiene subito Rib = (1 + hf e )[re + (RL k RE )] (4.134) Rin = RB k Rib (4.135) vo = −ie (RL k RE ) (4.136) e naturalmente Possiamo ora calcolare l’amplificazione di tensione, cosa molto facile, poiche’ vi = −ie [re + (RL k RE )] (4.137) vo (RL k RE ) = vi [re + (RL k RE )] (4.138) (RL k RE ) =1 (RL k RE ) (4.139) da cui si ricava Av ≡ Se le resistenze RE ed RL sono molto piu’ grandi di re la (4.138) diviene Av ≃ cioe’ il guadagno di tensione e’ unitario. Naturalmente dobbiamo come sempre valutare l’amplificazione effettiva di tensione, Avs . Abbiamo vi Rin = (4.140) vs Rin + Rs percio’ si arriva a (RL k RE ) Rin Avs = (4.141) Rin + Rs [re + (RL k RE )] Il guadagno di corrente di corto circuito, Ais e’ dato da Ais = −ie = (1 + hf e ) ≃ hf e ib (4.142) Infine dobbiamo calcolare la resistenza d’uscita Rout che, in questo caso, non emerge immediatamente. Dobbiamo applicare il teorema di Thevenin e quindi corto circuitare il generatore vs . Per maggiore chiarezza abbiamo ridisegnato il circuito in Fig. 4.33. Ci ′ , cioe’ la resistenza che vede guarconviene anzitutto calcolare la resistenza d’uscita Rout dando nell’emettitore a monte di RE , che puo’ essere ottenuta immaginando di applicare una tensione v ′ sull’uscita e misurando la conseguente corrente i′ che entra. Allora posso scrivere v′ re ie − (RB k RS )ib RS k RB ′ Rout ≡ ′ = = re + (4.143) i ie 1 + hf e 132 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) B Rs ib re RB α F ie ie E vo RL RE C R’out R out Figura 4.33: Applicazione del teorema di Thevenin per valutare Rout ; il generatore di segnale e’ stato corto circuitato e il circuito ridisegnato per maggiore chiarezza. e infine abbiamo ′ Rout = Rout k RE = (re + RS k RB ) k RE 1 + hf e (4.144) E’ un’espressione abbastanza complessa ma puo’ essere in genere semplificata; normalmente RB dovrebbe essere molto maggiore di RS e RE molto maggiore dell’altro contributo, per cui in definitiva RS (4.145) Rout ≃ re + 1 + hf e che e’ una quantita’ normalmente piccola. Per riassumere, l’amplificatore a collettore comune ha una resistenza d’ingresso grande, un guadagno di tensione vicino a 1, una resistenza d’uscita bassa, un guadagno di corrente abbastanza alto. E’ percio’ ideale per le applicazioni in cui una sorgente di segnale con impedenza d’uscita alta deve essere connessa ad un carico con resistenza piccola. In pratica questo circuito viene spesso utilizzato come stadio di uscita di un amplificatore a molti stadi; la sua funzione non e’ quella di amplificare il segnale di tensione, bensi’ quella di fornire molta corrente, e quindi potenza, al carico finale. Vedremo piu’ avanti una semplice applicazione di questo tipo. Esempio Progettare un inseguitore di tensione e’ molto semplice. Questo circuito non serve ad amplificare in tensione, bensi’ e’ normalmente usato per fornire una grande corrente d’uscita, avendo una bassissima resistenza d’uscita. Dobbiamo quindi aspettarci un segnale d’ingresso gia’ abbastanza ampio. Supponiamo percio’ di lavorare con segnali di ingresso con ampiezza fino a 2 V e di avere un’alimentazione VCC = 12 V . Per massimizzare l’escursione ci conviene porre semplicemente VB = VCC /2 = 6 V (4.146) e quindi VE = 5.3 V . Non abbiamo resistenza sul collettore, per cui: VCC = VCE + VE (4.147) 133 4.5. RIEPILOGO Emettitore Emettitore Base Collettore Comune Comune (senza CE ) Comune Comune Ais −hf e −hf e ≈1 1 + hf e Rin RB k r π re RB k (1 + hf e )(re + RE ) Avo −gm RC RB k (1 + hf e )(re + RE ) RC gm RC ≈− − 1 + g m RE RE g m RC ≈1 Rout RC RC RC re + RS k RB 1 + hf e Tabella 4.2:Riepilogo delle principali caratteristiche degli amplificatori da cui segue VCE = 6.7 V (4.148) La scelta di RE determina la corrente: per esempio, con RE = 1K, si ha IC = 5.3 mA, valore del tutto ragionevole per questo transistor. E’ del tutto ovvio come progettare il partitore di ingresso: R1 e R2 devono essere uguali. Possiamo quindi porre R1 = R2 = 5K, per avere comunque una corrente di partitore abbastanza grande. 4.5 Riepilogo E’ utile riepilogare le caratteristiche degli amplificatori che abbiamo visto in un’unica tabella (Tabella 4.2), che ci consentira’ di fare alcune considerazioni globali. Abbiamo riportato il guadagno di corrente di corto circuito, Ais , la resistenza d’ingresso, Rin , il guadagno di tensione senza carico, Avo e la resistenza d’uscita Rout . Possiamo in sostanza riassumere nei seguenti punti: 1. La configurazione ad emettitore comune e’ quella piu’ adatta per realizzare una grande amplificazione di tensione (eventualmente ottenuta con piu’ stadi in cascata). Includendo una resistenza sull’emettitore si possono avere dei vantaggi, a spese tuttavia del guadagno. 2. La configurazione a base comune ha un’alta amplificazione che viene pero’ depauperata dalla bassa resistenza d’ingresso. Tuttavia, come vedremo in seguito, ha una migliore risposta alle alte frequenze, e quindi e’ utile per alcune applicazioni. 3. L’inseguitore di tensione e’ fondamentale per connettere sorgenti con alta impedenza d’uscita a carichi piccoli, e quindi e’ utile come stadio finale di amplificatori a molti stadi. 134 4.6 4.6.1 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Altri circuiti di polarizzazione Doppia alimentazione Figura 4.34: (a) Polarizzazione del transistor con due alimentazioni: (b) Amplificatore a emettitore comune con doppia alimentazione. Il circuito di polarizzazione che abbiamo utilizzato per realizzare gli amplificatori ha dei lati negativi. Anzitutto obbliga a inserire un condensatore di disaccoppiamento all’ingresso con conseguente riduzione della risposta a bassa frequenza. Questo puo’ implicare la necessita’ di inserire una grande capacita’ con conseguente ingombro, aumento dei disturbi, ecc. Inoltre, come abbiamo visto, il partitore che polarizza la base si traduce in una diminuzione della resistenza d’ingresso: in sostanza, una grossa frazione del segnale da amplificare viene dissipata inutilmente in quel partitore. Si possono evitare entrambi questi inconvenienti con il montaggio mostrato nella Fig. 4.34(a), che richiede due alimentazioni di segno opposto (VEE < 0). E’ immediato verificare che ora la corrente di emettitore, IE , e’ data da |VEE | − VBE (4.149) RE Questa equazione e’ identica alla (4.78), salvo che VBB e’sostituita da VEE . La condizione di stabilizzazione della corrente IE e’ quindi analoga |IE | = − VEE >> VBE (4.150) e molto facile da realizzare. Nella Fig. 4.34(b) e’ mostrato un amplificatore ad emettitore comune con doppia alimentazione: il generatore di segnale vs e’ connesso direttamente alla base non essendoci piu’ 135 4.6. ALTRI CIRCUITI DI POLARIZZAZIONE necessita’ del condensatore di disaccoppiamento. ( Si noti che la base e’ ad una tensione continua leggermente negativa, a causa della caduta di tensione RS IB , ma questo’ non e’ particolarmente critico ai fini del funzionamento del circuito.). 4.6.2 Polarizzazione con generatore di corrente VCC VCC I RC R1 I Iref VBB Q2 I3 RB Q1 R2 R3 I -VEE (a) -VEE -VEE (c) (b) Figura 4.35: (a) Polarizzazione del transistor utilizzando un generatore di corrente costante; (b) Realizzazione del generatore di corrente con un transistor; (c) Il generatore realizzato con uno “specchio di corrente”. Un altro modo per polarizzare il transistor con una stabile corrente di collettore e’ quello schematizzato nella Fig. 4.35(a), in cui l’emettitore e’ connesso ad un generatore ideale di corrente, I; inevitabilmente avremo IC = I, assolutamente stabile. Una sorgente di corrente, quasi ideale, puo’ essere realizzata con un ulteriore transistor, come nello schema di Fig. 4.35(b). In questo circuito abbiamo VBB = − e I3 = − R1 VEE R1 + R2 VEE − (VBB − 0.7) R3 (4.151) (4.152) Quindi la corrente del collettore e’ semplicemente I ≃ −I3 . Anche in questo caso la rete di polarizzazione deve essere realizzata in modo da stabilizzare al massimo I3 , ovvero dobbiamo curare che si abbia |VBB | >> VBE RB R3 >> 1 + βF (4.153) (4.154) dove ovviamente RB e’ il parallelo di R1 ed R2 . In definitiva questo circuito realizza una sorgente di corrente10 il cui valore puo’ essere controllato dai valori delle resistenze; questa sorgente puo’ quindi essere connessa sull’emettitore dell’amplificatore invece di una resistore. 10 Questa sorgente di corrente non e’ ideale come sappiamo: l’effetto Early si traduce nella presenza di una resistenza ro sul collettore, in parallelo al generatore di corrente (vedi Fig. 4.14). Tuttavia ro e’ grande e in certi contesti il suo effetto e’ trascurabile. 136 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Una migliore realizzazione di una sorgente di corrente e’ quella data nella Fig. 4.35(c), con due transistor accoppiati. La corrente Iref e’ semplicemente data da Iref = VCC + VEE − VBE VCC − (−VEE ) − VBE = R R (4.155) dove abbiamo trascurato la corrente di base. Poiche’ i due transistor hanno la stessa VBE la corrente del transistor Q2 e’ la stessa, cioe’ I = Iref (4.156) Questa uguaglianza e’ strettamente vera solo se i due transistor sono identici. Esistono in commercio coppie di transistor realizzati insieme su un unico cristallo di silicio e incapsulati in un unico contenitore; essi hanno quindi delle caratteristiche quasi identiche e stanno alla stessa temperatura. Questo tipo di montaggio e’ comunemente chiamato specchio di corrente, per motivi abbastanza evidenti 11 . L’analisi delle prestazioni di amplificatori realizzati in questo modo e’ del tutto identica a quella che abbiamo fatto in precedenza. I vantaggi che ne possiamo ricavare sono, anzitutto, l’eliminazione del partitore di base dell’amplificatore, ma non solo. Per esempio, una soluzione di questo tipo ci consente di realizzare un amplificatore a emettitore comune con alto guadagno senza il capacitore di emettitore. 4.7 Amplificatore Darlington Figura 4.36: a): coppia Darlington; b:) Inseguitore di tensione realizzato con coppa Darlington Due transistor collegati tra loro come nella Fig 4.36a costituiscono la cosidetta coppia Darlington, caratterizzata da un altissimo guadagno di corrente. Infatti, supponendo per 11 Approfondiremo questo argomento nella Sez 4.11. 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI 137 semplicita’ che i due transistor abbiano lo stesso βF , possiamo scrivere: IC1 = βF IB1 IE1 = −(1 + βF )IB1 IC2 = βF IB2 Ma IB2 = −IE1 , quindi combinando le ultime due relazioni si ha IC2 = βF (1 + βF )IB1 = (βF + βF2 )IB1 ≃ βF2 IB1 Si ha quindi un guadagno di corrente circa uguale al quadrato di quello del transistor singolo. Le stesse relazioni valgono ovviamente anche per il guadagno di corrente per piccoli segnali, hf e , quindi la coppia Darlington e’ utilizzata per realizzare amplificatori ad altissimo guadagno di corrente e quindi di tensione. Le coppie vengono spesso realizzate monoliticamente, ovvero sullo stesso cristallo di silicio, in modo da avere due transistor praticamente identici e alla stessa temperatura. Un amplificatore Darlington, come ad esempio l’inseguitore di tensione mostrato in Fig 4.36b, ha anche una altissima resistenza d’ingresso. E’ facile verificare che Ri ≃ h2f e RE 4.8 La risposta in frequenza degli amplificatori Lo studio della risposta degli amplificatori che abbiamo sviluppato nelle precedenti sezioni era basato sull’ipotesi che tutti i condensatori esterni potessero essere sostituiti da corti circuiti. Inoltre abbiamo sviluppato modelli del transistor che non includono alcun elemento reattivo (capacita’ o induttanze), tali da provocare dipendenze dal tempo o dalla frequenza. Viceversa i transistor mostrano fenomeni di accumulo di carica elettrica che possono essere modellizzati come capacita’ interne e che introducono quindi dipendenze dalla frequenza. In sostanza i nostri risultati sono validi in una regione intermedia di frequenza, abbastanza bassa da poter trascurare le capacita’ interne del transistor, ma non tanto bassa da rendere necessario il tener conto dei condensatori esterni. La situazione complessiva e’ quella della Fig. 4.37, dove abbiamo schematizzato il diagramma di Bode di un generico amplificatore. I condensatori esterni, se ve ne sono, provocano una riduzione dell’amplificazione al di sotto di una certa frequenza, fL , determinando una risposta di tipo passa-alto. Al di sopra di questa frequenza la loro presenza e’ ininfluente e possono essere assimilati a dei corti circuiti. La risposta dell’amplificatore rimane costante in un certo intervallo; poi, al crescere della frequenza, le capacita’ interne del transistor determinano una riduzione della risposta, con effetti di tipo passa-basso. La regione intermedia, chiamata, regione di media frequenza, compresa tra fL ed fH , e’ quella in cui sono validi i modelli che abbiamo utilizzato finora. Quantitativamente le due frequenze di confine, fL e fH , sono definite come le frequenze a cui la risposta si riduce di 3 dB; l’intervallo compreso tra esse definisce la larghezza di banda dell’amplificatore. Dobbiamo quindi completare il nostro studio, per descrivere in modo quantitativo, il piu’ 138 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) accurato possibile, le prestazioni degli amplificatori in tutto il dominio delle frequenze e la prima cosa da fare e’ migliorare i nostri modelli del transistor affinche’ essi tengano conto anche degli effetti capacitivi. Nei paragrafi che seguono sara’ necessario studiare le Bassa |V| o (dB) frequenza |V| s Media frequenza Alta frequenza 3 dB fH fL log f Figura 4.37: Risposta in frequenza di un tipico amplificatore con capacita’ di accoppiamento esterne. Al di sotto della frequenza fl le capacita’ esterne provocano una diminuzione dell’amplificazione. Al di sopra della frequenza fH si comincia a sentire l’effetto delle capacita’ interne del transistor. grandezze elettriche nel dominio complesso. Percio’ utilizzeremo la consueta notazione, utilizzando lettere maiuscole, come gia’ avevamo fatto nei precedenti capitoli. 4.8.1 Il modello π ad alta frequenza Abbiamo visto in precedenza che le giunzioni pn presentano effetti capacitivi, di entita’ diversa per polarizzazione diretta o inversa. Il modello π puo’ essere modificato per includere questi effetti e quindi il transistor e’ equivalente al circuito schematizzato nella Fig. 4.38. Abbiamo aggiunto due capacita’, la capacita’ della giunzione base-emettitore, polarizzata direttamente, Cπ , e la capacita’ della giunzione collettore-base, polarizzata inversamente, Cµ . Tipicamente Cπ e’ dell’ordine di alcuni pF , o decine di pF , mentre Cµ e’ notevolmente inferiore, frazioni di pF , fino a qualche pF . Inoltre abbiamo aggiunto un resistore, rx , per modellizzare la resistenza ohmica tra il terminale di base, B, e la base effettiva, B’, immediatamente sotto la regione di emettitore (vedi Fig. 4.4). Questa resistenza e’ dell’ordine di poche decine di ohm e usualmente rx << rπ quindi viene trascurata a bassa frequenza, ma non e’ irrilevante ad alta frequenza. I fogli caratteristici dei transistor, oltre a riportare (non sempre) i valori indicativi di Cπ e Cµ , danno anche informazioni sull’andamento in frequenza del guadagno di corrente hf e ; un aspetto importante su cui vale la pena di soffermarsi. Consideriamo dunque il circuito di Fig. 4.39 in cui il collettore e’ in corto circuito con l’emettitore. L’equazione del nodo C puo’ essere scritta come Ic = (gm − sCµ )Vπ (4.157) Possiamo poi scrivere, per il nodo d’ingresso Vπ = Ib 1 + sCπ + sCµ rπ (4.158) 139 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI Cμ rx C B vπ rπ gmvπ Cπ ro E Figura 4.38:Il modello π per alte frequenze Ib Cμ B + Vb _ C Ic rx vπ rπ Cπ gmvπ E ro E Figura 4.39:Derivazione del guadagno di corrente con uscita in corto Quindi il guadagno di corrente con uscita in corto e’ dato da hf e ≡ gm − sCµ Ic = Ib 1 + s(Cµ + Cπ ) rπ (4.159) Alle frequenze per cui questo modello e’ valido gm >> ωCµ , quindi possiamo trascurare sCµ al numeratore e otteniamo hf e ≃ g m rπ 1 + s(Cµ + Cπ )rπ (4.160) ovvero una funzione di tipo passa-basso. Chiamiamo hf e0 il prodotto gm rπ , che e’ proprio il guadagno di corrente di corto circuito a bassa frequenza, che abbiamo gia’ incontrato; la (4.160) diviene quindi hf e0 (4.161) hf e ≃ 1 + s(Cµ + Cπ )rπ La frequenza di taglio (frequenza a cui la funzione si riduce di 3 dB) e’ quindi fβ = 1 2π(Cπ + Cµ )rπ (4.162) I costruttori di transistor in genere riportano nei fogli caratteristici fT , ovvero la frequenza a cui il guadagno di corrente |hf e | diviene pari ad 1 (chiamata banda di guadagno unitario). 140 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Poiche’ il prodotto (guadagno × banda) e’ costante12 , possiamo scrivere (4.163) hf eo × fβ = 1 × fT quindi fT e’ semplicemente data da (4.164) fT = hf e0 fβ In conclusione fT = gm i 2π(Cπ + Cµ ) (4.165) e puo’ variare da alcune centinaia di M Hz ad alcune decine di GHz. 4.8.2 L’effetto Miller Conviene a questo punto fare una breve parentesi e discutere una proprieta’ generale delle reti, che va sotto il nome di teorema di Miller 13 (o effetto Miller); ci sara’ molto utile nel seguito. Consideriamo una generica rete in cui tra due particolari nodi (nodo 1 e nodo 2) vi e’ un’impedenza Z ′ (Fig. 4.40(a). a) b) 1 Z' 2 1 2 Z1 Z2 Figura 4.40: Applicazione del teorema di Miller dei nodi. Nell’equazione del nodo 1 vi sará, tra gli altri, un termine I1 = V1 − V2 Z′ (4.166) Potremo quindi manipolare questo termine nel modo seguente V2 V1 − V2 V1 (1 − V1 ) V1 (1 − k) = = I1 = Z′ Z′ Z′ (4.167) dove si e’ posto k = V2 /V1 . Analogamente, nell’equazione del nodo 2 vi sará, tra gli altri, un termine V2 − V1 I2 = (4.168) Z′ 12 Questo e’ vero perche’ il guadagno decresce con pendenza −20 dB/decade questo effetto prende il suo nome da quello di John Milton Miller, fisico americano, che lo mise in evidenza studiando gli amplificatori con valvole termoioniche, negli anni attorno al 1920. 13 141 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI che potremo trasformare come segue I2 = V2 − V1 = Z′ V1 ) V2 V2 (1 − Z′ = V2 (k − 1) kZ ′ (4.169) dove k é lo stesso fattore di prima. In sostanza, nelle due equazioni, i due termini di corrente legati alla presenza di Z ′ possono essere scritti come I1 = V1 Z1 (4.170) I2 = V2 Z2 (4.171) Z′ 1−k (4.172) e dove Z1 = e Z′ Z ′k = k−1 (4.173) 1 1− k ′ Quindi l’effetto dell’impedenza Z é equivalente, nelle due equazioni, alla presenza di un’impedenza Z1 tra il nodo 1 e la massa ed un’impedenza Z2 tra il nodo 2 e la massa (Fig. 4.40b). Una formulazione duale del teorema di Miller puo’ essere applicata alle maglie di un circuito. In Fig. 4.41b é mostrato un generico circuito, in cui l’elemento comune a due maglie adiacenti é l’impedenza Z ′ . Procedendo in analogia al ragionamento precedente é facile Z2 = b) a) Z1 Z2 Z' Figura 4.41: Applicazione del teorema di Miller delle maglie. dimostrare che il circuito e’ equivalente a quello di Fig. 4.41b in cui Z1 = Z ′ (1 − Ai ) e Z2 = Ai − 1 ′ Z Ai (4.174) (4.175) avendo posto Ai = −I2 /I1 (4.176) 142 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Il teorema di Miller é uno strumento utile per calcolare la risposta di un circuito, perche’ consente, come vedremo, di eseguire piu’ facilmente approssimazioni che semplificano il calcolo. 4.8.3 La regione di bassa frequenza C in Rs R out + _ C out + vs R in vi _ A vovi RL Figura 4.42:Circuito equivalente del generico amplificatore a bassa frequenza Possiamo facilmente comprendere la regione di bassa frequenza schematizzando il nostro amplificatore come nella Fig. 4.42. Questa e’ sostanzialmente valida per tutte le situazioni che abbiamo visto (tranne che per il caso dell’amplificatore a emettitore comune con capacita’ sull’emettitore, che richiedera’ un discorso a parte): in tutti casi infatti abbiamo una capacita’ all’ingresso, Cin e una capacita’ in uscita, Cout . L’amplificatore e’ quindi schematizzato come una resistenza d’ingresso, Rin , e una maglia di uscita con un generatore controllato di tensione,Avo vi e una resistenza Rout . Tutti questi parametri sono quelli che abbiamo gia’ ricavato nella nostra analisi a media frequenza. Per la maglia d’ingresso possiamo scrivere Vi = = Rin Vs 1 Rin + RS + jωCin 1 Rin Vs Rin + Rs 1 1+ jωCin (Rin + Rs ) (4.177) (4.178) Il secondo fattore e’ quindi un passa-alto con frequenza di taglio fL′ = 1 2πCin (Rin + Rs ) (4.179) Se, come e’ in genere auspicabile, Rs << Rin , la (4.179) e’ piu’ semplicemente fL′ ≃ 1 2πCin Rin (4.180) Nella maglia di uscita abbiamo Vo = = RL Avo Vi 1 RL + Rout + jωCout 1 RL Avo Vi RL + Rout 1 1+ jωCout (RL + Rout ) (4.181) (4.182) 143 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI Il secondo fattore e’ un altro passa-alto con frequenza di taglio fL′′ = 1 2πCout (Rout + RL ) (4.183) L’amplificazione effettiva, ovvero la funzione di trasferimento, e’ quindi data da Avs (ω) = Rin Rin + Rs 1 1 1+ jωCin (Rin + Rs ) RL RL + Rout 1 1 1+ jωCout (RL + Rout ) Avo (4.184) Abbiamo quindi un doppio passa-alto e l’andamento in funzione della frequenza dipende dalla posizione di fL′ e fL′′ (vedi Capitolo 2). Se le due frequenze sono sufficientemente distanziate si ha, a bassissima frequenza, una pendenza di 40dB/decade, seguita da un tratto a 20dB/decade, fino a raggiungere la regione di media frequenza. Se invece sono quasi coincidenti si ha un’unica salita a 40dB/decade. In definitiva, la scelta di Cin e Cout e’ legata all’intervallo di frequenze cui siamo interessati; dovremo fare in modo che fL′ e fL′′ siano ragionevolmente piu’ basse della minima frequenza da amplificare. Il caso dell’amplificatore con capacita’ di emettitore In questo caso abbiamo una terza capacita’ di cui dobbiamo tener conto, e l’analisi della regione di bassa frequenza e’ piu’ complicata. Ci conviene riprendere la Fig. 4.30(b) e, al posto di RE inserire un’impedenza ZE , cioe’ il parallelo tra RE e CE . Abbiamo 1 1 1 + jωCE RE = + jωCE = ZE RE RE (4.185) Inoltre, dobbiamo ora tenere esplicitamente conto dei due capacitori, di ingresso e di uscita; lo schema completo e’ quindi quello di Fig.4.43. Nella maglia d’ingresso ora non abbiamo piu’ solo elementi resistivi, bensi’ un’impedenza d’ingresso complessa Zin = RB k Zib = RB k (re + ZE ) (4.186) quindi Vi = Zin 1 Zin + RS + jωC1 Vs (4.187) L’amplificazione Avo (complessa) e’ ora Avo ≡ Vo RC =− =− Vi re + ZE RC RE re + 1 + jωCE RE (4.188) L’andamento in frequenza quindi diviene abbastanza complicato perche’, a causa della (4.187) , anche il passa-alto dovuto alla maglia d’ingresso e’ influenzato dalla presenza di CE . Possiamo tuttavia limitarci a una situazione meno complicata se facciamo l’ipotesi 144 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) C2 ic C RC α F ie Rs C1 vo RL i B b + vs vi _ re RB ie E R out ZE Z ib R in Figura 4.43: Circuito equivalente a bassa frequenza dell’amplificatore a emettitore comune con capacita’ di emettitore che l’impedenza d’ingresso sia comunque dominata da RB (cioe’ RB piccolo); allora il passa-alto sulla maglia d’ingresso e’ analogo a quanto visto negli altri casi, ovvero fL′ ≃ 1 2πC1 RB (4.189) Resta invece una variazione con la frequenza di Avo , come espressa dalla (4.188). Con alcuni semplici passaggi si arriva all’espressione Avo = − RC re 1 + jωCE RE RE 1+ + jωCE RE re ≃− RC 1 + jωCE RE re RE + jωCE RE re (4.190) Vediamo che al limite ω → ∞, cioe’ l’impedenza di CE e’ assimilabile ad un corto circuito Avo = − RC re (4.191) mentre, al limite ω → 0 (cioe’ l’impedenza di CE e’ molto maggiore di quella di RE ) Avo = − RC RE (4.192) quindi ritroviamo i risultati che gia’ conosciamo. La transizione tra il livello di alta amplificazione 4.191 e quello di bassa amplificazione (4.192) e’ descritta dalla (4.190); puo’ essere interessante determinare la frequenza, fC , a cui il modulo della funzione di trasferimentop dimuisce di 3 dB, ovvero, in termini lineari, quando il modulo diminuisce di un fattore (2)/2. Si trova facilmente, partendo dalla (4.189), che 1 (4.193) fC = 2πre CE 145 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI Questo non deve meravigliare; affinche’ l’amplificazione raggiunga il massimo occorre che l’impedenza di CE sia piccola rispetto ad re . L’andamento complessivo della funzione di trasferimento e’ quindi quello mostrato in Fig. 4.44, dove, per chiarezza, abbiamo ipotizzato che fC sia molto piu’ alta di fL , frequenza di taglio generata dagli altri condensatori; in questo modo si ha un doppio regime di amplificazione, ben distinguibile. Nella realta’, ovviamente, il progettista cerchera’ di solito di avere un’unico intervallo di alta amplificazione e quindi di portare fC piu’ in basso possibile. Questo implica l’utilizzazione di condensatori molto grandi dato il piccolo valore di re . |V| o (dB) |V| s |A| = |A| = Bassa frequenza Media frequenza RC rE Alta frequenza 3 dB RC RE fL fC fH log f Figura 4.44: Funzione di trasferimento dell’amplificatore a emettitore comune con capacita’ di emettitore. 4.8.4 La regione di alta frequenza La regione ad alta frequenza richiede uno studio separato per i vari tipi di amplificatore, perche’, come vedremo, il comportamento si differenzia. In ogni caso, in questa regione, i condensatori esterni possono essere assimilati a dei corti circuiti. Amplificatore ad emettitore comune Dobbiamo utilizzare il modello π per alta frequenza che abbiamo visto in precedenza. In questa regione tutti i capacitori esterni possono essere sostitui da corti circuiti, percio’ il circuito equivalente e’ quello in Fig. 4.45(a). Possiamo semplificarlo utilizzando il teorema di Thevenin dal lato dell’ingresso e raggruppando le resistenze dal lato dell’uscita, arrivando 146 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Rs Cμ B rx + (a) Vs C vπ RB _ rπ gmvπ Cπ E R’S RC ro R L Vo E Cμ B C + (b) V’s vπ _ gmvπ Cπ R’L Vo E R’S B C + (c) V’s _ vπ Cπ gmvπ C’ R’L C’’ Vo E Figura 4.45: (a) L’amplificatore a emettitore comune ad alta frequenza; (b) Circuito equivalente dopo l’applicazione del teorema di thevenin sulla maglia d’ingresso e semplificazione della maglia di uscita; (c) Trasformazione del circuito con il teorema di Miller. cosi’ al circuito di Fig. 4.45(b), dove abbiamo posto ′ RL = ro k RC k RL RS′ Vs′ = rπ k [rx + (RB k Rs )] rπ RB = Vs RB + Rs rπ + rx + (RS k RB ) (4.194) (4.195) (4.196) Il circuito puo’ essere semplificato ulteriormente utilizzando il teorema di Miller: la capacita’ Cµ tra il nodo di base e il nodo di collettore puo’ essere sostituita da due capacita’ verso la massa, C ′ e C ′′ , i cui valori sono: Vo ) Vπ Vπ = Cµ (1 − ) Vo C ′ = Cµ (1 − (4.197) C ′′ (4.198) 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI 147 Il rapporto Vo (4.199) Vπ puo’ essere calcolato approssimativamente; infatti se siamo a frequenze attorno a fH , cioe’ non troppo lontane dalla banda di media frequenza, e’ ragionevole assumere che la corrente ′ . In altre parole il che attraversa Cµ sia trascurabile rispetto a quella che passa in RL rapporto tra tensione di collettore e tensione di base e’ circa quello che si ha a media frequenza, cioe’ ′ k ≃ −gm RL (4.200) k≡ In definitiva possiamo quindi approssimare ′ C ′ ≃ Cµ (1 + gm RL ) C ′′ ≃ Cµ (4.201) (4.202) Questo ci consente di concludere; abbiamo in definitiva due circuiti passa-basso in cascata. Il primo, nella maglia d’ingresso, formato da RS′ e Cin = Cπ +C ′ , quindi con una frequenza di taglio 1 ′ fH = (4.203) ′ 2πRs (Cπ + C ′ ) ′ e C ′′ , con frequenza di taglio Il secondo, nella maglia d’uscita, formato da RL ′′ fH = 1 ′ C ′′ 2πRL (4.204) ′ e’ molto piu’ bassa di f ′′ , percio’ si ha una regione con una In genere, la frequenza fH H discesa a −20 dB/decade, seguita da una regione con una discesa a −40 dB/decade. La (4.202) ci fa apprezzare l’importanza dell’effetto Miller: piu’ e’ grande l’amplificazione, maggiore e’ la penalizzazione in termini di banda passante. E’ chiaro quindi che nella progettazione di un amplificatore queste considerazioni devono essere ben valutate. Amplificatore a base comune Utilizziamo di nuovo il modello π per alta frequenza che abbiamo visto in precedenza. In questa regione tutti i capacitori esterni possono essere sostitui da corti circuiti, percio’ il circuito equivalente e’ quello in Fig. 4.46(a). Per facilitare l’analisi conviente trascurare rx (pertanto il punto B’ si viene a trovare a massa) e ro . A questo punto si puo’ ridisegnare il circuito e semplificarlo utilizzando il teorema di Thevenin dal lato dell’ingresso e raggruppando le resistenze dal lato dell’uscita, arrivando cosi’ al circuito di Fig. 4.46(b), dove abbiamo posto Rs′ = Rs k rπ k RE RE k r π Vs′ = Vs (RE k rπ ) + Rs ′ RL = RC k RL (4.205) (4.206) (4.207) Il nodo E e’ alla tensione VE = −Vπ , quindi la relativa equazione e’ Vs′ − VE − gm VE − jωCπ VE = 0 Rs′ (4.208) 148 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Cμ B’ B C rx vπ rπ gmvπ Cπ ro E (a) RC Rs Vs + _ E gmvπ C + V’s Vo RE R’s (b) RL vπ _ Cμ Cπ R’L Vo Figura 4.46: (a) L’amplificatore a base comune ad alta frequenza; (b) Circuito equivalente dopo l’applicazione del teorema di Thevenin sulla maglia d’ingresso e semplificazione della maglia di uscita. Per semplificare l’analisi si sono trascurati rx ed ro . da cui ricaviamo VE = Vs′ = 1 1 + ′ + jωCπ ) Rs 1 1 + Rs′ gm Rs′ 1 + jωCπ 1 + Rs′ gm (4.209) Rs′ (gm (4.210) L’equazione del nodo di uscita e’ −gm VE + jωCµ Vo + Vo ′ =0 RL (4.211) da cui ricaviamo Vo gm RC = VE 1 + jω Cµ RC (4.212) 4.8. LA RISPOSTA IN FREQUENZA DEGLI AMPLIFICATORI 149 Possiamo ora facilmente ricavare Avs dalle (4.210) e (4.212). Infatti si ha Avs 1 RE k r π VE Vo g m RC 1 + Rs′ gm = = ′ ′ Vs Vs VE (RE k rπ ) + Rs 1 + jω Cµ RC Rs 1 + jωCπ ′ 1 + Rs g m Vs′ (4.213) Si ha quindi un doppio passa basso con frequenze di taglio ′ fH = 1 ′ 2πCµ RL (4.214) ′′ fH = 1 2πCπ Rs′′ (4.215) Rs′ 1 + Rs′ gm (4.216) e dove Rs′′ = Come ci si poteva aspettare la banda passante di questo amplificatore e’ migliore rispetto a quella della configurazione ad emettitore comune, perche’ non e’ penalizzata dall’effetto Miller: in questo caso, infatti, il terminale di ingresso (emettitore) e il terminale di uscita (collettore) non sono collegati direttamente tra loro da una capacita’ parassita14 . Amplificatore a collettore comune Utilizziamo ancora il modello π per alta frequenza che abbiamo visto in precedenza. In questa regione tutti i capacitori esterni possono essere sostitui da corti circuiti, percio’ il circuito equivalente e’ quello in Fig. 4.47(a). Possiamo ridisegnarlo unificando le masse, semplificarlo utilizzando il teorema di Thevenin dal lato dell’ingresso e raggruppando le resistenze dal lato dell’uscita, arrivando cosi’ al circuito di Fig. 4.47(b), dove abbiamo posto Rs′ = rx + (RB k Rs ) RB Vs′ = RB + Rs ′ RL = RE k RL k r o (4.217) (4.218) (4.219) Le equazioni dei nodo B’ e del nodo di uscita sono Vo VB ′ − Vo + gm (VB ′ − Vo ) = ′ Zπ RL Vs − VB ′ V ′ − Vo V ′ = B + B Rs′ Zµ Zπ 14 (4.220) (4.221) In linea di principio vi e’ una capacita’ parassita anche tra emettitore e collettore, ma e’ chiaramente molto piu’ piccola delle altre e normalmente trascurabile 150 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Cμ B’ B C rx vπ Rs rπ gmvπ Cπ (a) ro E Vs + RB _ RL RE Vo B’ vπ R’s (b) Cπ rπ E Cμ V’s + gmvπ R’L _ Vo C Figura 4.47: (a) L’amplificatore a collettore comune ad alta frequenza; (b) Circuito equivalente dopo l’applicazione del teorema di Thevenin sulla maglia d’ingresso e semplificazione della maglia di uscita. dove abbiamo indicato con Zπ l’impedenza complessiva del parallelo rπ , Cπ e con Zµ l’impedenza di Cµ Riordinando i termini si ha 1 1 1 + g m ) = Vo ( + ′ ) Zπ Zπ RL + g m 1 1 V′ 1 Vo VB ′ ( + ′ + ) = s′ + Z µ Rs Z π Rs Zπ VB ′ ( (4.222) (4.223) Dalla prima equazione si ricava [1 + Zπ (gm + VB ′ = Vo 1 )] R′ L 1 + g m Zπ Se (4.224) 1 gm (4.225) VB ′ ≃ Vo (4.226) ′ RL ≫ si ha e allora dalla seconda equazione si ricava facilmente la funzione di trasferimento A= Vo 1 = ′ Vs 1 + jωCµ Rs′ (4.227) 151 4.9. AMPLIFICATORI A DUE STADI cioé l’equazione di un passa basso con frequenza di taglio fT = 4.8.5 1 2πCµ Rs′ (4.228) Riepilogo Nella regione di bassa frequenza la risposta degli amplificatori e’ determinata dalla (eventuale) presenza di condensatori esterni. Se si vuole avere una buona amplificazione fino a frequenze bassissime, ovvero come si dice spesso, in continua, e’ necessario eliminarli. La regione di alta frequenza e’ invece dominata dalle capacita’ interne del transistor e si ha sempre un comportamento di doppio passa-basso. In genere i due passa-basso hanno ′ e f ′′ , molto lontane tra loro, quindi si ha una prima discesa a frequenze di taglio, fH H −20 dB/decade, seguita poi da una discesa a −40 dB/decade. La larghezza di banda dell’amplificatore, BW , e’ data da BW = fH − fL (4.229) dove fL e’ la frequenza di taglio introdotta dai condensatori esterni, se ve sono, e fH e’ la piu’ bassa delle frequenze di taglio alto. Poiche’ in genere fL ≪ fH (o nulla se non vi sono condensatori) si puo’ approssimare BW ≃ fH (4.230) ′′ e’ molto lontana dalla regione di frequenza di interesse, e f nulla, o molto Infine, se fH L piccola comunque, e’ usuale descrivere il comportamento dell’amplificatore assimilandolo ad un passa-basso, scrivendo ad esempio, per l’amplificazione di tensione in funzione della frequenza Ao Av (f ) = (4.231) f 1+ fH 4.9 Amplificatori a due stadi E’ molto frequente l’uso di amplificatori a piu’ stadi, che vengono realizzati per ottenere prestazioni complessivamente adeguate alle necessita’, non solo in termini di amplificazione, ma anche relativamente alle altre caratteristiche, resistenza d’ingresso, resistenza di uscita, banda passante, ecc. Nella Fig. 4.48 e’ schematizzato un amplificatore a due stadi. E’ facile verificare che l’amplificazione complessiva non e’ in generale data dal prodotto delle 2 amplificazioni, bensi’ Ri2 vo2 = Av1 Av2 (4.232) Av ≡ vi1 Ro1 + Ri2 perche’ nell’accoppiamento dei due stadi vi e’ una partizione tra resistenza d’ingresso del secondo stadio e resistenza d’uscita del primo. Solo se Ri2 ≫ Ro1 si ha Av ≃ Av1 Av2 Vedremo ora alcuni esempi di amplificatori a due stadi di uso comune. (4.233) 152 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) STADIO 1 STADIO 2 R o1 Rs + + vs _ R o2 vi1 R i1 _ + A v1vi1 vi2 R i2 _ A v2 vi2 vo2 RL Figura 4.48:Schema di un amplificatore a due stadi. 4.9.1 Amplificatore CE - CC Un classico esempio di amplificatore a due stadi e’ quello mostrato nella Fig. 4.49(a): il segnale e’ amplificato in un primo stadio ad emettitore comune (con o senza capacita’ di emettitore) e poi inviato ad un secondo stadio inseguitore di tensione. La bassa resistenza di uscita di quest’ultimo consente quindi di fornire grande corrente al carico finale RL . I due stadi sono disaccoppiati da un condensatore, C2 , affinche’ il punto di lavoro statico dei 2 transistor non venga alterato. In realta’ questo amplificatore puo’ essere realizzato molto semplicemente, in modo piu’ integrato, come nella Fig. 4.49(b), eliminando C2 e il partitore di polarizzazione del secondo transistor. La tensione statica della base del secondo transistor coincide con la tensione di collettore del primo, quindi non serve disaccoppiare. Questo e’ possibile perche’ la resi′ ) e’ molto maggiore della resistenza d’uscita stenza d’ingresso del secondo stadio (≃ hf e RE del primo (≃ RC ), quindi il secondo stadio non perturba il punto di lavoro del primo. Questa semplificazione e’ molto vantaggiosa perche’ si elimina un condensatore (fonte sempre di problemi) ed un inutile dissipazione di corrente nel partitore del secondo stadio. L’amplificazione di tensione complessiva e’ semplicemente il prodotto delle due A = ACE × ACC ≃ 1 × ACE (4.234) Complessivamente avremo quindi alta amplificazione e alta resistenza d’ingresso ma la banda passante puo’ non essere soddisfacente a causa dell’effetto Miller sullo stadio CE. 4.9.2 Amplificatore CC - CB Un altro amplificatore a due stadi e’ realizzato con l’accoppiamento di un amplificatore a collettore comune con un amplificatore a base comune. Un possibile esempio e’ mostrato nella Fig. 4.50, realizzato con doppia alimentazione in modo da non aver bisogno del condensatore in ingresso. Il segnale entra nella base del transistor Q1 ed esce dal suo emettitore, entra nell’emettitore di Q2 ed esce lal suo collettore. Quindi Q1 e’ un inseguitore di tensione, Q2 un amplificatore a base comune. In prima approssimazione la resistenza d’ingresso del secondo stadio coincide con la resistenza d’uscita del primo, percio’ nell’accoppiamento si riduce il segnale di un fattore ≈ 2. L’amplificazione di tensione complessiva e’ quindi A = ACC × 1 1 × ACB ≃ gm2 RC 2 2 (4.235) 153 4.9. AMPLIFICATORI A DUE STADI VCC VCC R’1 R1 C2 C’2 C1 Rs (a) RC vo R’2 + vs vi _ R2 R’E RL CE RE VCC R1 R in ≅ hfe R’E C’2 C1 Rs (b) RC vo R’E + vs _ vi R2 RE CE RL R out≅ R C Figura 4.49: (a) Amplificatore a due stadi CE - CC (il primo stadio puo’ naturalmente essere anche senza la capacita’ di emettitore; (b) Montaggio integrato. dove gm2 e’ la transconduttanza del transistor Q2 . Avremo occasione di rivedere questo circuito nella prossima Sezione, quando parleremo degli amplificatori differenziali, dove faremo un’analisi piu’ quantitativa. Possiamo comunque qui concludere che esso fornisce alta amplificazione, alta resistenza d’ingresso e una buona banda passante, visto che nessuno dei due stadi e’ penalizzato dall’effetto Miller. 4.9.3 Amplificatore CE - CB (cascode) L’ultimo esempio e’ un amplificatore a due stadi composto da un primo stadio ad emettitore comune, seguito da un secondo stadio a base comune 15 . Una possibile realizzazione 15 Il termine “cascode” é una contrazione della espressione “cascade to cathode”; è stato usato la prima volta in un articolo del 1939 in cui si proponeva un circuito di questo tipo (allora composto da due triodi). 154 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC RC vo Rs Q1 R in ≅ re Q 2 + _ vs RE VEE R out ≅ re Figura 4.50:(a) Amplificatore a due stadi CC - CB . é mostrata in Fig. 4.51(a). Il circuito sembra complesso ma l’analisi per piccoli segnali a media frequenza e’ molto semplice. Nella Fig. 4.51(b) abbiamo il circuito equivalente ottenuto sostituendo ai transistor il modello T e eliminando i due condensatori. Il resistore RB e’ RB = R2 k R3 (4.236) e la tensione d’ingresso vi e’ semplicemente RB vs RB + R s (4.237) vo = −αF 1 ie1 RC (4.238) ie1 = −αF 2 ie2 (4.239) vi = La tensione d’uscita e’ data da ma osservando il circuito si vede che percio’, sostituendo la (4.239) nella (4.238) si ottiene vo = αF 1 αF 2 ie2 RC (4.240) Per la tensione d’ingresso possiamo scrivere quindi abbiamo Avo ≡ vi = −(re2 + RE )ie2 (4.241) α F 1 α F 2 RC RC vo =− ≃− vi (re2 + RE ) RE (4.242) 155 4.9. AMPLIFICATORI A DUE STADI VCC RC R1 C1 Q1 R2 Rs C2 (a) Q + _ vs vi R3 Vo 2 RE αF ie Rs 2 2 re 1 αF ie 1 1 ie 1 re 2 + (b) _ vs RB ie 2 RC Vo RE Figura 4.51: (a) Amplificatore a due stadi CE - CB (cascode); (b) Circuito equivalente per piccoli segnali (alle frequenze per cui C1 e C2 possono essere sostituiti da corti circuiti). dove l’ultimo passaggio e’ fatto nell’ipotesi plausibile che RE ≫ re2 . Infine Avs ≡ RC RB vo ≃− vs RB + Rs RE (4.243) E’ anche possibile mettere un condensatore di by-pass in parallelo ad RE , sufficientemente grande da poter essere assimilato ad un corto circuito alle frequenze di interesse. In quel caso avremo semplicemente Avo = − αF 1 αF 2 RC ≃ −gm2 RC re2 (4.244) quindi una alta amplificazione.. In sostanza in questo circuito il primo stadio amplifica pochissimo, perchè vede davanti a se’ un carico molto piccolo (la resistenza d’ingresso del secondo stadio è ∼ re1 ), quindi non subisce l’effetto Miller. L’amplificazione è tutta nello stadio CB che, di nuovo, non è penalizzata ad alta frequenza. 156 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Nel complesso si ha quindi una buona amplificazione, alta resistenza d’ingresso e una buona banda passante. 4.10 Stadio d’uscita negli amplificatori multi stadio Figura 4.52: (a): Inseguitore di tensione polarizzato con un generatore di corrente I;(b) Massima escursione del segnale di uscita vO ; (c): Massima escursione della corrente di collettore con segnale d’ingresso sinusoidale La funzione dello stadio di uscita e’, come abbiamo gia’ detto, quella di fornire al carico il segnale senza perdita di amplificazione, ovvero con una bassa resistenza di uscita. Per questo, in genere, viene utilizzato un inseguitore di tensione, caratterizzato appunto da una bassa resistenza di uscita e quindi dalla capacita’ di fornire al carico una grande corrente. Conviene ora approfondire questo argomento anche in relazione alle sue implicazioni in termini delle potenze in gioco: in genere l’ultimo stadio deve fornire una grande potenza al carico e non e’ quindi irrilevante valutare l’efficienza di questo trasferimento. E’ usuale classificare gli amplificatori in base alle loro modalita’ di funzionamento, in particolare in relazione alla frazione di segnale che amplificano. Esamineremo ora le classi A, B e AB, ovvero quelle piu’ diffuse. 4.10.1 Amplificatori di classe A Gli amplificatori di classe A amplificano totalmente il segnale, sono sostanzialmente quelli di cui abbiamo parlato finora. Consideriamo il semplice inseguitore di tensione con doppia alimentazione schematizzato nella Fig 4.52a, dove il transistor e’ polarizzato con un generatore di corrente ideale I. 4.10. STADIO D’USCITA NEGLI AMPLIFICATORI MULTI STADIO 157 Il segnale d’uscita, vO riproduce il segnale d’ingresso vI con una traslazione di −VBE ; affinche’ non ci sia deformazione la sua ampiezza non deve superare VCC − VCEsat per la semionda positiva (altrimenti il transistor va in saturazione) e IRL per la semionda negativa (altrimenti il transistor si interdice), come mostrato nella Fig 4.52b. Quindi, avendo un segnale vO di una data ampiezza e un carico di un dato valore RL , il valore del generatore di corrente I non puo’ essere arbitrario ma deve essere scelto in modo da garantire che vO sia minore di IRL , con un adeguato margine 16 . Possiamo ora valutare l’efficienza energetica dell’inseguitore, intesa come rapporto tra la potenza fornita al carico, PL , e la potenza assorbita dalle alimentazioni, PS : η= PL PS Per semplificare, ipotizziamo di avere VEE = −VCC e VCC − VCEsat ≃ VCC . La potenza media fornita al carico per un segnale sinusoidale con ampiezza vO e’ data da PL = 2 1 vO 2 RL La corrente fornita dal generatore ideale e’ costante e pari ad I, quindi la potenza fornita dal generatore negativo e’ VCC I. La corrente media fornita dal generatore positivo e’di nuovo I (Fig 4.52c), quindi la relativa potenza e’ VCC I. In definitiva la potenza totale fornita dalle alimentazioni e’ PS = 2VCC I e l’efficienza e’ quindi PL = 4.10.2 2 1 vO 4 IRL VCC Amplificatori di classe B Un semplice inseguitore di tensione di classe B e’ mostrato nella Fig 4.53a. E’ costituito da una coppia complementare di transistor (un npn e un pnp) connessi in modo che non possono condurre simultaneamente. Ogni transistor amplifica quindi il 50% del segnale. Quando la tensione d’ingresso, vI e’ zero, entrambi i transistor sono in interdizione e la tensione d’uscita vO e’ nulla. Se vI diviene positiva e supera 0.5 V il transistor QN comincia a condurre e funziona come inseguitore di tensione; viceversa il transistor QP e’ in interdizione. Analogamente, se vI diviene negativa e supera −0.5 V il transistor QP comincia a condurre e funziona come inseguitore di tensione mentre il transistor QN e’ in interdizione. La transcaratteristica e’ quindi la curva mostrata in Fig 4.53b: come si vede c’e’ un intervallo attorno a VI = 0 dove entrambi i transistor sono in interdizione. Questo provoca la distorsione del segnale di uscita mostrata in Fig 4.53c: una tensione sinusoidale in ingresso viene deformata e l’effetto e’ tanto maggiore quanto piu’ l’ampiezza e’ piccola (distorsione di cross-over). Per calcolare l’efficienza energetica η dell’amplificatore trascuriamo l’effetto della distorsione e assumiamo che le due alimentazioni siano uguali in modulo (VEE = −VCC ). La 16 RE . Lo stesso criterio si deve ovviamente applicare anche per un inseguitore polarizzato con un resistore 158 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Figura 4.53: a): inseguitore di tensione di classe B; b): transcaratteristica; c) forma d’onda in uscita per un ingresso sinusoidale. potenza media fornita al carico nel caso di una tensione sinusoidale e’ data da PL = 2 1 vO 2 RL In ogni semionda il circuito assorbe da una delle due alimentazioni una corrente media vO /(πRL ); la potenza totale assorbita e’ quindi PS = 2 2 vO VCC π RL L’efficienza e’ infine π vO 4 VCC Si vede che l’efficienza e’ massima quando l’ampiezza del segnale di uscita e’ proprio uguale a VCC ed e’ pari a π ηmax = = .785 4 In realta’ questa efficienza non e’ esattamente raggiungibile perche’ il segnale di uscita e’ limitato tra (VCC − VCEN Sat ) e (−VCC + VCEP Sat ), ma ad ogni modo e’ di gran lunga migliore di quella ottenuta con l’amplificatore di classe A. η= 4.10.3 Amplificatori di classe AB La distorsione di cross-over puo’ essere eliminata polarizzando i due transistor in modo da mantenerli sempre in debole conduzione, quindi ciascuno amplifica piu’ del 50% del segnale. 4.10. STADIO D’USCITA NEGLI AMPLIFICATORI MULTI STADIO 159 Figura 4.54: Schema concettuale di un amplificatore di classe AB Il risultato e’ l’amplificatore di classe AB mostrato nella Fig 4.54. Una tensione VBB e’ applicata tra le basi dei due transistor e, quando vI = 0 e vO = 0, una tensione VBB /2 appare su ciascuna delle due giunzioni base-emettitore. Assumendo che i due transistor siano identici si ha iN = iP = IQ = Is eVBB /2VT quindi VBB deve essere scelto in modo da ottenere la desiderata corrente statica IQ . Quand vI diventa positiva la base di QN sale della stessa quantita’ e l’uscita segue vO = vI + VBB − vBEN 2 La corrente iN aumenta per fornire la corrente IL al carico e si ha iN = iL + iP Conseguentemente la vBEN aumenta, ma poiche’ la differenza di potenziale tra le basi e’ mantenuta costante (pari a VBB ), la vBEP deve diminuire, provocando una diminuzione di iP . Quantitativamente si ha vBEN + vBEP iN iN VT ln + VT ln Is Is iN iP = VBB = 2VT ln IQ Is 2 = IQ Quindi se iN aumenta iP diminuisce dello stesso rapporto; per grandi valori di vI (positivo) la conduzione e’ sostanzialmente dovuta a QN perche’ il contributo di QP diviente trascurabile. Quando VI e’ negativa il comportamento si inverte e la conduzione e’ prevalentemente dovuta a QP . L’efficienza energetica dell’amplificatore di classe AB e’ sostanzialmente la stessa della classe B, salvo l’ulteriore potenza dissipata in condizioni di riposo, ovvero 2VCC IQ , ma questa e’ in generale trascurabile se si progetta il circuito in modo da avere una corrente IQ piccola. 160 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Polarizzazione con diodi Figura 4.55: Amplificatore di classe AB. a): polarizzazione con diodi; b): polarizzazione con transistor L’amplificatore di classe AB puo’ essere concretamente realizzato utilizzando due diodi e un generatore di corrente IBIAS (Fig 4.55a). In assenza di segnale il generatore deve fornire la corrente IQ ai diodi ed e’ quindi opportuno scegliere diodi con un basso valore di Is per diminuire la dissipazione. Quando VI e’ positiva il transistor QN conduce e fornisce al carico una corrente iL ; la corrente di base di QN deve percio’ essere iL /βN e questa corrente deve essere fornita dal generatore IBIAS , quindi il progetto deve prevedere un valore di IBIAS sufficiente a questo scopo. Polarizzazione con transistor Una soluzione che offre piu’ flessibilita’ e’ quella mostrata in Fig 4.55b: il transistor Q1 e’ polarizzato con il partitore R1 , R2 e riceve la corrente dal generatore IBIAS . R1 e R2 sono percorse dalla stessa corrente IR , se trascuriamo la corrente di base di Q1 , e si ha IR = VBE1 R1 Quindi la tensone VBB tra le basi di QN e QP e’ semplicemente VBB = IR (R1 + R2 ) R2 ) = VBE1 (1 + R1 Quindi la tensione VBB puo’ facilmente essere fissata agendo sul rapporto delle resistenze in modo da avere la corrente di quiete desiderata. 161 4.11. SPECCHI DI CORRENTE 4.11 Specchi di corrente Abbiamo gia’ brevemente menzionato questi dispositivi nella Sez 4.6 come utili per costruire un generatore di corrente quasi ideale. Li incontreremo di nuovo nello studio degli amplificatori differenziali (Sez 4.12) e negli amplificatori integrati (che studieremo nel Cap 6), e’ quindi opportuno approfondirne la conoscenza. Figura 4.56:(a): Specchio di corrente; (b): Specchio di corrente con compensazione In Fig 4.56a e’ riportato di nuovo lo specchio di corrente, dove ora pero’ vogliamo calcolare in modo piu’ accurato il rapporto di trasferimento (Io /IREF ) tenendo conto delle correnti di base. Dalla Figura, dove sono riportate tutte le correnti, si ottiene facilmente IREF = Ic + 2Ic 2 = Ic (1 + ) β β (4.245) Il rapporto di trasferimento e’ quindi Io IREF = 1 2 1+ β = β 2+β (4.246) Come si vede il rapporto di trasferimento è unitario nel limite di β infinito, ma per normali transistor con β ∼ 100 e’ inferiore all’unità e sensibile a variazioni di β. Specchio di corrente con compensazione della corrente di base Un meccanismo per ridurre l’influenza di un β finito e’ riportato nella Fig 4.56b. Si ha in questo caso VCC − VBE1 − VBE3 (4.247) IREF = R da cui segue Io 1 = (4.248) 2 IREF 1+ 2 β +β 162 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Specchio di corrente Wilson Figura 4.57: (a): Specchio di corrente Wilson; (b) Circuito equivalente per il calcolo dell’impedenza di uscita Nei circuiti precedenti la resistenza d’uscita e quindi la non idealità della sorgente di corrente e’ sostanzialmente la resistenza ro del transistor Q2 (non riportata in Figura). Lo specchio Wilson è una variante ingegnosa per attenuare l’effetto del β sul rapporto di trasferimento e per aumentare la resistenza d’uscita del circuito (Fig. 4.57 (a)). Il rapporto di trasferimento è dato da Io = IREF 1 1+ 2 β2 (4.249) La resistenza d’uscita viene calcolata con il consueto metodo, ovvero applicando all’uscita una tensione vx e calcolando la corrente risultante, ix (Fig 4.57 (b)). Si ha ix = ic1 + ic2 (4.250) Ma lo specchio di corrente formato da Q1 e Q2 garantisce che ic2 = ic1 quindi 1 (4.251) ix = 2ic1 ⇒ ic 1 = ix 2 Poiché la resistenza offerta dalla coppia Q1 ,Q2 è molto piccola (≃ re1 ) rispetto a ro3 la tensione vx cade tutta sul collettore di Q3 ed inoltre ib3 = ic1 . Abbiamo quindi ix = vx β − ix ro3 2 (4.252) Ovvero vx β = ro3 ix 2 Si ha quindi un aumento della resistenza d’uscita di un fattore β/2. Ro = (4.253) 163 4.12. AMPLIFICATORE DIFFERENZIALE Figura 4.58: Specchio di corrente multiplo: le basi di tutti i transistor sono connesse tra loro. Specchio di corrente multiplo Nei circuiti integrati e’ spesso necessario disporre di varie sorgenti di corrente. Questo puo’ essere ottenuto come in Fig 4.58, dove partendo da un’unica corrente di riferimento IREF si possono ottenere molte repliche uguali Io . Questo naturalmente e’ strettamente vero solo nel limite β infinito, nella realta’ le cose sono un po’ piu’ complicate. 4.12 Amplificatore differenziale v2 v1 Ad vo + Figura 4.59:a) L’amplificatore differenziale Studieremo ora l’amplificatore differenziale (Fig. 4.59), cioe’ un dispositivo a due ingressi, in cui si richiede che vo = Ad (v1 − v2 ) (4.254) Possiamo comprendere come realizzare un dispositivo del genere osservando che, in generale, la tensione d’uscita vo sara’ funzione delle due tensioni d’ingresso; sviluppando in serie e limitandosi al primo ordine si avra’ vo = A1 v1 + A2 v2 (4.255) 1 vc = (v1 + v2 ) 2 (4.256) vd = (v1 − v2 ) (4.257) Introduciamo due nuove variabili 164 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Si ricava quindi che 1 v1 = vc + vd 2 1 v2 = vc − vd 2 (4.258) (4.259) e sostituendo nella 4.255 si ottiene vo = Ad vd + Ac vc (4.260) dove 1 (A1 − A2 ) 2 = (A1 + A2 ) Ad = (4.261) Ac (4.262) Ad e Ac prendono il nome di amplificazione differenziale e di amplificazione di modo comune rispettivamente. E’ anche utile notare che Ad rappresenta l’amplificazione del circuito quando i segnali d’ingresso sono uguali ed opposti, mentre Ac rappresenta l’amplificazione quando i segnali d’ingresso sono uguali. Confrontando la 4.260 con la 4.254 si vede che possiamo ottenere il risultato voluto se costruiamo un dispositivo con Ac = 0 e Ad 6= 0, cioe’ dobbiamo avere A1 = −A2 (4.263) Possiamo facilmente comprendere che in circuito reale questa condizione ben difficilmente puo’ essere realizzata in modo esatto; quello che in realta’ si puo’ fare e’ di avere Ac molto piccola rispetto ad Ad . E’ logico quindi definire un fattore di merito dell’amplificatore differenziale come il rapporto Ad ρ = (4.264) Ac che prende il nome di Common Mode Rejection Ratio (CMRR); in un amplificatore differenziale "ideale" si ha quindi ρ = ∞. Gli amplificatori differenziali sono dispositivi molto importanti e comunemente usati. Per comprenderne l’utilita’ possiamo confrontare le due situazioni in Fig. 4.60, in cui un segnale (contenente una certa "informazione") esce da una sorgente e viene trasferito all’ingresso di un amplificatore, mescolato a disturbi provenienti dall’esterno. Nel caso (a) viene usato un amplificatore convenzionale, alla cui uscita il segnale ed il disturbo vengono ugualmente amplificati; nel caso (b) il disturbo, essendo presente in egual misura su entrambi gli ingressi, viene fortemente soppresso. Si comprende quindi la convenienza ad utilizzare il modo differenziale per trasmettere ed elaborare segnali quando disturbi, sia provenienti dall’esterno ma anche interni ai circuiti (per esempio, il ripple dell’alimentazione in continua), debbano essere soppressi. Amplificatore differenziale con 2 transistor Un esempio di realizzazione di un amplificatore differenziale e’ riportato in Fig. 4.61(a), dove l’uscita puo’ essere prelevata su uno qualunque dei due collettori17 . L’uso della 17 E’ anche possibile, naturalmente, prelevare entrambe le uscite: si avra’ allora un amplificatore differenziale con uscita differenziale. 165 4.12. AMPLIFICATORE DIFFERENZIALE a) vd A vs vo v o=A(v s+v d) vd b) v2 vd Ad + v1 vo v o=(v 1 +v d) - ( v 2 +v d)=v 1 - v 2 Figura 4.60: Amplificazione di un segnale soggetto a disturbi: a) con amplificatore semplice; b) con amplificatore differenziale doppia alimentazione consente di evitare capacitori ai due ingressi ed avere quindi una buona risposta fino a frequenza zero. Supporremo per semplicita’ che le due sorgenti di segnale abbiano la stessa resistenza d’uscita, RS , e che le due resistenze sui collettori, RC , siano uguali. Dopo aver polarizzato i due transistor attraverso un’opportuna scelta dei valori delle resistenze, possiamo analizzare il circuito utilizzando lo schema equivalente per piccoli segnali di Fig. 4.61(b), prelevando l’uscita sul collettore del transistor Q1 , che, per alleggerire la notazione, chiameremo semplicemente vo . Per semplicita’ supporremo che RS sia trascurabile rispetto alla resistenza d’ingresso; in questo modo v1 ≈ vs1 e v2 ≈ vs2 , quindi tralasciamo l’effetto delle partizioni d’ingresso. Osservando il circuito possiamo scrivere 3 relazioni vo = α1 ie1 RC (4.265) v1 = −re1 ie1 − RE (ie1 + ie2 ) (4.266) v2 = −re2 ie2 − RE (ie1 + ie2 ) (4.267) Dovremmo ora combinare queste relazioni per poter esprimere vo in funzione di v1 e v2 , ma sarebbe una strada assai complicata. E’ molto piu’ semplice studiare 2 casi particolari 166 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC RC RC vo1 vo2 Rs Q Q1 (a) Rs 2 + + _ vs2 vs1 _ RE VEE Rs (b) ie1 ie2 re1 re2 v1 vo1 Rs α2 ie2 α1ie1 iE RE v2 vo2 + vs1 _ + RC RC _ vs2 Figura 4.61:a) Amplificatore differenziale;b) Circuito equivalente per piccolo segnali che ci consentiranno facilmente di ricavare Ad e Ac ; infatti, se inviamo all’amplificatore due segnali d’ingresso identici, cioe’ v2 = v1 , ricaviamo subito dalla (4.260) vo = Ac vc = Ac v1 dato che on questo caso vd = 0. Quindi si ricava vo Ac = v1 (4.268) (4.269) Viceversa, se inviamo all’amplificatore due segnali uguali ed opposti, cioe’ v2 = −v1 , dalla (4.260) abbiamo vo = Ad vd = 2Ad v1 (4.270) e quindi vo (4.271) 2v1 Studiamo allora il primo caso, ovvero v2 = v1 . In questa situazione i secondi membri delle (4.267) e (4.267) sono uguali, ovvero Ad = −re1 ie1 − RE (ie1 + ie2 ) = −re2 ie2 − RE (ie1 + ie2 ) (4.272) 167 4.12. AMPLIFICATORE DIFFERENZIALE Riordinando i termini otteniamo ie2 = re1 ie1 re2 (4.273) Sostituendo la (4.273) nella (4.267) si puo’ scrivere v1 = −[re1 + (1 + re1 )RE ]ie1 re2 (4.274) Il rapporto tra la (4.266) e la (4.274) ci porta infine a Ac = vo =− v1 α 1 RC re1 [re1 + (1 + )RE ] re2 (4.275) Se i due transistor hanno la stessa corrente statica Ic si ha re1 = re2 (che possiamo indicare allora con re ) e quindi, trascurando α1 otteniamo Ac ≃ − RC RC ≃− re + 2RE 2RE (4.276) dove l’ultimo passaggio presuppone che si abbia RE ≫ re . Possiamo ora analizzare l’altro caso, ovvero v2 = −v1 . Combinando di nuovo le (4.267) e (4.267) ora abbiamo −re1 ie1 − RE (ie1 + ie2 ) = re2 ie2 + RE (ie1 + ie2 ) (4.277) Riordinando i termini otteniamo ie2 = − re1 + 2RE ie1 re2 + 2RE (4.278) e quindi, sostituendo nella (4.267) si puo’ scrivere v1 = −[re1 + RE (1 − e otteniamo infine Ad = vo =− 2v1 re1 + 2RE )]ie1 re2 + 2RE α 1 RC re1 + 2RE 2[re1 + RE (1 − )] re2 + 2RE (4.279) (4.280) Di nuovo, nell’ipotesi in cui re1 = re2 = re , la (4.280) si semplifica in Ad ≃ − RC 2re (4.281) Come si vede Ad e’ molto piu’ grande di Ac Il rapporto di reiezione di modo comune, ρ, e’ re1 )RE ] re2 ρ= re1 + 2RE 2[re1 + RE (1 − )] re2 + 2RE [re1 + (1 + (4.282) 168 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) nell’ipotesi in cui i due transistor abbiano la stessa IC si semplifica in ρ≃ RE re (4.283) Osserviamo che il fattore ρ dipende fortemente da RE : se RE → ∞ anche il fattore di merito diventa infinito. Peraltro, e’ interessante notare dalla (4.282) che al crescere di RE la differenza tra re1 e re2 diventa sempre meno rilevante. Tuttavia queste considerazioni non devono trarre in inganno. Riscriviamo infatti la (4.283) come ρ = g m RE = |IC | RE VT (4.284) ora, se i due transistor sono uguali, o circa uguali, la corrente di ogni collettore e’ circa la meta’ della corrente che fluisce in RE , che possiamo chiamare IRE ; quest’ ultima e’ sostanzialmente definita dal valore di VEE , ovvero IRE = (VEE − 0.7) RE (4.285) In definitiva abbiamo quindi ρ= 1 (VEE − 0.7) 1 (VEE − 0.7) RE = 2 V T RE 2 VT (4.286) quindi cio’ che conta e’ il valore assoluto di VEE . In conclusione, e’ utile avere RE grande per neutralizzare al meglio le differenze tra i due transistor, ma comunque i massimi valori di ρ che si possono concretamente ottenere (con valori di alimentazione praticabili) e’ di qualche centinaio. Uscita differenziale Se si prelevano entrambe le uscite si puo’ costruire un’uscita differenziale vo = vo1 − vo2 (4.287) questo puo’ essere utile quando, ad esempio, dobbiamo trasferire a distanza l’informazione, e quindi vogliamo minimizzare l’influenza dei disturbi lungo il cavo che trasmette il segnale. Possiamo allora definire nuovi parametri A′d e A′c e scrivere vo = vo1 − vo2 = A′d vd + A′c vc (4.288) Possiamo ricavare A′d e A′c con la stessa tecnica usata in precedenza. Se poniamo v2 = v1 abbiamo vo vo1 − vo2 vo1 vo2 vo1 vo2 A′c = = = − = − (4.289) v1 v1 v1 v1 v1 v2 mentre, ponendo v2 = −v1 si ricava A′d = vo1 − vo2 vo1 vo2 vo1 vo2 vo = = − = + 2v1 2v1 2v1 2v1 2v1 2v2 (4.290) 169 4.12. AMPLIFICATORE DIFFERENZIALE I risultati che abbiamo ottenuto prima, (4.275) e (4.280), sono quindi applicabili anche all’uscita 2, semplicemente scambiando tutti gli indici, quindi otteniamo facilmente A′c = − e α 1 RC re1 [re1 + (1 + )RE ] re2 α 1 RC + α 2 RC re2 [re2 + (1 + )RE ] re1 (4.291) α 2 RC (4.292) re1 + 2RE re2 + 2RE 2[re1 + RE (1 − )] 2[re2 + RE (1 − )] re2 + 2RE re1 + 2RE Se i due transistor hanno la stessa re e lo stesso α i due termini della (4.291) sono identici e la amplificazione di modo comune diviene nulla, mentre la (4.292) diviene A′d = − − αRC αRC RC αRC − =− ≃− (4.293) 2rE 2rE rE rE quindi si avrebbe un ρ = ∞. Ma naturalmente questa e’ un’ipotesi non realistica. A′d = − Approfondimenti VCC VCC RC RE RC RC vo1 v1 VCC vo1 v2 re2 RE VEE VEE (a) (b) Figura 4.62: a) Amplificatore differenziale visto dall’ingresso 1; b) Amplificatore differenziale visto dall’ingresso 2 E’ istruttivo studiare il circuito anche guardando separatamente alle due amplificazioni, A1 e A2 . Sempre prendendo l’uscita sul transistor Q1 , con semplici passaggi si trova A1 ≡ vo v1 = − A2 ≡ vo v2 = α 1 RC re2 RE re1 + re2 + RE α1 RC RE + re1 re1 + re2 RE (4.294) (4.295) 170 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) se RE ≫ re1 e RE ≫ re2 si ha piu’ semplicemente α 1 RC re1 + re2 α 1 RC re1 + re2 A1 ≃ − (4.296) A2 ≃ (4.297) cioe’, se RE puo’ essere considerato infinito, le due amplificazioni sono uguali ed opposte, realizzando quindi un amplificatore operazionale ideale. Comunque, a prescindere da questo caso estremo, la (4.295) puo’ essere molto semplicemente interpretata, osservando che il secondo termine nel denominatore rappresenta il parallelo tra re2 e RE : e’ quindi la risposta di un amplificatore CE , con un carico di emettitore dato appunto da quel parallelo (vedi Fig. 4.62(a)). Il segnale v2 , invece, vede un amplificatore a due stadi (Fig. 4.62(b)); uno stadio inseguitore di tensione, seguito da un amplificatore a base comune. Nel limite in cui RE e’ infinito, l’inseguitore di tensione amplifica esattamente 1, e quindi il guadagno complessivo e’ quello di uno stadio CB, dimezzato a causa dell’accoppiamento tra i due stadi, come gia’ visto nel paragrafo 4.9.2. E’ interessante osservare che la banda passante e’ diversa per i due ingressi. Infatti l’ingresso 1 subisce l’effetto Miller, contrariamente all’ingresso 2. Di fatto quindi l’amplificatore nel suo complesso ha una larghezza di banda utile determinata dall’ingresso 1: a frequenze piu’ alte le due amplificazioni diventano molto diverse e il CMRR ovviamente diventa molto cattivo. Resistenza differenziale d’ingresso VCC RC RC vo1 vo2 Rs Q Q1 Rs 2 + _ + vs2 vs1 R E1 R E2 _ RE VEE Figura 4.63: a) Amplificatore differenziale modificato per aumentare la resistenza d’ingresso differenziale. Un importante fattore di merito (come comprenderemo meglio nel Cap. 6) di un amplificatore differenziale e’ la resistenza tra i due ingressi, Rdif f , comunemente chiamata resistenza 4.12. AMPLIFICATORE DIFFERENZIALE 171 differenziale d’ingresso. E’ facile vedere che Rdif f ≈ hf e1 re1 + hf e2 re2 (4.298) quindi non molto grande. Se e’ necessario, la si puo’ aumentare aggiungendo due resistenze sugli emettitori, RE1 e RE2 , come nella Fig. 4.63; si avrebbe allora Rdif f ≈ hf e1 (re1 + RE1 ) + hf e2 (re2 + RE2 ) (4.299) dato il fattore moltiplicativo hf e si puo’ ottenere un buon effetto anche con valori di resistenza piccoli. Si puo’ facilmente calcolare la risposta del circuito in questa nuova situazione; il procedimento resta invariato, basta sostituire re1 con re1 + RE1 e re2 con re2 + RE2 . Si vede subito che questa modifica riduce il Common Mode Rejection Ratio, quindi e’ chiaramente necessaria, in fase di progetto, una scelta di compromesso. Amplificatore differenziale con generatore di corrente L’analisi che abbiamo fatto ci suggerisce che possiamo migliorare molto le prestazioni dell’amplificatore, sostituendo il resistore RE con un generatore di corrente, come in Fig. 4.64(a). Il circuito equivalente per piccoli segnali si modifica quindi come nella Fig. 4.64(b). E’ importante ora notare che, se il generatore e’ ideale, IE e’ costante, quindi nell’analisi per piccoli segnali, il generatore iE eroga corrente nulla, cioe’ iE = 0. In altre parole noi abbiamo sempre ie1 + ie2 = iE = 0 (4.300) ovvero ie1 = −ie2 (4.301) Se ora cerchiamo di calcolare l’amplificazione di modo comune, Ac , inviando agli ingressi due segnali uguali, abbiamo re2 ie1 = ie2 (4.302) re1 l’unico modo di soddisfare simultaneamente la (4.301) e la (4.302) e’ di avere ie1 = ie2 = 0. Quindi l’amplificazione di modo comune e’ nulla e il CMRR e’ infinito. In pratica possiamo realizzare il generatore di corrente utilizzando una delle soluzioni riportate nel paragrafo 4.6.2 (vedi Fig. 4.35). Naturalmente non e’ una sorgente di corrente ideale, il generatore ha in realta’ una resistenza d’uscita ro grande ma non infinita. Percio’ l’analisi del circuito richiede di tener conto di questa e, nei fatti, il CMRR non e’ infinito, ma si puo’ comunque guadagnare un fattore molto grande rispetto a quanto si puo’ ottenere con un resistore. Amplificatore differenziale con carico attivo L’amplificatore differenziale può essere ulteriormente migliorato sostituendo i resistori sul collettore con un carico attivo, costituito da uno specchio di corrente, come in Fig 4.65. In questa situazione tutti i transistor hanno la stessa corrente, I/2, fornita dal generatore di corrente posto sugli emettittori dei due transistor. 172 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC RC RC vo1 vo2 Rs Q Q1 Rs 2 + (a) _ + vs2 vs1 _ IE VEE Rs (b) ie1 ie2 re1 re2 α1ie1 v1 vo1 iE Rs α2 ie2 v2 vo2 + vs1 _ + RC RC _ vs2 Figura 4.64:a) Amplificatore differenziale con generatore di corrente;b) Circuito equivalente. Possiamo analizzare il circuito utilizzando lo schema equivalente per piccoli segnali di Fig 4.66. Abbiamo utilizzato il modello π per i transistor Q1 ,Q2 e Q4 , mentre il transistor Q3 e’ piu’ convenientemente schematizzato con il modello T; il generatore di corrente I e’ rappresentato dalla sua resistenza di uscita ROE (infinita se I fosse ideale). Per trovare l’amplificazione differenziale, con uscita singola, immaginiamo di applicare due segnali v1 e v2 uguali ed opposti; inoltre mettiamo in corto circuito l’uscita per calcolare la transconduttanza Gm dell’amplificatore. Se i due transistor Q1 e Q2 sono sufficientemente simmetrici le due correnti di emettitore ie1 e ie2 sono uguali ed opposte, dunque la corrente che scorre in ROE e’ nulla e il nodo E risulta virtualmente a massa. Inoltre, la base di Q3 e la base di Q4 sono ovviamente alla stessa tensione, ovvero vb3 = vb4 . Possiamo scrivere vb3 = gm1 v1 (re3 k ro3 k ro1 k rπ4 ) ≃ gm1 re3 v1 (4.303) quindi gm4 vb4 = gm4 v34 = −gm4 gm1 re3 v1 (4.304) 173 4.12. AMPLIFICATORE DIFFERENZIALE Figura 4.65:Amplificatore differenziale con carico attivo. La corrente d’uscita io puo’ essere ricavata dall’equazione del nodo B, ovvero io = −gm2 v2 − gm4 vb4 = −gm2 v2 + gm4 gm1 re3 v1 (4.305) (si noti che in ro3 e ro4 non circola corrente poiché esse hanno entrambi gli estremi a massa) Poiché i 4 transistor hanno la stessa corrente, I/2, tutte le transconduttanze sono uguali e si puo’ scrivere io = gm (v1 − v2 ) = gm vd (4.306) La transconduttanza dell’amplificatore è quindi Gm = g m = I 2VT (4.307) E’ facile constatare, osservando la Fig 4.66, che la resistenza d’uscita Ro e’ semplicemente data dal parallelo di ro2 ed ro4 Ro = ro2 k ro4 (4.308) quindi l’amplificazione differenziale (senza carico esterno) è data da vo Ad = = Gm (ro2 k ro4 ) vd (4.309) Se ro2 ≃ ro4 possiamo infine scrivere 1 (4.310) Ad ≃ Gm ro4 2 Calcoliamo ora l’amplificazione di modo comune, ovvero nel caso in cui v1 = v2 = vi . Partendo dall’ingresso 1 possiamo scrivere vi = rπ1 ib1 − 2ROE ie ≃ −2ROE ie (4.311) 174 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Figura 4.66:Circuito equivalente per piccoli segnali ovvero ie ≃ − vi 2ROE (4.312) La tensione nel nodo A e’ data da vb3 = −(re3 k ro3 k rπ4 )ic ≃ (re3 k rπ4 )ie (4.313) Siamo ora in grado di scrivere la tensione di uscita vo = ro4 (−gm4 vb4 − ic ) = ro4 (−gm4 vb4 + ie ) = ro4 [gm4 (re3 k rπ4 ) = ro4 vi vi − ] 2ROE 2ROE vi [gm4 (re3 k rπ4 ) − 1] 2ROE Si ricava quindi, per l’amplificazione di modo comune Ac = ro4 vo = [gm4 (re3 k rπ4 ) − 1] vi 2ROE (4.314) Questa espressione diviene significativa se, come è ragionevole, ipotizziamo che lo specchio di corrente sia costituito da due transistor pnp identici, ovvero con lo stesso guadagno di corrente β; inoltre essi hanno sicuramente la stessa transconduttanza, gm , visto che sono percorsi dalla stessa corrente. Possiamo allora, con alcuni passaggi, verificare che re3 k rπ4 = β gm (2 + β) (4.315) 175 4.13. LA REAZIONE NEGATIVA e allora la 4.314 diviene semplicemente Ac = − ro4 ro4 ≃− (2 + β)ROE βROE (4.316) Come si vede, l’amplificazione di modo comune e’ depressa di un fattore β rispetto a quella ottenuta nel circuito con carico resistivo e tende ad annullarsi per ROE → ∞. Infine, il rapporto di reiezione di modo comune diviene 1 ρ = − gm βROE 2 (4.317) Il carico attivo produce quindi un miglioramento di un fattore β/2 sul CMRR. 4.13 La reazione negativa La stabilita’ e’ un requisito essenziale degli amplificatori, in tutte le loro applicazioni. Si richiede cioe’ che le prestazioni (amplificazione di corrente e di tensione) siano indipendenti da fattori esterni, p.es. la temperatura, e non siano legate ai valori individuali dei parametri dei transistors. In genere questi requisiti sono ottenuti introducendo effetti di reazione negativa (o controreazione). Abbiamo gia’ utilizzato, senza saperlo, questi effetti; ora xs xi A xo RL xf = β x o β Figura 4.67: Un amplificatore con rete di reazione dobbiamo studiarli in modo esplicito. Consideriamo la rete in Fig. 4.67, in cui il segnale xo all’uscita dell’amplificatore A viene, in parte, rimiscelato all’ingresso, attraverso la rete passiva β. Con xi , xo , ecc., abbiamo indicato una generica variabile elettrica, corrente o tensione. Abbiamo ora xi = xs − xf = xs − βxo (4.318) (4.319) si noti che xf e’ sottratto al segnale d’ingresso xs . Si ha quindi Af = xo xo = xs xi + βxo (4.320) e, dividendo numeratore e denominatore per xi , si ottiene Af = A 1 + βA (4.321) 176 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Chiaramente l’amplificazione complessiva (amplificazione con reazione) e’ diminuita, tuttavia ne avremo guadagnato in stabilita’: infatti, se βA ≫ 1 si ha Af ≃ 1 β (4.322) Questo e’ molto importante perche’ la funzione di trasferimento β e’ in genere legata solo a componenti passive, quindi l’amplificazione con reazione non dipende piu’ da parametri instabili, come ad esempio quelli dei transistors che costituiscono l’amplificatore A. Piu’ in generale, differenziando la 4.321 rispetto ad A si ottiene: dAf dA 1 (4.323) Af = |1 + βA| A Cio’ significa che le variazioni di Af sono ridotte, rispetto a quelle di A di un fattore grande. La reazione negativa ha inoltre effetto sulla larghezza di banda dell’amplificatore. Supponiamo che il nostro amplificatore sia approssimativamente esprimibile come un passa-basso: A= Ao f 1+j fH (4.324) Introducendo la reazione si ha Ao f fH βAo Ao 1 + βAo = = f f 1+ 1 + βAo + j 1+j fH fH (1 + βAo ) f 1+j fH Aof 1+j Af = = 1+j Ao f ′ fH dove abbiamo indicato con Aof l’amplificazione a media frequenza con reazione. Si vede ′ e’ aumentata di un fattore (1 + βA ), con quindi che la nuova frequenza di taglio fH o conseguente incremento della larghezza di banda. E’ interessante notare che il prodotto (amplif icazione × larghezza di banda) e’ costante: infatti ′ Af × fH = A × fH (4.325) Questa proprieta’ deriva semplicemente dalla linearita’ della discesa di amplificazione ad alta frequenza; non e’ piu’ valida se l’amplificazione scende con tratti di pendenza diversa. Vi sono quattro possibilita’ per introdurre la reazione negativa in un circuito. Infatti il segnale di reazione xf puo’ essere proporzionale alla tensione o alla corrente d’uscita, e puo’ essere miscelato al segnale d’ingresso in serie o in parallelo. 177 4.13. LA REAZIONE NEGATIVA io io + vs + vi _ A RL vo vs vf vi _ A vo vf vf =β vo vf =β i o β (a) β (b) Figura 4.68: Reazione negativa in serie: la tensione di reazione vf viene sottratta nella maglia d’ingresso. (a) Reazione di tensione, stabilizza l’amplificazione di tensione; (b) Reazione di corrente, stabilizza la transconduttanza. Reazione negativa in serie Il segnale di reazione, xf , viene miscelato in serie al segnale della sorgente xs , ed e’ quindi una tensione vf . Puo’ essere proporzionale alla tensione d’uscita vf = βvo (4.326) vf = βio (4.327) oppure alla corrente d’uscita I due casi sono schematizzati nella Fig. 4.68. Nel primo β e’ un rapporto tra tensioni; viene utilizzato per stabilizzare l’amplificazione di tensione Avf = Av 1 ≃ 1 + βAv β (4.328) Nel secondo β ha le dimensioni di una resistenza; viene utilizzato per stabilizzare la transconduttanza, Gv , dell’amplificatore Gvf = 1 Gv ≃ 1 + βGv β (4.329) Reazione negativa in parallelo Il segnale di reazione, xf , viene miscelato in parallelo al segnale della sorgente xs , ed e’ quindi una corrente if . Puo’ essere proporzionale alla corrente d’uscita if = βio (4.330) if = βvo (4.331) oppure alla tensione d’uscita RL 178 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) io io + + vs _ vi A RL vo vs _ vi A vo if if i f =β i o i f =β vo β (a) β (b) Figura 4.69: Reazione negativa in parallelo: la corrente di reazione if , viene sottratta in parallelo all’ingresso. (a) Reazione di corrente, stabilizza l’amplificazione di corrente; (b) Reazione di tensione, stabilizza la transresistenza. I due casi sono schematizzati nella Fig. 4.69. Nel primo β e’ un rapporto tra correnti; viene utilizzato per stabilizzare l’amplificazione di corrente Aif = Ai 1 ≃ 1 + βAi β (4.332) Nel secondo β ha le dimensioni di una conduttanza; viene utilizzato per stabilizzare la transresistenza, Rv , dell’amplificatore Rvf = Rv 1 ≃ 1 + βRv β (4.333) La reazione negativa ha anche un effetto sulla resistenza d’ingresso e sulla resistenza d’uscita dell’amplificatore. In particolare se la reazione e’ in serie la resistenza d’ingresso aumenta, mentre diminuisce se e’ in parallelo. Per quanto riguarda invece la resistenza d’uscita essa diminuisce se la reazione e’ di tensione, aumenta se e’ di corrente. In tutti i casi la reazione provoca diminuzione della grandezza stabilizzata, compensata da un allargamento della banda passante. Nella Tabella 4.3 abbiamo riepilogato gli effetti dei 4 tipi di reazione negativa. 4.13.1 Esempi Possiamo comprendere meglio il meccanismo della reazione attraverso alcuni esempi. Si noti che normalmente il circuito non e’ formato da un amplificatore cui si aggiunge una rete di reazione, come abbiamo fatto nel paragrafo precedente; nella realta’ la reazione e’ spesso insita nel circuito stesso. Consideriamo per esempio l’inseguitore di tensione, schematicamente riportato in Fig. 4.70(a). In questo circuito si ha un esempio di reazione tensione-serie; infatti, nella maglia d’ingresso viene riportata una tensione (in serie al generatore vs ) uguale alla tensione d’uscita vo . In questo caso quindi vf β= =1 (4.334) vo RL 179 4.13. LA REAZIONE NEGATIVA Tensione Corrente Corrente Tensione in serie in serie in parallelo in parallelo Av Gv Ai Rv Rin Aumenta Aumenta Diminuisce Diminuisce Rout Diminuisce Aumenta Aumenta Diminuisce Stabilizza Tabella 4.3:Caratteristiche dei 4 tipi di reazione negativa. Si ha quindi Avf ≃ 1 =1 β (4.335) ed e’ il risultato che gia’ conosciamo. Se invece prendiamo l’amplificatore ad emettitore comune di Fig. 4.70(b), vediamo che in questo caso si riporta nella maglia d’ingresso una tensione proporzionale alla corrente d’uscita ic . Infatti vf = −RE ie ≃ RE ic (4.336) β = −RE (4.337) ovvero quindi e’ una reazione di corrente in serie. In questo caso la grandezza reazionata e’ la transconduttanza Gv Gvf ≃ 1 1 =− β RE (4.338) Percio’ viene stabilizzato il rapporto tra corrente d’uscita, io e tensione d’ingresso vs . Ora, poiche’ la tensione d’uscita e’ proporzionale alla corrente d’uscita, si ha in conseguenza anche una stabilizzazione dell’amplificazione di tensione Avf = RC RC i o = RC Gvf = − vs RE (4.339) Possiamo quindi comprendere meglio, alla luce della reazione negativa che abbiamo imparato, il comportamento particolarmente stabile di questi due amplificatori. Il circuito di Fig. 4.70(c) e’ un esempio di reazione tensione-parallelo. Infatti la corrente che scorre in R′ e’ data da vi − vo vo if = ≃− ′ (4.340) ′ R R dato che vo ≫ vi . Quindi 1 (4.341) β=− ′ R La grandezza reazionata e’ la transresistenza Rv , cioe’ Rvf ≃ 1 = −R′ β (4.342) 180 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) VCC VCC (a) (b) Rs vo _ vo Rs + vs RC ic vf + vs _ RE vf VEE ic vo R’ VCC RC Rs Q1 if Q2 vo + + vs VCC (d) RC if Rs VEE VCC (c) RE vs _ _ RE R’ VEE RE VEE Figura 4.70: Circuiti con reazione negativa: (a) (b) (c) (d) tensione in serie; corrente in serie; tensione in parallelo; corrente in parallelo Infine il circuito in Fig. 4.70(d) e’ un esempio di reazione corrente-parallelo. Si tratta di un amplificatore a due stadi (CE-CC) in cui si riporta in parallelo all’ingresso del primo stadio un segnale proporzionale alla corrente d’uscita. Si ha infatti if = VB 1 − VE 2 −VE2 (io − if )RE ≃ = ′ ′ R R R′ (4.343) Da cui si puo’ ricavare if if = R′ RE io + RE (4.344) La grandezza reazionata e’ l’amplificazione di corrente ed il fattore β e’ dato da β= R′ RE + RE (4.345) 181 4.13. LA REAZIONE NEGATIVA Quindi l’amplificazione di corrente e’ data da Aif ≃ R ′ + RE 1 = β RE (4.346) 182 CAPITOLO 4. TRANSISTOR A GIUNZIONE (BJT) Capitolo 6 Amplificatori operazionali 6.1 Introduzione Gli amplificatori integrati (comunemente chiamati amplificatori operazionali) sono divenuti ormai, grazie ai progressi nel campo dell’integrazione, uno dei componenti essenziali dell’elettronica. Sono degli amplificatori a molti stadi, accoppiati in continua, quasi sempre con ingresso differenziale, caratterizzati da un’altissima amplificazione di tensione (105 ÷ 106 ), alta resistenza d’ingresso e bassa resistenza d’uscita, realizzati su un unico circuito integrato. I costi di produzione sono ormai bassissimi e questo componente, che si presta, come vedremo, a svariati usi, sostituisce in moltissime applicazioni gli amplificatori convenzionali a transistors. 6.2 Caratteristiche generali Ro 2 2 vo + vo Ri _ 1 Av(v2-v1) 1 (a) (b) Figura 6.1:(a) Simbolo circuitale dell’amplificatore operazionale;(b) Circuito equivalente Nella Fig. 6.1(a) e’ riportato il simbolo circuitale usato per gli amplificatori operazionali con ingresso differenziale; la Fig. 6.1(b) mostra il circuito equivalente. Come abbiamo detto Av ed Ri sono molto grandi, mentre Ro e’ molto piccolo; possiamo quindi partire da 183 184 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI un’ipotesi semplificativa, il modello ideale di amplificatore, in cui si assume che: Av = −∞ Ri = ∞ Ro = 0 E’ anche implicito nel modello ideale che il Rapporto di Reiezione di Modo Comune (CMRR) sia infinito 1 . R’ R Ro R + vo + vs vs vi Ri R1 _ Avvi R2 vo _ (a) (b) Figura 6.2: (a) Amplificatore invertente; (b) Circuito equivalente con il teorema di Miller. Abbiamo indicato con vi la differenza v2 − v1 . Amplificatore invertente Possiamo immediatamente comprendere l’utilita’ di questo componente attraverso alcuni semplici esempi. Consideriamo anzitutto il circuito in Fig. 6.2(a), in cui abbiamo posto a massa l’ingresso non invertente, mentre l’altro ingresso e’ collegato all’uscita attraverso una resistenza di reazione R′ . Possiamo modificare il circuito utilizzando il teorema di Miller (Fig. 6.2(b), sostituendo R′ con due resisistenze R1 ed R2 , dove R1 = R2 = R′ 1 − Av R′ 1 1− Av (6.1) (6.2) Dato l’elevatissimo valore di Av , R1 e’ una resistenza molto piccola, mentre R2 ≃ R′ . Scegliendo per R′ un valore abbastanza grande, ovvero molto maggiore di Ro , il suo effetto sulla maglia d’uscita e’ trascurabile, mentre, nella maglia d’ingrssso, Ri e’ trascurabile rispetto ad R1 , per cui in definitiva abbiamo: vo = Av (v2 − v1 ) = Av v2 R1 vs v2 = R + R1 1 Si noti che stiamo utilizzando, qui e nel seguito, una notazione per cui Av è intrinsecamente negativo, come in molti manuali. Questo è a volte fonte di confusione negli studenti. Si può evitare ogni confusione ricordando sempre che l’amplificatore operazione inverte il segno di ciò che entra nel morsetto negativo. 185 6.2. CARATTERISTICHE GENERALI Possiamo quindi ricavare l’amplificazione con reazione Avf R1 vo = Av vs R + R1 R′ 1 − Av = Av R′ R+ 1 − Av ′ R ≃ − R ≡ avendo sfruttato il fatto che Av → −∞. Come si vede l’amplificazione e’ negativa, da cui il nome di amplificatore invertente, dipende solo dal valore delle due resistenze esterne, e non piu’ dai parametri dell’amplificatore. E’ anche importante notare che la tensione v2 e’ praticamente zero, come la tensione v1 : la differenza di potenziale tra i due ingressi e’ forzata a zero proprio dall’effetto Miller, che introduce tra essi una resistenza bassissima. Tuttavia la resistenza d’ingresso vista dal segnale e’ vs = R + R1 ≃ R (6.3) is L’ingresso 2 e’ quindi quello che si dice una massa virtuale, cioe’ un nodo la cui tensione e’ sostanzialmente zero, pur essendo connesso alla massa attraverso una resistenza molto elevata (Ri ). In sostanza la presenza della resistenza di reazione R′ obbliga i due ingressi dell’operazionale a portarsi allo stesso potenziale: qualunque tentativo noi facciamo di variare in un verso o nell’altro la tensione all’ingresso 2 provoca una reazione opposta che, attraverso la resistenza R′ , riporta il terminale d’ingresso 2 allo stato di partenza. E’ possibile ricalcolare l’amplificazione del circuito della Fig. 6.2a usando a priori questa proprieta’. Diciamo allora che: 1. la tensione v2 (ingresso (−) ) e’ uguale alla tensione v1 (ingresso (+) ), cioe’, nel caso in esame, pari a zero; 2. non entra corrente nell’operazionale (perche’ la resistenza d’ingresso e’ molto elevata), quindi la corrente is che circola in R e’ la stessa che circola in R′ . Possiamo scrivere l’equazione del nodo di ingresso (−), assegnando arbitrariamente un verso alla corrente is (vs − 0) R vs R = = (0 − v0 ) R′ −v0 R′ Da cui si ricava immediatamente vo vs = − R′ R 186 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI cioe’ ritroviamo in modo immediato il risultato gia’ noto. Queste due ipotesi semplificative ( uguaglianza di tensione tra i morsetti d’ingresso e resistenza d’ingresso infinita) ci consentiranno di calcolare in modo molto semplice il comportamento di moltissimi circuiti basati sull’amplificatore operazionale. E’ bene pero’ sempre ricordare che si tratta di una approssimazione: vedremo in seguito dei casi in cui questa approssimazione ci porterebbe a risultati grossolanamente errati. Ci conviene quindi calcolare anche l’amplificazione esatta, nel caso piu’ generale, in cui al posto di R ed R′ poniamo due generiche impedenze Z e Z ′ (Fig.6.3). Z’ + Z vs vi Ri _ vo + vs Ro Z Z’ Avvi vo _ (b) (a) Figura 6.3:(a) Il caso di generiche impedenze;(b) Circuito equivalente. Applicando il metodo dei nodi all’ingresso 2 ed all’uscita abbiamo Vi Vi − Vo Vs − Vi = + Z Ri Z′ AV Vi − Vo Vi − Vo 0= + Ro Z′ (6.4) (6.5) dove naturalmente stiamo lavorando nel dominio complesso. Eliminando Vi tra le due equazioni, si ottiene con alcuni passaggi Vo = Vs Y Yo + Y ′ −Y + (Y + Yi + Y ′ ) AV Yo + Y ′ (6.6) ′ dove, per semplicita’ di scrittura, abbiamo sostituito ogni impedenza con la corrispondente ammettenza. E’ facile verificare che, per AV → ∞, la 6.6 si riduce a Vo Y Z′ =− ′ =− Vs Y Z (6.7) cioe’ la generalizzazione del risultato ottenuto nel caso di impedenze puramente resisistive. Il risultato che abbiamo ottenuto con la 6.6 ci sara’ utile in seguito. 187 6.2. CARATTERISTICHE GENERALI R’ R 1 Ri R’ 2 2 + vo 1 R vs _ Avvi vo + vs _ (a) (b) Figura 6.4: (a) Amplificatore non-invertente; (b) Circuito equivalente; le frecce indicano i versi delle correnti scelti arbitrariamente Amplificatore non invertente Vediamo ora il circuito di Fig. 6.4(a). Anche qui abbiamo una rete di reazione sull’ingresso invertente, ma ora il segnale che vogliamo amplificare e’ connesso al morsetto non invertente. Lo schema equivalente e’ mostrato in Fig. 6.4(b) in cui abbiamo vi = v2 − v1 = v2 − vs (6.8) v2 vo − v2 vs − v2 = + R R′ Ri (6.9) L’equazione del nodo 2 e’ data da da cui si ricava v2 ( 1 1 vo vs 1 + ′+ )= ′ + R R Ri R Ri (6.10) trascurando 1/Ri a primo membro e trascurando vs /Ri al secondo membro si ricava v2 = R vo R + R′ (6.11) La tensione di uscita e’ data da vo = Av vi = Av v2 − Av vs (6.12) Sostituendo la (6.11) nella (6.12) si ottiene vo = R Av vo − Av vs R + R′ (6.13) da cui possiamo facilmente ricavare Avf ≡ vo = vs Av R Av − 1 R + R′ (6.14) 188 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI e, poiché Av → −∞ Avf ≃ R + R′ R (6.15) Anche in questo caso, abbiamo un’amplificazione, ora positiva, che dipende solo dai valori delle due resistenze esterne e non dai parametri dell’operazionale. Si noti che, anche in questo caso, i due ingressi dell’operazionale sono allo stesso potenziale; infatti v2 vo R R + R′ v2 = = =1 (6.16) vs vo vs R + R′ R Di nuovo, cio’ e’ dovuto alla forte reazione negativa presente nel circuito. Quindi sarebbe stato possibile calcolare le prestazioni del circuito assumendo a priori l’uguaglianza di tensione tra i due ingressi, trovando immediatamente vo R + R′ vo = = vs v2 R (6.17) A differenza del circuito precedente, la resistenza d’ingresso vista dal segnale e’ proprio Ri , cioe’ la resistenza d’ingresso interna dell’amplificatore operazionale. Poiche’ l’amplificazione e’ positiva questo schema prende il nome di amplificatore non-invertente. Ponendo R ≫ R′ si ha Avf = 1; si realizza in modo semplice un inseguitore di tensione, con bassa resistenza d’uscita ed alta resistenza d’ingresso. Spesso cio’ e’ fatto ponendo semplicemente R′ = 0, R = ∞, cioe’ semplicemente collegando l’ingresso invertente con l’uscita (Fig. 6.5). Figura 6.5:Inseguitore di tensione. Da questi due esempi abbiamo quindi compreso che l’amplificatore operazionale ha grandissime potenzialita’, semplicita’ d’uso e consente di realizzare amplificatori molto stabili. Vedremo nei prossimi paragrafi molte applicazioni in cui sfrutteremo la reazione negativa; potremo quindi calcolarne facilmente le prestazioni utilizzando le ipotesi semplificative, la cui validita’ abbiamo qui constatato. 6.3 Amplificatori operazionali reali Un tipico amplificatore operazionale e’ costituito da tre stadi, un diagramma molto semplificato ma concettualmente corretto e’ mostrato nella Fig 6.6. Lo stadio d’ingresso e’ un amplificatore differenziale (transistor pnp Q1 e Q2 ) con un carico attivo costituito dalla coppia Q3 , Q4 , alimentato dal generatore di corrente 2IE , a sua volta realizzato con uno specchio di corrente (non mostrato in figura). Il secondo stadio e’ un amplificatore a emettitore comune che amplifica ulteriormente il segnale e, con il capacitore C, provvede 6.3. AMPLIFICATORI OPERAZIONALI REALI 189 Figura 6.6: Diagramma circuitale semplificato di un amplificatore operazionale alla compensazione in frequenza 2 . In genere sono necessarie due tensioni di alimentazione (tipicamente ±10 ÷ 15 V ) che quindi delimitano la massima escursione della tensione d’uscita3 . L’ultimo stadio e’ costituito da un inseguitore di tensione, Q6 e Q7 , di classe AB (a sua volta alimentato dal generatore di corrente Io ), che fornisce la corrente all’uscita. E’ chiaro quindi che le prestazioni di un operazionale non sono esattamente quelle ideali finora considerate: l’amplificazione di tensione e’ molto grande ma non infinita, lo stesso vale per la resistenza d’ingresso. La resistenza d’uscita non e’ zero, tensione d’uscita e corrente di uscita sono limitate. Si deve quindi tenere conto di queste limitazioni e capire la loro eventuale influenza sul comportamento reale di un circuito che utilizza un operazionele. Offset di tensione e di corrente Contrariamente al caso ideale nei due ingressi scorrono delle correnti non nulle, ovvero le correnti di base di Q1 e Q2 , essenziali per il loro funzionamento. Per rendere minime queste correnti si possono utilizzare due transistor JFET ( le correnti di gate sono 1000 volte piu’ piccole delle correnti di base), come ad esempio nell’operazionale TL082 o nel 2 3 Il motivo per introdurre questa capacita’ verra’ chiarito in seguito In realta’ la tensione d’uscita e’ in genere costretta in un intervallo un po’ piu’ ristretto 190 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI LF157. Un’altra soluzione, utilizzata nell’integrato LM358, consiste nel sostituire Q1 e Q2 con due coppie Darlington, guadagnando quindi molto nella resistenza d’ingresso. R’ R Ib2 vo Ib1 Figura 6.7:Correnti d’ingresso: il verso reale dipende dal tipo di giunzione (pn o np) Queste correnti producono delle cadute di tensione sulle resistenze che compongono la rete di reazione, o sulla resistenza d’uscita del generatore di segnale collegato all’ingresso. Prendiamo ad esempio il circuito di Fig. 6.7, ovvero un amplificatore reazionato a cui non e’ applicato nessun segnale d’ingresso. Ci aspetteremmo quindi un’uscita nulla, ma non e’ esattamente cosi’: poiche’ la corrente Ib2 che entra nell’ingresso 2 non e’ zero, si ha anche una corrente sulle resistenze R ed R′ , quindi l’ingresso 2 non e’ piu’ alla stessa tensione dell’ingresso 1 e ovviamente questa differenza si presenta amplificata sull’uscita. Se questa tensione, vo , e’ comunque piccola , possiamo approssimativamente considerare R ed R′ in parallelo, e quindi il morsetto 2 si porta alla tensione v2 ≃ RR′ Ib R + R′ 2 (6.18) Il valore assoluto di v2 e’ legato quindi a R ed R′ ; dipende naturalmente dall’utilizzo che dobbiamo fare del circuito stabilire se questo produca o meno un effetto intollerabile sull’uscita. Tipicamente esso e’ del tutto trascurabile nel caso di amplificatori con ingresso FET, mentre puo’ non esserlo per ingressi BJT. Possiamo minimizzare l’effetto scegliendo valori di R ed R′ non troppo alti, ma possiamo anche , se necessario, curare il problema alla radice bilanciando il carico sui due ingressi: nel circuito di Fig. 6.8 la resistenza di 9.1k, attraversata dalla corrente Ib1 , riporta, in assenza di segnale esterno, entrambi gli ingressi alla stessa tensione. 100K 10k vo + vs _ 9.1K Figura 6.8:Bilanciamento delle correnti di bias. 191 6.3. AMPLIFICATORI OPERAZIONALI REALI Tuttavia e’ impensabile poter realizzare due ingressi esattamente identici: piccole differenze costruttive sono inevitabili e quindi le due correnti, Ib1 e Ib2 , non saranno mai uguali. Cio’ significa che, pur in presenza di carichi assolutamente bilanciati, si avra’ una tensione d’uscita diversa da zero anche in assenza di un segnale d’ingresso. Si definisce quindi la corrente di bias come la media di Ib1 e Ib2 , mentre il valore assoluto della differenza (6.19) Ios = |Ib1 − Ib2 | prende il nome di corrente di offset: tipicamente e’ tra il 10 ed il 50% della corrente di bias. R’ R + vs +V vo _ R’’ -V Figura 6.9:Azzeramento della tensione di offset. Piu’ in generale le due giunzioni base-emettitore dei due transistors di ingresso possono avere caratteristiche diverse, ma operativamente cio’ si traduce sempre in un offset di tensione (continua) presente all’uscita anche in assenza di segnale d’ingresso: si definisce allora la tensione di offset d’ingresso (Vos ), come la tensione che occorre porre tra i due ingressi, attraverso carichi uguali, per azzerare perfettamente l’uscita. In genere Vos e’ dell’ordine di pochi mV ; questo significa che ponendo entrambi gli ingressi a massa, in assenza di reazione, la tensione d’uscita andrebbe a decine o centinaia di volt! Questo in realta’ non puo’ avvenire, ma l’uscita si porta alla massima (o minima) tensione consentita dall’alimentazione. Per misurare in pratica la tensione di offset d’ingresso e’ piu’ conveniente ridurre l’amplificazione introducendo la reazione negativa: si puo’ quindi utilizzare un circuito come quello della Fig. 6.7: si avrebbe Vos ≃ −vo R R′ (6.20) questo purche’ sia possibile trascurare l’effetto dello sbilanciamento dei due ingressi (in sostanza, se RIb2 << Vos ). Per una misura piu’ precisa e’ opportuno bilanciare i carichi, come in Fig. 6.8. Se necessario, possiamo neutralizzare la Vos con un opportuno partitore posto all’ingresso non utilizzato, come per esempio in Fig. 6.9: prima di collegare il segnale vs si regola il potenziometro in modo che l’uscita sia esattamente zero. Peraltro molti operazionali in commercio hanno ingressi appositi per azzerare l’offset (Fig. 6.10), senza impegnare gli ingressi ordinari. Il costruttore fornisce, tra le varie specifiche, anche indicazioni sul valore piu’ adatto del partitore di correzione. Da quanto detto 192 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI -V Figura 6.10:Azzeramento dell’offset da ingressi ausiliari. finora dovrebbe essere chiaro che e’ opportuno eseguire questa operazione con le stesse condizioni di carico con cui poi si utilizzera’ l’amplificatore. Se e’ vero quindi che e’ sempre possibile riportare l’operazionale ad una condizione di perfetto bilanciamento diviene importante la stabilita’ temporale di questa condizione, soprattutto in funzione di variazioni di temperatura, altrimenti saremmo costretti ad inseguire queste derive agendo continuamente sul partitore di azzeramento. Tipicamente la deriva termica della tensione di offset e’ di alcuni µV per grado centigrado ( e di alcuni pA per grado relativamente alla Ios ); per usi normali non si hanno quindi particolari problemi in questo senso. R vo vo R (a) (b) Figura 6.11:(a) Misura della corrente Ib2 ;(b) Misura della corrente Ib1 . Le correnti di ingresso possono essere misurate , utilizzando alternativamente i due schemi in Fig. 6.11a e 6.11b, purche’ si possa trascurare l’effetto della Vos . Nel primo caso, se RIb2 >> Vos , si ha vo ≃ Ib2 R (6.21) mentre nel secondo caso, se RIb1 >> Vos , vo = −Ib1 R (6.22) Resistenza d’ingresso e di uscita La resistenza d’ingresso di operazionali realizzati con BJT e’ dell’ordine di qualche M Ω. Tipiche resistenze d’ingresso di 1012 Ω si possono invece ottenere in operazionali con stadio d’ingresso a JFET. 193 6.3. AMPLIFICATORI OPERAZIONALI REALI Poiche’, come abbiamo visto, lo stadio d’uscita di un operazionale e’ in genere un inseguitore di tensoine, la resistenza d’uscita e’ quella tipica di tali circuiti, cioe’ dell’ordine delle decine Ωhm. Questo non significa tuttavia che la corrente d’uscita possa divenire arbitrariamente grande: i normali operazionali possono erogare al massimo qualche decina di mA (questo valore dipende anche dalla tensione d’uscita), oltre i quali l’amplificatore puo’ degradare le sue prestazioni o danneggiarsi. Risposta in frequenza Un amplificatore operazionale reale non puo’ che avere una banda passante finita. Gli accoppiamenti in continua consentono effettivamente l’amplificazione fino a frequenza zero, ma, poiche’ esso e’ composto da molti stadi l’andamento ad alta frequenza dell’amplificazione e’ dominato dalla presenza di numerosi poli nella funzione di trasferimento (dovuti alle capacita’ parassite dei transistors presenti nel circuito), e il diagramma di Bode avra’ quindi un andamento simile a quello mostrato in Fig. 6.12. Questo puo’ creare grossi problemi di instabilita’ nel circuito nel momento in cui uti|Av| (dB) Fase (gradi) 0 100 80 -90 60 -180 40 -270 20 0 106 107 108 f(Hz) Figura 6.12: Amplificazione di tensione ad anello aperto (linea continua) e sfasamento (linea tratteggiata) di un tipico amplificatore operazionale senza compensazione interna. lizziamo l’operazionale con una rete di reazione negativa, cioe’ abbiamo una funzione di trasferimento del tipo A (6.23) Avf = 1 + βA Infatti, a causa della rotazione di fase, al crescere della frequenza la reazione diviene positiva (quando lo sfasamento raggiunge 1800 ), cioe’ β diviene negativo. Se esiste una frequenza per cui βA = −1 l’amplificazione diverge, cioe’ l’amplificatore puo’ entrare in oscillazione. Di fatto quindi, gli inevitabili disturbi presenti su tutto lo spettro di frequenza sono sufficienti a trasformare il nostro amplificatore in un oscillatore. 194 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI Possiamo studiare quantitativamente questo fenomeno prendendo ad esempio il circuito di Fig. 6.4, cioe’ l’amplificatore non invertente. In questo caso la reazione e’ di tipo tensioneserie, quindi la grandezza stabilizzata e’ proprio l’amplificazione di tensione. Il fattore di reazione β e’ R (6.24) β= R + R′ e si ottiene quindi AV f = AV R 1+ AV R + R′ (6.25) Nel caso mostrato in Figura 6.12 si vede che la fase raggiunge −180o a circa 12 M hz: a questa frequenza il modulo di AV vale circa 36 dB. Quindi, se a quella frequenza R |AV | = 1 R + R′ (6.26) l’amplificatore non e’ stabile e puo’ oscillare. Si verifica immediatamente che cio’ corrisponde a R + R′ = 63 (6.27) R In definitiva, se il suddetto rapporto e’ inferiore a 63 la 6.25 puo’ divergere a qualche frequenza superiore a 12 M hz. In realta’, se si vuole avere un margine di sicurezza, si deve richiedere che l’amplificazione con reazione sia ben piu’ alta: usualmente si richiede un margine di fase di 45o , e questo corrisponde nel caso in esame ad un limite inferiore di 316 nell’amplificazione. Limiti analoghi si possono ricavare nella configurazione invertente, che corrisponde ad una reazione di tipo tensione-parallelo. Questa e’ chiaramente una limitazione molto severa nell’uso dell’amplificatore operazionale: in molti casi e’ quindi necessario aggiungere al circuito una rete RC per modificare in modo opportuno l’andamento del modulo e della fase di AV . Questa operazione e’ detta compensazione e puo’ essere sostanzialmente fatta in 3 modi: 1. Compensazione con polo dominante Si inserisce un ulteriore polo nella funzione di trasferimento ad una frequenza molto piu’ bassa di quelli esistenti. 2. Compensazione con polo e zero Si aggiunge sia un polo che uno zero nella funzione di trasferimento: la frequenza dello zero e’ scelta in modo da cancellare il primo polo, cioe’ fz = f1 . 3. Compensazione per anticipo di fase Si aggiunge solo uno zero alla funzione di trasferimento: si ottiene cosi’ un anticipo della fase e conseguentemente aumenta la frequenza per cui si ha la rotazione di −180o . 195 6.3. AMPLIFICATORI OPERAZIONALI REALI |Av| (dB) 100 80 60 40 20 0 101 103 105 107 f(Hz) Figura 6.13: Diagramma di Bode con la compensazione interna (linea continua). La linea tratteggiata rappresenta la risposta che si avrebbe senza compensazione. Gli amplificatori operazionali in commercio sono quasi sempre dotati internamente di una rete di compensazione, in genere con il metodo del polo dominante: in sostanza si aggiunge una capacita’ tra l’ingresso e l’uscita di uno degli stadi di amplificazione (ovvero il condensatore C nella Fig 6.6) . L’effetto Miller provvede a moltiplicare questa capacita’ per un grosso fattore, introducendo quindi un polo a frequenza molto bassa (in molti casi circa 10 Hz): l’effetto e’ quello mostrato in Fig 6.13. La rotazione di fase arriva ora a −180o quando il modulo di AV e’ molto inferiore ad uno, eliminando quindi ogni pericolo di instabilita’. Apparentemente la banda passante e’ ora molto modesta: in realta’ essa e’ molto piu’ grande in presenza di reazione (si ricordi infatti che il prodotto banda-guadagno e’ costante). Quindi, se ad esempio l’amplificazione ad anello aperto e’ 105 e la banda passante 10 Hz, si ha un prodotto banda-guadagno di 106 : un amplificatore che amplifichi 10 ha quindi una banda di 100 kHz. Esistono comunque in commercio amplificatori con polo dominante a frequenza piu’ elevata (per esempio l’integrato LF157 della National ha una frequenza di taglio ad anello aperto attorno ai 100 Hz). Slew rate La slew rate, e’ definita come dvo S = dt max (6.28) ovvero come la massima velocita’ con cui la tensione d’uscita puo’ variare nel tempo, per ampi segnali di ingresso. Idealmente dovrebbe essere infinita, quindi l’amplificatore dovrebbe essere in grado di riprodurre fedelmente in uscita un gradino di tensione applicato 196 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI all’ingresso, ma nella realta’ non e’ cosi’ (Fig 6.14). Guardando di nuovo la Fig 6.6 ci Figura 6.14: Slew rate: un gradino di tensione all’ingresso produce in uscita un segnale con un tempo di salita finito rendiamo conto che la velocita’ di variazione di tensione all’uscita del secondo stadio e’ limitata dalla necessita’ di caricare (o scaricare) il condensatore C con la corrente IOU T 1 e questa corrente puo’ essere al massimo pari a 2IE . Cio’ avviene quando, ad esempio, si applica un ampio gradino di tensione all’ingresso positivo (come nel caso in Fig 6.14): il transistor Q2 va in saturazione e assorbe tutta la corrente possibile, ovvero 2IE . La tensione ai capi di C, VC , e’ data da QC /C, quindi la massima variazione di essa e’ data da VC 1 dQC 2IE ( )max = = dt C dt C La tensione d’uscita Vo non e’ che la replica di Vc percio’ la slew rate e’ sostanzialmente 2IE /C 4 . Ovviamente la slew rate finita influenza la risposta dell’operazionale anche per segnali d’ingresso non a gradino. Se la derivata della tensione d’ingresso eccede la slew rate l’uscita non non e’ in grado di seguirla e la risposta sara’ deformata. Gli operazionali 741 e LM 358 hanno una slew rate di circa 0.5 V /µs; ma lo LF157 arriva a 50 V /µs ed esistono in commercio tipi ancor piu’ veloci. Disponibilita’ La varieta’ di operazionali disponibili in commercio e’ enorme e tutti i principali produttori di integrati offrono una vasta scelta. Velocita’, precisione (cioe’ minimi valori di offset di ingresso), consumo e, naturalmente, costo, sono i parametri principali di cui il progettista deve tener conto per scegliere il tipo piu’ adatto alle esigenze di una particolare applicazione. Ma vi sono molte altre caratteristiche che possono essere rilevanti, come ad esempio: Alimentazione: in generale sono necessarie due alimentazioni, ma alcuni tipi possono essere utilizzati con una sola (la seconda e’ sostituita dalla massa); 4 Esistono alcuni operazionali realizzati in modo diverso dove questo non e’ vero 197 6.4. APPLICAZIONI Sigla Costruttore Parametro Unita’ Tensione di offset d’ingresso LM 358 LF 157 Fairchild National National Typ Max (mV ) 1.0 Corrente di offset d’ingresso (nA) Corrente di bias d’ingresso (nA) Impedenza d’ingresso (M Ω) Min µA741 0.3 Alimentazione (V ) Alimentazione singola (V ) Guadagno di tensione (V /mV ) 50 CMRR (dB) 70 Banda (M Hz) Slew rate (V /µs) Min Typ Max 5.0 2.0 20 200 80 500 Min Typ Max 7.0 1.0 2.0 5 50 3 (pA) 10 (pA) 45 250 30 (pA) 50 (pA) 2.0 10 ±22 Non prevista 200 ±1.5 ±16 3 32 6 ±22 Non prevista 25 100 50 200 65 85 85 100 1.0 1.0 15 20 0.5 0.5 40 50 Tabella 6.1: Confronto tra le caratteristiche di tre operazionali in commercio Massima escursione del segnale d’uscita: spesso e’ limitata in un intervallo assai piu’ ristretto rispetto alle alimentazioni; Tensioni d’ingresso (modo comune):per assicurare un corretto funzionamento del circuito i due ingressi non possono uscire da un certo intervallo di tensione; spesso questo e’ piu’ ristretto rispetto alle alimentazioni; Massima tensione differenziale d’ingresso: la stessa cosa, ma riferita alla differenza tra i due segnali d’ingresso. Nella Tabella 6.1 sono sintetizzate alcune delle principali caratteristiche di tre operazionali in commercio che abbiamo gia’ citato. Il 741 e’ un operazionale di uso generale, tra i piu’ noti in commercio. E’ fabbricato (con sigle lievemente diverse) da moltissimi costruttori, a volte con prestazioni lievemente diverse per quanto riguarda i limiti di precisione (offset di tensione, di corrente, ecc.). Comunque tutti hanno ingressi separati per il circuito di correzione dell’offset. L’integrato LM358, 2 operazionali nello stesso contenitore, discende dal 741, ma non ha gli ingressi separati per il circuito di correzione dell’offset. Puo’ funzionare anche con una sola alimentazione (almeno 3 V ), ed ha un assorbimento di potenza sensibilmente piu’ ridotto. Infine l’amplificatore LF157 ha ingressi JFET (quindi resistenza d’ingresso elevatissima e correnti d’ingresso trascurabili). E’ molto piu’ veloce avendo una rete di compensazione con polo dominante attorno ai 100 Hz. 6.4 Applicazioni L’amplificatore operazionale ha un elevatissimo numero di usi ed applicazioni; ne vedremo ora alcuni, che studieremo utilizzando quasi sempre il modello di operazionale ideale, ma avendone chiare le limitazioni. 198 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI Amplificatori Abbiamo gia’ visto come realizzare amplificatori (invertenti e non) partendo dal modello di amplificatore ideale. Dobbiamo ora tenere conto delle implicazioni che si hanno nella realta’, quando si utilizzano operazionali commerciali. Prima di tutto vi e’ una limitazione della banda passante. Poiche’ il prodotto (guadagno) × (banda) e’ costante si ricava immediatamente la banda passante che si ottiene per ogni amplificazione, come e’ mostrato nella Fig. 6.15, dove si fa riferimento ad un tipico operazionale con frequenza di taglio ad anello aperto di circa 10 Hz. Vi e’ poi una limitazione nella dinamica di uscita. La tensione di uscita, vo , non puo’ uscire dall’intervallo definito dalle due alimentazioni (con un certo margine), quindi segnali piu’ grandi verranno deformati, come sempre succede in tutti gli amplificatori. Abbiamo infine visto che l’amplificazione e’ legata al rapporto tra le resistenze della rete di reazione. C’e’ quindi ampia liberta’ di scelta sul valore assoluto di questi componenti. E’ bene tuttavia mantenersi su valori intermedi, sulla base di due considerazioni opposte. La prima e’ legata alle correnti di bias. Resistenze molto grandi inducono, a causa delle correnti di bias, un offset di tensione sugli ingressi, che puo’ in alcuni casi, essere indesiderato. La seconda e’ legata al fatto che la resistenza di reazione assorbe corrente dall’uscita dell’operazionale, quindi e’ bene che non sia troppo piccola. Peraltro, nel caso dell’amplificatore invertente, la resistenza d’ingresso e’ proprio data dalla resistenza esterna R, ed e’ bene quindi che essa non sia troppo piccola5 . |Av| (dB) 100 80 60 40 20 0 101 103 105 107 f(Hz) Figura 6.15: Diagramma di Bode dell’operazionale LM358 ad anello aperto (linea continua). Le linee tratteggiate esemplificano la banda passante di 3 amplificatori con guadagno 10, 100, 1000 rispettivamente. 5 Tutte queste considerazioni valgono naturalmente anche per molti degli esempi di applicazioni che seguono. 199 6.4. APPLICAZIONI Amplificatore differenziale Per costruire un amplificatore differenziale si puo’ utilizzare lo schema mostrato nella Fig. 6.16. In base a quanto ormai abbiamo imparato possiamo assumere che nell’opeR2 v1 v2 R1 i R1 i’ vo R2 Figura 6.16:Amplificatore differenziale. razionale non entra corrente e che i terminali d’ingresso sono alla stessa tensione, v. Dal morsetto invertente ricaviamo vo = v − iR2 (6.29) dove i= v1 − v R1 (6.30) R2 (v1 − v) R1 (6.31) R2 R2 )− v1 R1 R1 (6.32) quindi vo = v − ovvero vo = v(1 + Dal morsetto non invertente possiamo ricavare v, cioe’ R2 R1 + R2 (6.33) R2 (v2 − v1 ) R1 (6.34) v = v2 e combinando le due equazioni si ottiene vo = Naturalmente questo risultato presuppone un amplificatore operazionale ideale e fornisce quindi un CMRR infinito. In realta’ si avra’ una reiezione di modo comune finita anche se elevata; si noti inoltre che abbiamo presupposto l’assoluta eguaglianza delle due resistenze R1 e delle due resistenze R2 . 200 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI R’ i R1 v1 vo R2 v2 R3 v3 Rn vn Figura 6.17:Sommatore analogico invertente. Sommatore analogico Consideriamo il circuito in Fig 6.17; i due morsetti d’ingresso sono ora a tensione zero, quindi la corrente i e’ data da i= v2 vn v1 + + ··· + R1 R2 Rn (6.35) d’altra parte e quindi vo = −R′ ( vo = −R′ i (6.36) v1 v2 vn + + ··· + ) R1 R2 Rn (6.37) Ponendo R1 = R2 = · · · = Rn (6.38) la tensione d’uscita sara’ data da vo = − R′ (v1 + v2 + · · · + vn ) R (6.39) cioe’ sara’ proporzionale alla somma delle tensioni d’ingresso. Generatore ideale di corrente L’amplificatore operazionale puo’ essere utilizzato come sorgente ideale di corrente. Infatti, se consideriamo il circuito in Fig. 6.18(a), la corrente che circola nel carico RL e’ data da i= vs R (6.40) cioe’ non dipende da RL . Questo circuito non e’ pero’ facilmente utilizzabile perche’ il carico RL non ha nessuno dei due estremi a massa. Una possibile soluzione a questo inconveniente e’ quella mostrata nella 201 6.4. APPLICAZIONI VCC R R R1 RL iL vo vs + vs R2 _ iL (b) (a) Figura 6.18: (a) Sorgente di corrente: la corrente iL e’ indipendente da RL ; (b) Sorgente di corrente per un carico connesso a massa. Fig. 6.18(b). Qui la reazione costringe il morsetto negativo d’ingresso dell’operazionale alla tensione vs , per cui la corrente IE del transistor e’ data da IE = VCC − vs R (6.41) La corrente iL (circa uguale a IE ) nel carico e’ controllabile con vs ed e’ assolutamente costante, salvo piccolissime variazioni dovute al fatto che la corrente di base del transistor puo’ variare con VCE . Derivatore e integratore Il circuito di Fig. 6.19(a) si comporta come un derivatore. Infatti, applicando la relazione (6.7) otteniamo Vo = −jωRC (6.42) Vs cioe’ proprio la funzione di trasferimento del derivatore ideale. Tuttavia questo calcolo e’ puramente teorico, come si comprende osservando che la funzione di trasferimento divergerebbe ad alta frequenza. Il modello ideale di amplificatore non e’ applicabile e occorre tener conto in modo piu’ realistico della funzione di trasferimento vera. Prendiamo ad esempio un operazionale compensato internamente: possiamo descrivere la sua amplificazione ad anello aperto con l’espressione ad un solo polo AV = AV o f 1+j f1 (6.43) 202 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI |Av| (dB) 100 R 80 C vs vo 60 40 (a) 20 0 101 105 103 107 f(Hz) (b) Figura 6.19: Derivatore: (a) Schema del circuito; (b) Diagramma di Bode: la linea puntinata rappresenta il diagramma ideale, mentre quello reale (per RC = 10−4 s) e’ rappresentato dalla linea continua, quando si tenga conto della vera funzione di trasferimento dell’operazionale (linea tratteggiata) dove f1 e’ la frequenza del polo dominante. Utilizziamo quindi la (6.6) dove ora AV non e’ costante, ma e’ espresso dalla (6.43). Si otterra’ allora la funzione di trasferimento piu’ realistica riportata in Fig 6.19(b). Analogamente, il circuito di Fig. 6.20(a) si comporta come un integratore: la sua funzione di trasferimento e’ infatti Vo 1 =− (6.44) Vs jωRC L’integratore realizzato in questo modo non puo’ concretamente funzionare; infatti l’amplificazione a bassa frequenza (fino alla tensione continua) e’ troppo alta: una piccola componente di bassa frequenza (o una livello di tensione continua) presente nel segnale d’ingresso porterebbe immediatamente in saturazione l’uscita. E’ quindi necessario introdurre una capacita’ di blocco C1 in serie all’ingresso; a questo punto pero’ non ci sarebbe piu’ un percorso per la corrente continua di ingresso Ib2 ed e’ necessario aggiungere una resistenza R1 in parallelo a C (Fig. 6.20(b)). Il circuito e’ ora simultaneamente un derivatore ed un integratore: occorre che l’effetto derivante sia trascurabile, per cui si deve avere R1 ≫ R, C1 ≫ C e R1 C1 ≫ T , dove T e’ il periodo del segnale che si vuole integrare. In Fig. 6.20(c) vediamo un esempio con RC = 10−6 s, C1 = 1. µF e R1 = 10 M Ω. 203 6.4. APPLICAZIONI |Av| (dB) C (a) R vs 100 vo 80 60 R1 (b) vs C1 40 C R 20 vo 0 101 105 103 107 f(Hz) (c) Figura 6.20: (a) Integratore; (b) Integratore modificato; (c) Diagramma di Bode dell’integratore modificatocon RC = 10−6 s, C1 = 1. µF e R1 = 10 M Ω (linea continua). La linea tratteggiata rappresenta il diagramma di Bode dell’operazionale ad anello aperto. Raddrizzatore di precisione Consideriamo il circuito di Fig. 6.21a): se vi e’ negativo il diodo non conduce, non vi e’ quindi contro reazione e l’uscita vo e’ nulla. Quando vi > Vγ Av (6.45) (dove Vγ e’ la tensione di ginocchio del diodo) il diodo entra in conduzione e vo ricopia fedelmente la forma dell’ingresso. Il vantaggio rispetto ad un normale raddrizzatore e’ che la tensione di ginocchio del diodo e’ divisa per un fattore elevatissimo, quindi di fatto il diodo commuta esattamente alla tensione zero. vo vs Figura 6.21: Raddrizzatore di precisione. 204 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI Amplificatore logaritmico ed esponenziale R vs R vs vo vo (b) (a) Figura 6.22:(a) Amplificatore logaritmico;(b) Amplificatore esponenziale. Un amplificatore logaritmico puo’ essere ottenuto sfruttando la relazione esponenziale tra corrente e tensione in una giunzione pn. In linea di principio si puo’ utilizzare lo schema in Fig. 6.22(a): la corrente che circola nel diodo e’ data da vD VD iD = Is (e VT − 1) ≃ Is e VT dove VD e’ la tensione ai capi del diodo. La corrente che circola nella resistenza e’ data da vs iR = R (6.46) (6.47) Poiche’ le due correnti sono uguali e la tensione di uscita vo = −vD si ricava, passando ai logaritmi h i vs vo = −VT log( ) − logIs (6.48) R Quindi l’uscita e’ proporzionale al logaritmo dell’ingresso. In realta’ questo circuito e’ assolutamente accademico e non da prestazioni molto soddisfacenti, perche’ la risposta dipende da Is , che varia da un transistor all’altro ed e’ fortemente dipendente dalla temperatura. Sempre in linea di principio un amplificatore esponenziale puo’ essere realizzato con lo scherma della Fig. 6.22(b); e’ facile mostrare che in questo caso si ha vs V vo = −R Is e T (6.49) Un buon amplificatore logaritmico e’ quello mostrato nella Fig. 6.23. La corrente che circola nel transistor Q1 (determinata dalla tensione d’ingresso vs ) e’ legata in modo logaritmico alla tensione dell’uscita del primo operazionale, che e’ −vBE del transistor. Il transistor Q2 (che lavora invece alla corrente fissa IR ) applica un salto di tensione vBE in verso opposto. La tensione al morsetto positivo del secondo operazionale e’ ≃ 0, quindi IR ≃ VR R4 Se i due transistor sono identici e termicamente accoppiati (si possono utilizzare coppie di transistor monolitici), si ha una perfetta compensazione delle variazioni di vBE con la 205 6.4. APPLICAZIONI Q1 vs VR R4 R1 IR Q2 vo R2 R3 Figura 6.23:(a) Un amplificatore logaritmico reale. temperatura. Il resistore R4 consente di variare IR e, in sostanza, di definire lo zero della tensione di uscita. Si puo’ infatti facilmente verificare che la tensione d’uscita, vo , e’ data da VR R2 + R 3 vs VT log( ) − log( ) (6.50) vo = R2 R R4 dove la dipendenza da Is e’ scomparsa per cancellazione tra i due transistor. Un circuito di questo tipo puo’ fornire un’accurata risposta logaritmica su un’escursione del segnale d’ingresso di 6 o piu’ decadi. Moltiplicatori analogici La moltiplicazione analogica di due segnali, cioe’ un’uscita proporzionale al prodotto di due ingressi, puo’ essere ottenuta sfruttando le note proprieta’ dei logaritmi. Lo schema in Fig. 6.24 e’ un esempio di come si possa raggiungere lo scopo. Si noti tuttavia che esistono delle limitazioni nell’uso di questo circuito: i segnali d’ingresso devono essere positivi (il logaritmo di un numero negativo non e’ definito). Amplificatori logaritmici Sommatore Amplificatore esponenziale Figura 6.24:Circuito moltiplicatore Un moltiplicatore "a 4 quadranti", cioe’ capace di moltiplicare ingressi di qualunque segno e di fornire il segno giusto all’uscita, puo’ essere realizzato in modo molto piu’ elegante, con il cosidetto amplificatore di transconduttanza (Fig. 6.25). Qui si sfrutta uno stadio d’ingresso di tipo differenziale: la sua risposta e’ proporzionale (oltreche’ al segnale d’ingesso vs1 ) alla 206 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI VCC R2 R1 RC vs1 RC Q Q1 vo R1 R2 2 RB vs2 Q 3 RE VEE Figura 6.25:Moltiplicatore analogico a 4 quadranti. transconduttanza dei due transistors T1 e T2 , cioe’ alla loro corrente statica IC : questa e’ a sua volta determinata dal generatore di corrente T3 , il cui punto di lavoro puo’ essere determinato dal secondo segnale d’ingresso vs2 . Esistono in commercio integrati basati su questo schema di principio: per esempio, lo MC1495 (Motorola) e’ un moltiplicatore a quattro quadranti con due ingressi differenziali ed uscita differenziale. Si ha quindi vo1 − vo2 = K(vx1 − vx2 )(vy1 − vy2 ) (6.51) dove il fattore K puo’ essere scelto dall’utilizzatore mediante una rete resistiva esterna. Impedenza negativa e giratori Consideriamo il circuito in Fig. 6.26a, e calcoliamone l’impedenza di ingresso. Poiche’ i due ingressi dell’operazionale sono alla stessa tensione, la corrente che scorre nelle due resistenze e’ identica, ed e’ quindi uguale alla corrente che scorre nell’impedenza Z. Si ha quindi V1 = V2 = −ZI (6.52) Quindi l’impedenza d’ingresso e’ proprio −Z. Questo tipo di circuiti prende il nome di negative-impedance converters, spesso abbreviato in ıNIC. Consideriamo ora il circuito in Fig. 6.26b. Il NIC 2 ha come carico una resistenza R, quindi la sua impedenza e’ −R; Il NIC 1 ha come carico una impedenza Z ′ , dove Z ′ = R + [(R + Z) k −R] A conti fatti otteniamo Zi = R2 Z (6.53) (6.54) 207 6.4. APPLICAZIONI Zin=R2/Z R NIC 1 Zin=-Z R R NIC 2 R I Z Z (a) R (b) Figura 6.26:(a) Convertitore di impedenza;(b) Giratore Quindi, se Z= 1 → Zi = jωCR2 jωC (6.55) cioe’ il circuito simula un induttore di induttanza L = CR2 . Questo circuito si chiama giratore e dimostra la possibilita’ di costruire filtri in cui l’induttore e’ sostituito da un opportuno giratore. Comparatori L’operazionale puo’ essere utilizzato anche senza rete di reazione, come nella Fig. 6.27(a), dove abbiamo anche esplicitamente riportato le due tensioni di alimentazione, V + e V − . L’andamento della tensione d’uscita vo in funzione della differenza (v1 − v2 ) tra le tensioni ai due ingressi, ovvero la transcaratteristica, ha un’andamento molto peculiare. Per piccoli valori di |v1 − v2 | la risposta e’ lineare, poi l’amplificatore va in saturazione al valore V + o V − (con un certo margine), in base al segno della differenza. La regione lineare e’ molto ristretta, data l’altissima amplificazione: se, ad esempio Av = 105 , vo arriva a 10 V quando la differenza tra gli ingressi e’ di un decimo di mV ! In sostanza, piccolissime differenze tra gli ingressi possono essere rilevate da questo circuito, che prende quindi il nome di comparatore. Trascurando la regione lineare la risposta e’ quindi vo = V + se v1 > v2 vo = V − se v1 < v2 Vedremo in seguito che i comparatori sono di grande utilita’ in molte applicazioni di tipo logico. Esistono in commercio operazionali costruiti specificamente per questo uso, quindi 208 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI vo V+ V+ v2 vo v1-v2 v1 VV- (a) (b) Figura 6.27: (a) Operazionale senza rete di reazione (V + e V − indicano le due tensioni di alimentazione); (b) Transcaratteristica con grandissima amplificazione (per ridurre la zona lineare) e con escursione di uscita piu’ vicino possibile alle alimentazioni. R’ R’ R R vo vs vo vs R1 C1 (a) R2 R1 C1 C2 (b) Figura 6.28:(a) Filtro passa-basso del primo ordine;(b) Filtro passa-basso del secondo ordine 6.5 Filtri attivi Con gli amplificatori operazionali si possono realizzare dei filtri, cioe’ circuiti selettivi in frequenza, in modo molto piu’ efficiente di quanto sia possibile fare utilizzando solo componenti passivi. Inoltre e’ possibile costruire filtri passa-banda senza utilizzare induttori, che, come abbiamo visto nel Cap. 2, sono componenti assai scomodi da usare: ingombranti, costosi, non trascurabile resistenza parassita, e molti altri inconvenienti. 209 6.5. FILTRI ATTIVI La Fig. 6.28a mostra un esempio di filtro passa-basso del I ordine. E’ immediato verificare che la sua funzione di trasferimento e’ quella desiderata. La pulsazione di taglio e’ data da ωo = 1 R1 C 1 (6.56) e si ha la usuale discesa a −20 dB/decade, mentre a basse frequenze si ha un’amplificazione A= R + R′ R (6.57) Possiamo poi realizzare un filtro del II ordine con il circuito di Fig. 6.28b, dove abbiamo due passa-basso in cascata. Ricordando quanto visto nel Cap. 2, se R1 C1 = R2 C 2 R2 ≫ R1 i due stadi hanno la stessa frequenza di taglio e la funzione di trasferimento e’ data dal prodotto delle due funzioni di trasferimento. E’ quindi immediato verificare che si avra’ una discesa con pendenza di −40 dB/decade. La funzione dell’operazionale e’, in entrambi i casi, quella di fornire un’amplificazione, ma soprattutto di uscire con bassa impedenza. Questo consente di mettere in serie piu’ stadi, realizzando filtri di ordini superiori. I filtri passa-alto si realizzano in modo analogo, semplicemente scambiando R e C. Combinando poi filtri passa-alto e filtri passa-basso si possono poi realizzare filtri passa-banda o filtri elimina-banda. 6.5.1 Filtri VCVS Possiamo costruire filtri del secondo ordine in modo lievemente diverso, a partire dal circuito mostrato nella Fig. 6.29a: il primo capacitore e’ connesso all’uscita, anziche’ alla massa. Questo circuito e’ comunemente noto come cella Sallen-Key, dai nomi dei suoi inventori. C vs R 1 R vo C Figura 6.29:Filtro Sallen-Key passa-basso. Calcoliamo la funzione di trasferimento di questo circuito: i morsetti d’ingresso sono (entrambi) alla tensione Vo , quindi la corrente I che scorre nel condensatore verso massa e’ data da I = sCVo (6.58) 210 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI mentre la tensione del nodo 1 e’ evidentemente V1 = I(R + 1 ) sC (6.59) Combinando le due relazioni si ha V1 = sCVo (R + 1 ) sC (6.60) L’equazione del nodo 1 e’ Vi − V1 V1 = sC(V1 − Vo ) + 1 R R + sC (6.61) e con pochi passaggi si arriva a A(s) = (sRC)2 1 + 2s(RC) + 1 (6.62) che, in termini di pulsazione possiamo anche scrivere A(ω) = 1 (1 + jωRC)(1 + jωRC) (6.63) Ovvero si ottiene la stessa funzione di trasferimento del circuito visto in precedenza, quella di un passa-basso del secondo ordine,avendo ora pero’ le due resistenze e i due condensatori uguali tra loro. Scambiando tra loro capacita’ e resistenze si ottiene ula cella Salle-Key passa-alto. I filtri VCVS (Voltage Controlled Voltage Source) sono una variante dei circuiti tipo SallenKey in cui l’inseguitore di tensione e’ sostituito da un amplificatore non invertente ( Fig. . 6.30), con amplificazione di tensione Av = K Possiamo facilmente ricavare la funzione di trasferimento. Indicando con V ′ la tensione (uguale) dei due ingressi e con V la tensione del nodo tra i due resistori R1 . si ha Vo K = V ′ (1 + sCR1 ) V −V′ = + (V − Vo )sC R1 V′ = V Vs − V R1 e infine 1 K =⇒ ωc = (6.64) (sCR1 + (3 − K)(sCR1 ) + 1 R1 C La forma della risposta di un filtro VCVS dipende, nella regione di transizione, dal valore del fattore di amplificazione K, come si puo’ osservare dalla Fig. 6.31, dove sono riportati gli andamenti del modulo di A e della fase per un passa basso del 2o ordine. Per valori di K superiori a 1.5866 il modulo di A mostra un overshooting attorno alla frequenza critica, mentre la fase mostra, al crescere di K, una transizione sempre piu’ netta. T = 6 )2 Questo valore individua il filtro Butterworth, ovvero quello caratterizzato dalla massima piattezza nella regione al di sotto della frequenza di taglio. 211 6.5. FILTRI ATTIVI Figura 6.30: Filtro VCVS passa-basso del secondo ordine 6.5.2 Filtri a reazione multipla Il circuito di Fig. 6.32 e’ un esempio di filtro passa-banda a reazione multipla: ha una funzione di trasferimento simile a quella del classico RLC che abbiamo visto nel Cap. 2. Il nome deriva dal fatto che la reazione negativa e’ riportata due volte verso l’ingresso, sia attraverso il resistore R3 che attraverso i due capacitori C1 e C2 . Possiamo studiare il comportamento di questo circuito utilizzando il modello di operazionale ideale. Per semplicita’ consideriamo il caso in cui i due capacitori sono uguali (C1 = C2 = C). Poiche’ l’ingresso non invertente dell’operazionale e’ a massa anche la tensione di quello invertente e’ nulla; quindi possiamo scrivere l’equazione del nodo in cui confluiscono R1 , R2 e i due capacitori Vs − VA VA + (Vo − VA )sC − VA sC = R1 R2 (6.65) cioe’ Vs 1 1 − VA ( + + 2sC) + sCVo = 0 R1 R1 R2 dove con VA abbiamo indicato la tensione del nodo stesso. (6.66) La relazione tra VA e Vo puo’ d’altra parte trovarsi subito osservando che la corrente che fluisce in R3 e’ data da Vo (6.67) I3 = R3 e la tensione VA e’ data da I3 VA = − (6.68) sC Per cui Vo (6.69) VA = − sCR3 Sostituendo nella 6.66 si ottiene Vs 1 2 + Vo ( + sC) = 0 (6.70) + ′ R1 sCR3 R R3 212 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI Figura 6.31: Ampiezza e fase di un filtro VCVS passa-basso del 2o ordine, per 3 valori di K. La scala orizzontale e’ normalizzata alla frequenza critica νc = 1/(2πRC). C1 vs R1 R3 C2 vo R2 Figura 6.32: Filtro passa-banda dove R1 R2 (6.71) R1 + R2 cioe’ il parallelo tra R1 ed R2 . Possiamo quindi scrivere la funzione di trasferimento R′ = Vo =" A(ω) = Vs − R3 2R1 R3 C 1 1 + j( ω− ) 2 2CR′ ω # (6.72) dove abbiamo come al solito sostituito s con jω. Si vede che la 6.72 rappresenta una funzione risonante con frequenza di risonanza ωo = √ 1 R′ R 3C (6.73) 213 6.5. FILTRI ATTIVI e con ampiezza massima (sulla risonanza) Ao = − R3 2R1 (6.74) Introducendo il fattore di merito, Q R3 C 1 Q = ωo = 2 2 r R3 R′ (6.75) la 6.72 puo’ essere scritta A= Ao ω ωo (1 + jQ( − )) ωo ω Ovvero |A| = s |Ao | (6.76) (6.77) ω ωo 1 + Q2 ( − ) 2 ωo ω Le equazioni 6.76 e 6.77 son le stesse (a parte il fattore Ao ) di quelle del circuito RLC passivo, ed ovviamente Q rappresenta il fattore di merito del circuito. Come si vede, possiamo scegliere Ao , ωo e Q variando i parametri del circuito C, R1 , R3 e R′ . Poiche’ abbiamo 4 parametri uno di essi puo’ essere fissato arbitrariamente e gli altri 3 vengono fissati in conseguenza ai valori di progetto desiderati. Abbiamo la possibilita’, almeno in linea di principio, di costruire filtri passa-banda a qualunque frequenza e molto differenziati (grande o piccola selettivita’, grande o piccola amplificazione) senza avere utilizzato induttori che sono componenti assai piu’ scomodi da usare. Tuttavia questo circuito e’ uno di quelli in cui il modello di operazionale ideale che abbiamo utilizzato per i nostri calcoli puo’ condurre a risultati grossolanamente errati, perche’, come abbiamo visto, gli operazionali reali hanno una risposta in frequenza molto lontana da quella ideale. Un calcolo piu’ raffinato richiederebbe di utilizzare il circuito rappresentato in Fig 6.33, dove abbiamo schematizzato l’operazionale come un passa basso, per tenere conto della dipendenza di Av dalla frequenza Av = Avo f 1+j fT (6.78) (si noti che nella nostra convenzione Av e’ negativo). Non procederemo nel calcolo esplicito della funzione di trasferimento, ma se ne ricaverebbe che utilizzando il modello approssimato di operazionale ideale si descrive bene il comportamento del circuito se |A0 | e’ almeno 100 volte piu’ piccola del guadagno ad anello aperto dell’operazionale alla frequenza di risonanza f0 . Si puo’ comprendere meglio con un esempio: supponiamo di voler realizzare un filtro con f0 = 10 kHz utilizzando un LM358. Questo operazionale ha un prodotto banda guadagno di 106 , quindi a 10 kHz il suo guadagno ad anello aperto e’ pari a 100: il criterio suddetto consiglia quindi di progettare 214 CAPITOLO 6. AMPLIFICATORI OPERAZIONALI C A R1 vs 2 R3 C R2 Ro Ri Av(v2-v1) vo 1 Figura 6.33: Circuito equivalente del filtro passa-banda il filtro con un parametro |A0 | uguale o inferiore ad 1. Entro certi limiti questo non e’ un problema, possiamo sempre aggiungere un secondo stadio amplificatore per arrivare ad un guadagno finale piu’ alto, tuttavia e’ chiaro che non e’ semplice costruire filtri con frequenza di risonanza molto elevata. Infine, un esempio numerico. Supponiamo di voler progettare un filtro con frequenza di risonanza νo = 1 kHz e fattore di merito Q = 20, realizzato con un LM358. Dalle considerazioni precedenti si ricava che prudenzialmente conviene avere A0 < 10: scegliamo quindi Ao = 5. Possiamo scegliere C = 10 nF e ricaviamo subito il valore di R3 R3 = 2Q ≃ 630 kΩ 2πνo C da cui si ricava R′ : R′ = 1 4π 2 νo2 C 2 R3 ed infine R1 = ≃ 400 Ω R3 = 63 kΩ 2Ao (6.79) (6.80) (6.81) Poiche R′ e’ il parallelo tra R1 (gia’ fissato) ed R2 , si trova immediatamente che R2 ≃ 400 Ω (6.82) Capitolo 7 Rumore 7.1 Introduzione Tutti i dispositivi elettronici sono soggetti a disturbi provenienti dall’esterno, o generati internamente (rumore), che ne influenzano il comportamento. Il rumore, del quale e’ necessario occuparsi per la sua importanza in elettronica, deriva da fluttuazioni dovute a proprieta’ fondamentali della materia e in quanto tali di origine interna al dispositivo e ineliminabili in linea di principio: fluttuazioni di natura spontanea (rumore termico) oppure associate a flussi quantizzati (rumore shot). A livello macroscopico queste fluttuazioni si manifestano sotto forma di segnali casuali il cui andamento nel tempo non e’ descrivibile analiticamente ma soltanto in termini statistici e il cui spettro in frequenza non e’ costituito da righe, bensi’ di tipo continuo, che si estende in una regione di frequenza piu’ o meno vasta. Il rumore, propriamente detto, non va confuso con i disturbi, cioe’ segnali di origine esterna rispetto al sistema considerato (interferenze elettromagnetiche, rete elettrica, effetti atmosferici, ecc). Questi disturbi infatti si possono considerare, almeno in linea di principio, eliminabili con opportune tecniche di filtraggio o di schermaggio e spesso il loro spettro e’ caratterizzato da righe ben precise. Nello studio del rumore, di solito, piu’ che il valore in termini assoluti, ha importanza la sua entita’ rispetto al segnale (vedi Fig 7.1) , rappresentata usualmente dal rapporto segnale/rumore (signal-to-noise ratio) definito come rapporto tra il valore quadratico medio del segnale e quello del rumore SNR = < (s(t) − s(t))2 > < n2 (t) > (7.1) Spesso questa quantita’ viene espressa in dB SNR = 10 log10 ( vs2 ) dB vn2 E’ necessario sottolineare che la definizione suddetta e’ legata alla larghezza della banda di osservazione in frequenza, dato che le distribuzioni spettrali del segnale e del rumore sono normalmente molto diverse. Se la banda di osservazione si allarga il rapporto SNR diminuisce, mentre aumenta se selezioniamo solo una banda ristretta attorno alla frequenza di interesse per il segnale. 215 216 CAPITOLO 7. RUMORE Figura 7.1: a): Tipico rumore osservato all’oscillografo; b): Un segnale sinusoidale con rumore moderato; c) Un segnale sinusoidale con forte rumore. Nella maggior parte dei casi il rumore si combina linearmente con il segnale, cioe’ vale il principio di sovrapposizione degli effetti. Non mancano pero’ casi in cui il rumore interviene attraverso fluttuazioni dei parametri del sistema considerato (rumore moltiplicativo) che introducono quindi effetti di modulazione sul segnale. La maggior parte dei tipi di rumore ha una distribuzione gaussiana, in alcuni tipi si hanno distribuzioni diverse, ma poiche’ la somma di molte variabili casuali indipendenti e’ una variabile gaussiana, si puo’ assumere che l’analisi in termini gaussiani per il rumore sia ben giustificata: (x − µ)2 − 1 2σ 2 f (x) = √ e (7.2) σ 2π dove µ e’ il valore medio e σ la varianza (entrambi costanti se il processo e’ stazionario). I meccanismi base all’origine del rumore nei dispositivi elettronici sono di vario tipo: • Rumore termico (Johnson-Nyquist); • Rumore shot (Schottky); • Rumore 1/f (flicker noise); • Burst noise; • Avalanche noise. 217 7.2. RUMORE TERMICO e saranno affrontati nelle prossime sezioni. Sebbene, come abbiamo detto, il rumore sia intrinsecamente ineliminabile, conoscerne le caratteristiche e’ fondamentale per capire come attenuarne gli effetti. In un circuito elettronico complesso i rumori (non correlati fra loro) provenienti da varie fonti, si sommano quadraticamente tra loro e il rumore totale si somma quadraticamente al segnale. Infine, va detto che in alcuni casi il rumore puo’ svolgere funzioni utili, grazie al suo spettro continuo: puo’ essere ad esempio utilizzato tra l’altro nella diagnostica dei circuiti, e per questo motivo si costruiscono appositamente generatori di rumore. 7.2 Rumore termico Il rumore termico e’ il rumore piu’ comune, si manifesta in qualsiasi sistema fisico dissipativo che si trovi a temperatura diversa dallo zero assoluto. La densita’ di probabilita’ e’ una gaussiana con valor medio nullo, essendo la somma di un numero elevato di piccoli contributi incoerenti. Figura 7.2: Modello circuitale di un resistore reale. Nel caso elettrico il rumore termico (o rumore di Nyquist-Johnson) rappresnta l’effetto macroscopico del moto casuale dei portatori di carica in un conduttore. Ai capi di un resistore a circuito aperto, in cui quindi non scorre corrente, si osserva infatti una tensione vn (t), variabile nel tempo con andamento irregolare. Cortocircuitando il resistore si osserva una corrente di intensita’ vn (t) (7.3) in (t) = R dove R e’ la resistenza dell’elemento. Questo effetto fu osservato nel 1928 da J.B.Johnson e spiegato teoricamente da H.Nyquist nello stesso anno. Johnson trovo’ sperimentalmente che il valore quadratico medio del rumore, in una banda di osservazione ∆f era dato da < v 2 (t) >= 4kT R∆f (7.4) dove k e’ la costante di Boltzmann (1.38 × 10−23 J/K). Johnson verifico’ anche la 7.4 non dipende dal tipo di resistore ed e’ valida in un’amplissima banda di frequenza. 218 CAPITOLO 7. RUMORE In sostanza la 7.4 indica che la quantita’ di rumore e’ costante a tutte le frequenze e dipende solo dall’ampiezza della banda considerata: un rumore di questo tipo e’ normalmente chiamato rumore bianco. Se noi dunque chiudiamo in corto circuito un resistore osserviamo una corrente il cui valore quadratico medio e’ dato da 4kT ∆f (7.5) < i2 (t) >= R Possiamo creare un modello circuitale di un resistore reale, R, rendendolo equivalente ad un resistore ideale (privo di rumore) con un generatore di tensione in serie, ovvero con un generatore di corrente in parallelo (Fig 7.2) . E’ istruttivo vedere qualche esempio concreto: √ √ R = 100 Ω −→ < v 2 > = 1.28 nV / Hz Con una banda passante di 100 M Hz si ha quindi √ < v 2 > = 12.8 µV Se R e’ invece 1 M Ω, il rumore aumenta di un fattore 100: √ < v 2 > = 1.28 mV Questo suggerisce che non conviene usare resistori di valore molto alto se non e’ strettamente necessario per altri motivi. La potenza di rumore disponibile e’ la potenza che un resistore R reale puo’ fornire ad un carico (ideale), RL , uguale ad R (Fig 7.3) . E’ data da: Wt = kT ∆f (7.6) (densita’ spettrale di potenza). Figura 7.3: Potenza di rumore disponibile. A temperatura ambiente (290 ◦ K), per una banda di 1 Hz, si ha Wt = 4 × 10−21 W E’ d’uso a volte riportare questa potenza usando come base standard 1 mW (0dBm). La potenza di rumore e’ espressa allora come Wt = −174 dBm/Hz Questo livello di rumore e’ chiamato noise floor, ovvero il livello minimo di rumore per un circuito elettronico a temperatura ambiente. E’ in sostanza il limite inferiore del potere risolutivo di qualsiasi sistema di misura (a temperatura ambiente). 219 7.3. RUMORE SHOT 7.3 Rumore shot Questo tipo di rumore si manifesta quando una corrente elettrica, cioe’ un flusso di portatori di carica, attraversa una barriera di potenziale, come nei tubi a vuoto o nelle giunzioni pn. Deriva dalla natura discreta della carica elettrica e dall’indipendenza statistica dei singoli eventi di attraversamentoe per questo e’ anche chiamato rumore granulare. Fu messo la prima volta in evidenza nel 1918 da W.Schottky con lo studio delle fluttuazioni di corrente nei tubi a vuoto. Il rumore shot e’ espresso come < i2shot >= 2qI∆f dove q e’ la carica dell’elettrone, I la corrente che circola e ∆f la banda passante del dispositivo di misura. Questa formula contiene l’ipotesi che non ci siano correlazioni nel moto delle cariche; nei normali conduttori viceversa ci sono forti correlazioni e il rumore effettivo e’ molto piu’ basso di quello predetto. Le caratteristiche fondamentali sono: • e’ un rumore bianco; • non dipende dalla temperatura Rumore shot in una giunzione pn L’equazione del diodo qVD I = Is (e kT − 1) = I1 + I2 dove I1 = −Is e’ la corrente dei portatori minoritari, I2 quella dei portatori maggioritari. Entrambe sono affette da rumore shot e i due contributi si sommano quadraticamente Quando la giunzione e’ polarizzata inversamente I2 ≃ 0 e il rumore shot e’ sostanzialmente quello di I1 , mentre se la giunzione e’ polarizzata direttamente domina il rumore shot di I2 . Se la giunzione non e’ polarizzata I1 = −I2 e il rumore shot totale e’ quindi il doppio, ovvero < i2shot >= 4qIs ∆f Rumore shot in una giunzione pn: transistor La giunzione rilevante e’ quella base-emettitore. Possiamo quindi modellizzare il rumore shot come in Fig 7.4. A temperatura ambiente la tensione prodotta dal rumore shot e’ < vshot 0.025 p 2qIE ∆f = 1.42 × 10−11 >= IE r ∆f IE 220 CAPITOLO 7. RUMORE Figura 7.4: Potenza di rumore disponibile. 7.4 Rumore 1/f (flicker noise) E’ un tipo di rumore presente in tutti i fenomeni di conduzione, dovuto a molteplici cause. E’ sempre correlato ad una fluttuazione di resistenza che si traduce in una fluttuazione di corrente e di tensione. Puo’ essere dovuto a impurezze, per es. nei resistori al carbonio, o nel materiale semiconduttore di diodi e transistor, disomogeneita’, effeti di contatto. Spesso questo tipo di rumore e’ denominato excess noise, con riferimento al rumore termico previsto. E’ caratterizzato dall’andamento approssimativo 1/f (da cui il nome), quindi e’ trascurabile ad alta frequenza (rispetto agli altri tipi di rumore), mentre puo’ essere rilevante a bassa frequenza. Dato questo andamento 1/f la quantita’ di rumore e’ la stessa per ogni decade di frequenza. Questo tipo di rumore e’ solitamente trascurabile nei resistori, debole nei transistor bipolari, piu’ importante nei transistor MOS. 7.5 Rumore burst e avalanche Il rumore burst e’ un tipo di rumore caratterizzato da improvvisi e casuali salti di tensione (dell’ordine dei µV ) che possono apparire in dispositivi con semiconduttori E’ dovuto a imperfezioni o contaminazioni del materiale e puo’ quindi essere ridotto con miglioramenti nel processo produttivo Il rumore avalanche nasce nelle giunzioni pn in regime di breakdown, ed ha fondamentalmente uno spettro piatto. Da un punto di vista pratico e’ rilevante solo nei diodi Zener (quelli di tipo avalanche), in cui puo’ essere molto forte, tanto che questi componenti sono a volte utilizzati proprio come generatori di rumore. 7.6 Rumore negli amplificatori E’ usuale definire negli amplificatori la “Figura di rumore” (Noise Figure), ovvero il rapporto fra l’uscita effettiva e quella che si avrebbe con un dispositivo ideale (senza rumore), 7.6. RUMORE NEGLI AMPLIFICATORI 221 data una sorgente di segnale con resistenza d’uscita RS (Fig 7.5): NF 4kT Rs + vn2 ) 4kT Rs vn2 ) = 10 log10 (1 + 4kT Rs = 10 log10 ( (7.7) (7.8) Figura 7.5: Amplificatore con rumore. 7.6.1 Amplificatore a transistor bipolare Figura 7.6: Figura di rumore in funzione della frequenza per un transistor bipolare. L’andamento della figura di rumore (NF) per un tipico transistor bipolare e’ mostrata in Fig 7.6. L’incremento per frequenze inferiori a f1 e’ dovuto alla prevalenza del rumore 1/f generato nei contatti (contact noise). Al di sopra di f1 il rumore e’ bianco e dovuto al rumore termico nella resistenza di base, rbb′ e al rumore shot nelle giunzioni baseemettitore e base-collettore. L’incremento nella figura di rumore al di sopra di f2 e’ legato alla decrescita del guadagno del transistor alle alte frequenze e alla crescita dello shot noise del collettore. Possiamo esaminare piu’ in dettaglio un amplificatore ad emettitore comune, aggiungendo all’usuale modello T le sorgenti di rumore: il rumore termico della 222 CAPITOLO 7. RUMORE Figura 7.7: Rumore nell’amplificatore a emettitore comune. E’ incluso il contributo della sorgente di segnale. resistenza rbb′ e i rumori shot delle giunzioni. Il rumore shot sul collettore e’ descritto dalla espressione s p |α|2 IC(shot) = 2qIc ∆f 1 − (7.9) αf dove |α| = s |αF | f2 1+ fa (7.10) dove fa e’ la frequenza di taglio di α. 7.6.2 Amplificatore operazionale Figura 7.8: Andamento del rumore di un operazionale in funzione della frequenza. Negli amplificatori operazionali ci sono molteplici sorgenti di rumore (termico, shot e 1/f ) che danno complessivamente un andamento in frequenza come quello mostrato in Fig 7.8. A bassa frequenza prevale il rumore 1/f , da un certo punto in poi trascurabile rispetto al 223 7.6. RUMORE NEGLI AMPLIFICATORI rumore bianco; la frequenza per cui i due contributi sono uguali e’ usualmente denominata corner frequency, fnc . Il rumore complessivo integrato su una certa banda di frequenza, da fL a fH , ha quindi un’espressione del tipo Z f H K2 2 E = (C + )df (7.11) f fL = C(fH − fL ) + K 2 loge FH fL (7.12) dove C e’ il quadrato del rumore bianco e K e’ un’appropriata costante, che e’ legata a C e fnc , infatti si ha K2 =C (7.13) fnc In definitiva possiamo esprimere la 7.12 come E 2 = C(fnc loge FH + fH − fL ) fL (7.14) Le costanti C e fnc possono essere ricavate da grafici come quello riportato in Fig 7.8. Nel caso di un amplificatore operazionale (come di qualunque circuito complesso) non e’ evidentemente possibile descrivere in modo analitico le molte sorgenti di rumore, si costruisce percio’ un modello equivalente che descriva l’effetto complessivo, costituito da un operazionale ideale (ovvero privo di rumore) con un generatore di tensione vn in serie all’ingresso non invertente e due generatori di corrente (diversi tra loro), in , verso la massa (Fig. 7.9a). Valori tipici: √ vn = 1 ÷ 100 nV / Hz √ in = 0.0001 ÷ 10 pA/ Hz Come esempio possiamo analizzare il rumore complessivo presente in un operazionale utilizzato in configurazione invertente o non-invertente. In entrambi i casi, dopo avere messo a massa il segnale d’ingresso, si arriva al circuito di Fig 7.9b. Sia i resistori esterni che l’operazionale producono rumore e tutti i contributi vanno sommati quadraticamente, il principio di sovrapposizione ci consente di calcolarne uno per volta. Ogni resistore esterno contribuisce con un generatore equivalente p (7.15) ei = 4kT Ri ∆f ma dobbiamo anche considerare che alcuni di questi vengono poi amplificati dall’operazionale stesso. Si hanno quindi i generatori effettivi: R2 p R2 4kT R1 ∆f (7.16) = E1 = e1 R1 R1 p E2 = e2 = 4kT R2 ∆f (7.17) E3 = e3 R1 + R2 p R1 + R2 4kT R3 ∆f = R1 R1 (7.18) 224 CAPITOLO 7. RUMORE Figura 7.9: a): Modello di rumore in un operazionale; b): Esempio di operazionale con la rete resistiva Vediamo ora i contributi provenienti dall’operazionale: E n = en R1 + R 2 p ∆f R1 R1 + R2 p ∆f R1 p = inn R2 ∆f (7.19) Enp = inp R3 (7.20) Enn (7.21) Il rumore complessivo e’ quindi dato da 2 2 + Enn )∆f E 2 = (E12 + E22 + E32 + En2 + Enp Il valore quadratico medio sulla banda di frequenza di interesse e’ sZ Erms = 2 + E 2 ]df [E12 + E22 + E32 + En2 + Enp nn (7.22) (7.23) Bisogna ora valutare questo integrale. I termini dovuti ai resistori sono costanti quindi possono essere portati fuori dall’integrale, mentre i termini legati all’operazionale contengono una combinazione di rumore bianco e di rumore 1/f , come abbiamo visto prima. Per un calcolo quantitativo e’ necessario conoscere, per l’operazionale in uso il livello del rumore bianco e la corner frequency, come visto in precedenza. Questa espressione ci fornisce comunque qualche utile indicazione: • e’ preferibile usare resistori esterni di valore piu’ basso possibile (compatibilmente con altri vincoli); • omettere il resistore R3 se non e’ necessario per compensare le correnti di bias (questo e’ sicuramente vero per operazionali con ingressi JFET o MOS); • operazionali con ingressi JFET o MOS hanno ulteriori vantaggi in quanto i contributi di corrente al rumore (inp e inp ) sono del tutto trascurabili. 7.7. GENERATORI DI RUMORE 7.7 225 Generatori di rumore Figura 7.10: a): Generatore di rumore con diodo Zener; b): Generatore di rumore con transistor Come abbiamo detto il rumore ha anche aspetti positivi e viene spesso utilizzato per la diagnostica di circuiti. Peraltro, avendo a disposizione una sorgente ideale di rumore, ovvero con uno spettro in frequenza perfettamente piatto, la si potrebbe utilizzare per misurare la funzione di trasferimento di qualunque quadrupolo, per esempio un amplificatore. Sono disponibili in commercio generatori di rumore, perfettamente calibrati, e con ampiezza adeguata, ma anche di notevole costo. E’ comunque possibile e abbastanza facile costruire semplici generatori se non si hanno particolari pretese di stabilita’ e riproducibilita’. In Fig 7.10a ne abbiamo un esempio basato su un diodo Zener: il segnale prodotto e’ prelevato all’anodo e amplificato con un amplificatore a doppio stadio. E’ preferibile utilizzare Zener con VZ > 8 V , che, essendo basati sull’effetto avalanche sono piu’ rumorosi. L’amplificatore (e’ necessaria un’amplificazione di almeno 100) dovrebbe essere a larga banda ed e’ preferibile un doppio stadio per non attenuare troppo le alte frequenze. Un’alternativa all’uso dello Zener e’ mostrata in Fig 7.10b: il transistor Q2 ha la giunzione base-emettitore polarizzata inversamente ed e’ in regione di breakdown1 , quindi ha una rumorosita’ analoga ad un diodo Zener. 1 La tensione di breakdown della giunzione base-emettitore di u transistor e’ in genere abbastanza bassa, circa 6 V per un 2N2222. 226 CAPITOLO 7. RUMORE Capitolo 7 Circuiti digitali Finora abbiamo studiato dispositivi e circuiti di tipo lineare, ovvero delle situazioni in cui l’andamento temporale delle variabili elettriche d’uscita (tensione e/o corrente) riproduceva quello delle variabili d’ingresso. Invece i circuiti digitali (o circuiti logici) sono sistemi in cui lo stato dell’uscita, o delle uscite, e’ legato in modo fortemente non lineare a quello dell’ingresso o degli ingressi. Piu’ specificamente i circuiti logici sono caratterizzati dal fatto che le variabili elettriche d’uscita, tipicamente la tensione, assume due soli valori possibili (per es. 0 V e 5 V ) in conseguenza al valore di tensione applicato all’ingresso. Circuiti di questo tipo sono alla base, come vedremo, dei sistemi di elaborazione numerica e rivestono quindi una importanza fondamentale. Abbiamo gia’ visto esempi molto rudimentali di circuiti del genere quando abbiamo parlato del transistor utilizzato come interruttore: in quel caso la tensione VC del collettore puo’ essere fatta variare tra un valore VCC ed un valore VCEsat (molto prossima a zero) in dipendenza della tensione applicata alla base. Per comprendere meglio le applicazioni di questo tipo di circuiti e’ necessario fare alcune premesse di natura matematica. 7.1 Numerazione binaria ed algebra di Boole Il sistema numerico che noi utilizziamo e’ di tipo posizionale, basato sulle potenze di 10. Infatti la scrittura di un qualunque numero non e’ altro che l’espressione sintetica di una combinazione lineare di potenze di 10. Per esempio, il numero 327 non e’ che un’abbreviazione per l’espressione 7 · 100 + 2 · 101 + 3 · 102 Le 4 operazioni aritmetiche vengono di conseguenza eseguite tenendo conto del significato posizionale delle cifre che compongono il numero ed utilizzando, se necessario, il riporto da una posizione a quella, piu’ significativa, alla sinistra della precedente. In realta’ la base 10 non ha nulla di fondamentale e potrebbe essere tranquillamente sostituita da qualunque altra base. La base piu’ semplice puo’ essere considerata quella fondata sul 2 (non ha senso infatti la base 1!); possiamo quindi costruire un sistema numerico in base 2, utilizzando le potenze di questo numero per esprimerne uno qualunque. Per fare cio’ abbiamo bisogno di due soli simboli numerici, 0 ed 1 (nel sistema in base 10 avevamo 10 simboli, da 0 a 9). La nostra numerazione sara’ allora: Le 4 operazioni aritmetiche pos- 227 228 CAPITOLO 7. CIRCUITI DIGITALI Num. decimale Num. binaria 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 ··· ··· 16 10000 ··· ··· 32 100000 ··· ··· Tabella 7.1: Numerazione binaria sono essere effettuate nel sistema numerico a base 2 (cosi’ come in qualunque altro sistema numerico), con le stesse regole del sistema decimale; la sola differenza e’ che il riporto deve essere effettuato quando si arriva a 2 e non quando si arriva a 10. Possiamo fin da ora comprendere che il sistema binario, per il fatto di avere due soli numeri fondamentali, si presta particolarmente ad essere associato a sistemi elettronici in cui le variabili elettriche assumono due valori possibili, e quindi ci aiutera’ a costruire "macchine" per l’elaborazione numerica. Dobbiamo pero’ ancora approfondire gli aspetti matematici del sistema binario. Possiamo infatti definire, oltre alle normali operazioni aritmetiche, delle operazioni logiche, che costituiscono nel loro complesso la cosidetta algebra di Boole; queste regole non si applicano solo all’insieme dei numeri binari, ma piu’ in generale a tutti gli insiemi binari, cioe’ composti da due elementi, che possiamo chiamare 0 ed 1, ma anche VERO e FALSO, o BIANCO e NERO, ecc. Algebra di Boole. Definiamo tre operazioni logiche tra gli elementi dell’insieme binario: 1. Prodotto logico (detto anche AND): dati n elementi x1 , x2 , . . . , xn , il loro prodotto logico ha come risultato 1 se e solo se tutti gli elementi valgono 1; altrimenti il risultato e’ 0. Cioe’: 1 se ogni xj = 1 x1 · x2 · · · xn = 0 altrimenti 7.1. NUMERAZIONE BINARIA ED ALGEBRA DI BOOLE 229 Il punto viene spesso omesso, se cio’ non da’ luogo ad ambiguita’, quindi x1 · x2 puo’ semplicemente essere scritto x1 x2 . 2. Somma logica (detta anche OR):dati n elementi x1 , x2 , . . . , xn , la loro somma logica ha come risultato 1 se almeno uno degli elementi e’ uguale ad 1; altrimenti (cioe’ se tutti gli elementi valgono 0) il risultato e’ 0. Cioe’ 0 se ogni xj = 0 x1 + x2 · · · + xn = 1 altrimenti 3. Negazione logica (detta anche NOT): dato un elemento x, l’elemento negato, che si indica con x, vale 1 se x vale 0, mentre vale 0 se x vale 1. Cioe’: x=0 se x=1 x=1 se x=0 Naturalmente si ha x = x. Le suddette operazioni ci consentono di definire funzioni di variabili logiche (o binarie); per esempio, date 3 variabili x1 , x2 , x3 , possiamo definire la funzione F = x1 · x2 · x3 + x1 · x2 · x3 + x1 · x2 · x3 anche F potra’ assumere solo i valori 0 o 1 in dipendenza dai valori assunti dalle variabili, cioe’ il co-dominio della funzione e’ ancora l’insieme binario. Questo modo di scrivere una funzione prende il nome di forma canonica: e’ chiaro che ogni funzione puo’ essere scritta in questo modo. Un modo diverso, spesso utile, per rappresentare una funzione e’ quello di scrivere la cosidetta tavola della verita: e’ semplicemente una tabella che lega il valore assunto dalla funzione ai valori assunti dalle variabili. Per esempio, la tavola della verità della funzione F vista prima e’ data da: x3 x2 x1 F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 230 CAPITOLO 7. CIRCUITI DIGITALI Come si vede la tavola della verita’ ha tante righe quante sono le combinazioni di tutti i valori possibili delle variabili (in questo caso 8) e per ogni riga la funzione assume un valore. Quindi, se abbiamo una funzione di n variabili, la sua tavola della verita’ sara’ composta da 2n righe. E’ utile scrivere la tavola della verita’ di alcune funzioni semplici, ma fondamentali: ad esempio, il prodotto di due variabili (AND), cioe’ Y = x2 · x1 : x2 x1 Y 0 0 0 0 1 0 1 0 0 1 1 1 Oppure della funzione somma (OR) di due variabili, cioe’ Y = x2 + x1 : x2 x1 Y 0 0 0 0 1 1 1 0 1 1 1 1 Un’altra funzione importante e’ il cosidetto OR ESCLUSIVO, a volte chiamato brevemente XOR, definita come: 1 se solo uno degli xj = 1 x1 ⊕ x2 · · · ⊕ xn = 0 altrimenti La tavola della verita’ per due variabili e’quindi data da: x2 x1 Y 0 0 0 0 1 1 1 0 1 1 1 0 E’ anche possibile scrivere una qualunque funzione in forma canonica partendo dalla tavola della verita’. Consideriamo ad esempio una funzione, G,di cui conosciamo la cui tavola della verita’: 7.1. NUMERAZIONE BINARIA ED ALGEBRA DI BOOLE x3 x2 x1 G 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 231 La sua forma canonica sara’ allora data da: G = x3 x2 x1 + x3 x2 x1 + x1 x2 x3 cioe’ avremo una somma di tanti addendi quante sono le righe per cui la funzione vale 1. In ogni addendo compare il prodotto delle variabili: se in quella riga una variabile vale 0 esso compare negata. Quindi l’OR ESCLUSIVO visto in precedenza corrisponde ad una funzione la cui forma canonica e’ Y = x1 x2 + x1 x2 L’algebra di Boole gode di alcune proprieta’ molto semplici. Indicando con A, B, C, . . . delle variabili binarie, si ha: 1. Proprietà commutativa della somma: A+B =B+A 2. Proprietà commutativa del prodotto: A·B =B·A 3. Proprietà associativa della somma: (A + B) + C = A + (B + C) 4. Proprietà associativa del prodotto: (A · B) · C = A · (B · C) 5. Prima proprietà distributiva: A · (B + C) = A · B + A · C 232 CAPITOLO 7. CIRCUITI DIGITALI 6. Seconda proprietà distributiva: (A + B) · (A + C) = A + B · C Alcune di queste proprieta’ sono essenzialmente dei postulati, mentre le altre possono essere verificate immediatamente. Un’ulteriore importante proprieta’ e’ data dal teorema di De Morgan, che lega tra loro le operazioni di somma e di prodotto logico. Si hanno due enunciazioni del teorema: A+B =A·B ovvero A·B =A+B A+B =A·B ovvero A+B =A·B Queste relazioni sono naturalmente valide per qualunque numero di variabili. Omettiamo la dimostrazione di questo teorema, che puo’ essere verificato in modo diretto attraverso le tavole della verita’. Esso e’, come vedremo,molto importante, perche’ consente di trasformare una funzione in un’altra equivalente, attraverso ripetute applicazioni del teorema. Inoltre, da un punto di vista concettuale, dimostra che le tre operazioni logiche non sono indipendenti: l’operazione di OR puo’ essere costruita con AND e NOT, ovvero l’operazione di AND puo’ essere costruita con OR e NOT. Nella tabella 7.2 sono riassunte tutte le proprieta’ ed i teoremi dell’algebra di Boole. Identita’ A+0=A A·1=A Dominanza A+1=1 A·0=0 Idempotenza A+A=A A·A=A Complementazione A+A=1 A·A=0 Involuzione A=A Commutativa A+B =B+A A·B =B·A Associativa A + (B + C) = (A + B) + C A · (B · C) = (A · B) · C Distributiva (A + B) · (A + C) = A + B · C A · (B + C) = A · B + A · C Assorbimento I A+A·B =A A · (A + B) = A Assorbimento II A+A·B =A+B A · (A + B) = A · B Assorbimento III A·B+B·C +A·C = (A + B) · (B + C) · (A + C) = A·B+A·C (A + B) · (A + C) De Morgan A+B =A·B A·B =A+B Shannon F (A, B, C) = F (A, B, C) = A · F (1, B, C) + A · F (0, B, C) = [A + F (0, B, C)] · [A + F (1, B, C)] Tabella 7.2: Proprieta’ e teoremi dell’Algebra di Boole 233 7.2. CIRCUITI LOGICI 7.2 Circuiti logici In sostanza, da quanto abbiamo visto nel precedente paragrafo, qualunque calcolo si voglia fare su numeri binari si riconduce a funzioni in cui compaiono le tre operazioni logiche AND,OR e NOT. Da un punto di vista circuitale questo significa che avendo a disposizione tre circuiti che svolgono queste funzioni elementari, ogni altra funzione puo’ essere realizzata combinando in modo opportuno questi tre "mattoni" fondamentali. Ma prima di tutto dobbiamo stabilire una associazione tra variabili logiche e variabili elettriche. Chiaramente questa associazione e’ del tutto arbitraria, tuttavia e’ chiara la necessita’ di uniformare questa scelta in modo da rendere compatibili e intercambiabili circuiti realizzati da diversi produttori o comunque da diversi utenti. Esistono varie convenzioni, ma tutte perlopiu’ considerano come variabili elettriche rilevanti le tensioni e quindi il circuito logico e’ un sistema in cui, applicando certe tensioni agli ingressi, si ottiene una tensione d’uscita che corrisponde ad una ben definita funzione logica degli ingressi. Indipendentemente dai dettagli di realizzazione si usa uniformemente una simbologia come quella in Fig. 7.1, in cui sono mostrati i simboli dei circuiti (o porte logiche) basilari. AND OR XOR NOT Figura 7.1: Simboli delle porte logiche fondamentali E’ importante notare che l’associazione di una tensione con un valore logico puo’ essere fatta in 2 modi: 0 logico → tensione "bassa" 1 logico → tensione "alta" 0 logico → tensione "alta" 1 logico → tensione "bassa" Ovvero: Nel primo caso si ha quella che si chiama una logica positiva; nel secondo una logica negativa. C’e’ una interessante relazione tra queste due scelte. Infatti il teorema di De Morgan ci dice che: Y = AB = (A + B) Il secondo membro puo’ essere pensato come un OR in logica negativa: infatti negare una variabile e’ del tutto equivalente a passare da logica positiva a logica negativa. 234 CAPITOLO 7. CIRCUITI DIGITALI La conseguenza e’ che un AND in logica positiva equivale ad un OR in logica negativa. Analogamente, poiche’ si ha: Y =A+B =A·B possiamo dire che un OR in logica positiva e’ equivalente ad un AND in logica negativa. Quindi lo stesso circuito svolge le funzioni di AND o di OR a seconda di quale associazione logica noi facciamo tra livelli di tensione e valori logici. Un’ulteriore conseguenza del teorema di De Morgan e’ che. come abbiamo gia’ detto, AND e OR sono collegati tra loro, per cui in linea di principio non e’ necessario costruire i circuiti che realizzano le tre funzioni fondamentali, ma ne bastano due, per esempio AND e NOT, oppure OR e NOT (si noti che il NOT e’ comunque necessario). In realta’ questo suggerisce di considerare come porta fondamentale il cosidetto NAND, ovvero la porta che realizza la funzione Y =A·B la cui tavola della verita’ e’ data da: A B Y 0 0 1 0 1 1 1 0 1 1 1 0 a) b) NAND NOT c) AND d) OR Figura 7.2: a) Simbolo del NAND; b) Realizzazione del NOT c) Realizzazione dell’ AND d) Realizzazione dell’OR Come si vede dalla Fig. 7.2 con una o piu’ porte NAND e’ possibile realizzare le tre operazioni elementari e, quindi, tutte le funzioni logiche. 235 7.3. FAMIGLIE LOGICHE Da quanto detto si comprende quindi che la costruzione di funzioni logiche piu’ o meno complesse viene fatto costruendo delle reti formate da porte logiche; e’ chiaro quindi che non e’ sufficiente definire i "livelli logici" (cioe’ la corrispondenza tra tensioni e variabili logiche), ma occorre anche che. per esempio l’uscita di una porta possa essere connessa all’ingresso di un’altra. Questo significa una piu’ completa compatibilita’ in termini di correnti, impedenze, ecc. Inoltre si vuole che l’uscita di una porta possa servire piu’ ingressi di porte diverse, e questo pone ulteriori esigenze, come vedremo nei prossimi paragrafi. In generale una certa funzione logica, grazie al teorema di De Morgan, puo’ essere scritta in piu’ modi; questo si traduce in diverse realizzazioni circuitali. Vediamo, a titolo di esempio, il caso dell’OR esclusivo. Si ha Y = AB + AB Ma, usando il teorema di De Morgan, si puo’ anche scrivere: Y = (A + B) · (A · B) Y =A·B+A·B Y = (A + B) · (A + B) A ciascuna di queste forme corrisponde ovviamente una realizzazione circuitale diversa (Fig. 7.3), di maggiore o minore complessita’ e costo. Si sono quindi sviluppate tecniche, che noi non tratteremo, per ottimizzare la traduzione circuitale di una funzione logica, nel senso di minimizzare il numero di porte elementari necessarie a realizzarla. A B A+B (A+B)(AB) AB A AB B AB+ AB AB A AB B AB+AB AB Figura 7.3: Varie realizzazioni dell’OR ESCLUSIVO 7.3 Famiglie logiche Una famiglia logica e’ definita da un insieme di regole e convenzioni, tali da rendere possibile la costruzione di circuiti complessi utilizzando circuiti logici elementari compatibili 236 CAPITOLO 7. CIRCUITI DIGITALI V R (= V 0 ) LOGICA NEGATIVA V R (= V 1 ) R R Y=AB Y=A+B V R (= V 0 ) LOGICA POSITIVA V R (= V 1 ) R R Y=A+B Y=AB LOGICA POSITIVA -12 +12 +12 "0" "1" 0 V 12 V -12 +12 Y=A A Y=AB A B Figura 7.4: AND, OR, NOT e NAND nella famiglia DTL 237 7.3. FAMIGLIE LOGICHE pienamente tra loro. Nel corso degli anni si sono sviluppate varie famiglie logiche e sul mercato esiste una vastissima offerta i circuiti appartenenti ad esse. Le più importanti famiglie logiche che sono state sviluppate nel tempo sono DTL Diode-Transistor Logic RTL Resistor-Transistor Logic TTL Transistor-Transistor Logic DCTL Direct-Coupling Transistor Logic ECL Emitter-Coupled Logic CMOS Basata su transistor a effetto di campo Oggi la logica di gran lunga piu’ utilizzata e’ la CMOS, seguita dalla TTL, mentre la ECL e’ utilizzata solo per applicazioni particolari. Prima pero’ di descrivere brevemente queste tre famiglie e’ comunque interessante ed istruttivo parlare brevemente della famiglia DTL, che oggi non e’ piu’ molto diffusa, ma ci consente comprendere alcune delle cose dette nel precedente paragrafo 7.3.1 Famiglia DTL Le funzioni elementari AND e OR possono essere realizzate solo con diodi, mentre il NOT richiede l’uso di un transistor. I livelli logici sono (in logica positiva): 0 logico →0V 1 logico → 12 V Naturalmente la corrispondenza si inverte passando alla logica negativa. In Fig. 7.4 sono mostrate le realizzazioni di AND e OR e si vede come passando da logica positiva a logica negativa lo stesso circuito svolge entrambe le funzioni. Invece NOT e NAND mostrati nella stessa figura sono pensati per logica positiva; per passare a logica negativa occorre sostituire i transistors npn con transistors pnp. Si capisce da questi esempi che i livelli logici devono essere definiti con certe tolleranze; infatti nel circuito NOT mostrato l’uscita a livello logico 0 corrisponde ad una tensione reale di circa 0.2 V (VCEsat del transistor). In generale quindi i livelli logici corrispondono a due intervalli di tensione, ben separati tra loro, in modo che eventuali disturbi non alterino il significato logico delle tensioni ed il comportamento dei circuiti 7.3.2 Famiglia TTL E’ la famiglia logica piu’ nota ed utilizzata, e costituisce uno standard industriale. I livelli logici nominali (in logica positiva) sono: 0 logico → 0.2 V 1 logico →5V 238 CAPITOLO 7. CIRCUITI DIGITALI VCC VCC R1 R1 R2 R2 R4 R4 Q3 A Q1 Y Q2 Q3 D1 R3 (a) A Q1 D2 Q2 D1 Y Q4 R3 (b) Figura 7.5:(a) Circuito NOT; (b) circuito NOT con uscita “totem pole”. La porta logica fondamentale e’ il circuito invertitore, o NOT, il cui schema di principio e’ mostrato in Fig. 7.5(a). Il circuito e’ alimentato con Vcc = 5 V . In questo circuito il transistor Q1 non e’ utilizzato nel modo consueto: esso va visto come una coppia di diodi (base-emettitore e base-collettore) uniti tra loro. Se l’ingresso e’ a livello logico alto (nominalmente 5 V ) il diodo base-emettitore e’ interdetto; viceversa il diodo base-collettore puo’ condurre. Si vede, osservando il circuito, una sequenza di 3 giunzioni: base-collettore di Q1, base-emettore di Q2, base-emettitore di Q3. La corrente puo’ fluire in questa strada e pertanto esse sono tutte in conduzione. La base di Q3 si pone a 0.7 V , la base di Q2 a 1.4 V , la base di Q1 a 2.1V . Q2 e Q3 sono sicuramente in saturazione, quindi l’uscita (collettore di Q3) va a circa 0.2 V , ovvero a livello logica basso (nominalmente 0 V ). Se invece l’ingresso e’ a livello logico basso (nominalmente 0 V ) la giunzione baseemettitore del transistor Q1 conduce e la sua base e’ quindi a circa 0.7 V . Vediamo ora lo stato dei transistor Q2 e Q3: se essi fossero in conduzione avremmo la base di Q3 a 0.7 V e la base di Q2 a 1.4 V . In questa situazione la giunzione base-collettore di Q1 sarebbe interdetta, quindi non potrebbe fornire la corrente a Q2. Pertanto l’ipotesi e’ sbagliata: Q2 e Q3 sono interdetti e quindi l’uscita e’ a Vcc ovvero al livello logico alto. In sintesi il circuito quindi fornisce in uscita un livello logico alto pari alla tensione di alimentazione, e un livello logico basso pari alla VCEsat . Il diodo D1 non svolge nessuna funzione logica, in linea di principio e’ sempre interdetto. La sua funzione e’ solo di proteggere il transistor Q1 nel caso in cui all’ingresso venga posta una tensione negativa. La famiglia TTL appartiene alle cosidette logiche saturate, in quanto uno dei livelli logici corrisponde allo stato di saturazione del transistor d’uscita. Naturalmente cio’ comporta una elevata dissipazione di potenza, quando l’uscita e’ bassa, legata al valore della resistenza R4 . Da questo punto di vista converrebbe avere questa resistenza molto grande; tuttavia cio’ creerebbe problemi con il tempo di commutazione del circuito (cioe’ il tempo che l’uscita impiega a modificare il suo livello un relazione ad un cambiamento logico degli 239 7.3. FAMIGLIE LOGICHE VCC R1 A B Q1 D1 VCC R2 R4 Y Q2 Q3 D2 R1 R2 R5 Y A B Q2 Q1 D1 Q3 D2 R3 (a) R4 Q4 R3 (b) Figura 7.6:(a) Circuito NAND;(b) Circuito AND ingressi). Infatti questo tempo è dato da τ = R4 CL , dove CL è la capacità connessa con l’uscita (cioe’ la capacita’ d’ingresso dello stadio successivo Conviene quindi migliorare il circuito (Fig. 7.5b),con l’aggiunta di un ulteriore transistor; ora R4 e’ una resistenza piccola. Quando l’uscita e’ alta (Y = 1) Q2 è interdetto, Q3 è interdetto, Q4 è in conduzione (cioè Y = VCC − VBE − VD ≈ 3 ÷ 4 V ). Quando l’uscita e’ bassa (Y = 0), Q2 e Q3 sono in saturazione e Q4 è interdetto, e ciò è ottenuto grazie al diodo D2. Si noti quindi che ora non c’e’ mai corrente che circola in R4 ; quando l’uscita e’ bassa il transistor Q3 assorbe corrente dall’ingresso dello stadio successivo. Vediamo ora la commutazione dell’uscita da 0 a 1: Q2 si interdice e Q3 anche; Q4 entra in saturazione e D conduce. In questo modo Q4 fornisce la corrente per caricare CL con una costante di tempo τ = (R4 + RS + RD )CL dove RS e’ la resistenza di Q4 in saturazione e RD la resistenza diretta del diodo: l’uscita Y sale e si porta a 5 V . Per la commutazione da 1 a 0, Q2 e Q3 entrano in conduzione (e poi in saturazione), CL si scarica attraverso Q3 ; la tensione di Y scende e si porta in conduzione. Questo tipo di realizzazione dell’uscita e’ comunemente noto come uscita a "totem pole". A partire dal NOT e’ molto semplice realizzare un circuito NAND (Fig. 7.6(a)). Il transistor Q1 e’ ad emettitori multipli1 (due ne caso in esame). Ora, se almeno uno dei due ingressi e’ a livello logico basso, la giunzione base-emettitore di Q1 conduce, la base si porta a 0.7 V e si ha la stessa situazione del caso precedente: Q2 e Q3 sono interdetti e l’uscita e’ a livello logico alto. Se invece entrambi gli ingressi sono alti, l’uscita va in saturazione. Naturalmente anche questo circuito puo’ essere migliorato modificando l’uscita con l’aggiunta del diodo D2 e del quarto transistor. Per realizzare la funzione AND non si deve fare altro che invertire nuovamente l’uscita, 1 In linea di principio questo puo’ essere ottenuto molto semplicemente creando due connessioni metalliche separate con la regione di emettitore 240 CAPITOLO 7. CIRCUITI DIGITALI VCC R1 VCC R3 R2 R1 R3 R2 R5 A Q3 Q1 R5 Q4 A D1 Y Q2 B Q5 D2 R4 R6 Q3 Q1 Q4 Y Q6 D1 Q2 B Q5 D2 (a) R4 (b) Figura 7.7:(a) Circuito NOR;(b) Circuito OR V cc 4A 4B 4Y 3B 3A 3Y Figura 7.8: Diagramma dell’integrato 7400, in contenitore 1A 1B 1Y 2A 2B 2Y 0 Dual-in-line a 14 piedini aggiungendo un ulteriore transistor (Fig. 7.6(b)). Infine, il circuito NOR si realizza con lo schema di Fig. 7.7(a). E’ abbastanza facile comprendere il comportamento di questo circuito. Se entrambi gli ingressi sono bassi i due transistor Q3 e Q4 sono interdetti, anche Q5 lo e’, e l’uscita e’ alta. Se invece uno o entrambi gli ingressi sono alti il transistor Q5 va in saturazione grazie alla corrente fornitagli da Q3 o Q4 (o da entrambi). Percio’ si realizza la funzione NOR, ed e’ poi facile ottenere la funzione OR attraverso una ulteriore inversione (Fig. 7.7(b)). Esistono in commercio circuiti integrati della famiglia TTL che svolgono varie funzioni; molto spesso lo stesso circuito integrato contiene piu’ porte logiche identiche. La serie piu’ diffusa e’ la cosidetta serie 74, che comprende un grandissimo numero di componenti. Ad esempio, l’integrato 7400 racchiude in un contenitore a 14 piedini 4 porte NAND a due ingressi (Fig. 7.8). Nella Tabella 7.3 e’ riportato un breve elenco di integrati TTL. Un ulteriore miglioramento nelle prestazioni di questi circuiti viene ottenuto utilizzando transistor di tipo Schottky. In linea di principio questo transistor puo’ essere ottenuto inserendo un diodo Schottky tra la base ed il collettore di Q4 (Fig. 7.9(a)). Il diodo è di metallo-semiconduttore, con tempo di immagazzinamento trascurabile e soglia di circa 3 V . Esso impedisce che il transistor entri in saturazione e quindi rende più veloce la commutazione. Praticamente il transistor Schottky e’ costruito come in Fig. 7.9(b); la metallizzazione della base e’ estesa in modo da connettersi anche alla regione del collettore, creando quindi la giunzione metallo-semiconduttore che costituisce il diodo. Il simbolo del 241 7.3. FAMIGLIE LOGICHE Sigla Funzione 7400 4 NAND a due ingressi 7402 4 NOR a due ingressi 7404 6 NOT 7408 4 AND a due ingressi 7410 3 NAND a 3 ingressi 7420 2 NAND a 4 ingressi 7430 1 NAND a 8 ingressi 7432 4 OR a 2 ingressi Tabella 7.3: Alcuni integrati TTL serie 74 (a) E B C n p n (b) Figura 7.9: (a) Diodo Schottky tra base e collettore; (b) La metallizzazione di base si estende nella regione del collettore; (c) (c) Simbolo circuitale del transistor Schottky. transistor Schottky e’ riportato in Fig. 7.9(c). Esistono percio’ versioni della serie 74, contraddistinte da ulteriori caratteri nella sigla: per esempio la sigla 74LS00 si riferisce ad un circuito tipo Schottky, a bassa dissipazione (Low); invece la sola S indica circuiti tipo Schottky, caratterizzati da alta velocita’ di commutazione, ma anche alta dissipazione. Le caratteristiche tipiche delle varie versioni sono riassunte nella Tabella 7.4. I livelli logici effettivi hanno naturalmente delle tolleranze rispetto ai valori nominali. Serie Tempo di commutazione Dissipazione (nS) (mW) - standard 10 10 H High Power 6 22 L Low Power 33 1 S Schottky 3 19 9.5 2 LS Low Schottky Tabella 7.4: Caratteristiche delle serie TTL Nella Tabella 7.5 sono riportate, a titolo esemplificativo, le specifiche che un costruttore fornisce per i propri circuiti della serie 74. Come si vede dalla tabella, il costruttore ga- 242 CAPITOLO 7. CIRCUITI DIGITALI Livello logico Tensione (Volt) minima Input 0 1 Output tipica 0.8 2 0 1 massima 0.2 2.4 0.4 3.4 Tabella 7.5: Tolleranze di ingresso e uscita rispetto ai livelli logici TTL nominali. rantisce il corretto funzionamento del circuito se ai suoi ingressi vengono fornite tensioni non superiori a 0.8 V come 0 logico e non inferiori a 2 V come 1 logico; invece garantisce all’uscita una tensione non superiore a 0.4 V come 0 logico ( ma tipicamente del valore di 0.2) e non inferiore a 2 V come 1 logico ( tipicamente 3.4). E’ chiaro quindi che ingressi compresi tra 0.8 e 2 V danno luogo ad un comportamento imprevedibile del circuito. Un discorso analogo va fatto per quanto riguarda l’alimentazione. I circuiti TTL richiedono un’alimentazione nominale di 5 V ; in realta’ essi possono funzionare correttamente con tensioni di alimentazione fino a ∼ 7 V . E’ in genere conveniente quindi utilizzare una tensione di alimentazione un po’ sovradimensionata rispetto al valore nominale, sia per avere una tensione d’uscita (a livello logico 1) un po’ piu’ alta; ma anche per compensare eventuali cadute di tensione dovute al carico complessivo dell’alimentatore. 7.3.3 Famiglia CMOS VDD QP vi vo QN Figura 7.10:L’invertitore CMOS. Il circuito base per comprendere il funzionamento di questa famiglia e’ il NOT, o invertitore, che e’ schematicamente rappresentato nella Fig. 7.10. E’ costituito da una coppia di MOS tipo enhancemente, QN a canale n e QP a canale p. Il funzionamento di questo circuito e’ molto semplice. Se vi = VDD (livello logico alto), il transistor QP non e’ attivo, perche’ la differenza di potenziale fra gate e source e’ nulla, mentre QN lo e’; in sostanza 243 7.3. FAMIGLIE LOGICHE QP e’ equivalente ad un interruttore aperto e QN ad una piccola resistenza, percio’ vo ∼ 0. Se invece vi = 0 la situazione si inverte, QN equivale ad un interruttore aperto, mentre QP offre una piccola resistenza, percio’ vo = VDD . Possiamo realizzare la funzione NAND con il circuito in Fig 7.11(a). Se A e B sono VDD QPB VDD VDD QPA A QPA B QPB Y A QNA B QNB (a) Y QNA QNB (b) Figura 7.11:(a) NAND CMOS a due ingressi;(b) NOR CMOS a due ingressi alti l’uscita e’ bassa: infatti in questa situazione i due NMOS in serie sono accesi, mentre i due PMOS sono spenti. Ogni altra combinazione degli ingressi provoca un’uscita alta realizzando quindi la funzione logica NAND. In modo analogo si realizza il NOR (Fig. 7.11(b)). In questo caso, se A e B sono bassi, l’uscita e’ alta, mentre ogni altra combinazione genera un’uscita bassa. Le porte AND e OR possono infine essere realizzate aggiungendo, all’uscita del NAND e NOR rispettivamente, un invertitore come quello di Fig. 7.10. Il fondamentale vantaggio di questa famiglia e’ dato dalla bassissima dissipazione di potenza; quando l’uscita e’ bassa la corrente attraverso gli NMOS e’ piccolissima (la potenza dissipata e’ di pochi microwatt), mentre quando l’uscita e’ alta la potenza dissipata e’ nulla, cosi’ come e’ nulla la corrente assorbita agli ingressi2 . Inoltre puo’ essere alimentata con tensioni molto basse, con evidenti vantaggi. Esistono in commercio varie sotto-famiglie CMOS che si diversificano per velocita’, dissipazione di potenza, tensione di alimentazione, livelli logici. Il livello logico basso e’ sempre 0 V mentre il livello logico alto e’ dato da VDD che puo’ variare tra 3 e 18 V . Esistono alcune varianti compatibili con i circuiti TTL. Queste considerazioni, unite al fatto che i CMOS possono essere realizzati su scale molto piccole, fanno si che questa tecnologia sia di gran lunga la piu’ utilizzata nei moderni circui2 La dissipazione di potenza in realta’ non e’ piu’ nulla quando i circuiti sono utilizzati a frequenze crescenti, a causa degli effetti capacitivi: la potenza dissipata cresce linearmente con la frequenza e puo’ raggiungere valori simili a quelli dei circuiti TTL. 244 CAPITOLO 7. CIRCUITI DIGITALI ti integrati per la realizzazione di dispositivi elettronici di tutti i tipi. Bisogna comunque ricordare che i circuiti CMOS sono molto delicati perche’ possono facilmente danneggiarsi a causa dell’elettricita’ statica. 7.3.4 Famiglia ECL RC1 RC2 230 230 Q3 Y1=A Q4 A QR QA Y2=A VR=-1.2 1K 1K RE 780 -5.2 -5.2 -5.2 Figura 7.12:L’invertitore ECL. La famiglia ECL e’ basata su una coppia differenziale realizzata con transistor BJT, che operanno tra la regione attiva e la regione di interdizione. Il circuito base e’ l’invertitore, riportato schematicamente in Fig. 7.12, dove le uscite prelevate dalla coppia sono poi inviate a due inseguitori di tensione. I livelli logici sono realizzati con tensioni negative come segue: 0 logico → −1.4 ÷ −1.7 V 1 logico → −0.7 ÷ −0.9 V Se l’ingresso A e’ a 0 logico, il transistor QA e’ interdetto, perche’ l’emettitore e’ tenuto a circa −1.9 V dat transistor QR che invece e’ in conduzione. Percio’ il collettore di QA e’ a 0 V e l’uscita Y1 e’ a −0.7V (1 logico). Se invece l’ingresso e’ a 0 logico il transistor QA puo’ condurre e il suo emettitore si porta percio’ ad una tensione di −1.4 ÷ −1.6 V ; questo porta all’interdizione il transistor QR . A questo punto tutta la corrente fluisce nel transistor A e il suo collettore si porta a −1.06 ÷ −1.12 V e l’uscita Y1 va a circa −1.8 V (0 logico). Si preleva poi anche l’uscita sul transistor R ed e’ facile verificare che essa riproduce il livello logico d’ingresso. Abbiamo quindi Y1 = A e Y2 = A. In sostanza il livello logico di ingresso determina quale dei due transistor della coppia conduce e quale e’ interdetto: la corrente fluisce solo in uno dei due. La commutazione e’ quindi estremamente rapida, poiche’ i transistor non vanno mai in saturazione. Questo pero’ ha come effetto negativo una dissipazione di potenza molto elevata perche’ c’e’ sempre una corrente (di circa 4 mA) 245 7.3. FAMIGLIE LOGICHE che fluisce: la potenza assorbita dall’alimentazione e’ quindi di circa 20 mW . E’ molto semplice a questo punto realizzare una porta NOR, modificando il circuito come in Fig.7.13, dove e’ mostrato un esempio di circuito a 2 ingressi. E’ facile verificarne il funzionamento. Anche in questo caso il circuito ha due uscite e realizza quindi simultaneamente OR e RC1 RC2 230 230 Q3 Y1=A + B Q4 A QA B QR QB Y2=A+B VR=-1.2 1K 1K RE 780 -5.2 -5.2 -5.2 Figura 7.13:Porta OR-NOR ECL. NOR. La presenza di due uscite rende molto utili questi circuiti quando si debba trasmettere l’informazione su lunghe distanza. Infatti essa puo’ essere trasmessa in modo differenziale e quindi essere piu’ protetta da disturbi esterni. Come si vede questa famiglia ha dei livelli logici molto vicini quindi deve essere realizzata con particolare cura per garantire la stabilita’ in temperatura e l’immunita’ ai disturbi esterni3 . Questa implica, ad esempio, che la tensione di riferimento VR (−1.2|; V nelle figure) e’ in pratica ottenuta, a partire dall’alimentazione, con un circuito abbastanza complesso, che serve appunto a compensare effetti di temperatura e attenuare disturbi presenti nell’alimentazione. 7.3.5 Riepilogo Come gia’ detto gran parte delle moderne applicazioni e’ oggi realizzata utilizzando la tecnologia CMOS, per i vantaggio che offre in termini di potenza dissipata e integrabilita’ su vasta scala. La tecnologia TTL e’ utilizzata comunque molto per piccole applicazioni collaterali, dove cioe’ la maggiore manegevolezza e robustezza la rende competitiva. I circuiti ECL sono riservati a situazioni particolari, dato la loro grande dissipazione di potenza. 3 La scelta di un’alimentazione negativa dal lato emettitore e’ proprio motivata dalla migliore immunita’ ai disturbi che si puo’ in questo modo ottenere. Esistono comunque in commercio circuiti ECL con alimentazione positiva e livelli logici in grado di dare una compatibilita’ con la tecnologia TTL. 246 7.4 CAPITOLO 7. CIRCUITI DIGITALI Circuiti digitali combinatori Vediamo ora alcuni esempi di circuiti piu’ complessi che si possono realizzare partendo dalle porte logiche elementari. 7.4.1 Sommatori Per comprendere come deve essere costruito un circuito capace di sommare due numeri binari possiamo anzitutto considerare la somma di due numeri a 1 bit (cioe’ ad una sola cifra). A B D C Somma 0 0 0 0 00 0 1 1 0 01 1 0 1 0 01 1 1 0 1 10 Vediamo dalla tabella che il risultato (colonna "Somma") diviene di due cifre quando entrambi gli addendi sono 1; quindi l’operazione di somma produce sia un risultato (D) che un riporto (C) anch’essi mostrati nella tabella. Il riporto C, nel caso di numeri a piu’ cifre, andrebbe aggiunto alla somma del bit immediatamente a sinistra. Come si vede D non e’ altro che l’OR ESCLUSIVO degli ingressi, mentre C e’ l’AND. Il circuito da costruire e’ quindi quello mostrato in Fig. 7.14, e prende il nome di Semisommatore (Half Adder). Ora per realizzare la somma di numeri a piu’ bit possiamo utilizzare lo schema di Fig. 7.15; A C = AB B A B HA C D D = AB + BA Figura 7.14: Semisommatore; b) Simbolo complessivo come si vede per ogni cifra, tranne la meno significativa, sono necessari 2 Semisommatori, da cui il nome. La stessa funzione puo’ essere realizzata in modo diverso. Supponiamo infatti di voler sommare due numeri, A e B, a molti bit; per il generico bit n noi dobbiamo fare una somma a tre addendi, per tener conto dell’eventuale riporto Cn−1 proveniente dalla cifra precedente, e fornire una somma, Sn , piu’ un eventuale riporto, Cn . Le uscite logiche da fornire sono quindi: Sn = An B n Cn−1 + An B n C n−1 + An Bn C n−1 + An Bn Cn−1 Cn = An Bn Cn−1 + An B n Cn−1 + An Bn C n−1 + An Bn Cn−1 247 7.4. CIRCUITI DIGITALI COMBINATORI A 3 B3 A 2 B2 A 1 B1 A 0 B0 HA HA HA HA HA HA S3 HA S2 S1 S0 Figura 7.15: Somma a molti bit come si puo’ anche verificare dalla tavola della verita’: An Bn Cn−1 Sn Cn 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Il circuito completo diviene allora quello in Fig. 7.16 e prende il nome di Full Adder (o Sommatore completo). Circuiti sommatori sono naturalmente disponibili in forma integrata; per esempio, il 74LS283 e’ un Full Adder a 4 bit; diversi esemplari possono essere collegati in cascata per realizzare somme a 8, 12, 16, . . . bit. E’ interessante, a titolo di esercizio, vedere se e’ possibile semplificare le espressioni di Cn 248 CAPITOLO 7. CIRCUITI DIGITALI An Bn Cn - 1 FA Cn Sn Figura 7.16: Full adder ed Sn , sfruttando le proprieta’ dell’algebra di Boole. Si ha Cn = An Bn Cn−1 + An B n Cn−1 + An Bn C n−1 + An Bn Cn−1 = An Bn Cn−1 + An B n Cn−1 + An Bn (C n−1 + Cn−1 ) = An Bn Cn−1 + An B n Cn−1 + An Bn = An Bn Cn−1 + An (Bn Cn−1 + Bn ) = An Bn Cn−1 + An Cn−1 + An Bn = Cn−1 (An Bn + An ) + An Bn = Cn−1 (An + Bn ) + An Bn = An Bn + An Cn−1 + Cn−1 Bn Abbiamo utilizzato qui le proprieta’ di complementazione e di assorbimento. Con manipolazioni analoghe si puo’ arrivare a semplificare anche l’espressione di Sn , con il risultato Sn = Cn−1 (An ⊕ Bn ) + Cn−1 (An ⊕ Bn ) Sottrazione. Vediamo come possiamo realizzare un circuito capace di effettuare una sottrazione tra due numeri binari, per esempio a 4 cifre. In generale, dato un numero binario A, si definisce il suo complemento ad 1, A, come il numero che si ottiene negando uno per uno tutti i bit. Si ha evidentemente che: A + A = 1111 se ora aggiungiamo 1 A + A + 1 = 10000 Quindi possiamo anche dire che A = 10000 − A − 1 Adesso, volendo sottrarre tra loro i numeri B ed A si ha B − A = (B + A + 1) − 10000 249 7.4. CIRCUITI DIGITALI COMBINATORI Ad esempio, si voglia fare 12 − 9. In binario 1100 − 1001 = (1100 + 0110 + 0001) − 10000 = 10011 − 10000 = 0011 cioè 3, come previsto. In pratica sottrarre 10000 significa ignorare il quinto bit, cioe’ ignorare il bit fuori dalla dimensione degli operandi (bit di "overflow"). L’operazione di sottrazione si fa quindi complementando il sottraendo ed eseguendo poi un’operazione di somma. In realtà tutto ciò funziona se B > A; se invece B < A non c’e’ riporto nel quinto bit, che rimane quindi zero. A questo punto per avere il risultato giusto (in valore assoluto), basta rifare il complemento a 2. Si voglia ad esempio calcolare 13 − 15. Si ha 1101 − 1111 = 1101 + 0001 = 01110 Il quinto bit e’ zero, quindi facendo il complemento a 2 si ottiene 0010 cioe’ il valore assoluto del risultato. In pratica lo stato del bit di overflow ci fa capire il segno del risultato: se esso e’ uguale ad 1 il risultato e’ positivo, se uguale a 0 il risultato e’ negativo ( e va rieseguito il complemento a 2). 7.4.2 Moltiplicazione e divisione Poiche’ siamo in tema di operazioni numeriche conviene accennare brevemente alle operazioni di moltiplicazione e divisione, nel sistema binario. Moltiplicare un numero per due significa spostare tutti i bit di una posizione verso sinistra (cioè verso il bit più significativo). Moltiplicare per una potenza di due vuol dire ripetere più volte questa operazione; per moltiplicare un numero per un altro che non è potenza di due si scompone quest’ultimo in somme di potenze di due e si sommano i risultati. Si voglia fare ad esempio 27 × 33; possiamo scrivere 27 × 33 = 27 × (32 + 1) = 27 × 25 + 27 × 20 Quindi, poiche’ il numero 27 in binario e’ 11011, il risultato e’ ottenuto dalla somma 1101100000 + 110110 = . . . dove abbiamo sommato il numero che si ottiene da 27 con 5 traslazioni verso sinistra con il numero ottenuto da 27 con 1 traslazione verso sinistra. Puo’ sembrare complicato scomporre un numero in potenze di 2, ma e’ invece semplicissimo in binario. Dato infatti un qualunque numero, per es. 1101100, esso si scompone in 1000000 + 0100000 + 0001000 + 0000100 = 1101100 250 CAPITOLO 7. CIRCUITI DIGITALI Cioe’ basta prendere tutti i numeri che si ottengono azzerando via via tutti i bit tranne 1. L’operazione di divisione si svolge in modo analogo, traslando i numeri verso destra, anziche’ verso sinistra. Vedremo piu’ avanti come si possono realizzare traslazioni (verso destra o verso sinistra) di gruppi di bit. 7.4.3 Comparatore digitale Dn An Bn En Cn Figura 7.17: Comparatore digitale ad 1 bit Abbiamo visto che e’ spesso necessario confrontare tra loro due numeri binari per stabilire qual’e’ il maggiore. Come al solito cominciamo ad affrontare il problema considerando per ora due numeri ad un solo bit. Siano A e B i nostri due numeri; possiamo costruire 3 funzioni logiche E0 = AB + AB =1 se A = B C0 = AB =1 se A > B D0 = AB =1 se A < B Questi tre operatori ci consentono di effettuare il confronto. Chiaramente, per numeri a molti bit, per esempio 4, avremo: =1 A=B E = E3 E2 E1 E0 = 0 A 6= B D’altra parte la condizione A > B e’ vera se A3 > B3 o A3 = B3 e A2 > B2 o A3 = B3 e A2 = B2 e A1 > B1 o A3 = B3 e A2 = B2 e A1 = B1 e A0 > B0 Cioè corrisponde all’operatore C = A3 B3 + E3 A2 B2 + E3 E2 A1 B1 + E3 E2 E1 A0 B0 251 7.4. CIRCUITI DIGITALI COMBINATORI Quindi 1 se A > B C= 0 altrimenti La condizione A < B si ottiene in modo analogo, scambiando A con B. Nella Fig. 7.17 e’ mostrato lo schema dell circuito che realizza la comparazione ad 1 bit. Anche in questo caso sono reperibili in commercio circuiti che effettuano la comparazione: per esempio, il 74LS85 e’ un comparatore a 4 bit, utilizzabile anche in cascata per comparare numeri a dimensione maggiore L’industria dei circuiti integrati ha sviluppato anche circuiti capaci di compiere piu’ operazioni aritmetiche o logiche. Questi circuiti sono comunemente noti come Arithmetic and Logic Units (ALU) e costituiscono a loro volta uno degli elementi funzionali dei sistemi di elaborazione piu’ complessi. Ad esempio, l’integrato 74LS181 e’ una ALU a 4 bit che consente, tramite 5 ingressi di selezione, di svolgere 16 diverse operazioni aritmetiche e 16 diverse operazioni logiche con i 2 operandi. Opportuni ingressi e uscite per i riporti consentono di collegare in parallelo piu’ ALU per svolgere operazioni a piu’ alto numero di bit. Sviluppata all’inizio degli anni ’70 questa ALU e’ stata utilizzata per la realizzazione di moltissimi celebri mini computer dell’epoca. I0 I1 I2 I3 I4 I5 I6 I7 A0 A1 A2 Y Figura 7.18: Schema logico di un multiplexer a otto ingressi 7.4.4 Multiplexer e demultiplexer Un multiplexer e’ un circuito logico in grado di selezionare uno tra diversi ingressi logici e connetterlo all’uscita, in base al valore presentato agli ingressi di selezione. In Fig. 7.18 e’ 252 CAPITOLO 7. CIRCUITI DIGITALI mostrato lo schema logico di un multiplexer a 8 ingressi: lo stato dei 3 ingressi di selezione A determina quale delle entrate I trasmette il suo livello logico all’uscita Y . Esistono in commercio multiplexer di varie dimensioni. Il 74151 e’ un esempio: ha 8 ingressi, piu’ un ingresso di abilitazione e fornisce sia l’uscita diretta che quella complementata. La presenza dell’ingresso di abilitazione rende facile l’espansione a 16 ingressi utilizzando due 74151 accoppiati. I A0 A1 A2 U0 U1 U2 U3 U4 U5 U6 U7 Figura 7.19: Schema logico di un demultiplexer a otto uscite Un demultiplexer svolge la funzione contraria: prende il contenuto di un ingresso e lo inoltra in una di molte uscite sulla base del contenuto degli ingressi di selezione (Fig. 7.19). I0 I1 I2 I3 I4 I5 A0 A1 A2 I6 I7 Figura 7.20: Encoder a otto ingressi 7.4.5 Encoder e decoder Un encoder (Fig. 7.20) genera un’uscita binaria che fornisce l’indirizzo di quello tra gli ingressi che e’ stato attivato. In genere, se piu’ ingressi sono attivati, viene fornito l’indirizzo dell’ingresso di numero piu’ alto (priority encoder). Il significato di questa affermazione puo’ essere meglio compreso esaminando la seguente tavola della verita’ relativa a un encoder a 4 ingressi (la x sta per “qualunque stato logico”): 253 7.5. CIRCUITI SEQUENZIALI I3 I2 I1 I0 A1 A0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 x 0 1 0 1 x x 1 0 1 x x x 1 1 Se, ad esempio, prendiamo l’ultima riga si vede che le uscite binarie forniscono 1 − 1 se I3 = 1, qualunque sia lo stato degli altri ingressi; in modo analogo si leggono le righe precedenti. Si noti che la configurazione di uscita 0 − 0 e’ ambigua: puo’ aversi sia se nessuno degli ingressi e’ attivo, sia se solo l’ingresso I0 e’ attivo. Nei circuiti commerciali questa ambiguita’ e’ in genere risolta con un’uscita supplementare che indica se almeno uno degli ingressi e’ attivo. Un esempio nella famiglia TTL e’ il 74148, con 8 ingressi e 3 uscite; ha inoltre un ingresso di abilitazione e due uscite supplementari, che forniscono informazioni globali. A0 A1 A2 U0 U1 U2 U3 U4 U5 U6 U7 Figura 7.21: Schema logico di un decoder a otto uscite Il decoder e’ molto simile al demultiplexer, con la differenza che gli unici ingressi sono le linee di indirizzo, la cui decodifica provoca l’attivazione dell’uscita corrispondente (Fig. 7.21). Un esempio commerciale e’ il 74138: oltre alle linee di indirizzo ha 3 ingressi di abilitazione, che rendono facile l’uso di piu’ circuiti accoppiati per moltiplicare il numero delle uscite. Uno degli ingressi di abilitazione puo’ inoltre essere utilizzato per trasmettere un dato e trasforma quindi il decoder in un demultiplexer. 7.5 Circuiti sequenziali I circuiti che abbiamo visto finora sono di tipo combinatorio, cioe’ l’uscita (o le uscite) e’ ad ogni istante una certa funzione logica degli ingressi. La variabile tempo non e’ 254 CAPITOLO 7. CIRCUITI DIGITALI S Q Q Q Q R a) b) Figura 7.22: a) Circuito bistabile; b) Latch S-R con porte NOR quindi concettualmente rilevante ai fini della funzionalita’ di questi circuiti, ma lo e’ solo da un punto di vista pratico, nel senso che inevitabilmente ogni circuito ha un tempo di commutazione finito e non puo’ variare istantaneamente il suo stato. Vi sono invece circuiti in cui la temporizzazione dei fenomeni e’ intrinsecamente rilevante; essi prendono il nome di circuiti sequenziali. L’elemento fondamentale di partenza e’ il circuito bistabile (Fig. 7.22a): la connessione tra le due porte NOT conduce al fatto che esistono due stati stabili ed equiprobabili del circuito Q=1 Q=0 Q=0 Q=1 Al momento dell’accensione del circuito esso si porra’ in uno dei due stati: in linea di principio non e’ possibile prevedere quale, in realta’, poiche’ e’ impossibile realizzare un circuito esattamente simmetrico, in termini di velocita’ di commutazione delle porte, ci sara’ uno stato "preferito", in cui il circuito si pone al momento dell’accensione. Lo stato del bistabile puo’ essere fissato modificando il circuito come in Fig. 7.22b, il cosiddetto latch SR, dove sono stati aggiunti due ingressi, e sostituiti i NOT con due porte NOR. Ricordando il funzionamento del NOR si verifica facilmente che questo circuito ha la seguente tavola della verita’: S R Q Q 0 0 non cambia non cambia 1 0 0 1 0 1 1 0 1 1 0 0 E’ interessante notare la prima e l’ultima riga della tabella: se entrambi gli ingressi sono a zero il circuito permane nello stato in cui si trovava. Se invece sono entrambi ad uno il circuito si pone in uno stato forzato e non stabile, con entrambe le uscite a zero4 . 4 L’espressione non stabile indica il fatto che questo stato puo’ permanere solo finche’ gli ingressi sono ad uno: mettendo gli ingressi a zero il circuito tornera’ in uno dei suoi stati stabili, non prevedibile teoricamente. 255 7.5. CIRCUITI SEQUENZIALI 7.5.1 Flip-flop S Q Ck S Q Ck Q Q R R a) b) Figura 7.23: a) Flip flop S-R; b) Simbolo circuitale. Partendo dal concetto del latch possiamo costruire un circuito piu’ sofisticato, ovvero il flipflop SET-RESET (flip-flop S-R). L’ingresso Ck (detto ingresso di clock) serve in sostanza ad abilitare il circuito: infatti, finche’ Ck e’ uguale a zero, l’uscita delle porte 1 e 2 e’ sempre 1, indipendentemente dallo stato di S e di R; cio’ significa che le porte 3 e 4 restano nello stato in cui si trovavano inizialmente. Per comprendere allora il funzionamento del circuito dobbiamo allora procedere nel seguente modo: si applicano ad S e R due livelli logici; si porta il clock ad 1 per un certo tempo; si osserva lo stato delle uscite quando l’impulso di clock e’ finito; la tavola della verita’ del circuito e’allora Sn Rn Qn+1 0 0 Qn 1 0 1 0 1 0 1 1 ? dove gli indici n ed n + 1 stanno proprio a ricordare il significato sequenziale: Sn e Rn sono gli stati degli ingressi applicati prima dello n-esimo impulso di clock, Qn+1 e’ lo stato dell’uscita dopo la fine di questo impulso. E’ facile verificare il comportamento sopra descritto: se S = 0 e R = 0 l’uscita delle porte 1 e 2 resta uguale ad 1 prima, durante e dopo l’impulso di clock, quindi l’uscita non cambia e rimane uguale a Qn . Se S = 1 e R = 0, l’uscita della porta 1 diviene 0 (durante l’impulso di clock) e questo forza ad 1 l’uscita della porta 3. Di conseguenza gli ingressi della porta 4 sono ora ad 1 e 1, percio’ Q va a 0. Finito l’impulso di clock questo stato resta congelato. Il circuito si comporta ovviamente in modo analogo nel caso inverso: S = 0 e R = 1 porta Q = 0 e Q = 1. Cosa succede invece se S = 1 e R = 1? Durante l’impulso di clock le uscite 1 e 2 vanno entrambe a 0 e quindi Q e Q vanno ad 1; questo stato persiste finche’ e’ presente il clock, ma quando esso finisce il bistabile formato dalle porte 3 e 4 deve mettersi in uno dei suoi due stati stabili. Non e’ prevedibile teoricamente quale dei due, perche’ chiaramente esso 256 CAPITOLO 7. CIRCUITI DIGITALI dipendera’ da quale delle due porte NAND e’ piu’ veloce a commutare e quindi a forzare lo stato dell’altra. Flip-Flop J-K. E’ possibile costruire un flip-flop che dia sempre risposte definite, utiliza) b) Pr Pr J J Q Q S Q Ck Ck K Q Q R Q Cr K Cr Figura 7.24: a) Flip-flop J-K; b) Schema equivalente zando lo schema in Fig. 7.24a. Come si vede le uscite sono ora riportate agli ingressi dello stadio di abilitazione; questo in sostanza equivale allo schema di Fig. 7.24b, che possiamo usare per comprendere il funzionamento. Tenendo presente che ora S = JQ e R = KQ abbiamo la seguente tavola della verita’: Jn Kn Qn Qn Sn Rn Qn+1 0 0 0 1 0 0 Qn 0 0 1 0 0 0 Qn 1 0 0 1 1 0 1 1 0 1 0 0 0 Qn = 1 0 1 0 1 0 0 Qn = 0 0 1 1 0 0 1 0 1 1 0 1 1 0 Qn (= 1) 1 1 1 0 0 1 Qn (= 0) Le ultime due righe mostrano la differenza rispetto al S-R; ora quando entrambi gli ingressi sono ad 1 l’uscita commuta rispetto allo stato precedente. In definitiva, la tavola della verita’ del flip-flop J-K e’: 257 7.5. CIRCUITI SEQUENZIALI Jn Kn Qn+1 0 0 Qn 1 0 1 0 1 0 1 1 Qn Gli ingressi Pr (pre-set) e Cr (clear) servono a fissare lo stato iniziale del circuito indipendentemente dal clock, cioe’ in modo che potremmo definire asincrono. Infatti si ha: Cr Pr Q Q 0 1 0 1 1 0 1 0 Quindi, dopo aver fissato lo stato desiderato, occorre mantenere Cr e Pr ad 1 per abilitare il flip-flop (Pr = 0, Cr = 0 non deve essere usato perchè porta a situazioni ambigue). In realtà il flip-flop J-K ha degli inconvenienti, che inficiano il funzionamento che abbiamo descritto. Per esempio, supponiamo di essere nello stato Q = 0 e di porre J=1, K=1. Quando arriva l’impulso di clock l’uscita Q si porta ad 1, dopo un ritardo ∆t legato ai naturali tempi di commutazione. Ora, se il clock e’ ancora attivo, cio’ provoca un’ulteriore commutazione ( J e K infatti sono ancora ad 1) e l’uscita Q ritorna a 0. Cioè finche’ e’ presente l’impulso di clock l’uscita oscilla continuamente fra 0 e 1 e lo stato finale non e’ chiaramente predicibile. Questo inconveniente potrebbe essere evitato solo calcolando accuratamente la durata dell’impulso di clock, in relazione ai tempi di commutazione del circuito, in modo da assicurarsi che l’uscita abbia tempo di commutare solo una volta. Evidentemente non e’ una soluzione praticabile, se non in situazioni molto particolari. E’ invece possibile ovviare a questo inconveniente con il cosidetto schema master-slave (Fig. 7.25) Si hanno sostanzialmente due stadi successivi, ma il secondo stadio e’ abilitato dal segnale di clock negato, mentre le uscite del bistabile finale sono riportate agli ingressi del primo stadio. Ora, durante l’impulso di clock il secondo stadio e’ inibito, quindi le uscite non possono commutare. Invece, quando cessa l’impulso di clock, il primo stadio e’ inibito, e lo stato delle uscite QM e QM e’ trasferito su Q e Q. Gli ingressi Pr , Cr servono per fissare lo stato iniziale, come nel caso precedente. Flip-flop di tipo D e di tipo T Un flip-flop S-R (o J-K) in cui gli ingressi sono collegati come in Fig, 7.26a realizza il cosidetto tipo D (delay). Ora gli ingressi sono sempre opposti tra loro, quindi la tavola della verita’ e’ sostanzialmente Dn Qn+1 1 1 0 0 258 CAPITOLO 7. CIRCUITI DIGITALI SLAVE MASTER J Q Ck Q K Figura 7.25: a) Flip-flop J-K master-slave In sostanza questo circuito produce un ritardo di un ciclo di clock (da cui il nome). Esso rappresenta sostanzialmente una "memoria" a 1 bit: l’informazione viene scritta sul circuito (abilitando il clock) e permane su di esso, potendo essere riletta attraverso l’uscita Q. Questo circuito e’ comunemente chiamato transparent latch, perche’, nell’intervallo di tempo in cui il clock e’ alto, l’uscita vede lo stato dell’ingresso come se il circuito fosse trasparente. a) D b) J Q T Ck K J Q Ck K Q Q Figura 7.26: a) Flip-flop D; b) Flip-flop T Invece, quando gli ingressi di un flip-flop J-K (master-slave) sono connessi direttamente tra loro (Fig, 7.26b) si ha il cosidetto tipo T (toggle). Questo circuito cambia il valore di Q ad ogni ciclo di clock; la sua tavola della verita’ e’ semplicemente Tn Qn+1 1 Qn 0 Qn Edge triggered flip-flop. Finora abbiamo studiato dei flip-flop sensibili al livello del clock, cioe’ abilitati a commutare, se necessario, solo durante l’intervallo di tempo in cui il segnale di clock e’ "alto". Esistono invece flip-flop sensibili solo al "fronte" del segnale di clock, comunemente noti come "edge triggered". In questo caso il circuito e’ sensibile 259 7.5. CIRCUITI SEQUENZIALI allo stato degli ingressi solo durante un breve intervallo di tempo appena precedente (o, raramente appena successivo) al fronte di salita del clock. La Fig. 7.27 fa comprendere la differenza delle due situazioni. Il set-up time (tipicamente 15 − 20 nS) e’ l’intervallo di a) Il FF e' abilitato ed e' sensibile allo stato degli ingressi finche' il clock e' alto setup time CLOCK b) CLOCK setup time c) hold time Il FF e' sensibile allo stato degli ingressi solo durante il setup time Figura 7.27: a) Flip-flop sensibile al livello; b) Flip-flop sensibile al fronte del clock c) Dettaglio del set-up time e del hold-time tempo in cui gli ingressi devono essere stabili per consentire un corretto funzionamento del dispositivo, mentre esso e’ indifferente allo stato degli ingressi al di fuori di questo intervallo. Il set-up time puo’ essere tutto precedente il fronte del clock, ovvero parzialmente "a cavallo": in tal caso la frazione successiva al fronte prende il nome di hold-time. Puo’ sembrare paradossale il fatto che il flip-flop sia sensibile allo stato degli ingressi prima del clock; in realta’ cio’ e’ ottenibile semplicemente giocando sui ritardi interni tra le linee degli ingressi e la linea del clock. Chiaramente questo tipo di funzionamento elimina il problema della corsa critica, e quindi non c’e’ la necessita’ di costruire sistemi master-slave. Il simbolo circuitale dei flip-flop edge a) b) J Q D Ck Q Ck K Q J Q c) Q d) Ck D Q Ck K Q Q Figura 7.28: a) Simbolo del J-K edge triggered; b) Simbolo del D edge triggered; c) FF sensibile al fronte di discesa d) Il tipo T ottenuto dal D triggered e’ simile a quello dei circuiti sensibili al livello (Fig. 7.28; l’unica differenza e’ un triangolino posto all’ingresso del clock. Esistono anche dispositivi che si attivano sul fronte di discesa del clock: sono distinguibili simbolicamente tramite un cerchietto sull’ingresso di clock. E’ interessante notare che, con un tipo D e’ possibile ottenere un tipo T semplicemente riportando all’ingresso l’uscita Q (Fig. 7.28d). Ad ogni impulso di clock l’uscita Q commuta 260 CAPITOLO 7. CIRCUITI DIGITALI passando da 0 a 1 e viceversa. Nella Fig. 7.29 e’ mostrato lo schema di un flip-flop di tipo D sensibile al fronte di salita (disponibile nella famiglia TTL con la sigla 74LS74). Il circuito e’ costituito da 3 bistabili, 2 formano lo stadio d’ingresso e uno lo stadio di uscita. S’ S Q Clock Q R R’ D Figura 7.29: Flip flop di tipo D, edge-triggered, sensibile al fronte di salita Per comprendere il funzionamento di questo dispositivivo e’ utile fare riferimento alla tabella 7.6, dove viene illustrata una possibile sequenza di funzionamento. E’ chiaro anzitutto che se il Clock e’ basso il bistabile di uscita rimane nello stato precedente, e ignora cio’ che avviene all’ingresso D; questo e’ descritto nelle prime due righe della tabella (dove abbiamo ipotizzato uno stato iniziale con Q = 0 e Q = 1), D passa da 0 a 1 e l’uscita resta invariata. Se ora il Clock sale (riga 3) S va a zero, Q va a uno forzando Q a zero; questa situazione permane ed e’ stabile, come si vede nella riga 4. Se D torna a zero, pur con il Clock attivo (riga 5) le uscite restano bloccate, l’unico effetto si ha su R′ che passa a uno. Se ora il Clock torna a zero (riga 6), S va a uno, S ′ va a zero, ma le uscite restano invariate. In sostanza le uscite commutano solo sul fronte di salita del Clock: al di fuori di questa fase le commutazioni dell’ingresso D possono solo modificare lo stato dei due bistabili di ingresso. E’ facile verificare che questo comportamento si ha in tutte le sequenze di funzionamento. Il 74LS74 ha un setup-time di circa 20 ns e un hold-time di circa 5 ns: quindi per Riga D Ck Qn Qn S R S′ R′ Qn+1 Qn+1 1 0 0 0 1 1 1 0 1 Qn Qn 2 1 0 0 1 1 1 1 0 Qn Qn 3 1 ↑ 0 1 0 1 1 0 1 0 4 1 1 1 0 0 1 1 0 1 0 5 0 1 1 0 0 1 1 1 1 0 6 0 0 1 0 1 1 0 1 1 0 Tabella 7.6: Una sequenza per illustrare il funzionamento del flip-flop tipo D edge-triggered. 261 7.5. CIRCUITI SEQUENZIALI avere un’uscita predicibile occorre che l’ingresso resti stabile in questo intervallo di tempo attorno al fronte di salita del Clock. Nella famiglia TTL si puo’ poi trovare il flip-flop JK edge-triggered sensibile al fronte di discesa (74LS112, per esempio). 7.5.2 Registro a scorrimento Pr Abil. In Pr 3 S Pr Q3 Q Pr 2 S Pr Q2 Q Pr 1 S Pr Ck Ck Ck R C Q r R C Q r R Q1 Q Pr 0 S Pr Q0 Q Ck Cr Q R Cr Q Cr Ck Figura 7.30: Shift register a 4 bit Il registro a scorrimento (in inglese shift register)) è formato da n flip-flop di tipo J-K (o S-R) master-slave. Consente di memorizzare n bit, che possono essere caricati sia in modo seriale, attraverso l’ingresso di sinistra, sia in parallelo, attraverso gli ingressi di preset. Il contenuto puo’ essere riletto sia in parallelo, che in serie. Vediamo ora in dettaglio le varie operazioni possibili, riferendoci all’esempio in Fig. 7.30: 1. Azzeramento: si pone Cr = 0, PrAbil = 0; 2. Caricamento parallelo: Cr = 1, PrAbil = 1 Prj = 1/0: i vari flip-flop vengono caricati con il contenuto presentato agli ingressi Prj ; 3. Lettura parallela: si effettua dalle uscite Qi ; 4. Caricamento seriale: si presenta il primo bit da caricare sull’ingresso seriale; fornendo un impulso di clock l’informazione viene caricata sul flip-flop F4 ; successivamente si presenta il secondo bit e si fornisce un secondo impulso di clock: il primo bit passa al flip-flop F3 e in F4 entra il secondo bit; continuando si possono caricare tutti i flip-flop; 5. Lettura seriale: fornendo ulteriori impulsi di clock i bit memorizzati si presentano successivamente sull’uscita Q0 . Si possono costruire registri in grado di effettuare scorrimenti verso destra e verso sinistra. Essi possono quindi essere utilizzati per effettuare moltiplicazioni e divisioni, che, come abbiami visto, richiedono questo tipo di manipolazione. In generale lo Shift register 262 CAPITOLO 7. CIRCUITI DIGITALI può essere usato come memoria, come convertitore serie-parallelo, parallelo-serie, ritardo digitale, ecc., e costituisce quindi un circuito molto importante in una grande varieta’ di applicazioni. L’integrato 74LS95 e’ un esempio di shift register a 4 bit, capace di compiere sia scorrimenti verso destra che verso sinistra, con ingressi e uscite sia seriali che parallele. Un’esempio piu’ sofisticato e’ il 74LS293 che e’ un moltiplicatore a 4 bit: il moltiplicando viene caricato in parallelo, mentre il moltiplicatore viene caricato serialmente fornendo opportuni impulsi di clock. Il risultato viene letto in parallelo. 7.5.3 Contatore asincrono Q0 Q1 Q2 Q3 a) Q Q In Ck Ck T Q T Ck Ck Q Q Q T Q Q T 1 1 b) In 0 1 0 Q0 1 0 1 0 1 0 Q1 Q2 Q3 Figura 7.31: a)Contatore asincrono a 4 bit; b)Diagramma temporale Si puo’ costruire un contatore binario utilizzando flip-flop di tipo T (master-slave). Tutti gli ingressi vengono posti ad 1; gli impulsi da contare entrano nel clock del primo stadio, mentre ogni uscita fornisce il clock allo stadio successivo. Poiche’ i flip-flop sono masterslave, ogni uscita commuta sul fronte di discesa del clock ricevuto all’ingresso (Fig. 7.31b). Supponendo quindi che inizialmente tutti i flip-flop siano a zero, lo stato delle uscite all’arrivare degli impulsi e’ mostrato nella Tabella 7.7 Come si vede l’insieme delle uscite costituisce un numero a 4 bit (Q0 e’ il bit meno significativo) che conta il numero di impulsi arrivati In generale un contatore ad n stadi conta quindi fino a 2n poi ricomincia da zero. E’ interessante notare che le varie uscite del contatore commutano a frequenze via via decrescenti: il bit 0 commuta alla stessa frequenza del segnale d’ingresso, il bit 1 a frequenza meta’, il bit n a frequenza 2−n volte piu’ bassa. Percio’ i contatori possono anche essere utilizzati come divisori di frequenza, per potenze di due. Con opportuni aggiustamenti e’ possibile realizzare divisori (e quindi contatori) per potenze diverse; esistono in commercio divisori per 5, 6, 10 e 12. 263 7.5. CIRCUITI SEQUENZIALI Numero di impulsi Q3 Q2 Q1 Q0 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 1 15 1 1 1 1 16 0 0 0 0 ... Tabella 7.7: Lo stato delle uscite in funzione degli impulsi in ingresso Contatore avanti-indietro. Un contatore che possa effettuare un conteggio in entrambe le direzioni e’ detto contatore avanti-indietro (up-down in inglese). Per contare all’indietro occorre che l’ingresso di clock di ogni stadio sia collegato all’uscita Q dello stadio precedente, mentre il primo stadio resta invariato. In questo modo il primo stadio commuta ad ogni impulso, mentre gli stadi successivi commuteranno quando l’uscita Q proveniente dallo stadio precedente passa da 1 a 0. E’ facile ora convincersi che, partendo da uno stato iniziale qualunque del contatore, l’arrivo di un impulso provoca un decremento del contenuto (si noti che, partendo dallo stato iniziale 0000, si transisce allo stato 1111). Un contatore avanti-indietro puo’ essere realizzato come nello schema di Fig. 7.32: il segnale di controllo, X, determina la direzione del conteggio. In un contatore asincrono 1 T In Q Ck Q Ck Q Contr. T Q X X Figura 7.32: Contatore asincrono avanti-indietro la frequenza massima di conteggio è limitata dal ritardo introdotto da ogni stadio, che deve dare il clock allo stadio successivo; ciò vuol dire che se arriva un impulso mentre il 264 CAPITOLO 7. CIRCUITI DIGITALI contatore non ha ancora commutato completamente, si perde il conteggio. Si può ovviare a questo inconveniente realizzando un contatore sincrono. 7.5.4 Contatore sincrono Q0 In Q Q Ck Ck T0 Q Q2 Q1 T1 Q Q Ck Ck Q Q3 T2 T3 Q Q 1 T 1 Q1 T 2 Q2 T 3 Q3 Figura 7.33: Contatore sincrono a 4 bit con riporto in serie Gli impulsi da contare vengono simultaneamente forniti a tutti i flip-flop, ma: Q0 commuta ad ogni impulso; T0 = 1 Q1 solo se Q0 = 1; T1 = Q 0 Q2 solo se Q0 = Q1 = 1; T2 = Q 0 Q 1 Q3 solo se Q0 = Q1 = Q2 = 1; T3 = Q 0 Q 1 Q 2 Il tempo di commutazione non e’ piu’ dipendente dal numero di stadi, ed e’ notevolmente piu’ breve del caso precedente. Infatti esso e’ ora dato da T = TF + (n − 2)TG dove TF e’ il ritardo di propagazione di un flip-flop, mentre TG e’ il ritardo di propagazione di una porta AND. E’ possibile migliorare ulteriormente la velocita’ utilizzando una tecnica di riporto in parallelo; questa richiede l’uso di AND a molti ingressi, chiaramente piu’ scomodi, ma consente di arrivare ad un tempo complessivo di commutazione T = TF + T G Naturalmente esistono in commercio contatori sincroni up-down (ad esempio il 74LS191, contatore a 4 bit). Esistono anche contatori up-down (per esempio il 74LS193) con due ingressi di clock separati: uno per i segnali da contare in verso positivo, l’altro per i segnali da contare in verso negativo. 7.6. CONVERSIONE DIGITALE-ANALOGICA 7.6 265 Conversione digitale-analogica Il mondo dell’elettronica digitale non e’ separato da quello dell’informazione analogica, ed esiste spesso l’esigenza di passare dall’uno all’altro. Cio’ e’ necessario in tutte le situazioni in cui il valore di una grandezza analogica, corrente o tensione, deve essere controllato numericamente. La conversione digitale-analogica e’ quindi un’operazione attraverso la quale si costruisce una tensione V (o una corrente I) proporzionale ad un numero (binario), A, dato. Si ha quindi n−1 X V =K 2i ai 0 dove gli ai sono i bit (0 o 1) che costituiscono il numero A (formato da n bit) e K e’ una costante di proporzionalita’ (dimensionalmente una tensione). Se il numero A e’ uguale a 0 V e’ anche uguale a 0, mentre se il numero e’ formato da tutti 1 (cioe’ ha la massima grandezza esprimibile con n bit) la tensione sara’ data da Vmax = K(2n − 1) Quindi e’ in generale piu’ comodo scrivere n−1 V = Vmax X i 2 ai 2n − 1 (7.1) 0 I dispositivi che realizzano questa conversione si chiamano, in inglese, Digital to Analog Converters e percio’ vengono brevemente chiamati DAC. La formula 7.1 rappresenta naturalmente il comportamento di un dispositivo ideale. Un dispositivo reale se ne discosta inevitabilmente; i parametri piu’ importanti che qualificano le prestazioni di un convertitore reale sono: • risoluzione: la minima variazione possibile della tensione di uscita. Rappresenta anche il valore della tensione di uscita associata al bit meno significativo; • offset: l’uscita puo’ non essere 0 quando la parola d’ingresso e’ zero; • errore di guadagno: la differenza tra il valore massimo teorico e quello reale della tensione in uscita una volta annullato l’offset; • errore di linearita’: la differenza tra la caratteristica di trasferimento ideale e quella reale una volta annullati gli errori precedenti; • tempo di assestamento: tempo impiegato dall’uscita ad assestarsi (entro una certa percentuale del valore finale) in corrispondenza di una variazione della parola d’ingresso. 7.6.1 Convertitore digitale-analogico a pesiera Il primo e piu’ semplice esempio di convertitore e’ quello in Fig. 7.34. Si tratta in sostanza di un sommatore analogico, in cui le tensioni da sommare sono pesate secondo le potenze 266 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.34: Convertitore digitale-analogico a pesiera (a + 0 e’ il bit meno significativo) di due, grazie alle resistenze R, 2R, 4R,. . . ,2N −1 R. I blocchi ombreggiati sono deviatori che connettono ogni ingresso a massa, ovvero a VREF , in relazione al valore 0 o 1 dei bit a0 . . . aN −1 che costituiscono il numero da convertire; in questo modo si realizza proprio la funzione desiderata. Naturalmente l’uscita del convertitore non varia in modo continuo, bensi’ "a gradini", passando dalla tensione 0 alla tensione Vmax , ed e’ data da V0 = − R′ aN −2 a0 VREF (aN −1 + + · · · + N −1 ) R 2 2 La linearita’ di questo dispositivo e’ legata alla precisione con cui i valori dei resistori sono scalati; si comprende come questo renda notevolmente critico realizzare in pratica un dispositivo in grado di convertire correttamente numeri con molti bit. 7.6.2 Convertitore digitale-analogico con rete R-2R In questa soluzione (spesso chiamata con rete a scala) si hanno solo resistenze di valore R e 2R (Fig 7.35). La tensione d’uscita V0 vale V0 = R1 + R ′ Vi R1 dove Vi è la tensione presente al morsetto positivo dell’operazonale ed é funzione dei valori degli N bit. La verifica del comportamento di questo circuito puo’ apparire molto complessa; conviene quindi prima esaminare alcuni casi semplici. Consideriamo anzitutto il caso in cui tutti i bit sono a zero: in questo caso Vi vale 0 e quindi anche l’uscita e’ nulla. Se invece uno solo dei bit é pari ad 1 il corrispondente nodo si porta alla tensione VREF /3. Infatti, in questo caso, qualunque sia la sua posizione, il nodo vede alla sua sinistra ed alla sua destra una resistenza 2R verso la massa. (Fig. 7.35b) Ora, se si tratta del bit N − 1 il nodo corrispondente coincide con l’ingresso dell’operazionale (Fig 7.36a), quindi si ha Vi = VREF 3 7.6. CONVERSIONE DIGITALE-ANALOGICA 267 Figura 7.35: Convertitore digitale-analogico con rete R-2R a N bit. Per semplicità non è riportata la parte digitale del circuito, schematizzata solo da 8 deviatori comandati dai bit d’ingresso. Se invece si tratta del bit N − 2 (Fig 7.36b), a causa della resistenza R presente tra il nodo N − 2 e l’ingresso si ha VREF 1 Vi = 3 2 Ugualmente, nel caso del bit N − 3 si ha V = VREF 1 3 4 Iterando questo ragionamento si comprende che il peso di ogni bit é via via ridotto di un fattore 2. Il comportamento non cambia nel caso generale, grazie al principio di sovrapposizione, ed abbiamo: V = a0 VREF aN −1 aN −2 ( 0 + 1 + · · · + N −1 ) 3 2 2 2 Questa soluzione e’ di pi semplice realizzazione costruttiva perche’ dobbiamo usare solo resistenze di valore R e 2R. 7.6.3 Convertitore digitale-analogico a somma di correnti La rete R-2R viene frequentemente utilizzata per realizzare convertitori a somma di correnti, piu’ vantaggiosi per molti motivi. Possiamo capirne il funzionamento partendo dall’esempio a 4 bit rappresentato nella Fig. 7.37. I 4 bit di ingresso determinano la posizione dei 4 deviatori sopra i transistor Q0 ...Q3 : se il bit e’ 1 il deviatore e’ connesso a destra, se e’ 0 a sinistra. VEE e’ una tensione negativa necessaria a polarizzare i transistor stessi (non sono riportate le alimentazioni necessarie agli operazionali). L’operazionale 1 produce la corrente di riferimento, IREF = VREF /RREF , che attraversa QR e confluisce nel nodo A. Gli altri transistor sono percorsi da correnti via via scalate di un fattore 2. Possiamo verificare questa affermazione 268 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.36: Convertitore digitale-analogico con rete R-2R. a): solo il bit N − 1 è uguale ad 1; b) solo il bit N − 2 è uguale ad 1. notando che i transistor Q0 ...Q3 hanno il collettore connesso a massa se il corrispondente bit e’ 0, oppure a una massa virtuale se il corrispondente bit e’ 1. Quindi, per qualunque configurazione dei bit di ingresso, la rete resistiva e’ comunque equivalente al circuito disegnato in Fig. 7.38a, dove si sono trascurate le resistenze di tutti i transistor. La rete R-2R a destra del nodo A e’ facilmente semplificabile ed e’ equivalente ad un resistore di valore R connesso a massa; la corrente che lo percorre deve quindi essere uguale a IREF (Fig. 7.38b). Con procedimento analogo si puo’ semplificare la rete a destra del nodo A’ che e’ equivalente ad un resistore di valore 2R connesso verso la massa; conseguentemente la corrente IREF che esce da A’ e’ composta da due correnti uguali di valore IREF /2 (Fig. 7.38c). La stesso comportamento si ha evidentemente anche per i successivi nodi: la corrente si divide via via in due parti uguali. Il valore della corrente Io e’ quindi determinato dalla configurazione dei bit d’ingresso: se l’ingresso e’ 0000 si ha Io = 0, se l’ingresso e’ 1111 si ha Io = (15/16)IREF (si noti che il mancante 1/16(IREF ) attraversa il transistor QF , necessario per terminare correttamente la rete R-2R). Poiche’ la tensione d’uscita e’ Vo = RREF Io possiamo scrivere per qualunque valore dell’ingresso Vo = VREF ( a3 a2 a1 a0 + + + ) 2 4 8 16 dove a0 ...a3 sono i 4 bit di ingresso. Questa equazione puo’ naturalmente essere generalizzata per un generico DAC a N bit. Notiamo infine che la corrente Io e’ proporzionale al complemento del numero binario di ingresso, e vale la relazione 15 Io + Io = IREF 16 per qualunque configurazione dei bit d’ingresso. Il principale vantaggio di questa soluzione risiede nella velocita’, ovvero nel miglior tempo di assestamento. Infatti, nei convertitori a somma di tensioni, la variazione dell’ingresso provoca una variazione di tensione nei nodi della rete resistiva e cio’ (a causa delle inevitabili 7.6. CONVERSIONE DIGITALE-ANALOGICA 269 Figura 7.37: Convertitore digitale-analogico a somma di correnti a 4 bit. Le basi dei transistor sono tutte connesse tra loro. Per semplicita’ non e’ riportata la parte digitale del circuito, schematizzata solo da 4 deviatori sopra i transistor Q0 ...Q3 . In Figura e’ rappresentata la situazione con ingresso 0110. capacita’ parassite presenti) non puo’ avvenire istantaneamente. Viceversa, nei convertitori a somma di correnti, la variazione dell’ingresso provoca semplicemente una variazione nel percorso delle correnti, senza alcuna variazione di tensione. Questa soluzione e’ percio’ quella commercialmente piu’ diffusa. Un classico esempio e’ costituito dal DAC08 (o DAC800), un convertitore a 8 bit prodotto da vari costruttori, il cui diagramma a blocchi e’ mostrato nella Fig 7.39. Come si puo’ vedere questo dispositivo consente l’uso di due tensioni di riferimento (VREF (+) e VREF (−)), agli ingressi dell’operazionale). Inoltre, l’offset di questo operazionale puo’ essere annullato utilizzando l’ingresso Comp, se si desidera una grande accuratezza di conversione. Fornisce in uscita Io e Io , quindi deve essere completato con un operazionale esterno o, piu’ semplicimente, con dei resistori, per ricavare le tensioni di uscita. Tutto cio’ consente la massima flessibilita’ di utilizzo, perche’ permette di realizzare conversioni positive, negative o miste. La linearita’ e’ garantita entro lo 0.1 % e il tempo di assestamento e’ di 100 ns. Infine, l’ingresso VLC consente di variare le soglie logiche d’ingresso per interfacciare il dispositivo a famiglie diverse da quella TTL. I fogli caratteristici forniti dai produttori riportano dettagliati esempi dell’utilizzo di questo componente. Notiamo infine che un convertitore digitale-analogico puo’ anche essere pensato come un amplificatore a controllo digitale. Infatti l’uscita Vo e’ proporzionale ad una tensione d’ingresso (la VREF vista in precedenza) moltiplicata per un numero: in sostanza si puo’ controllare l’amplificazione attraverso gli ingressi numerici. 270 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.38: a) Circuito equivalente della rete R-2R; Figura 7.39: Diagramma a blocchi del DAC08 7.7 Conversione analogico-digitale La conversione analogico-digitale e’ un processo attraverso il quale si vuole convertire una grandezza elettrica continua (tipicamente una tensione) in un numero (binario) ad essa proporzionale. Nel mondo di oggi questa operazione e’ fondamentale in innumerevoli campi. I dispositivi che realizzano questa funzione sono comunemente chiamati ADC, Analog to Digital Converter, e possono essere realizzati in vari modi. I principali parametri che caratterizzano un convertitore analogico digitale sono: • intervallo di conversione: l’intervallo di tensione che puo’ essere convertito in un numero; • risoluzione: indica il numero dei valori discreti che esso puo’ produrre. Ad esempio, 7.7. CONVERSIONE ANALOGICO-DIGITALE 271 un convertitore che codifica l’ingresso in 256 livelli discreti ha una risoluzione di 8 bit. Puo’ anche essere espressa in termini di tensione, ovvero come l’intervallo di tensione che separa due numeri adiacenti; • errore di linearita’: rappresenta la discrepanza tra risposta ideale (proporzionale all’ingresso) e quella reale ottenuta; • errore di quantizzazione: e’ dovuto intrinsecamente alla risoluzione del dispositivo; • tempo di conversione: e’ il tempo che il dispositivo impiega per fornire la risposta digitale alla sua uscita. Figura 7.40: Il segnale analogico memorizzato in forma numerica viene riprodotto mediante un DAC 7.7.1 Campionamento In alcuni casi la tensione da convertire e’ costante, oppure varia molto lentamente nel tempo. Ma spesso si vuole invece campionare e convertire ripetutamente una tensione che varia nel tempo significativamente, in modo da digitalizzare l’informazione in essa contenuta senza perdite. In altre parole si desidera che la funzione del tempo originaria possa essere esattamente riprodotta a partire dalla sequenza di numeri memorizzati, con un opportuno algoritmo di interpolazione (Fig 7.40). Figura 7.41: Campionamento di un segnale continuo 272 CAPITOLO 7. CIRCUITI DIGITALI In Fig 7.41 e’ schematizzato il processo di campionamento, che normalmente avviene per un periodo di tempo finito (finestra di campionamento): il segnale e’ campionato e digitalizzato ad intervalli regolari (periodo di campionamento9, ovvero ad una ben definita frequenza (frequenza di campionamento). La frequenza di campionamento necessaria per non perdere informazione e’ legata allo spettro di frequenza del segnale da convertire, come asserisce il teorema di Nyquist-Shannon: “Data una funzione la cui trasformata di Fourier sia nulla al di fuori di un certo intervallo di frequenze (ovvero un segnale a banda limitata), nella sua conversione analogico-digitale la minima frequenza di campionamento necessaria per evitare perdita di informazione nella ricostruzione del segnale analogico originario (ovvero nella riconversione digitale-analogica) e’ pari al doppio della sua frequenza massima.” Figura 7.42: Un semplice circuito Sample and Hold. L’interruttore (realizzato con un transistor) viene chiuso per un tempo prefissato tramite l’ingresso S. Ovvero, dato un sistema in grado di campionare ad una certa frequenza, fc , il segnale verra’ riprodotto fedelmente purche’ non contenga frequenze superiori a fN = fc /2. La frequenza fN e’ comunemente denominata frequenza di Nyquist. In questo senso e’ chiaro quindi che il tempo di conversione di un ADC e’ un parametro rilevante, perche’ e’ il fattore che limita le prestazioni del dispositivo. E’ inoltre necessario che durante la conversione la tensione all’ingresso del dispositivo rimanga costante: questo e’ in genere ottenuto con un circuito Sample and Hold , tipicamente una capacita’ che viene caricata al valore della tensione d’ingresso (Fig 7.42) Figura 7.43: Una funzione sinusoidale con frequenza superiore a quella di Nyquist ha gli stessi campioni di una sinusoide a frequenza inferiore. 7.7. CONVERSIONE ANALOGICO-DIGITALE 273 Aliasing Cosa succede se il segnale contiene frequenze superiori alla frequenza di Nyquist? In questo caso si ha il fenomeno dell’aliasing: nel campionamento l’informazione sulle variazioni di alta frequenza del segnale sono erronee e nel campione compaiono frequenze inesistenti, gli alias, conseguentemente il segnale, riconvertito in forma analogica, non riproduce fedelmente quello originario. Si puo’ meglio comprendere questo fenomeno guardando cosa succede campionando una sinusoide di frequenza superiore a quella di Nyquist: essa ha gli stessi campioni di una sinusoide a frequenza inferiore (Fig 7.43), quindi nella riconversione in analogico viene riprodotta erroneamente. Figura 7.44: Frequenza dell’alias, fa , rispetto alla frequenza originaria del segnale, fs , e a quella di Nyquist, fN La frequenza del segnale alias, fa , e’ data dalla differenza (in modulo) tra la frequenza del segnale originario, fs , e il multiplo intero della frequenza di Nyquist, fN , immediatamente maggiore. fa = |fs − N × fN | Possiamo comprendere meglio questa formula con un esempio numerico. Si ha un campionamento a frequenza fc = 100 kHz, la frequenza di Nyquist e’ quindi fN = 50 kHz. Un segnale sinusoidale con frequenza fs = 51 kHz produce un alias con frequenza fa = |51 − 2 × 50| = 49kHz (vedi Fig 7.44). L’importanza di questo fenomeno puo’ essere meglio compresa immaginando di campionare un segnale che contiene diverse frequenze, per esempio un’onda quadra. Come e’ noto lo spettro in frequenza dell’onda quadra contiene tutte e solo le armoniche dispari della frequenza fondamentale. Immaginando quindi di campionare ad una frequenza fc = 1000 Hz un’onda quadra con frequenza fs = 80 Hz tutte le armoniche che superano la frequenza di Nyquist (500 Hz) danno luogo ad alias, come mostrato in Fig. 7.45. L’unico modo per eliminare il fenomeno dell’aliasing e’ di introdurre un filtro passa-basso con una frequenza di taglio adeguata, ovvero tale da eliminare, o ridurre sostanzialmente, tutte le frequenze superiori alla frequenza di Nyquist. Chiaramente questo produce anche una perdita di informazione. 274 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.45: Spettro in frequenza di un’onda quadra a 80 Hz campionata a 1000 Hz. Le frecce evidenziano gli alias generati dalle armoniche dalla settima in poi 7.7.2 Analisi di campioni digitali Come e’ noto lo studio in frequenza di un segnale continuo viene effettuata utilizzando la trasformazione di Fourier. I campioni digitali, rappresentativi di una funzione continua, possono essere analizzati utilizzando la trasformazione di Fourier discreta (DFT) che qui descriviamo brevemente. Trasformazione di Fourier discreta Definizione: Data la successione di N numeri complessi x0 , x1 , ...xN −1 , la trasformazione di Fourier discreta genera la successione di N numeri complessi X0 , X1 , ...XN −1 attraverso la relazione: Xk = N −1 X n=0 2π xn e−ik N n k = 0, 1, ..., N − 1 Si definisce poi la trasformata inversa (IDFT), ovvero xn = N −1 2π 1 X Xk ein N k n = 0, 1, ..., N − 1 N k=0 La trasformata discreta di Fourier 5 e’ direttamente implementabile su un calcolatore, in quanto richiede un numero finito di operazioni, al contrario della serie o della trasformata di Fourier che richiedono il calcolo di integrali o di somme di serie. 5 Si noti che i fattori di normalizzazione che moltiplicano DFT e IDFT (qui 1 e 1/N ) nonche’ i segni degli esponenti sono delle convenzioni e possono essere differenti in altri testi. Gli unici requisiti di queste convenzioni sono che DFT e IDFT devono avere esponenti di segno opposto e che il prodotto dei fattori deve essere 1/N . 7.7. CONVERSIONE ANALOGICO-DIGITALE 275 Il calcolo della DFT non viene in genere implementato secondo la definizione data, ma si preferisce utilizzare algoritmi ottimizzati che richiedono uno sforzo computazionale minore. Il tempo di calcolo necessario per la DFT con la definizione qui data e’ direttamente proporzionale ad N 2 , per gli algoritmi ottimizzati ( Fast Fourier Transform) e’ proporzionale a N log2 (N ), e quindi il vantaggio nell’utilizzarli e’ tanto maggiore quanto piu’ grande e’ N. Trasformazione di Fourier discreta nel caso reale Possiamo limitarci al caso in cui la successione x0 , x1 , ...xN −1 e’ reale, ovvero un insieme di misure fisiche, piu’ specificamente un campione di misure nel dominio del tempo. Si noti che: N −1 X xn → somma dei campioni X0 = n=0 Inoltre XN −k = Xk∗ La DFT rappresenta in sostanza un’approssimazione discreta della trasformazione di Fourier continua, F (ω), della funzione f (t) Se xn = f (nτ ) n = 0, 1, .....N − 1 si ha Xk ≃ F ( 2πk ) k = 0, 1, .....N − 1 Nτ Si hanno tre situazioni: • Segnali periodici a banda limitata in frequenza: la trasformata discreta coincide con quella continua, se la frequenza di campionamento e’ adeguata; • Segnali di durata limitata nel tempo (cioe’ diversi da zero in un intervallo limitato di tempo): non sono limitati in frequenza, quindi la trasf. discreta e’ affetta da errori dovuti all’aliasing (ineliminabile); • Segnali di durata non limitata,cioe’ a supporto temporale di dimensione infinita e non a banda limitata (frequenza): la trasformata discreta differisce da quella continua a causa di errori sia di aliasing che di troncamento. I numeri complessi Xk ci danno quindi lo spettro in frequenza del segnale campionato, dalla frequenza 0 (il termine X0 ), alla frequenza massima (il termine XN/2 ), ovvero la frequenza di Nyquist. Lo spettro in frequenza dell’onda quadra campionata, mostrato nella Fig. 7.45 e discusso in precedenza, e’ stato ottenuto proprio calcolando la trasformata di Fourier discreta. 276 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.46: Filtraggio digitale. Filtri digitali L’analisi di Fourier di campioni digitali consente di utilizzare tecniche di filtraggio dei segnali molto potenti, ovvero i filtri digitali, che non hanno le limitazioni dei filtri analogici. La Fig. 7.46 schematizza questo processo: il segnale viene campionato, si calcola la DFT, lo spettro in frequenza viene manipolato con il filtro e si calcola la IDFT per ottenere un campione digitale alterato che viene infine riportato in analogico. 7.7.3 Realizzazione di convertitori analogico-digitale Vedremo ora vari esempi di convertitori, realizzati con tecniche diverse. 7.7.4 Convertitore analogico-digitale a conteggio Questo dispositivo e’ schematizzato nella Fig 7.47a. La tensione da convertire, Vi e’ presentata all’ingresso positivo del comparatore, ed il contatore binario e’ inizialmente azzerato. L’uscita VD del DAC e’ nulla, quindi l’uscita del comparatore e’ a livello logico 1. Si comincia ora ad inviare impulsi di clock: essi vanno ad incrementare il contatore, e quindi l’uscita del DAC sale formando dei gradini (Fig. 7.47b). Quando VD supera Vi l’uscita del comparatore scende a livello logico 0, l’ingresso di clock viene percio’ inibito ed il contatore si ferma: il numero presentato all’uscita e’ quindi proporzionale al valore di Vi . Naturalmente il dispositivo funziona correttamente solo se la tensione da convertire e’ compresa tra 0 e la tensione massima di uscita del DAC, VDmax , corrispondente ad avere tutti 1 nel contatore. Il tempo di risposta di questo dispositivo, ovvero il tempo necessario affinche’ l’uscita binaria arrivi al valore voluto e’ chiaramente legato alla frequenza del clock, che deve essere adeguata ai tempi di risposta del contatore e del DAC. Esso inoltre non e’ costante, ma cresce al crescere di Vi . Si noti che questo dispositivo non e’ in grado di convertire correttamente una tensione variabile nel tempo, anche se lentamente. Infatti, se ad esempio Vi diminuisce dopo che il contatore si e’ arrestato, il comparatore non se ne accorge e l’uscita digitale resta invariata. 7.7. CONVERSIONE ANALOGICO-DIGITALE 277 Figura 7.47: a) Convertitore analogico-digitale a 8 bit; b) Andamento temporale della tensione VD Tracking ADC Una versione migliorata del convertitore a conteggio e’ il convertitore ad inseguimento, o tracking ADC (Fig. 7.48). Non serve in questo caso un segnale di azzeramento. Infatti si supponga che inizialmente il contatore abbia un valore qualunque e che, corrispondentemente, l’uscita del DAC sia inferiore alla tensione d’ingresso Va : l’uscita del comparatore e’ allora positiva e il contatore conta in avanti, finche’ l’uscita del DAC supera la tensione d’ingresso. Allora il contatore inverte il verso del conteggio, facendo tornare l’uscita del DAC ad un valore inferiore a Va . In sostanza l’uscita oscillera’ avanti e indietro di 1 bit attorno al valore corretto. Un dispositivo di questo genere e’ quindi particolarmente adatto per convertire una tensione variabile nel tempo; il tempo di conversione e’ piccolo se le variazioni del segnale analogico sono piccole. ADC ad approssimazioni successive Il tempo di conversione puo’ essere in media molto ridotto usando una strategia di ricerca del valore corretto piu’ intelligente. Sostituendo al contatore binario un programmatore (cioe’ un registro piu’ complesso) si puo realizzare una ricerca ad approssimazioni successive. Il programmatore pone inizialmente ad 1 il bit piu’ significativo e a 0 tutti gli altri. Se la risultante tensione d’uscita del DAC e’ maggiore della tensione d’ingresso, il bit viene rimesso a 0 e si prova con quello immediatamente meno significativo. In caso contrario il bit piu’ significativo rimane ad 1, si mette ad 1 anche quello immediatamente meno significativo e si compara di nuovo. E’ facile verificare che, per un sistema ad n bit il valore corretto e’ trovato dopo n tentativi (cioe’ impulsi di clock); invece in un ADC a conteggio sono necessari, nel caso peggiore 2n impulsi. Se, ad esempio, utilizzassimo in questo circuito un DAC08 (tempo di assestamento 100 ns) 278 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.48: Tracking ADC il tempo di conversione, tc sarebbe dato dato da tc = 100 × 8 = 800 ns corrispondente ad una massima frequenza di campionamento possibile di circa 1 M Hz. Oggi e’ possibile trovare in commercio ADC a 16 bit realizzati con questa architettura con frequenze di campionamento di vari M Hz. 7.7.5 Convertitore analogico-digitale a doppia rampa Con questa architettura si realizzano convertitori di grande precisione, a scapito della velocita’ di conversione: si trovano in commercio dispositivi a 18 bit, ma la massima frequenza di campionamento non supera i 50 KHz. Un esempio e’ schematizzato in Fig. 7.49a. Vi e’ la tensione da convertire (positiva) e VR e’ una tensione negativa, con |VR | > Vi . All’istante t1 si connette l’ingresso dell’integratore a Vi , per un tempo T1 costante, pari a n1 T , dove T e’ il periodo del clock. All’istante t2 si connette l’integratore a VR e simultaneamente si fa partire il clock. La tensione V0 scende (Fig. 7.49b) e all’istante t3 torna a zero: l’uscita del comparatore blocca il clock e quindi il conteggio del contatore. Ora possiamo scrivere che Z t Z t 2 3 1 1 V (t3 ) = − Vi dt − VR dt = 0 RC t1 RC t2 ovvero Vi (t2 − t1 ) + VR (t3 − t2 ) = 0 V i T1 + V R T 2 = 0 dove T2 = n 2 T T1 = n 1 T 7.7. CONVERSIONE ANALOGICO-DIGITALE Figura 7.49: a) Convertitore A/D a doppia rampa; b) Andamento temporale di V0 279 280 CAPITOLO 7. CIRCUITI DIGITALI quindi Vi = n2 |VR | n1 e finalmente n2 = n1 Vi |VR | cioè n2 è proporzionale a Vi essendo n1 e VR delle costanti note. La sensibilita’ di questo dispositivo e’ legata alla frequenza del clock (limitata dalla velocita’ del contatore), mentre la linearita’ e’ chiaramente legata alla linearita’ dell’integratore; da questo punto di vista e’ importante il fatto che la risposta non dipenda dai valori di R e C: possiamo quindi sceglierli in modo da sfruttare la parte lineare della rampa d’integrazione. 7.7.6 Flash ADC Figura 7.50: a) Flash ADC Questo e’ il dispositivo concettualmente piu’ semplice, ma anche il piu’ difficile e costoso da realizzare (Fig. 7.50): il segnale da convertire, Vx , viene inviato simultaneamente ad n comparatori con soglie equispaziate, V1 , V2 . . . Vn . La soglia dell’i-esimo comparatore e’ data da: i Vi = VREF n+1 quindi tutti i comparatori la cui soglia e’ inferiore a Vx scattano, mentre gli altri danno risposta zero. Le uscite dei comparatori forniscono quindi una sequenza binaria di n cifre 7.7. CONVERSIONE ANALOGICO-DIGITALE 281 (partendo dal basso) tipo 111111 . . . 00000: il punto di transizione tra 1 e 0 individua (per difetto) il valore di tensione desiderato 6 . Per ottenere l’informazione come numero binario e’ necessario quindi una operazione di decodifica. Il numero complessivo di comparatori e’ enorme: per un convertitore ad 8 bit ne occorrono 255! Questa spiega perche’ questi dispositivi sono estremamente costosi e solo i recenti progressi nel campo dell’integrazione su larga scala ne hanno reso possibile la realizzazione a costi accessibili. Questi dispositivi sono ovviamente i piu’ veloci: il tempo di conversione e’ infatti dovuto essenzialmente al tempo di risposta del codificatore. E’ inutile dire che la precisione del dispositivo e’ legata alla precisione delle n soglie; inoltre un problema e’ anche rappresentato dalla enorme capacita’ di ingresso che si forma, quando n e’ molto grande. Di fatto i dispositivi in commercio non vanno oltre 8 o 9 bit, con frequenze di campionamento che possono arrivare al GHz. 7.7.7 ADC a pipeline Questa soluzione e’ oggi largamente usata perche’ offre elevate velocita’ di conversione a costi e complicazioni molto inferiori, a parita’ di risoluzione, rispetto ai convertitori flash. Possiamo comprenderne il funzionamento attraverso un esempio di convertitore a 12 bit (Fig 7.51). Figura 7.51: Schema di principio di un ADC a pipeline a 12 bit (la logica di controllo e’ omessa). Il convertitore e’ composto da 3 blocchi posti in cascata, con un convertitore flash a 4 bit in ciascun blocco. La tensione da convertire, Vx , campionata e mantenuta da un circuito Sample and Hold, viene inviata al primo convertitore flash: il risultato della conversione (un numero a 4 bit) costituisce l’uscita del primo stadio. Ma essa viene anche inviata a un DAC che restituisce una tensione V1 ; quest’ultima viene inviata ad un circuito sommatore che produce la differenza Vx′ = Vx − V1 . Vx′ non e’ altro che l’errore di quantizzazione prodotto dal primo blocco (ovvero l’errore dovuto alla risoluzione a 4 bit); esso viene amplificato (di un fattore 16) e inviato al secondo convertitore flash. I 4 bit risultanti dal secondo blocco rappresentano quindi i 4 bit meno significativi di una conversione a 8 bit. In modo del tutto analogo il terzo blocco migliora la risoluzione aggiungendo al risultato ulteriori 4 bit. Questa catena di conversioni deve essere accuratamente temporizzata: ogni blocco deve attendere il completamento della conversione fatta dal blocco precedente. Il dispositivo 6 Una sequenza di questo tipo e’ spesso denominata codice termometrico, per analogia con il termometro a liquido, dove il valore della temperatura e’ indicato dall’altezza della colonna di liquido 282 CAPITOLO 7. CIRCUITI DIGITALI richiede quindi una unita’ logica di controllo che distribuisce opportuni impulsi di clock alle varie parti del circuito. I 3 convertitori flash a 4 bit del nostro esempio richiedono complessivamente 45 comparatori, da confrontare con i 4095 che sarebbero necessari per realizzare un convertitore flash a 12 bit, con evidente risparmio di costi, complicazioni e spazio. Naturalmente questo e’ ottenuto al prezzo di una minore velocita’ e quindi di una minore frequenza di campionamento raggiungibile (attualmente sono in commercio dispositivi che possono lavorare fino a 200 M Hz.) 7.8 7.8.1 Multivibratori Multivibratore bistabile Figura 7.52: Un circuito bistabile con operazionale Consideriamo il semplice circuito di Fig 7.52. Attraverso i due resistori viene riportata all’ingresso positivo una reazione (positiva) β= R1 (R1 + R2 ) (7.2) l’operazionale quindi va inevitabilmente in saturazione, in uno dei due possibili stati stabili vo = L+ oppure vo = L− , dove L+ e L− sono tensioni di saturazione positiva e negativa dell’amplificatore. Modifichiamo ora il circuito collegando una sorgente di segnale, vI , al morsetto negativo (Fig 7.53a) e supponiamo che inizialmente il bistabile si trovi nello stato v0 = L+ (stato up). Al crescere di vI (Fig 7.53b) l’uscita commuta dallo stato up allo stato down quando vi > βL+ , si comporta quindi come un comparatore con soglia VT H = βL+ . Facciamo ora diminuire vI (Fig 7.53c) : l’uscita commuta dallo stato down allo stato up quando vi < βL− , quindi equivale quindi ad un comparatore con soglia VT L = βL− . E’ importante notare che il segnale d’ingresso vI (segnale di trigger) si limita a innescare il processo di commutazione, in altre parole puo’ anche essere un impulso di brevissima durata. Una volta iniziato, il processo di commutazione prosegue anche in assenza di segnale. Osserviamo poi che quando VT L < vI < VT H , lo stato dell’uscita dipende dalla storia passata, ovvero il circuito e’ dotato di memoria ( isteresi ). Questo circuito e’ anche noto con il nome di Trigger di Schmitt. Un bistabile puo’ essere realizzato anche in configurazione non invertente (Fig 7.54). In questo caso si ha VT L = −L+ (R1 /R2 ) VHL = −L− (R1 /R2 ) 7.8. MULTIVIBRATORI 283 Figura 7.53: a): Il circuito bistabile con ingresso sul morsetto negativo; b): Transcaratteristica per vI ; c): Transcaratteristica per vI decrescente; c): Transcaratteristica completa. Il trigger di Schmitt e’ utile in molte situazioni, ad esempio per la rivelazione ed il conteggio di impulsi accompagnati da disturbi (Fig 7.55): un comparatore semplice, con soglia VR , produrrebbe conteggi multipli mentre invece, avendo a disposizione due soglie, si possono facilmente eliminare i conteggi spurii. 7.8.2 Multivibratore astabile Il circuito bistabile puo’ essere reso astabile aggiungendo una reazione negativa di tipo RC (Fig 7.56a). Per comprenderne il funzionamento osserviamo la Fig 7.56b e supponiamo che inizialmente l’uscita si trovi al livello L+ . La capacita’ C si carica, attrraverso R, verso quella tensione. Quindi l’ingresso negativo dell’operazionale, v− , cresce esponenziamente con costante di tempo τ = RC. Nel frattempo la tensione all’ingresso positivo dell’operazionale e’ v+ = βL+ . Questa situazione persiste finche’ v− raggiunge la soglia VT H = βL+ , momento in 284 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.54: a): Bistabile non invertente; b): Transcaratteristica. Figura 7.55: a): Comparatore (con soglia VR ); b): Comparatore con isteresi (soglie VT H e VT L ). cui il multivibratore commuta nell’altro stato, con vo = l− e v+ = βL− . Il condensatore inizia allora a scaricarsi esponenzialmente, finche’ v− non raggiunge la soglia VT H = βL+ , forzando una nuova commutazione verso lo stato vo = L+ , ricominciando un nuovo ciclo. All’uscita dell’operazionale abbiamo quindi un’onda rettangolare con periodo T = T1 + T2 , che possono essere calcolati molto semplicemente. Si ottiene T1 T2 L− L+ = τ ln 1−β L+ 1−β L− = τ ln 1−β 1−β (7.3) (7.4) Se L+ = −L− si ha T1 = T2 e si ha un’onda quadra T = T1 + T2 = 2τ ln 1+β 1−β (7.5) 7.8. MULTIVIBRATORI 285 Figura 7.56: a): Multivibratore astabile; b) Andamento temporale delle varie tensioni. Generatore di onda quadra e triangolare Aggiungendo uno stadio integratore si puo’ avere un circuito che fornisce simultaneamente l’onda rettangolare (uscita vo ) e un’onda triangolare (uscita v1 ). Si noti che l’onda triangolare e’ simmetrica solo se L+ = L− (ovvero quando T1 = T2 ). In caso contrario il tratto a scendere ha una pendenza −L+ /(RC) mentre il tratto a salire ha una pendenza −L− /(RC). 7.8.3 Multivibratore monostabile In molte applicazioni e’ necessario avere un impulso di lunghezza e ampiezza fisse, generato in risposta ad un segnale di trigger di ampiezza e forma variabile. Questo tipo di risposta viene generato appunto da un multivibratore monostabile (Fig 7.58). Il monostabile ha un solo stato stabile, in cui puo’ restare indefinitamente, e uno stato metastabile in cui puo’ essere portato da un opportuno segnale di trigger e in cui permane per un tempo predefinito, che dipende da parametri circuitali. Osservando la Fig 7.58a notiamo che il monostabile deriva dal circuito astabile con l’aggiunta du un diodo in parallelo a C1 e di un circuito d’ingresso composto dal diodo D2 , da R4 e C2 . Nello stato stabile l’uscita e’ a L+ e il diodo D1 e’ in conduzione, per cui l’ingresso negativo (nodo B) e’ a VD1 ∼ 0.7 V . Scegliamo R4 molto maggiore di R1 in 286 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.57: Generatore di onda quadra e triangolare. Figura 7.58: a): Multivibratore monostabile; b) Forme d’onda modo che D2 sia debolmente in conduzione; si ha quindi vC =≃ βL+ e vE = βL+ − 0.7 V . Questo stato e’ stabile perche’ VC > VB . Applichiamo ora all’ingresso un trigger costituito da fronte negativo. Il condensatore C2 deriva questo fronte e il nodo E scende fortemente di tensione, portando il diodo D2 in conduzione; pertando il nodo C scende di tensione. Se l’impulso di trigger e’ sufficientemente ampio vC puo’ diventare minore di vB , inducendo l’operazionale a commutare verso l’altro stato, ovvero VA = L− . Questo provoca anche la commutazione del nodo C e vC diviene uguale a βL− . Il diodo D2 a questo punto si interdice impedendo ulteriori ingressi. La tensione negativa al nodo A provoca anche l’interdizione del diodo D1 e il condensatore C1 comincia a scaricarsi esponenzialmente verso la tensione L− con una costante di tempo C1 R3 . Il circuito ora e’ in uno stato metastabile che puo’ permanere finche’ vB non scende oltre la tensione del nodo C. A quel punto l’operazionale commuta di nuovo, riportando VA alla tensione L+ e vC alla tensione βl+ . Il condensatore C1 prende a caricarsi verso L+ , finche’ il diodo D1 rientra in conduzione e stabilizza il nodo B alla tensione iniziale. All’uscita si ha in definitiva un impulso negativo la cui durata e’ determinata dalla discesa 287 7.9. IL TIMER 555 esponenziale di vB . Supponendo che il trigger arrivi all’istante t = 0 l’andamento temporale di vB e’ dato da vB (t) = L− − (L− − VD1 )e − t C1 R3 (7.6) Indicando con T durata dell’impulso si ha quindi vB (T ) = βL− = L− − (L− − VD1 )e da cui si ricava T = C1 R3 ln( Se VD1 ≪ L− si ha infine − T C1 R3 (7.7) VD 1 − L − ) βL− − L− (7.8) 1 ) 1−β (7.9) T = C1 R3 ln( Si noti che l’arrivo di un ulteriore segnale di trigger prima che il circuito sia tornato nello stato stabile (ovvero prima che C1 sia tornato alla tensione VD1 ) provocherebbe un accorciamento del segnale d’uscita. In sostanza il circuito ha un tempo di recupero che limita la frequenza degli impulsi di trigger gestibili correttamente. 7.9 Il timer 555 In commercio e’ possibile trovare integrati che contengono tutta la circuiteria necessaria per realizzare facilmente multivibratori. Il piu’popolare e’ il timer 555, introdotto nel 1972 e tuttora prodotto sia con transistor bipolari (BJT) che con CMOS, con le stesse funzionalita’. Figura 7.59: a) Integrato NE555, realizzato con BJT; b): Schema a blocchi. 288 CAPITOLO 7. CIRCUITI DIGITALI Il circuito consiste di due comparatori, un flip-flop SR, un amplificatore e un transistor Q1 che opera come interruttore. Il partitore resistivo e’ composto da 3 resistori uguali7 , R, e definisce le soglie dei due comparatori: VT H = 2/3VCC per il comparatore 1 e VT L = 1/3VCC per il comparatore 2. Gli altri due ingressi del comparatore sono accessibili esternamente: l’ingresso positivo del comparatore 1, denominato Threshold , e l’ingresso negativo del comparatore 2, denominato Trigger. L’uscita Q del flip-flop rappresenta l’uscita del circuito (l’amplificatore e’ solo un inseguitore di tensione che serve ad aumentare la corrente di uscita). L’uscita Q determina lo stato del transistor Q1 : se e’ bassa, Q1 e’ in interdizione, se e’ alta e’ in saturazione. Il collettore di Q1 e’ accessibile esternamente e puo’ essere opportunamente utilizzato8 . Il funzionamento del 555 puo’ essere sintetizzato dalla seguenta tavola della verita’, dove sono riportate lo stato dell’uscita e del transistor Q1 in funzione degli ingressi9 : Reset Trigger Threshold S R Out Q1 Low x x x x Low On High < 1/3VCC > 2/3VCC High High High Off High < 1/3VCC < 2/3VCC High Low High Off High > 1/3VCC > 2/3VCC Low High Low On High > 1/3VCC < 2/3VCC Low Low Non cambia Non cambia L’integrato N E555 puo’ essere alimentato con una tensione VCC compresa tra 4.5 e 16 V . Deve essere chiaro che l’uscita e’ legata al valore dell’alimentazione e non e’ necessariamente il valore standard TTL: se Q e’ bassa, VOU T e’ circa 0 V , se Q e’ alta VOU T ≃ (VCC − 2) V . Gli esempi che seguono renderanno chiaro l’utilizzo di questo dispositivo. 7.9.1 Multivibratore astabile con 555 Il multivibratore astabile puo’ essere realizzato con il circuito di Fig 7.60, con le resistenze RA , RB e il capacitore C (il condensatore sull’ingresso Control Voltage non e’ rilevante, e’ solo in funzione anti disturbo). Supponiamo che inizialmente il condensatore C sia scarico. In questa situazione gli ingressi Trigger e Threshold (nodi 2 e 6) sono bassi. Agli ingressi del flip-flop si ha S = HIGH e R = LOW : di conseguenza Q = HIGH e il transistor e’ off. Ma questa situazione non e’ stabile, il condensatore C si carica attraverso RA + RB e la tensione vC sale esponenzialmente verso VCC . Quando vC raggiunge VHT = (1/3)VCC il comparatore 2 scatta e si ha S = LOW e R = LOW , Q resta invariata. Ma quando vC raggiunge VHT = (2/3)VCC il comparatore 2 scatta e si ha S = LOW e R = HIGH: a questo punto il flip-flop commuta, Q diventa HIGH, il transistor entra in saturazione. Il condensatore comincia ora a scaricarsi attraverso RB . Quando la tensione vC raggiunge 7 Il nome 555 deriva proprio dal fatto che i 3 resistori sono da 5k. Vedremo nel seguito l’utilizzo dell’ingresso Control Voltage. 9 Questa tavola della verita’ puo’ ingenerare confusione perche’ sembra diversa da quella di un normale flip-flop. Si deve tenere conto pero’ che non c’e’ un clock, quindi lo stato S = High, R = High e’ lecito e determina Q = High. Inoltre Q e’ in realta’ costruito negando Q con un semplice NOT, quindi anche in questo caso il transistor e’ interdetto. 8 289 7.9. IL TIMER 555 Figura 7.60: Multivibratore astabile. VLT = (1/3)VCC l’uscita del comparatore 2 diventa HIGH, il flip-flop commuta di nuovo e il transistor va in off. Il condensatore ricomincia a caricarsi e il ciclo si ripete. L’uscita quindi oscilla tra i due stati, HIGH e LOW . Figura 7.61: a) Carica del condensatore; b) Scarica del condensatore; c) Ciclo completo e andamento dell’uscita. Per una valutazione quantitativa degli andamenti delle tensioni facciamo riferimento alla Fig 7.61. La tensione vC del condensatore oscilla tra VLT e VLH ma le fasi di carica e scarica sono esponenziali diverse perche’ le resistenze in gioco sono diverse. Nella fase di carica si ha (Fig 7.61a): t τ vc (t) = VCC (1 − e 1 ) − dove τ1 = (RA + RB )C (7.10) 290 CAPITOLO 7. CIRCUITI DIGITALI Quindi possiamo scrivere t1 = VCC (1 − e τ1 ) t2 − τ = VCC (1 − e 1 ) − VLT VHT (7.11) (7.12) Riordinando e dividendo membro a membro si ricava il tempo TH di permanenza nel livello alto: VCC − VLT TH = τ1 loge (7.13) VCC − VHT Poiche’ VHT = (2/3)VCC e VLT = (1/3)VCC si ha TH = τ1 loge 2 = (RA + RB )C × 0.69 (7.14) Nella fase di scarica del condensatore si ha (Fig 7.61b): t vc (t) = VHT e τ2 TL − VLT = VHT e τ2 − dove τ 2 = RB C (7.15) (7.16) Da cui si ricava il tempo TL di permanenza nel livello alto: TL = τ2 loge VHT VLT (7.17) Poiche’ VHT = (2/3)VCC e VLT = (1/3)VCC si ha TL = τ2 loge 2 = RB C × 0.69 (7.18) T = TH + TL = 0.69(RA + 2RB )C (7.19) Il periodo T e’ quindi e la frequenza f : f= 1 1.44 = T (RA + 2RB )C (7.20) Osserviamo che il RA + RB TH = (7.21) T RA + 2RB e’ sempre maggiore 50% . Tende a questo valore se RB ≫ RA . Se si vuole ottenere in uscita un’onda quadra si puo’ modificare il circuito (Fig 7.62) aggiungendo un diodo in parallelo a RB . Nella fase di carica il diodo conduce, mentre nella fase di scarica e’ interdetto. In questa nuova situazione TH e TL sono Duty cycle = = RA C loge 2 = 0.69RA C (7.22) TL = RB C loge 2 = 0.69RB C (7.23) TH e si ha Duty cycle = Se RA = RB il Duty cycle diventa il 50%. RA RA + RB (7.24) 7.9. IL TIMER 555 291 Figura 7.62: Multivibratore astabile modificato con aggiunta di un diodo. Voltage Controlled Oscillator Le soglie di commutazione dei comparatori possono essere fissate esternamente utilizzando l’ingresso Control Voltage (piedino 5). Possiamo ad esempio ricavare una tensione VCON T dall’alimentazione tramite un semplice trimmer (Fig 7.63a) e ottenere nuove soglie; ora VHT = VCON T e VLT = VCON T /2. Questo chiaramente modifica i tempi TH e TL (lasciamo il calcolo come esercizio). Notiamo che ora la frequenza di oscillazione dipende da VCON T (diminuisce al crescere di VCON T ) e questo spiega il nome del circuito. Un altro possibile modo per ottenere un risultato analogo consiste nell’alimentare indipendentemente (con una tensione VCC1 ) la catena RA , RB , C ( (Fig 7.63a)). Anche in questo caso i tempi TH e TL sono modificati e la frequenza dipende da VCC1 . Considerazioni pratiche L’uscita del 555 puo’ sia erogare corrente (current source) che assorbirne (current sink), come mostrato in Fig 7.64. La corrente massima erogabile dall’uscita del 555 e’ intorno a 200 mA, un eventuale carico esterno deve quindi essere dimensionato adeguatamente. Se e’ necessario avere piu’ corrente si puo’ collegare un transistor in uscita. Le resistenze RA e RB devono essere comprese tra 1 kΩ e 1 M Ω, resistenze troppo piccole potrebbero far uscire il transistor dalla saturazione, alterando il funzionamento dell’oscillatore. La massima frequenza di oscillazione (limitata dai tempi di salita e di discesa dell’uscita) e’ intorno a qualche M Hz. 292 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.63: Voltage controlled oscillator. a) Mediante l’ingresso Control Voltage; b) Con doppia alimentazione. 293 7.9. IL TIMER 555 Figura 7.64: Multivibratore monostabile 7.9.2 Multivibratore monostabile con 555 Un monostabile puo’ essere realizzato con il circuito di Fig 7.65. In assenza di segnale il sistema e’ nello stato stabile Q = LOW , Q = HIGH; il transistor Q1 e’ in saturazione. A t = 0 un impulso negativo di trigger porta il comparatore 2 a HIGH: si ha quindi Q = HIGH e Q = LOW Il transistor si interdice e C inizia a caricarsi con legge t vc (t) = VCC (1 − e RC ) − Quando vc (t) arriva a VHT = (2/3)VCC il comparatore 1 diventa HIGH e provoca la commutazione del flip-flop. Il transistor passa di nuovo in saturazione e il condensatore inizia a scaricarsi. In conclusione, all’uscita si ha un impulso positivo di durata T = RA C loge 3 = 1.1RA C come si ricava facilmente. Il monostabile realizzato con il 555 e’ spesso utilizzato come semplice temporizzatore: l’uscita resta alta per un tempo prefissato (pari appunto a 1.1RC) quando l’utilizzatore preme un pulsante. Un esempio e’ mostrato in Fig 7.66. 7.9.3 Multivibratore bistabile con 555 Non e’ molto frequente l’utilizzo del 555 per realizzare un bistabile, ci sono modi piu’ semplici per ottenerlo. Ad ogni modo un esempio e’ riportato nella Fig 7.67: la posizione del deviatore determina lo stato dell’uscita. 294 CAPITOLO 7. CIRCUITI DIGITALI Figura 7.65: Multivibratore monostabile Figura 7.66: Multivibratore monostabile, un altro esempio 295 7.9. IL TIMER 555 Figura 7.67: Multivibratore bistabile 296 CAPITOLO 7. CIRCUITI DIGITALI Capitolo 8 Il microprocessore Z80 8.1 Introduzione Dal 1946, anno di costruzione del primo computer (il famoso ENIAC) ad oggi, si e’ progressivamente consolidata un’architettura dei sistemi di calcolo basata su una unita’ centrale, detta CPU (Central Processing Unit), che lavora in associazione con una memoria centrale, e con una serie di periferiche, come dischi, nastri, terminali videografici, ecc. La CPU e’ in grado di eseguire una sequenza di istruzioni (programma) che siano state precedentemente immesse nella memoria; inoltre coordina il funzionamento delle periferiche, acquisendo dati dalle unita’ d’ingresso e fornendone altri alle unita’ di uscita. La stessa memoria utilizzata per contenere i programmi serve anche per contenere dati: essa e’ quindi sostanzialmente una unita’ periferica allo stesso livello delle altre1 BUS INDIRIZZI CPU MEMORIA Periferica Periferica BUS Controlli BUS DATI Figura 8.1: Architettura di un computer Le comunicazioni tra la CPU e le periferiche avvengono attraverso un insieme di linee, che prendono il nome di bus; in realta’ sono necessari piu’ bus per il funzionamento del sistema (vedi Fig. 8.1): infatti e’ necessario 1 Questo schema, sostanzialmente utilizzato dalla maggioranza dei moderni computer, prende il nome di architettura di Von Neumann, dal matematico John Von Neumann che la ideo’. Non e’ pero’ l’unica possibile: si puo’ costruire un sistema in cui programmi e dati sono immagazzinati in memorie diverse, collegate al processore da bus separati (architettura di Harvard). 297 298 CAPITOLO 8. IL MICROPROCESSORE Z80 1. definire da quale indirizzo deve essere prelevata un’informazione e a quale indirizzo deve essere destinata (Address Bus); 2. trasferire i dati dalla CPU alla periferica o viceversa (Data Bus); 3. inviare e ricevere segnali di controllo (Control Bus) Sappiamo che l’unita’ elementare di informazione e’ il bit; e’ chiaro pero’ che qualunque operazione realistica richiede la capacita’ di operare su numeri a molti bit. Una caratteristica importante di un computer e’ quindi data dall’ampiezza dei numeri che esso e’ in grado di gestire e manipolare; questa dimensione si chiama parola: quindi un computer con parole di 16 bit e’ in grado di operare su numeri di questa ampiezza. Tipici valori sono 8, 16, 32 e oggi anche 64 bit. Naturalmente la grandezza della parola determina anche il numero di linee che formano il bus dei dati (anche se non necessariamente devono essere uguali). Costruttore Sigla Parola Indirizzi (bit) (bit) Intel 8080 8 16 Motorola 6800 8 16 Zilog Z80 8 16 Intel 8086 16 16 Motorola 68000 16 16 Intel 80386 32 32 Motorola 68020 32 32 Tabella 8.1: Alcuni tra i primi microprocessori in commercio. Un’altra caratteristica importante e’ il numero di linee di indirizzo che costituiscono il sistema. Infatti ogni periferica corrisponde ad uno o piu’ indirizzi; nel caso delle memorie, ad esempio, ogni locazione (intesa come gruppo di bit) deve avere un indirizzo univoco; quindi il massimo numero di locazioni indirizzabili e’ legato al numero di bit, e quindi di linee, che definiscono un indirizzo. Se ad esempio si hanno a disposizione 16 linee, si possono definire 216 = 65536 indirizzi diversi. Nella terminologia informatica si ha 1024 = 1 k, pertanto 216 corrisponde a 64 K. In genere le memorie commerciali consentono di indirizzare gruppi di 8 bit, che cotituiscono 1 byte; percio’ l’ampiezza delle memorie e’ normalmente espressa in bytes Il bus di controllo, il cui scopo comprenderemo meglio in seguito, richiede un numero abbastanza basso di linee; esso serve a definire il tipo di scambio che si vuole effettuare (lettura di un dato dalla memoria o scrittura di un dato sulla memoria), oppure a consentire alle periferiche di attirare l’attenzione della CPU. Infatti il controllo dei bus e’, normalmente, compito della CPU, che coordina e gestisce ogni operazione; tuttavia le periferiche devono a volte potere intervenire in modo attivo nelle transazioni (si pensi ad esempio alla situazione in cui l’utente preme un tasto della tastiera per immettere un dato o un comando nel sistema). 8.1. INTRODUZIONE 299 In passato una CPU era costituita da un enorme volume di circuiti elettronici; oggi, i progressi fatti nel campo dell’integrazione hanno reso possibile racchiudere tutte le funzioni in un unico "chip" di silicio, in cui sono racchiuse migliaia o decine di migliaia di porte logiche elementari. Questi integrati prendono il nome di microprocessori; nella tabella 8.1 sono mostrate le principali caratteristiche di alcuni tra i primi microprocessori sviluppati. E’ importante notare che queste macchine costituiscono dei sistemi sincroni, cioe’ svolgono le loro funzioni attraverso una sequenza di operazioni temporizzate da un segnale di clock (che spesso deve essere fornito dall’esterno); la massima frequenza di clock cui il sistema puo’ operare e’ chiaramente legata alla velocita’ con cui i vari circuiti possono svolgere i loro compiti e costituisce quindi un fattore di merito del sistema. Noi studieremo in dettaglio un particolare microprocessore, lo Zilog Z80; certamente esso e’ superato in prestazioni da realizzazioni piu’ recenti, tuttavia mantiene ancora oggi tutta la sua validita’ come strumento didattico, sia per consentire agli studenti di apprendere attraverso un caso particolare una serie di nozioni valide in generale per tutti i microprocessori, ma soprattutto perche’ consente di realizzare semplici ed istruttive applicazioni pratiche, che i molto piu’ sofisticati microprocessori delle ultime generazioni rendono assai piu’ problematiche. 8.1.1 Il sistema esadecimale Nel Capitolo precedente abbiamo visto il sistema di numerazione binario e abbiamo capito che esso e’ una chiave importante per tradurre circuitalmente problemi aritmetici (e logici). Cio’ e’ vero naturalmente anche per i microprocessori; tuttavia la notazione binaria e’ estremamente pesante e scomoda da ricordare, non appena si ha a che fare con numeri di 8 o addirittura 16 bit. Si possono pero’ esprimere numeri binari in modo piu’ abbreviato usando la notazione esadecimale. Consideriamo infatti il sistema a base 16: esso ha bisogno di 15 simboli, quindi si utilizzano i numeri da 0 a 9 e poi le lettere A, B, C, D, E, F . Si ha quindi la numerazione come nella Tabella 8.2. Poiche’ 16 = 24 si ha una relazione molto semplice tra numerazione esadecimale e numerazione binaria: 1 cifra esadecimale corrisponde a 4 cifre binarie. Tradurre un numero binario in notazione esadecimale e’ allora semplicissimo, perche’ puo’ essere fatto, partendo dalla cifra meno significativa, per gruppi di 4 bit per volta. Si abbia ad esempio il numero binario 10 1011 1100; esso si traduce immediatamente in 2 B C. Viceversa, se abbiamo il numero esadecimale 1AEF , esso corrisponde a 1 1010 1110 1111. La notazione esadecimale viene usata estensivamente nel campo informatico, proprio per la sua semplice connessione con la numerazione binaria, ed e’ quindi bene che gli studenti acquistino un minimo di dimestichezza con essa. Abbiamo per esempio visto che avendo a disposizione 16 linee di indirizzi, e’ possibile indirizzare 65536 locazioni diverse; in notazione esadecimale e’ immediato dire che queste locazioni vanno dall’indirizzo 0000 (corrispondente al numero binario 0000 0000 0000 0000) all’indirizzo F F F F (corrispondente a 1111 1111 1111 1111). 8.1.2 Logica "tri-state" Lo schema concettuale mostrato in Fig. 8.1 e’ certamente molto funzionale ma ci pone dei problemi elettronici che dobbiamo comprendere e risolvere immediatamente. Infatti l’idea di un bus, cioe’ un sistema di linee attraverso cui l’informazione si trasferisce da un 300 CAPITOLO 8. IL MICROPROCESSORE Z80 Num. decimale Num. binaria Num. esadecimale 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 10000 10 17 10001 11 ··· ··· ··· 255 11111111 FF 256 100000000 100 ··· ··· Tabella 8.2: Numerazione esadecimale 301 8.1. INTRODUZIONE BUS Uscite TTL Uscite TTL Uscite TTL Figura 8.2: 3 sistemi logici connessi allo stesso bus blocco ad un altro (per esempio dalla memoria alla CPU, o viceversa) non e’ realizzabile utilizzando i normali circuiti logici TTL che conosciamo. Prendiamo infatti la situazione schematizzata in Fig. 8.2; in cui 3 sistemi logici hanno le uscite connesse al bus (per semplicita’ abbiamo disegnato solo 2 linee del bus). Se ricordiamo il funzionamento delle uscite TTL comprendiamo immediatamente che questo schema non puo’ funzionare: infatti una eventuale uscita bassa "forza" a 0 V la tensione della corrispondente linea, indipendentemente da cio’ che fanno gli altri blocchi logici. E’ chiaro quindi la connessione di piu’ circuiti logici ad un bus non puo’ essere fatta in questo modo. Uno dei modi comunemente usati per risolvere questo problema consiste nell’introdurre nei circuiti logici un terzo stato, il cosidetto stato di "alta impedenza". Allora l’uscita del circuito puo’ essere in 3 stati: 0 logico, 1 logico e "alta impedenza", dove quest’ultimo significa che l’uscita presenta una alta impedenza verso la massa, cioe’ e’ come se fosse sconnessa dal circuito da cui proviene. Questo risolve il problema del bus: occorre fare in modo che uno e uno solo dei dispositivi connessi al bus presenti un’uscita logicamente valida; tutti gli altri devono essere nello stato di alta impedenza, H. Ogni circuito logico avra’ percio’ un ulteriore ingresso di "abilitazione" (Enable) che consente di introdurre questo terzo stato di uscita. Ad esempio, la tavola della verita’ di un flip-flop D tipo tri-state sara’ Enable Dn Qn+1 1 0 0 1 1 1 0 x H Cioe’, se il segnale Enable e’ basso, l’uscita e’ su alta impedenza, qualunque sia l’ingresso. 302 8.2 CAPITOLO 8. IL MICROPROCESSORE Z80 Struttura dello Z80 Vediamo ora in dettaglio la struttura del microprocessore Z802 , per cominciare a comprenderne il funzionamento. Questo microprocessore si presenta come un contenitore "Dual In Line" da 40 piedini (Fig. 8.3). Di questi, 8 piedini corrispondono agli 8 bit del dato (D0 . . . D7 ), 16 ai 16 bit M1 MREQ IORQ RD WR RFSH 27 19 20 21 22 28 HALT WAIT INT NMI RESET 18 24 16 17 26 BUSRQ BUSAK 25 23 Clock +5 V Ground 6 11 29 30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 14 15 12 8 7 9 10 13 D0 D1 D2 D3 D4 D5 D6 D7 1 40 20 21 NUMERAZIONE DEI PIEDINI Figura 8.3: I piedini dell’integrato Z80: le frecce indicano il verso in cui fluisce l’informazione. degli indirizzi (A0 . . . A15 ). Due piedini servono per l’alimentazione (+5 V e GND); uno e’ l’ingresso per il clock, φ. I restanti 13 piedini sono utilizzati per i segnali di controllo. Ogni segnale e’ indicato con una sigla mnemonica che ricorda la funzione svolta; poiche’ e’ il livello basso (0 logico) quello che attiva la funzione, le sigle sono soprasegnate. Alcuni segnali sono prodotti dalla CPU, e percio’ in figura sono caratterizzati dalla freccia uscente; altri, invece, sono ricevuti dalla CPU e devono essere forniti dai dispositivi esterni. Vediamo ora in dettaglio questi segnali: BU SRQ Richiesta del bus. Viene utilizzato per consentire ad un dispositivo esterno di prendere il controllo dei bus. Quando BU SRQ viene attivato, la CPU pone nello stato di alta impedenza le sue connessioni col bus dei dati, col bus degli indirizzi e con le uscite di controllo, non appena termina il ciclo macchina in corso. 2 Lo Z80 è nato nel luglio del 1976 per opera di Federico Faggin che, lasciata la Intel dopo aver lavorato sull’8080, aveva fondato la Zilog. Era progettato per offrire compatibilità binaria con l’Intel 8080 in modo che il codice 8080 (in particolare il sistema operativo CP/M) potesse essere eseguito sullo Z80 senza modifiche. Zilog ha concesso in licenza il core dello Z80 senza royalty a tutte le aziende che volessero costruire il chip. Questo ha fatto si che il prodotto guadagnasse consensi nel mercato mondiale, in quanto aziende di gran lunga più grandi iniziarono a produrre lo Z80. 8.2. STRUTTURA DELLO Z80 303 BU SAK Riconoscimento del bus. Questo segnale viene attivato quando, a seguito di un BU SRQ, i bus sono stati posti in uno stato di alta impedenza. RESET Azzeramento. Questo segnale rimette a zero il contenuto del registro PC (Program Counter) ed esegue altre azioni di inizializzazione generale della CPU. A seguito di questo segnale la CPU comincia ad eseguire il programma, partendo dall’istruzione memorizzata nella locazione di memoria 0000. HALT Stato di alt. Indica che la CPU ha eseguito una istruzione di HALT ed e’ in attesa di comando per riprendere l’esecuzione del programma. Finche’ perdura questo stato la CPU esegue istruzioni "fittizie" (NOP) per consentire comunque l’esecuzione di attivita’ di refresh M REQ Richiesta di memoria. Il segnale indica che il bus degli indirizzi contiene un indirizzo valido per un’operazione di lettura o di scrittura in memoria M 1 Ciclo macchina 1. Il segnale indica che e’ in atto un ciclo di prelievo (fetch) del codice operativo dalla memoria. L’inizio dell’esecuzione di ogni istruzione e’ quindi caratterizzato da questo segnale. La presenza simultanea di M 1 e IORQ sta ad indicare un ciclo di riconoscimento di una interruzione IORQ Richiesta di ingresso/uscita. Indica che il bus degli indirizzi contiene, negli 8 bit meno significativi, un indirizzo di un dispositivo di I/O valido per una oprazione di lettura o scrittura W AIT Attesa. Indica alla CPU che la memoria, o altri dispositivi di I/O indirizzati non sono pronti per un trasferimento dati. Finche’ questo segnale e’ attivo la CPU continua l’attuazione di stati di attesa. RD Lettura. La CPU vuole leggere dalla memoria o dal dispositivo di I/O indirizzato. La memoria o altro dispositivo usa questo segnale per porre sul bus dei dati l’informazione richiesta W R Scrittura. Indica che il bus dei dati contiene dati validi da memorizzare nella memoria o nel dispositivo di I/O RF SH Refresh. Indica che i 7 bit meno significativi del bus degli indirizzi contengono un indirizzo valido per una operazione di rinfresco della memoria e che il segnale M REQ attivo in quel momento e’ usato per effettuare una lettura IN T Richiesta di interruzione (Interrupt). Deve essere generato da dispositivi di I/O; l’interruzione viene accettata dalla CPU, in particolari condizioni, alla fine dell’istruzione in corso. N M I Richiesta di interruzione non mascherabile. Questo segnale e’ attivo sul fronte di discesa. Viene sempre accettato, senza condizioni, alla fine dell’istruzione in corso. La CPU riprende l’esecuzione a partire dalla locazione di memoria 0066. Dovremo man mano approfondire la descrizione precedente, che puo’ aver disorientato il lettore, anche per l’introduzione di una serie di termini oscuri, come refresh, ciclo macchina, 304 CAPITOLO 8. IL MICROPROCESSORE Z80 ecc. Tuttavia alcuni punti dovrebbero cominciare ad essere chiari. Si capisce che la memoria deve contenere una serie di istruzioni, per esempio a partire dalla locazione 0000; dando al microprocessore un segnale di RESET esso iniziera’ a prelevarle ed a eseguirle in sequenza. Una istruzione implica tipicamente prelevare dei dati dalla memoria, eseguire un’operazione su di essi e riscrivere in una certa locazione di memoria il risultato, che eventualmente costituisce l’operando di successive manipolazioni. Non poniamoci per ora il problema di come si possano introdurre nella memoria i codici delle istruzioni da eseguire; lo vedremo in seguito. Cominciamo invece ad esaminare la struttura funzionale del microprocessore (Fig. 8.4). Il cuore della CPU e’ costituito da una serie di registri, da una unita’ aritmetica BUS DATI a) CONTROLLO B.D. DECODIFICA ISTRUZIONI E CONTROLLI REGISTRO ISTRUZIONI CONTROLLI CPU/SISTEMA BUS INTERNO ALU REGISTRI b) R e g i s t r i p r i n c i p a l i Registri secondari A F A' F' B C B' C' D E D' E' H L H' L' CONTROLLO B.D. BUS INDIRIZZI I R Index Register IX Index Register IY Stack Pointer Program Counter Figura 8.4: a) Architettura interna dello Z80; b) Registri e logica (ALU) e da alcuni blocchi di controllo. Un bus interno (non accessibile cioe’ da fuori) consente il trasferimento locale delle informazioni. Come si vede l’interazione verso l’esterno avviene attraverso i controllori dei vari bus: indirizzi, dati, e segnali di controllo. Il blocco dei registri contiene 18 registri a 8 bit e 4 registri a 16 bit. I registri di uso generale sono A, F, B, C, D, E, H, L; accanto a questi, detti principali, ve ne sono altri 8, indicati con A’, F’, B’, C’, D’, E’, H’, L’, detti secondari, di cui per ora non ci occuperemo; la loro funzione verra’ spiegata molto piu’ avanti. I registri di uso generale, tranne il registro F, sono destinati come appoggio per gli operandi delle istruzioni ed i risultati dei calcoli eseguiti. Il piu’ frequentemente usato e’ il registro 305 8.2. STRUTTURA DELLO Z80 A, che prende, per ragioni storiche, il nome di accumulatore. Spesso i registri vengono usati in coppie, per contenere informazioni a 16 bit (in particolare si usano le coppie BC, DE, HL). Il registro F ha invece una funzione completamente diversa: ciascuno dei singoli bit che lo compongono da infatti informazioni su particolari caratteristiche dell’ultima operazione eseguita dal microprocessore. In particolare si ha: Bit number Simbolo Significato 0 C Carry 1 N Add/Subtract 2 P/V 3 X Non usato 4 H Half carry 5 X Non usato 6 Z Zero 7 S Sign Parity/Overflow Il significato dei singoli bit e’: Carry Questo bit viene posto ad 1 se un’operazione di addizione o sottrazione ha dato luogo ad un riporto. Add/subtract questo bit viene posto ad 1 se e’ stata eseguita una sottrazione, e posto a 0 se e’ stata eseguita un’addizione. Parity/Overflow Per le operazioni aritmetiche questo bit viene posto ad 1 se vi e’ stato un overflow nel registro A; per operazioni logiche (o di rotazione) il bit viene posto ad 1, se la parita’ del contenuto di A e’ pari, a 0 altrimenti3 . Half Carry Questo bit viene posto ad 1 se un’operazione di addizione o sottrazione ha dato luogo ad un riporto tra il bit 3 e il bit 4 del registro A. Zero Questo bit e’ posto ad 1 se il risultato dell’ultima operazione aritmetica e’ stato uno zero Sign Questo bit memorizza il contenuto del bit piu’ significativo del registro A. Vediamo ora la funzione dei registri di uso speciale: Program Counter, PC Questo registro da 16 bit contiene ad ogni istante l’indirizzo della locazione di memoria in cui sta l’istruzione da eseguire. Normalmente il microprocessore esegue le istruzioni in sequenza ed il registro viene quindi incrementato ogni volta di 1. A volte pero’ il programma contiene istruzioni di "salto" per cui 3 pari La parita’ e’ data semplicemente dal numero di “1” contenuti in A: se e’ un numero pari, la parita’ e’ 306 CAPITOLO 8. IL MICROPROCESSORE Z80 si richiede che l’istruzione successiva venga attinta da un indirizzo completamente diverso: in tal caso il nuovo indirizzo viene trascritto sul PC. Si capisce quindi che il bus degli indirizzi viene predisposto sulla base del contenuto del Program Counter. Stack Pointer, SP La programmazione dello Z80 ammette l’uso di subroutines (cosi’ come le conosciamo nei linguaggi evoluti come il FORTRAN). In tal caso, un salto dal programma principale ad una subroutine richiede che venga tenuta memoria del punto da cui si e’ effettutato il salto, per potervi tornare una volta esaurita l’esecuzione della subroutine. Inoltre una subroutine puo’ chiamarne un’altra, la quale a sua volta puo’ chiamarne un’altra ancora e cosi’ via; si devono quindi memorizzare tanti indirizzi concatenati, per ritrovare la strada inversa. Questo viene fatto, come vedremo meglio in seguito, con la tecnica dello stack (catasta), in cui tutti questi indirizzi vengono memorizzati in una zona della memoria: lo stack pointer contiene un indirizzo che ci consente di ritrovare all’indietro la strada percorsa in tutte le chiamate a subroutines concatenate. Registri indice, IX, IY Sono impiegati quando si utilizza una particolare tecnica di indirizzamento, detta indicizzata. Interrupt vector, I In questo registro viene immagazzinato un byte che contiene informazioni necessarie per gestire alcuni tipi di interruzione. Memory refresh, R Lo Z80 incorpora la funzione di refresh automatico. E’ un’operazione necessaria per il funzionamento delle memorie CMOS (memorie dinamiche); infatti in questo tipo di circuiti l’informazione e’ memorizzata sotto forma di carica elettrica immagazzinata in una piccola capacita’. In teoria questa capacita’ e’ isolata, per cui dovrebbe mantenere indefinitamente il suo stato di carica, ma in realta’ cio’ non puo’ avvenire, per cui essa tende a scaricarsi. E’ necessario allora "rinfrescare" continuamente ( con periodicita’ dell’ordine delle decine di millisecondi) tutte le celle e questo viene semplicemente fatto rileggendone continuamente il contenuto. Il registro R aiuta a fare questa operazione, sfruttando intervalli di tempo in cui il microprocessore non deve accedere alla memoria per fare "reali" operazioni. Noi non useremo memorie di questo tipo, quindi non sfrutteremo questa opzione; ne vedremo pero’ gli effetti quando studieremo in dettaglio la temporizzazione del microprocessore. 8.3 Programmazione dello Z80 Possiamo ora, finalmente, capire un po’ meglio il funzionamento del sistema attraverso alcuni semplici esempi. Come abbiamo piu’ volte detto il microprocessore esegue un compito definito leggendo dalla memoria una serie di istruzioni, che noi avremo preventivamente immagazzinato, che costituiscono il programma. Abbiamo visto che, fornendo un comando di RESET , lo Z80 comincia ad eseguire il programma partendo dalla locazione 0000: possiamo quindi immaginare di scrivere il nostro programma partendo da quella locazione. Naturalmente le istruzioni devono essere date in linguaggio macchina, cioe’ in codice binario, certamente assai difficile da apprendere e ricordare: e’ quindi utile al programmatore fare ricorso ad una forma mnemonica per indicare ogni istruzione, che ci aiutera’ nello 307 8.3. PROGRAMMAZIONE DELLO Z80 scrivere un programma, ma anche nel capire cosa fa un programma, nel momento in cui andiamo a rileggerlo. Non tutte le istruzioni dello Z80 si esauriscono in un byte; ci sono invece istruzioni piu’ complesse che richiedono 2,3 o anche 4 bytes. Di conseguenza l’istruzione deve essere memorizzata in piu’ locazioni di memoria consecutive. Ma vediamo ora un primo esempio, in cui useremo la notazione esadecimale, sia per scrivere gli indirizzi delle locazioni di memoria, sia le istruzioni: Indirizzo Istruzione Mnemonico Commento 0000 00 NOP Non fa niente 0001 C3 JP 0000 Salta alla locazione 0000 0002 00 0003 00 Questo semplice programma di due istruzioni esegue un loop infinito: l’istruzione NOP non fa niente (corrisponde al CONTINUE del FORTRAN), l’istruzione JP 0000 salta alla locazione 0000, cioe’ ritorna al punto di partenza. Come si vede questa istruzione richiede 3 bytes e di conseguenza impegna 3 locazioni di memoria. Vediamo ora un esempio piu’ articolato: Indirizzo Istruzione Mnemonico Commento 0000 06 LDB, 64 Carica nel registro B il numero 0001 64 0002 05 DEC B Decrementa il registro B di 1 0003 C2 JPNZ, 0002 Salta alla locazione 002 se 0004 02 l’ultima operazione non ha dato 0005 00 risultato zero 0006 76 esadecimale 64 HALT Si ferma Questo programma esegue un loop 64 volte (esadecimale) e poi si ferma. In esso abbiamo usato istruzioni lunghe 1,2 e 3 bytes. Abbiamo caricato in B un numero e successivamente lo abbiamo decrementato a passi di 1, eseguendo ogni volta un test per verificare il contenuto del registro. Questo tipo di istruzioni usa proprio il bit 6 del registro F, che viene posto ad 1 quando l’ultima operazione fatta ( in questo caso DEC B) fornisce un risultato zero. Si noti poi il modo con cui abbiamo dato l’indirizzo nell’istruzione JPNZ, 0002: prima il byte meno significativo (02) e poi quello piu’ significativo (00). Questa convenzione e’ del tutto generale e deve essere seguita in tutte le istruzioni che contengono un indirizzo. Il formato che stiamo usando per scrivere il nostro programma e’ quindi chiaro: occorre in generale che il programmatore tenga conto delle locazioni di memoria in cui sono contenute le istruzioni, perche’ le istruzioni contengono indirizzi ben precisi. In questa situazione il programma e’ detto non rilocabile proprio’ perche’ esso funziona solo se e’ caricato 308 CAPITOLO 8. IL MICROPROCESSORE Z80 partendo da una precisa locazione di memoria. Possiamo anche apprezzare l’utilita’ del codice mnemonico (che, ripetiamo, non serve al microprocessore, ma solo a noi). Da questo punto di vista e’ utile anche assegnare dei nomi arbitrari, a scopo mnemonico, a locazioni di memoria. Chiameremo labels questi nomi; l’esempio precedente potrebbe allora essere riscritto: Indirizzo Istruzione Mnemonico Commento 0000 06 LDB, 64 Carica nel reg. B 0001 64 0002 Label loop il numero esadec. 64 05 DEC B Decrementa il reg. B di 1 0003 C2 JPNZ, loop Salta alla loc. 002 se 0004 02 l’ultima operazione non ha 0005 00 dato risultato zero 0006 76 HALT Si ferma Alla locazione 0002 (il bersaglio del salto) abbiamo dato il nome "loop": questo rende piu’ facile rileggere il programma e capirne il funzionamento. E’ un artificio utile, che useremo spesso nei prossimi esempi. Il lettore si porra’ ora due domande: e’ possibile eseguire un programma che non e’ memorizzato a partire dalla locazione 0000? E’ possibile scrivere un programma in modo rilocabile, cioe’ in modo che esso funzioni qualunque sia la zona di memoria in cui esso e’ stato immagazzinato? La risposta e’ si ad entrambe le domande e possiamo vederlo con un ulteriore esempio. Questa volta scriviamo un programma che esegue la somma di due numeri ad 8 bit, e supponiamo di averlo memorizzato a partire dalla locazione 0100; i due addendi sono contenuti nelle locazioni di memoria 0200 e 0201, mentre il risultato viene salvato nella locazione 0202: 309 8.3. PROGRAMMAZIONE DELLO Z80 Indirizzo Label Istruzione Mnemonico Commento 0100 3A LDA,(0200) Carica in A 0101 00 0102 02 0103 2A 0104 01 l’indirizzo del 0105 02 secondo addendo 0106 86 ADDA,(HL) Somma 0107 32 LD (0202),A Scrive in memoria 0108 02 0109 02 010A 76 il primo addendo LDHL, 0201 Carica in HL il risultato HALT Qui abbiamo usato varie tecniche di indirizzamento: abbiamo prelevato il primo addendo fornendo direttamente l’indirizzo; invece per il secondo addendo abbiamo scritto nella coppia di registri HL l’indirizzo e poi esguito una somma tra il contenuto di A e il contenuto della locazione di memoria il cui inirizzo e’ fornito da HL: questo e’ il cosidetto indirizzamento indiretto. Come facciamo a mettere in esecuzione questo programma? Scriveremo semplicemente: Indirizzo Label Istruzione Mnemonico Commento 0000 C3 JP, 0100 Salta a 0100 0001 00 0002 01 Possiamo quindi memorizzare in memoria molti programmi e scegliere quale eseguire modificando semplicemente l’indirizzo posto nelle locazioni 0001 e 0002. Partendo da questo semplice concetto potremmo poi sviluppare tecniche assai piu’ sofisticate per selezionare il programma da eseguire. Notiamo ora che l’esempio appena fatto non contiene nessun riferimento assoluto ad indirizzi di memoria (se non quelli degli operandi e del risultato): quel programma quindi funziona ovunque sia caricato, ed e’ percio’ un esempio di programma rilocabile. Tutti i compilatori evoluti (per esempio il FORTRAN) traducono il programma scritto dall’utente in un codice rilocabile; questo aspetto e’ chiaramente essenziale per consentire al programma di funzionare in qualunque zona della memoria venga caricato. 8.3.1 Temporizzazione dello Z80 La sequenza delle operazioni che un microprocessore effettua e’ rigorosamente scandita dagli impulsi di clock; nello Z80 il clock deve essere fornito dall’esterno, attraverso il piedino 6, e puo’ avere una frequenza qualunque da praticamente zero fino ad un massimo 310 CAPITOLO 8. IL MICROPROCESSORE Z80 di 4 M hz. Questa caratteristica e’ particolarmente utile per fini didattici perche’ potremo, fornendo un clock a bassa frequenza, seguire la temporizzazione dei processi in corso con un normale oscillografo. E’ chiaro che l’esecuzione di un’istruzione, anche semplice, si compone da un punto di vista elettronico di piu’ fasi; pertanto un ciclo di clock non e’ mai sufficiente a completare un’istruzione. La durata minima e’ di 4 cicli di clock; infatti durante i primi due cicli lo Z80 acquisisce il codice dell’istruzione, mentre durante i due successivi decodifica tale istruzione (e, simultaneamente, opera un "refresh" della memoria). E’ evidente che questo e’ il caso piu’ semplice possibile, non esistendo istruzioni che facciano meno di questo. Un esempio e’ l’istruzione DEC A, in cui si richiede di decrementare il contenuto dell’accumulatore. Se l’istruzione non prevede ulteriori accessi alla memoria, essa termina e si passa all’istruzione successiva, incrementando di 1 il Program Counter; altrimenti ogni ulteriore accesso in memoria richiede 3 cicli di clock aggiuntivi. Possiamo quindi parlare di: Ciclo di clock; Ciclo di macchina; Ciclo di istruzione; Un ciclo di istruzione si compone quindi di uno o piu’ cicli macchina, mentre un ciclo macchina si compone di 4 o di 3 cicli di clock, a seconda che sia o meno la prima fase dell’istruzione. Vediamo ora la scala dei tempi in cui avvengono le operazioni descritte (Fig. 8.5). CICLO M1 T1 T2 T3 T4 T1 Clock A0 - A15 MREQ RD M1 D0 - D7 RFSH Figura 8.5: Temporizzazioni dello Z80: fetch dell’istruzione 311 8.3. PROGRAMMAZIONE DELLO Z80 Ogni istruzione inizia con il trasferimento del contenuto del Program Counter sul bus degli indirizzi: questo avviene all’inizio di T1 , primo periodo di clock. Nella seconda meta’ di T1 i segnali M REQ e RD divengono attivi (cioe’ vanno a 0 logico). Nella restante parte di T1 e nel periodo seguente T2 la memoria scrive sul bus dei dati il contenuto della locazione indirizzata; questo dato viene "letto" dalla CPU il corrispondenza al fronte di salita di T3 . E’ possibile che la memoria non sia in grado, in termini di velocita’, di soddisfare la Memory write T1 T2 T3 Memory read T1 T2 T3 Clock A0 - A15 MREQ RD WR D0 - D7 Input - output T1 T2 Tw T3 T1 Clock A0 - A7 IORQ RD Forced Wait State Read Cycle Data WAIT WR Write Cycle Data Figura 8.6: Temporizzazioni dello Z80: a)ciclo di read; b)ciclo di write; c)input/output. richiesta nel tempo previsto: in tal caso essa deve emettere un segnale sulla linea di W AIT . La CPU controlla lo stato di questa linea in corrispondenza del fronte di discesa a meta’ di T2 : se essa e’ attiva inserisce uno o piu’ cicli di clock di attesa, in modo da aspettare la risposta della memoria. Durante T3 e T4 si ha un nuovo segnale di M REQ, questa volta senza RD, ma con RF SH; infatti ora la CPU e’ occupata a decodificare ed eseguire l’istruzione e questo tempo viene usato per il refresh. Si noti che ora sul bus degli indirizzi viene presentato un indirizzo diverso, costruito partendo dal contenuto del registro R e non 312 CAPITOLO 8. IL MICROPROCESSORE Z80 del PC. Il segnale M1 diviene attivo simultaneamente a T1 e resta tale fino alla fine di T2 : questo segnale contraddistingue quindi la fase di fetch di ogni istruzione, e permette tra l’altro, di individuarne l’inizio. Abbiamo detto che un’istruzione puo’ richiedere un ulteriore accesso, in lettura o scrittura, della memoria. Nel caso di lettura esso e’ descritto dalla Fig. 8.6a. In questo caso lo Z80 legge il dato sul fronte di discesa di T3 . L’operazione di scrittura e’ abbastanza diversa (Fig. 8.6b); in questo caso la CPU "presenta" il dato sul bus a meta’ di T1 , ed emette il segnale di W R a meta’ di T2 : la memoria puo’ quindi usare il fronte di discesa di questo segnale per leggere il dato. Naturalmente, sia in lettura che in scrittura, l’uso della linea di W AIT consente di sincronizzarsi con memorie piu’ lente. Le operazioni di Input/Output con dispositivi diversi dalla memoria avvengono in modo analogo, con due differenze: si usa la linea di IORQ invece di M REQ; viene aggiunto comunque un ciclo di "wait" tra T2 e T3 ; questo serve al dispositivo di I/O per avere il tempo di decodificare l’indirizzo ed attivare eventualmente la linea di W AIT (Fig. 8.6c). Conviene infine mostrare cio’ che avviene quando si ha, dall’esterno, un segnale di BU SRQ (Fig. 8.6d). Tale segnale viene campionato dalla CPU con il fronte di salita dell’ultimo periodi di clock di ogni ciclo macchina. Se esso e’ attivo, la CPU pone in alta impedenza le proprie uscite sui bus e sui segnali di controllo, in coincidenza con il fronte di salita del successivo impulso di clock ed attiva la linea BU SAK. Da questo momento, qualsiasi dispositivo esterno puo’ controllare il bus per effettuare trasferimenti tra la memoria ed i dispositivi di I/O. Sfrutteremo questa funzione per caricare in memoria i nostri programmi di prova. 8.3.2 Le istruzioni dello Z80 Possiamo ora analizzare in modo sistematico il set di istruzioni disponibile per lo Z80. Diciamo anzitutto che il progettista ha cercato di sfruttare al massimo le potenzialita’ del sistema; infatti in linea di principio il set di istruzioni indispensabile per poter risolvere qualunque problema matematico o di manipolazione di dati e’ in realta’ relativamente esiguo. Tuttavia l’avere a disposizione istruzioni addizionali, e la possibilita’ di usare molti diversi modi di indirizzamento puo’ consentire di scrivere programmi molto piu’ veloci ed efficienti. Le istruzioni piu’ importanti hanno, come abbiamo gia’ visto, un codice a 1 byte; pertanto sono possibili 256 istruzioni diverse, che possiamo visualizzare sotto forma di matrice (Fig. 8.7), dove le righe sono associate al primo carattere esadecimale, e le colonne al secondo: ad esempio, il codice 0D corrisponde all’istruzione DEC C, mentre il codice 86 corrisponde all’istruzione ADD A,(HL), gia’ vista in un precedente esempio. In questa matrice sono anche contenute le istruzioni a piu’ bytes: ad esempio C3 (salta a ...) si completa con due bytes di indirizzo, mentre 3E (carica in A un numero a 8 bit) si completa con un byte contenente il dato da caricare nell’accumulatore. Quando l’istruzione viene decodificata la CPU capisce quindi se deve o meno aspettarsi ulteriori bytes di completamento. 8.3. PROGRAMMAZIONE DELLO Z80 Figura 8.7: Codici operativi dello Z80: le righe sono associate al primo carattere esadecimale dell’istruzione, la colonne al secondo carattere. Le istruzioni con (*) si completano con un byte; le istruzioni con (**) si completano con due bytes; le istruzioni con [1] hanno un codice di piu’ bytes. 313 314 CAPITOLO 8. IL MICROPROCESSORE Z80 Un elenco completo delle istruzioni, con una breve descrizione del loro significato, e’ riportato nell’Appendice A (chi fosse interessato a maggiori dettagli puo’ consultare il manuale dello Z80). Possiamo tuttavia qui tentare una descrizione generale osservando che esse possono essere divise in varie categorie: Caricamento a 8 o 16 bit Queste istruzioni muovono i dati tra i vari registri della CPU, ovvero tra i registri e la memoria. Questo gruppo comprende pure istruzioni di caricamento immediato del dato specificato nell’istruzione stessa in uno dei registri o in una qualsiasi posizione di memoria. Le istruzioni di scambio (Exchange) consentono poi di effettuare lo scambio tra il contenuto di due registri. In questo ambito rientrano anche istruzioni che, ad esempio, consentono di scambiare il contenuto dei registri principali con quello dei registri secondari. Istruzioni aritmetiche e logiche Operano su dati posti nell’accumulatore e in un altro qualsiasi dei registri di uso generale, oppure su dati posti in accumulatore e una qualsiasi locazione di memoria. Sono anche possibili somme e sottrazioni a 16 bit. Istruzioni di rotazione e scorrimento Permettono di far ruotare verso destra o verso sinistra il contenuto di qualunque registro o locazione di memoria, con o senza l’utilizzo del bit di Carry del registro F. Inoltre sono possibili rotazioni separate del gruppo meno significativo di 4 bit (nibble). La differenza tra rotazione e scorrimento e’ mostrata in Fig. 8.8. SCORRIMENTO (SHIFT) "0" ROTAZIONE (SKEW) CARRY CARRY Figura 8.8: Rotazioni e scorrimenti dei registri Manipolazioni di singoli bit E’ possibile esaminare, porre a 1 (set), o porre a 0 (reset), singoli bit di ogni registro, o di qualunque locazione di memoria. Istruzioni di salto, chiamata, o ritorno E’ possibili fare salti (Jump), ovvero chiamate di subroutines (Call) con relativi ritorni. I salti possono essere condizionati al valore di specifici bits del registro F, in particolare il bit Z (zero) o il bit C (carry). 8.3. PROGRAMMAZIONE DELLO Z80 315 Istruzioni di input/output Esistono varie istruzioni per effettuare operazioni di I/O con dispositivi esterni, che vengono selezionati utilizzando gli 8 bit meno significativi del bus degli indirizzi. E’ quindi possibile in linea di principio avere 256 dispositivi di I/O diversi. Torneremo piu’ avanti su queste istruzioni. Trasferimento e ricerca di blocchi di dati E’ possibile trasferire un blocco di dati di qualsiasi dimensioni tra due diverse posizioni di memoria. Inoltre e’ possibile analizzare un blocco di memoria per ricercare una particolare configurazione di 8 bit. E’ anche interessante osservare che esistono vari modi di indirizzamento della memoria, come abbiamo gia’ imparato attraverso gli esempi visti; e’ a questo punto utile esaminarli sistematicamente. Indirizzamento immediato: Il dato (1 byte) viene fornito direttamente e caricato sul registro. Sono quindi istruzioni del tipo: LDr, n: carica il byte n nel registro r Il registro puo’ essere A,B,C,D,E,H,L Indirizzamento immediato esteso: LDdd, nn: carica i due bytes nn nella coppia di registri dd La coppia di registri puo’ essere BC,DE,HL oppure il registro SP. Ovviamente i due bytes vanno dati nel consueto ordine (LSB e MSB) Indirizzamento implicito: LDr, r’: il contenuto del registro r’ e’ copiato in r I registri utilizzabili sono A,B,C,D,E,H,L Indirizzamento indiretto: LDr,(dd): carica nel registro r il contenuto della locazione di memoria il cui indirizzo e’ nella coppia di registri dd. Normalmente la coppia usata e’ HL. Indirizzamento indicizzato: LDr,(IX+d): carica nel registro r il contenuto della locazione di memoria indirizzata da IX piu’ un offset d; d e’ un byte che viene fornito direttamente, ed e’ interpretato come un numero di 7 bit con segno. Quindi l’offset possibile e’ ±127. Indirizzamento relativo: Si applica solo nelle istruzioni di salto; consente un salto di ±127 locazioni relativamente alla locazione corrente. E’ un’istruzione del tipo: JR e: salta dell’offset e (fornito direttamente) ovvero JRcc, e: salto condizionato (cc puo’ essere Z,NZ,C,NC) 316 CAPITOLO 8. IL MICROPROCESSORE Z80 Modificato in pagina zero: Esiste solo per l’istruzione RST (restart): il programma salta ad alcune locazioni predefinite della pagina zero (cioe’ della parte iniziale della memoria). Poiche’ e’ un’istruzione a un solo byte, la sua esecuzione e’ piu’ veloce del normale salto, e puo’ quindi essere utile quandi si deve velocemente reagire ad un interrupt esterno. L’istruzione quindi e’ scritta come: RSTgg, dove gg puo’ essere 00, 08, 10, 18, 20, 28, 30, 38. 8.3.3 Il concetto di "catasta" DATI PUSH POP Stack Pointer base dello stack Figura 8.9: Catasta Vediamo ora come viene gestito il problema degli indirizzi quando si utilizzano programmi strutturati in subroutines. Il programmatore deve inizialmente caricare nello Stack Pointer un indirizzo, corrispondente ad una zona di memoria libera, cioe’ non utilizzata per altri scopi. Nel momento in cui, nel corso del programma, viene incontrata l’istruzione CALL nn dove nn e’ l’indirizzo di partenza della subroutine, lo Z80 effettua le seguenti operazioni: il contenuto del Program Counter viene trasferito nelle locazioni di memoria immediatamente precedenti l’indirizzo contenuto nello Stack Pointer; il contenuto dello Stack Pointer viene decrementato di 2; nn viene trasferito nel Program Counter. L’ultima istruzione della subroutine deve essere l’istruzione RET che viceversa provoca i seguenti effetti: il contenuto della locazione di memoria puntata dallo Stack Pointer e di quella immediatamente successiva vengono trasferite nel Program Counter; il contenuto dello Stack Pointer viene incrementato di 2. Con questa tecnica e’ possibile avere infinite chiamate a subroutines, una dentro l’altra, e ritrovare via via tutti gli indirizzi di ritorno man mano che ogni subroutines finisce. Si 8.3. PROGRAMMAZIONE DELLO Z80 317 noti che lo stack (cioe’ la catasta) parte da una base e cresce verso indirizzi decrescenti (Fig. 8.9). E’ anche possibile intervenire direttamente sulla catasta con le istruzioni PUSH e POP. Infatti l’istruzione: PUSH pq (pq: coppia di registri) trasferisce sulla catasta il contenuto dei due registri e dcrementa di 2 lo Stack Pointer. Invece POP pq copia nei registri il contenuto delle 2 locazioni piu’ alte della catasta e incrementa di 2 il contenuto dello Stack Pointer. Oltre che per gestire le subroutines, lo schema della catasta puo’ essere usato per l’immagazzinamento temporaneo di dati, o per la gestione degli interrupts, di cui parleremo piu’ avanti. 8.3.4 Operazioni di ingresso/uscita In linea di principio un dispositivo periferico potrebbe essere considerato come una locazione nello spazio degli indirizzi, e quindi si potrebbero effettuare trasferimenti di dati attraverso semplici istruzioni di load. Molti microprocessori operano in questo modo; invece lo Z80 prevede istruzioni speciali per le operazioni di ingresso/uscita, che utilizzano solo gli 8 bit meno significativi del bus degli indirizzi e si distinguono dalle operazioni in memoria perche’ attivano la linea IORQ anziche’ la linea M REQ. Uno dei vantaggi e’ quello di avere istruzioni a due soli bytes, quindi piu’ veloci. Le istruzioni di input sono di due tipi: IN A,(n) codice oggetto DB .. il dispositivo periferico con indirizzo n e’ letto ed il dato e’ posto in A. n e’ un numero a un byte fornito direttamente. Oppure: IN r,(C) il dispositivo periferico il cui indirizzo e’ contenuto in C e’ letto ed il dato e’ posto nel registro r. I registri utilizzabili sono A,B,C,D,E,H,L. Analogamente, le operazioni di output sono gestite dalle istruzioni: OUT (n),A codice oggetto D3 .. ovvero OUT (C),r dove di nuovo r indica uno dei registri A,B,C,D,E,H,L. 8.3.5 Interruzioni L’interazione del microprocessore con il modo esterno richiede spesso la possibilita’ di intervenire in modo asincrono; in altre parole il microprocessore deve poter gestire operazioni di ingresso/uscita che vengono richieste dall’esterno, in un momento qualunque. Normalmente il microprocessore sta eseguendo un programma e deve a un certo istante "servire" la richiesta esterna: questo significa interrompere il programma in corso, andare ad eseguire una subroutine di servizio, e poi riprendere il normale lavoro da dove lo si e’ interrotto. 318 CAPITOLO 8. IL MICROPROCESSORE Z80 Naturalmente per poter riprendere il lavoro e’ necessario aver salvato il contenuto dei registri quale era prima dell’interruzione. Questo e’ molto facilitato dalla esistenza dei registri secondari; infatti il programmatore puo’, all’inizio della subroutine di servizio, spostare il contenuto dei registri principali in quelli secondari, eseguire cio’ che deve essere fatto per servire l’interruzione e, alla fine, ripristinare il contenuto dei registri principali. Lo Z80 ha a disposizione 3 linee per la gestione degli interrupts: IN T Questo segnale puo’ abilitato con l’istruzione EI, o puo’ essere "mascherato", cioe’ disabilitato, con l’istruzione DI. La reazione puo’ essere di 3 tipi diversi, selezionati con le istruzioni IM0,IM1 e IM2. interrupt di modo 0 All’arrivo del segnale IN T lo Z80 genera un segnale M 1 e IORQ e si aspetta di ricevere sul bus dei dati, entro il ciclo di clock successivo, un byte che viene interpretato come un’istruzione da eseguire. Tipicamente la periferica interessata porra’ sul bus dei dati un’istruzione RSTgg, che provoca il salto alla locazione gg; qui il programmatore avra’ posto una routine che serve l’interruzione. E’ chiaro che in questo modo si possono prevedere fino a sei routines diverse, ciascuna destinata ad una specifica periferica interrupt di modo 1 In questo caso lo Z80 salta direttamente alla locazione 38 (cioe’ come se avesse ricevuto un comando RST 38); chiaramente e’ una modalita’ molto semplice e veloce ma poco flessibile. interrupt di modo 2 E’ il modo piu’ sofisticato e flessibile: come nel modo 0 lo Z80 legge il dato presente sul bus, ma lo interpreta come la parte meno significativa di un indirizzo. La parte piu’ significativa viene presa dal registro I, e l’indirizzo completo viene caricato sul Program Counter; in questo modo possono essere messe in esecuzione molte routines diverse per servire in modo adeguato svariati dispositivi di I/O NMI Non puo’ essere disabilitato da programma (la sigla significa infatti Interrupt Non Mascherabile). Alla fine dell’istruzione in corso lo Z80 salva nello stack il contenuto del Program Counter carica su di esso l’indirizzo contenuto nelle locazioni 66 e 66+1. Quindi il programmatore deve mettere in queste locazioni l’indirizzo di partenza della routine di servizio. BU SRQ E’ il meccanismo a piu’ alta priorita’, e viene normalmente usato per il DMA (Direct Memory Acess), cioe’ trasferimenti diretti da memoria a periferica o viceversa. Le prestazioni offerte dallo Z80 possono sembrare fin troppo complicate; tuttavia esse possono essere necessarie per gestire sistemi complessi, con molte periferiche. In linea di principio, il programmatore deve prevedere anche la possibilita’ che un interrupt arrivi mentre lo Z80 sta servendo un interrupt arrivato in precedenza da un’altra periferica; si capisce come il problema diventi rapidamente molto delicato. 319 8.4. LA SCHEDA DIDATTICA Z80 8.4 La scheda didattica Z80 Data la complessita’ dell’hardware e del software necessari per trasformare un microprocessore in un sistema funzionale, esistono i cosidetti sistemi di sviluppo (microcomputer development systems) offerti in commercio dagli stessi fabbricanti del microprocessore o da societa’ del settore, che permettono sia l’addestramento che la realizzazione di sistemi funzionali completi. Tuttavia a Roma abbiamo preferito sviluppare un sistema ancora piu’ semplice, che chiameremo scheda didattica (Fig. 8.10), particolarmente adatta per esperienze sullo Z80 realizzate dagli studenti. Essa verra’ descritta nel seguito, e ci servira’ come base per la realizzazione di alcune semplici applicazioni. La scheda, dotata di una memoria CMOS statica da 2 kbytes, consente di scrivere ed eseguire piccoli programmi, collegare e gestire periferiche, visualizzare lo stato dei bus. E’ corredata da un generatore di clock da 1 M hz, ma puo’ accettare un clock esterno di qualunque frequenza per consentire la visualizzazione dello stato delle varie linee. DISPLAY DATI Generatore di clock DISPLAY INDIRIZZI Bus Dati MEMORIA Z80 INTERFACCIA DI INGRESSO/ USCITA Bus Indirizzi INTERFACCIA DI GENERAZIONE DEGLI INDIRIZZI INTERFACCIA DI SCRITTURA DATI Bus request Reset Figura 8.10: La scheda didattica Z80: schema a blocchi. 8.4.1 Descrizione circuitale La CPU Z80 ha il bus dei dati connesso ad una RAM CMOS statica da 2 Kbytes ed all’interfaccia per la scrittura di dati; e’ inoltre previsto un connettore pe il bus alla basetta per esperimenti. Il bus degli indirizzi (si utilizzano solo le linee A0 . . . A7 ) e’ collegato alla RAM, all’interfaccia di generazione degli indirizzi ed a un decodificatore (74LS138) per la selezione dei dispositivi di I/O che possono essere allocati sulla basetta per esperimenti. I segnali di controllo utilizzati sono M REQ, RD, W R e BU SAK per la temporizzazione 320 CAPITOLO 8. IL MICROPROCESSORE Z80 delle operazioni in memoria, BU SRQ e BU SAK per la gestione dei bus, IORQ per l’interfaccia di ingresso/uscita, RESET per l’inizializzazione e HALT per visualizzare lo stato di (eventuale) attesa della CPU. I restanti segnali non sono utilizzati e i corrispondenti piedini sono lasciati aperti o collegati, se necessario, a +5 V tramite un resistore di pull-up. Interfaccia di generazione degli indirizzi Il compito di questo blocco e’ quello di generare, in sequenza, gli indirizzi da porre sul bus relativo. Tali indirizzi sono visualizzati su un display esadecimale. L’indirizzo viene fornito dalle uscite di 2 contatori up/down (74LS193) collegati in cascata e comandati da un monostabile doppio (74LS123). Due tasti (UP e DOWN) consentono di incrementare o decrementare il conteggio. Il comando di reset generale azzera il contenutoi dei contatori, mentre, mantenendo premuto uno dei tasti, si genera un treno di impulsi che consente il rapido incremento o decremento degli indirizzi generati. Gli indirizzi ottenuti vengono inseriti sul bus tramite un buffer (74LS244) abilitato dal segnale BU SAK della CPU; cio’ evita interferenze con la normale attivita’ della CPU. Interfaccia di scrittura dati in memoria I dati da scrivere in memoria vengono predisposti mediante 8 interruttori a levetta, collegati al bus mediante un buffer (74LS244) abilitato dall"AND logico tra BU SAK e il comando di scrittura DAT AW RIT E; tale comando e’ fornito da un flip-flop SR attivato da un pulsante. Visualizzazione dei dati e degli indirizzi La visualizzazione dei dati e’ ottenuta da due decodifiche esadecimali (9368) che pilotano due display a sette segmenti; esse sono abilitate dal segnale di BU SAK. La visualizzazione degli indirizzi e’ effettuata in modo analogo, ma la sua abilitazione e’ piu’ complessa. Infatti essa e’ data da BU SAK + (RD · CLOCK) In questo modo il contenuto del bus e’ visualizzato sia quando si ha il controllo manuale del bus, sia durante la fase di lavoro della CPU. In quest’ultimo caso l’AND tra il clock e il segnale di RD e’ necessario per eliminare gli indirizzi di refresh, che lo Z80 presenta sul bus alternati agli indirizzi veri. Un oscillatore realizzato con un 555 abilita ad intervalli regolari tutte le decodifiche, con una frequenza abbastanza adeguata da sfruttare l’effetto di persistenza dell’immagine, e nello stesso tempo riduce la potenza dissipata dai display. Memoria La memoria viene indirizzata attraverso gli 8 bit meno significativi del bus; gli ulteriori 3 piedini di cui essa dispone (A8 , A9 A10 ) sono posti a+5 V con dei resistori di pull-up ed hanno la possibilita’ di essere collegati a massa con dei ponticelli. In questo modo possono essere utilizzati solo 256 bytes per volta, sufficienti tuttavia per gli scopi didattici. con tutti e 3 i ponticelli inseriti gli indirizzi disponibili vanno da 000 a 0F F ; senza nessun ponticello da 700 a 7F F . 8.4. LA SCHEDA DIDATTICA Z80 Figura 8.11: La scheda didattica Z80: diagramma circuitale 321 322 CAPITOLO 8. IL MICROPROCESSORE Z80 La memoria viene utilizzata sia dalla CPU, sia per l’inserimento manuale dei programmi e dei dati; la sua abilitazione e’ quindi data da: BU SAK + M REQ · (RD + W R) in questo modo non vengono ricevuti gli indirizzi di refresh, irrilevanti per una memoria statica. Interfaccia di ingresso/uscita I circuiti di I/O vengono indirizzati attraverso un decodificatore (74LS138) abilitato dal segnale IORQ della CPU e dal bit A3 del bus degli indirizzi. Si utilizzano solo le tre linee A0 , A1 , A2 e quindi si possono abilitare fino ad 8 periferiche. Tuttavia vengono utilizzate solo le prime quattro uscite del decodificatore (Q0 . . . Q3 ), che possono essere connesse alla basetta per esperimenti. E’ inoltre previsto, tramite opportuni ponticelli, la possibilita’ di collegare la sezione di generazione degli indirizzi come periferica di ingresso, e quella di visualizzazione dei dati come periferica d’uscita. In questo modo si possono realizzare semplici operazioni di input/output. Generatore di clock Il segnale di clock puo’ essere prelevato tramite un commutatore (CLOCK SELECT ) da due diverse sezioni. La prima e’ costituita da un oscillatore a 1 M hz formato da due invertitori (7404) con componenti opportuni, seguito da un buffer. La seconda sezione accetta un clock esterno fornito da un generatore che, attraverso uno stadio separatore, pilota un multivibratore (74121) che fornisce il segnale TTL per la CPU. Poiche’ l’ingresso del multivibratore e’ a trigger di Schmitt e’ possibile pilotare il sistema con impulsi di breve durata (circa 200 ns formati dalla rete RC) e qualunque frequenza, mentre la CPU e’ protetta da eventuali sovratensioni. E’ anche possibile, mediante un opportuno ponticello, utilizzare come clock esterno a bassa frequenza (100 Hz) il segnale di blanking dei display a sette segmenti. Per immettere un programma nel sistema e farlo eseguire si deve quindi operare nel seguente modo: 1. prendere il controllo del bus mediante l’interruttore BU SREQU EST ; l’accensione di un led verde ci conferma che la CPU ha riconosciuto e accettato la nostra richiesta; 2. mediante i pulsanti UP e DOWN posizionare il contatore degli indirizzi nella locazione di memoria da cui si desidera far partire il programma; l’indirizzo selezionato appare sul display; 3. impostare, mediante gli 8 interruttori, il codice binario dell’istruzione che si vuole inserire in memoria; 4. scrivere in memoria il dato impostato mediante il pulsante DATA WRITE; 5. incrementare di uno il contatore degli indirizzi e ripetere i passi 3,4 e 5 fino al termine del programma da inserire; 8.4. LA SCHEDA DIDATTICA Z80 323 6. l’esattezza dei dati memorizzati puo’ essere verificata locazione per locazione, decrementando il contatore degli indirizzi; 7. restituire i bus alla CPU mediante l’interruttore BUSREQUEST (il led verde si spegne); 8. premere per un istante il pulsante di RESET; si accende il led rosso di RUN e la CPU cerca la prima istruzione da eseguire nella locazione 0000. 324 CAPITOLO 8. IL MICROPROCESSORE Z80 Capitolo 9 Microcontrollori 9.1 Introduzione Abbiamo studiato nel Cap 8 i microprocessori, ovvero dispositivi digitali che contengono in un unico integrato tutta la logica di elaborazione ed eventualmente locazioni di memoria. Tuttavia essi richiedono sempre delle unita’ esterne (memorie, gestione dei dispositivi periferici) per poter scambiare informazioni e interagire con l’esterno. Un microcontrollore è invece un sistema a microprocessore completo, che integra in uno stesso chip il processore, memoria permanente, memoria volatile, canali di input-output oltre ad eventuali altri blocchi specializzati. E’ progettato per ottenere la massima autosufficienza funzionale ed ottimizzare il rapporto prezzo-prestazioni per usi applicativi di ogni genere, finalizzati al controllo di sistemi ellettro-meccanici. Il primo microchip ottimizzato per applicazioni di controllo è stato il modello 8048 di Intel, uscito nel 1975, con RAM e ROM sullo stesso chip. Questo componente è stato utilizzato in piu’ di un miliardo di tastiere per PC e numerose altre applicazioni. L’integrazione delle periferiche su un singolo chip porta ad una serie di vantaggi: • minor numero di dispositivi discreti necessari alla realizzazione di un sistema; • dimensioni ridotte; • costi inferiori; • maggiore affidabilita’; • risparmio energetico. Naturalmente, rispetto ai microprocessori, vi sono anche delle limitazioni: la potenza di calcolo e’ molto inferiore, la maggioranza dei dispositivi non dispone di una Floating Point Unit, la quantita’ di dati gestibile e’ limitata Oggi si producono annualmente decine di miliardi di pezzi, i principali produttori sono: • Renesas Technology (Giappone) • Freescale Semiconductor (USA) • Atmel (USA) 325 326 CAPITOLO 9. MICROCONTROLLORI • Microchip Technology (USA) • Infineon Technologies (Germania) • Texas Instruments Incorporated (USA) • Fujitsu (Giappone) • NXP Semiconductors (Paesi Bassi) • STMicroelectronics (Francia, Italia) • Samsung Electronics (Corea del Sud) Un microcontrollore e’ costituito da vari blocchi logici e funzionali: • CPU; • Memoria di programma: ROM, EPROM, FLASH; • Memoria dati: RAM, EPROM; • Oscillatore; • Porte logiche di I/O • Gestione di Interrupt; • Timer, contatori; • Moduli di comunicazione seriale (SPI, I2C, USB....); • I/O analogico (ADC, DAC, PWM). Per utilizzare un microcontrollore e’ poi necessario disporre di un Sistema di sviluppo ovvero dell’insieme di strumenti (hardware e software) necessari per generare il codice che deve essere eseguito dal processore, metterlo a punto e collaudarlo. in genere gli stessi produttori forniscono questi strumenti, ma possono anche essere realizzati da terze parti. Questo e’ il caso di Arduino. I microprocessori si distinguono tra loro per • Set di istruzioni: RISC o CISC; • Organizzazione della memoria: architettura di Von Neumann o Harvard; • Frequenza di clock; • Numero di periferiche integrate; • Consumo; • Numero di bit: 8/16/32. 9.2. I MICROCONTROLLORI ATMEL AVR 327 Nei sistemi CISC (Complex Instruction Set Computer) il microprocessore ha un set di istruzioni estremamento ampio, cosa che rende la programmazione piu’ agevole e flessibile. Naturalmente questo implica una grande complessita’ della parte di decodifica delle istruzioni con conseguente occupazione di volume nel chip. Nei sistemi RISC il set di istruzioni e’ piu’ ristretto ma questo e’ compensato dalla possibilita’ di avere un gran numero di registri nel chip e quindi di avere maggior semplicita’ e velocita’ di esecuzione. Nell’ar- Figura 9.1: a): Architettura di Von Neumann; b): Architettura Harvard chitettura di Von Neumann la memoria contiene sia il programma che i dati. In quella Harvard la memoria che ospita il programma e’ separata da quella dei dati, i trasferimenti avvengono su bus diversi. Cio’ consente alla CPU di leggere un’istruzione e nello stesso tempo leggere o scrivere un dato, con ovvio vantaggio di velocita’. 9.2 I microcontrollori ATMEL AVR AVR e’ una famiglia di microcontrollori RISC ad architettura Harvard sviluppata dalla Atmel a partire dal 1996. L’AVR utilizza una memoria flash interna per il programma: questo permette di cancellare e riscrivere una nuova versione in pochi secondi e anche senza rimuovere il microcontrollore dalla scheda su cui e’ montato, velocizzando enormemente il processo di correzione e messa a punto del codice. Le caratteristiche principali sono: • Memoria di programma di tipo Flash (riprogrammabile almeno 10000 volte); • Memoria EEPROM (riscrivibile almeno 100000 volte); • Memoria RAM statica; • Clock interno calibrato; • Porte logiche di I/O; • Gestione di Interrupt; • Timer, contatori; • ADC, DAC, PWM 328 CAPITOLO 9. MICROCONTROLLORI • Comunicazione seriale (USART, SPI, TWI). La famiglia AVR comprende 4 gruppi con caratteristiche differenti: ATtiny, ATMega, ATXMega e AT90. 9.3 Il microcontrollore ATMega328P Figura 9.2: Piedinatura del ATMega328P 9.3.1 Caratteristiche generali Il microcontrollore ATMega328P e’ il piu’ potente della famiglia a 8 bit ATmega. Le principali caratteristiche sono: • Tecnologia CMOS; • Flash memory: 32 kB; • EEPROM: 1 kB; • SRAM: 2 kB; • Clock: fino a 20 M Hz; • I/O digitali 14 (di cui 6 PWM); • Ingressi analogici: 6, 9.3. IL MICROCONTROLLORE ATMEGA328P 329 • Alimentazione: 1.8 ÷ 5.5 V In Fig 9.2 e’ riportata la disposizione e il significato dei pin dell’integrato. Per comprenderne il significato e’ bene sapere che nella terminologia Atmel i pin di ingresso e uscita sono raggruppati in blocchi denominati Ports. Abbiamo allora • VCC: Alimentazione; • GND: Massa; • Port B (PB0-PB7): 8 linee di I/O bidirezionali; • Port C (PC0-PC6): 7 linee di I/O bidirezionali (il pin PC6 ha anche la funzione di RESET); • Port D (PD0-PD7): 8 linee di I/O bidirezionali; • AVCC: Alimentazione per l’ADC interno; • AREF: Riferimento analogico per l’ADC interno. La Fig 9.3 mostra il diagramma a blocchi del microcontrollore. L’integrato contiene una memoria Flash Programmabile di 32 kB, 2 kB di memoria SRAM e 1 kB di EEPROM, i moduli per la gestione delle linee di Input-Output , un oscillatore calibrato per la generazione interna del clock, un timer a 16 bit. Un convertitore ADC che puo’ gestire, tramite multiplexer, 6 input analogici, un riferimento interno di tensione a bandgap, moduli per la gestione dei principali protocolli i comunicazione con perieriche (USART; SPI, I2C). La famiglia AVR e’ basata sull’architettura Harvard, ovvero utilizza memorie e bus separati per il programma e per i dati. Le istruzioni sono eseguite con una pipeline a un livello, mentre un’istruzione viene eseguita, si carica la successiva dalla memoria di programma. La Fig 9.4 mostra l’architettura della CPU, il cuore del microcontrollore, che sovraintende alla esecuzione del programma. Quindi accede alle varie memorie, esegue i calcoli, gestisce le perieriche e gli interrupts. Contiene la ALU, 32 registri da 8 bit di uso generale, il registro di stato, il Program Counter, e l’Instruction Register. Un bus dei dati a 8 bit collega la CPU alle periferiche e alle memorie dati, mentre la memoria Flash (destinata al programma) e’ connessa da un bus indipendente. I 32 registri a 8 bit sono connessi direttamente alla ALU, questo consente di eseguire operazioni logico-aritmetiche su due operandi in un ciclo di clock. 6 dei 32 registri possono essere usati come 3 registri a 16 bit di indirizzamento indiretto della memoria dati. Il programma da eseguire risiede sulla memoria Flash, non volatile 1 . Per caricarlo e’ necessario connettere il microcontrollore ad un apposito programmatore. Questa soluzione e’ conveniente per applicazioni in cui il programma e’ molto stabile e non deve essere modificato frequentemente. In alternativa, gli ultimi 512 bytes della memoria possono essere caricati con un apposito programma, il Boot Loader, con il quale quindi il microcontrollore puo’ gestire facilmente il caricamento del programma applicativo, attraverso una delle varie interfacce di cui e’ dotato. In questo caso la memoria Flash e’ logicamente divisa in due sezioni, la sezione del programma di boot e quella del programma applicativo. 1 La Atmel dichiara che la persistenza dell’informazione e’ di circa 100 anni. 330 CAPITOLO 9. MICROCONTROLLORI Figura 9.3: Diagramma a blocchi del ATMega328P 9.3. IL MICROCONTROLLORE ATMEGA328P 331 Figura 9.4: Architettura della CPU I dati prodotti e utilizzati durante l’esecuzione del programma sono memorizzati nella memoria statica (volatile) SRAM oppure, per le informazioni permanenti o semi-permanenti sulla piccola EEPROM (Electrical Erasable Programmable Read Only Memory). La SRAM viene anche utilizzata per memorizzare lo Stack, necessario per la gestione delle subroutines e degli interrupts e controllato dal registro Stack Pointer. Come abbiamo detto il microcontrollore sfrutta il meccanismo di pipelining per ottenere una maggiore velocita’ di esecuzione delle istruzioni (Fig 9.5), la gran parte delle istruzioni sono eseguite in un ciclo di clock. Interrupts Ci sono varie possibili sorgenti di interrupts, interne o esterne e per ciascuna di esse un interrupt vector2 Gli interrupt vectors sono contenuti nella memoria di programma e ordinati in base alla priorita’. Il Reset e’ l’interrupt con priorita’ piu’ alta. Per ogni interrupt 2 L’interrupt vector contiene l’indirizzo di partenza del programma di gestione dell’interrupt stesso (Interrupt Handler). 332 CAPITOLO 9. MICROCONTROLLORI Figura 9.5: Temporizzazione delle istruzioni e’ previsto 1 bit individuale di abilitazione, ma nello Status Register vi e’ un bit (Global interrupt enable) di abilitazione globale. Quando arriva un interrupt il Global interrupt enable viene disabilitato e si avvia l’esecuzione della routine di servizio corrispondente. All’uscita di questa il Global bit viene nuovamente abilitato. Ci sono sostanzialmente due tipi di interrupt: nel primo tipo, l’evento viene memorizzato in un bit (interrupt flag) e viene servito appena possibile. Ovvero, se una o piu’ condizioni di interrupts avvengono quando il Global enable e’ disabilitato, non vengono perse e vengono servite non appena il Global enable e’ abilitato di nuovo. Nel secondo tipo invece l’interrupt verra’ servito solo se la condizione che lo ha causato persiste quando il Global enable e’ abilitato di nuovo. Quando l’AVR esce da un interrupt ritorna sempre al programma principale ed esegue una istruzione prima di occuparsi di eventuali altri interrupt in attesa. Clock il microcontrollore contiene un complesso sistema di gestione e utilizzo del clock (Fig 9.6). Sono possibili varie sorgenti di cloc: anzitutto puo’ essere utilizzato un clock interno (a frequenza 8 M Hz, ma modificabile), ma e’ anche possibile collegare un oscillatore esterno convenzionale, o al quarzo, con una frequenza compresa tra 0 e 20 M Hz. Il clock viene poi opportunamente distribuito ai vari blocchi funzionali: CPU, memorie, timers, ADC. Gestione dell’alimentazione La gestione dell’alimentazione ai vari blocchi funzionali del microcontrollore serve, se necessario, a ridurre il consumo: esistono vari sleep mode selezionabili da programma per 9.3. IL MICROCONTROLLORE ATMEGA328P 333 Figura 9.6: Clock disattivare momentaneamente funzioni non necessarie, o addirittura tutto il microcontrollore, che resta in attesa dell’arrivo di un interrupt esterno che lo riporta allo stato normale. E’ anche importante mantenere sotto controllo la tensione di alimentazione. Se essa scende sotto un certo livello (brown-out) puo’ causare malfunzionamenti nel microcontrollore e risultati erratici nello svolgimento del programma. Se abilitato, il Brown-out Detector invia un segnale di reset quando la tensione di alimentazione scende sotto un livello prefissato. Occorre poi essere sicuri che al momento dell’accensione il microcontrollore si avvii correttamente, iniziando ad eseguire il programma nel modo giusto. Per questo c’e’ un dispositivo (Power on reset) che invia il segnale di reset finche’ la tensione di alimentazione e’ ad sotto di una certa soglia. Watchdog Il watchdog e’ un mecccanismo di sicurezza che puo’ essere utilizzato per evitare che il microcontrollore resti bloccato a causa di errori inaspettati nel programma o comunque altre cause. il sistema e’ composto da un oscillatore a 128 kHz e un contatore con varie uscite. Sulla base di questo si puo’ costruire una logica di time-out che puo’ essere utilizzata per inviare un segnale di reset al microcontrollore. Reset Ci sono quindi varie sorgenti che provocano il reset del microcontrollore: • Un livello basso sul pin di reset; • Power-on Reset; • Brown-out-Reset; 334 CAPITOLO 9. MICROCONTROLLORI • Watchdog Reset Timers Il microcontrollore comprende 2 timers a 8 bit e 1 timer a 16 bit che possono essere utilizzati in vari modi dal programma. Utilizzano un clock interno ma possono anche essere collegati ad un clock esterno. 9.3.2 Input-output Input-output digitali Figura 9.7: Diagramma a blocchi di un pin di Input-Output Tutte le porte (Fig 9.7) hanno le seguenti caratteristiche: • resistore di pull-up selezionabile; • logica 3-state; • trigger di Schmitt in ingresso; • sincronismo con il clock di sistema; • in uscita possono erogare o assorbire corrente. Tutte le porte degli AVR hanno una funzione di true Read-Modify-Write quando vengono usate come I/O digitali. Questo significa che la direzione di un singolo pin puo’ essere cambiata al volo senza interferire con gli altri pin. Il controllo di ogni porta e’ effettuato con 3 registri: 335 9.3. IL MICROCONTROLLORE ATMEGA328P • DDRx: Data Direction Register; • PORTx: Output Register; • PINx: Input Register Ad esempio, PORTB3 contiene il bit in uscita per il pin 3 del Port B. DDx PORTx PUD I/O Pull-up Note 0 0 x Input No Alta impedenza 0 1 0 Input SI 0 1 1 Input No 1 0 x Output No 1 1 x Output No Alta Impedenza Tabella 9.1: Pin di I/O. Uscite analogiche Questa famiglia di microcontrollori non dispone di uscite analogiche. Tuttavia, l’uscita di alcuni pin digitali puo’ essere modulata, ovvero utilizzata per emettere un’onda rettangolare (fra 0 e 5 V ) con duty cycle variabile. Con un semplice integratore si puo’ quindi avere una tensione quasi analogica. Ingressi analogici Il microcontrollore contiene un ADC a 10 bit (sample and hold, successive approximation). (Fig 9.8). Il tempo di conversione e’compreso tra 13 e 260 µs. E’ collegato tramite un multiplexer a 8 ingressi (solo 6 effettivamente utilizzabili, collegati ai pin P C0÷P C5). L’ADC ha un’alimentazione separata (pin AVCC ) per migliore immunita’ ai disturbi. L’uscita digitale e’: Output = 210 − 1 Vin Vref Ci sono 3 possibili opzioni per definire Vref : • AVCC ; • 1.1 V (Riferimento di tensione interno a bandgap); • Aref (Tensione sul pin Aref ). La gestione dell’ADC e’ delegata a 4 registri a 8 bit: • ADMUX: Contiene le informazioni sulla scelta del canale d’ingresso e della Vref ; • ADCSRA: bits di status e controlli; • ADCL e ADCH: contengono i 10 bit del risultato. 336 CAPITOLO 9. MICROCONTROLLORI Figura 9.8: ADC Comparatore analogico Il comparatore analogico compara i valori in ingresso sull’ingresso positivo AIN 0 e su quello negativo AIN 1 (ovvero i pin P D6 e P D7); quando AIN 0 > AIN 1 l’uscita del comparatore ACO va ad 1. Questo segnale puo’ essere usato per generare un Interrupt (sul fronte di salita o di discesa), oppure come trigger per il Timer/Counter 1. E’ possibile anche utilizzare, all’ingresso non invertente, la tensione di riferimento interna (1.1 V ). E’ anche possibile selezionare uno qualunque dei pin analogici di ingresso (ADC0 . . . ADC7) come ingresso negativo del comparatore (poiche’ utilizza lo stesso multiplexer dell’ADC, quest’ultimo deve essere off). 9.3.3 Comunicazione seriale Il microcontrollore supporta vari meccanismi di comunicazione con dispositivi esterni: • USART (Universal Synchronous Asynchronous Receive Transmit): Pin P D0 e P D1; • SPI (Serial Peripheral Interface): Pin P B2, P B3, P B4, P B5; • I2C/TWI (Inter Integrated Circuit / Two Wire Interface: Pin P C4 e P C5. Sono anzitutto necessari per consentire all’utilizzatore di caricare e gestire il programma che deve essere eseguito sul microcontrollore, ma consentono anche di gestire dispositivi esterni (integrati) ovvero di trasferire dati verso l’esterno. 9.3. IL MICROCONTROLLORE ATMEGA328P 337 Figura 9.9: Comparatore analogico Il protocollo USART Figura 9.10: a): Connessione sincrona tra due dispositivi; b) Trasmissione di un frame. E’ il protocollo di comunicazione seriale piu’ diffuso. Nella versione sincrona i due dispositivi sono connessi da 3 linee (Fig 9.10a). Il dispositivo che trasmette (master) emette un clock sulla linea Ck e i dati sulla linea T x: in pacchetti, denominati frame, composti da un bit iniziale,lo start bit (sempre 0 logico) , 8 bit di dati3 , 1 bit di parita’ (opzionale), e uno o piu’ stop bits. In assenza di trasmissione la linea di comunicazione e’ a livello logico “1”, l’unita’ ricevente (slave) controlla continuamente la linea e quando sente un fronte di discesa comincia a leggere sincronizzandosi con il clock ricevuto sulla linea Ck. Le due unita’ dispongono di shift register per immagazzinare i dati da trasmettere e quelli da leggere. Nella modalita’ asincrona ci sono solo due linee, non c’e’ una linea dedicata al clock. In linea di principio quindi la velocita’ di trasmissione e ogni altro dettaglio (numero di bits di dati, presenza di un bit di parita’) devono essere concordati in anticipo. Il dispositivo ricevente deve quindi sincronizzare la fase del proprio clock utilizzando direttamente i bit ricevuti, in particolare il fronte di discesa del bit di start. Le unita’ piu’ evolute sono comunque in grado di rivelare automaticamente la velocita’ di trasmissione dei dati che stanno ricevendo e adattare quindi la frequenza e la fase del proprio clock. 3 E’ anche prevista la possibilita’ di trasmettere solo 5 bit. 338 CAPITOLO 9. MICROCONTROLLORI Il protocollo SPI Figura 9.11: Diagramma di una comunicazione SPI E’ un sistema di comunicazione tra un microcontrollore e altri circuiti integrati o tra piu’ microcontrollori. La trasmissione avviene tra un dispositivo detto master e uno o piu’ slave. Il master controlla il bus, emette il segnale di clock, decide quando iniziare e terminare la comunicazione. Richiede 4 linee di comunicazione: • SCK: Serial Clock; • MOSI: Master Output - Slave Input; • MISO: Master Input - Slave Ouput; • SS: Slave Select Figura 9.12: SPI. a): Semplice configurazione con un master e uno slave; b) Un master e piu’ slave. c): Temporizzazione dei segnali. Master e slave si scambiano dati utilizzando due shift register. Come si puo’ comprendere dal semplice schema di Fig 9.11, dopo 8 cicli di clock (emesso dal master) il contenuto dello shift register dello slave e’ passato su quello del master e viceversa. 9.3. IL MICROCONTROLLORE ATMEGA328P 339 Il protocollo I2C Figura 9.13: Tipico bus I 2 C. E’ un sistema di comunicazione seriale bifilare utilizzato tra circuiti integrati, spesso denominato TWI (Two Wire Inter integrated circuits). Il master puo’ in questo caso comunicare con uno o piu’ slaves, ciascuno dei quali identificato da un indirizzo (Fig 9.13); il master puo’ scrivere sullo slave o richiedere dati a questo. Sono necessarie due linee: • SDA: Serial DAta Line, per i dati; • SCL: Serial Clock Line, segnale di Clock (emesso dal master) Ma oltre a questo sono necessari due resistori di pull-up e inoltre occorre che tutti i dispositivi abbiano lo stesso Ground. Figura 9.14: Protocollo di trasmissione La Fig 9.14 mostra il protocollo di trasmissione. Il master inizia la trasmissione con un bit di START seguito dall’indirizzo dello svale (7 bits) e dal tipo di trasferimento (read o write). Lo slave deve riconoscere il proprio indirizzo e prepararsi. Segue poi la trasmissione dei bytes di dati, per ciasuno dei quali deve essere, da parte del ricevente, emesso un acknowedge. Al termine della trasmissione il master emette un bit di STOP. 340 9.3.4 CAPITOLO 9. MICROCONTROLLORI Lock bits e fuse bits Il microcontrollore dispone di alcuni bytes di memoria (tipo EEPROM) che possono essere utilizzati dall’utente per variare alcune impostazioni di funzionamento. I Lock bits (6) consentono di inibire ulteriori operazioni di scrittura sulla memoria flash o sulla EEPROM. Possono essere utilizzati quando si vuole congelare permanentemente il programma presente sul microcontrollore impedendo qualunque tipo di modifica4 . Le altre locazioni di memoria di impostazione sono i cosidetti fuse bits, organizzati in 3 bytes, Extended Fuse Byte, High Fuse Byte e Low Fuse Byte (Fig 9.15). Con questi e’ possibile definire tutta un serie di parametri, come per esempio, la sorgente del clock da utilizzare, presenza o assenza di una sezione di memoria dedicata al BootLoader, livelli di tensione da utilizzare per il Brown Out Reset, ecc. 9.4 9.4.1 La scheda Arduino Uno Introduzione Arduino e’ un sistema di sviluppo di piccole dimensioni basato su Microcontrollori ATMEL, adatto per sviluppo di prototipi e per scopi didattici. E’ integrato con un ambiente di sviluppo software (open source) che permette un facile e rapido utilizzo del microcontrollore con un PC. Esistono varie versioni, qui descriveremo la scheda Arduino Uno, basata sul microcontrollore ATMEL ATMEGA328 (Fig 9.16). La scheda contiene il microcontrollore e alcuni componenti ausiliari, tra cui un generatore di clock a 16 M Hz. Si collega al computer tramite un cavo USB attraverso il quale riceve anche l’alimentazione necessaria al suo funzionamento. Naturalmente puo’ essere utilizzata e funzionare anche senza questa connessione, in tal caso occorre fornirgli direttamente l’alimentazione (7 ÷ 12 V ). La scheda rende poi disponibili tutti i pin di input/output del microcontrollore con appositi connettori (la corrispondenza e’ riportata in Fig 9.17, e comprende anche un pulsante di Reset, collegato al pin apposito del microcontrollore. La scheda Arduino dialoga con un computer host (PC Windows, Mac, Linux) tramite la porta USB. E’ necessario installare sull’host il programma Arduino (open source) scaricabile dal sito di Arduino (http://www.arduino.cc) . E’ un programma scritto in Java e quindi in grado di funzionare su molte piattaforme. Tramite questa applicazione e’ possibile programmare il microcontrollore utilizzando il linguaggio C5 e metterlo in funzione. Quando si avvia Arduino sul PC si apre una finestra (Fig 9.18) che offre un framework per la scrittura del programma ( sketch nel gergo di Arduino). Il framework si presenta cosi’: void setup() { // put your setup code here, to run once: } 4 Naturalmente esiste poi il modo per riabilitare la scrittura, attraverso una speciale procedura, che implica la cancellazione completa di tutti i contenuti (Chip Erase). 5 Si presuppone che il lettore abbia una discreta conoscenza di questo linguaggio e delle sue regole. 341 9.4. LA SCHEDA ARDUINO UNO Extended Fuse byte Nome Bit Descrizione Default - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - BODLEVEL2 2 Brown Out trigger level 1 BODLEVEL1 1 Brown Out trigger level 1 BODLEVEL0 0 Brown Out trigger level 1 Fuse high byte Nome Bit Descrizione Default RSTDISBL 7 External Reset Disable 1 DWEN 6 debugWire Enable 1 SPIEN 5 Enable Serial Programming 0 WDTON 4 Watchdog timer on 1 EESAVE 3 EEPROM preserved trough chip erase 1 BOOTSZ 1 2 Select Boot Size 1 BOOTSZ2 1 Select Boot Size 1 BOOTRST 0 Select ResetVector 1 Fuse low byte Nome Bit Descrizione Default CKDIV8 7 Divide clock by 8 0 CKOUT 6 Clock output 1 SUT1 5 Select start up time 1 SUT0 4 Select start up time 0 CKSEL3 3 Select Clock source 0 CKSEL2 2 Select Clock source 0 CKSEL1 1 Select Clock source 1 CKSEL0 0 Select Clock source 0 Figura 9.15: Fuse bits ( 0 significa attivo, 1 non attivo). 342 CAPITOLO 9. MICROCONTROLLORI Figura 9.16: La scheda Arduino UNO. void loop() { // put your main code here, to run repeatedly: } ovvero come due funzioni C, setup() e loop(). Un semplice esempio e’ il modo migliore per spiegarne l’uso: un programma che provoca l’accensione periodica di 2 LED. Colleghiamo i 2 LED a 2 uscite digitali, per esempio le uscite 8 e 13. Scriviamo poi il programma: const int LED1 const int LED2 void setup() pinMode(LED1, pinMode(LED2, } = 13; // = 13; // { OUTPUT); OUTPUT); Assegna il pin 13 Assegna il pin 8 // Il pin e’ definito come output // Il pin e’ definito come output void loop() { digitalWrite(LED1, HIGH); // Mette il pin LED1 a 5 V digitalWrite(LED2, LOW); // Mette il pin LED2 a 0 V delay(500); // Aspetta 500 ms digitalWrite(LED1, LOW); // Mette il pin LED1 a 0 V digitalWrite(LED2, HIGH); // Mette il pin LED2 a 5 V delay(500); // Aspetta 500 ms 9.4. LA SCHEDA ARDUINO UNO 343 Figura 9.17: Corrispondenza dei pin di Arduino Uno con quelli del microcontrollore. } Questo programma accende alternativamente i due LED con un periodo di 1 s. Premendo sulla finestra il bottone Compila si avvia la compilazione per creare il codice eseguibile dal microcontrollore; ma prima Arduino trasforma lo sketch creando un programma C, ovvero: #include "Wprogram.h"; const int LED1 = 13; // Assegna il pin 13 const int LED2 = 13; // Assegna il pin 8 void setup(); void loop(); void setup() { pinMode(LED1, OUTPUT); // Il pin e’ definito come output pinMode(LED2, OUTPUT); // Il pin e’ definito come output } void loop() { digitalWrite(LED1, HIGH); // Mette il pin LED1 a 5 V digitalWrite(LED2, LOW); // Mette il pin LED2 a 0 V delay(500); // Aspetta 500 ms digitalWrite(LED1, LOW); // Mette il pin LED1 a 0 V digitalWrite(LED2, HIGH); // Mette il pin LED2 a 5 V delay(500); // Aspetta 500 ms } int main() { setup(); for(;;) { loop();} 344 CAPITOLO 9. MICROCONTROLLORI Figura 9.18: La finestra di Arduino sul PC. return 0; } Se la compilazione non ha dato errori si esegue il programma premendo il bottone Esegui. Il codice viene trasferito sulla memoria flash del µC (attraverso la connessione USB) ed eseguito. Dal lato del µC il trasferimento e la scrittura in memoria sono eseguiti dal BootLoader che, ricordiamo, occupa gli ultimi 512 bytes della memoria flash. Il programma e’ memorizzato permanentemente e viene eseguito automaticamente ogni volta che si alimenta la scheda (anche senza aprire Arduino sul PC), finche’ non e’ sostituito da un altro programma. Abbiamo detto che il PC comunica con Arduino tramite l’ingresso USB della scheda. Quest’ingresso e’ connesso all’interfaccia USART del microcontrollore, attraverso un integrato che trasforma la logica TTL adattandola al protocollo USB (Fig 9.19). Questa via di comunicazione puo’ essere usata anche dal programma stesso, attraverso la finestra di Monitor sul PC (apribile premendo l’apposito pulsante sulla finestra principale). La finestra di monitor (Fig 9.20) e’ composta da una riga dove si puo’ scrivere e un quadro dove si riceve l’output dal microcontrollore. Ecco un semplice esempio di programma: int data = 0; void setup() { Serial.begin(9600); //Inizializzazione baud rate } 9.4. LA SCHEDA ARDUINO UNO 345 Figura 9.19: La comunicazione USART. Figura 9.20: Finestra di monitor. void loop() { if(Serial.available() > 0) // verifica se esiste un INPUT { data = Serial.parseInt(); // legge come numero intero Serial.println(data); // scrive sulla finestra di OUTPUT delay(200); } } Questo programma legge un numero intero dalla riga di input e lo riscrive sull’output. E’ importante ricordare che la comunicazione seriale usa pin I/O 0 e 1, quindi questi non possono essere simultaneamente usati per altri scopi. 346 CAPITOLO 9. MICROCONTROLLORI 9.4.2 Precauzioni La scheda (e il microcontrollore) non sono completamente protetti contro errori che possono danneggiare irreparabilmente l’hardware. Ecco alcuni esempi di cose da non fare: • Mettere a massa un pin di I/O (quando usato come output); • Mettere in corto tra loro due pin di I/O; • Applicare sovratensioni ai pin di I/O; • Applicare tensioni negative ai pin di I/O; • Applicare tensioni ai pin 5 V o 3.3 V ; • Mettere a massa il pin Vin ; • Applicare una tensione maggiore di 3.6 V sul pin 3.3 • Applicare una tensione negativa sul pin Vin ; • Superare la corrente massima individuale dei pin di I/O (40 mA); • Superare la corrente massima totale (200 mA); 9.4.3 Programmare Arduino Tutte le informazioni necessarie per la programmazione di Arduino possono essere trovate sul sito, a partire dalla pagina http://arduino.cc/en/Reference/HomePage In particolare sono elencate tutte le funzioni disponibili per operare sul microcontrollore. Qui ne vedremo brevemente solo le piu’ importanti, per il resto si rimanda alle suddette pagine web. Input output digitale Si utilizzano le funzioni: • pinMode(pin,mode); (mode: IN P U T, OU T P U T, IN P U T _P U LLU P ) • digitalWrite(pin, value); (value: HIGH, LOW ) • digitalRead(pin); Esempio: 9.4. LA SCHEDA ARDUINO UNO 347 int ledPin = 13; int inPin = 7; int val = 0; void setup() { pinMode(ledPin, OUTPUT); // definisce questo pin come output pinMode(inPin, INPUT); // definisce questo pin come input } void loop() { val = digitalRead(inPin); // legge il pin inPin digitalWrite(ledPin, val); // scrive il pin ledPin } Output analogico I pin 3,5,6,9,10,11 possono, in uscita, essere utilizzati in modo “analogico” ovvero con la modulazione del duty cycle (PWM). Il duty cycle e’ espresso da un numero intero che varia tra 0 e 255. I pin 5,6 oscillano a circa 980 Hz; i pin 3,9,10,11 a 490 Hz. Si utilizza la funzione: • analogWrite(pin,duty); Esempio: int ledPin = 9; // LED connected to digital pin 9 int val = 128; // val: 0-255 (duty cycle) void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output } void loop() { analogWrite(ledPin, val); // } Input analogico (ADC) Si utilizzano le funzioni: • analogReference(type); • analogPin(pin). La prima definisce quale tensione di riferimento si vuole utilizzare: • DEFAULT: 5 V ; 348 CAPITOLO 9. MICROCONTROLLORI • INTERNAL: 1.1 V ; • EXTERNAL: la tensione applicata al pin AREF (deve essere tra 0 e 5 V ). Esempio: int analogPin = 3; // analog pin 3 int val = 0; // variable to store the value read void setup() { analogReference(EXTERNAL); // La Vref e’ fornita esternamente Serial.begin(9600); // setup serial } void loop() { val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value } Interrupts La scheda Arduino Uno puo’ gestire 2 fonti di interrupts • Interrupt 0: Digital I/O pin 2; • Interrupt 1: Digital I/O pin 3; Quando arriva un interrupt viene eseguita una routine specificata. Alla fine il controllo torna al programma precedentemente in esecuzione. Si utilizzano le funzioni: • attachInterrupt(interrupt, ISR, mode); • detachInterrupt(interrupt); • noInterrupts(); • interrupts(). La funzione attachInterrupt() definisce la fonte dell’interrupt da utilizzare (0 o 1), la funzione che deve essere eseguita (ISR) e la modalita’ di trigger dell’interrupt stesso: : • LOW: quando il pin e’ basso • CHANGE: quando il pin cambia di valore logico; • RISING: sul fronte di salita; • FALLING: sul fronte di discesa. 9.4. LA SCHEDA ARDUINO UNO 349 La funzione detachInterrupt() spegne l’interrupt specificato. Le funzioni noInterrupts() e interrupts() possono essere utilizzate per disabilitare momentaneamente (e poi riabilitare) tutti gli interrupts. Si utilizzano quando ci sono fasi del programma particolarmente critiche che si desidera non vengano interrotte. Esempio: void setup() { Serial.begin(9600); attachInterrupt(0, myprog, CHANGE); //interrupt se I/O 2 cambia } void loop() { .... .... } void myprog() { // Interrupt Service Routine Serial.println("E’ arrivato un interrupt"); } Comunicazione seriale Abbiamo gia’ visto come utilizzare la porta seriale (USART). Sul sito di Arduino ci sono poi anche librerie specifiche per utilizzare il protocollo SPI o quello I 2 C. 350 CAPITOLO 9. MICROCONTROLLORI Appendice A Istruzioni dello Z80 Esadecimale Simbolico Descrizione 00 NOP Nessuna operazione 01 LD BC,addr Carica un indirizzo in BC 02 LD (BC), A Carica A nella locazione (BC) 03 INC BC Incrementa BC 04 INC B Incrementa B 05 DEC B Decrementa B 06 LD B, data Carica un dato in B 07 RLC A Ruota A a sinistra 08 EXAF, AF’ Scambia il contenuto di AF con A’F’ 09 ADD HL, BC Somma BC a HL e mette il risultato in HL 0A LD A, (BC) Carica in A il contenuto nella locazione (BC) 0B DEC BC Decrementa BC 0C INC C Incrementa C 0D DEC C Decrementa C 0E LD C, dato Carica i dati in C 0F RRC A Ruota A a destra 11 LD DE,addr Carica un indirizzo in DE 12 LD (DE), A Carica A nella locazione (DE) 13 INC DE Incrementa DE 14 INC D Incremanta D 15 DEC D Decrementa D 16 LD D, dato Carica i dati in D 17 RLA Ruota A a sinistra attraverso il carry 18 JR n Salto incondizionato relativo 19 ADD HL, DE Somma DE a HL e mette il risultato in HL 1A LD A, (DE) Carica in A il contenuto della locazione (DE) 351 352 CAPITOLO 9. MICROCONTROLLORI Esadecimale Simbolico Descizione 1B DEC DE Decrementa DE 1C INC E Incrementa E 1D DEC E Decrementa E 1E LD E, dato Carica i dati in E 1F RRA Ruota A a destra attraverso il carry 21 LD HL,addr Carica un indirizzo in HL 22 LD (addr), HL Carica la locazione (addr) con L e la locazione (addr + 1) con H 23 INC HL Incrementa HL 24 INC H Incrementa H 25 DEC H Decrementa H 26 LD H, dato Carica i dati in H 27 DAA Usa l’accumulatore in decimale 28 JRZ n Salto relativo condizionato al bit Z 29 ADD HL, HL Somma HL a HL e mette il risultato in HL 2A LD HL, (addr) Carica L e H con i contenuti delle locazioni (addr) e (addr+1) 2B DEC HL Decrementa HL 2C INC L Incrementa L 2D DEC L Decrementa L 2E LD L, dato Carica il dato in L 2F CPL Complementa il contenuto dell’accumulatore 31 LD SP,addr Carica un indirizzo nello stack pointer 32 LD (addr), A Carica A nella locazione (addr) 33 INC SP Incrementa lo stack pointer 34 INC (HL) Incrementa il contenuto della locazione (HL) 35 DEC (HL) Decrementa il contenuto della locazione (HL) 36 LD (HL), dato Carica il dato nella locazione (HL) 37 SCF Setta il flag di carry 38 JRC n Salto relativo condizionato al bit C 39 ADD HL, SP Somma lo stack pointer HL e mette il risultato in HL 3A LD A, (addr) Carica A con byte alla locazione (addr) 3B DEC SP Decrementa lo stack pointer 3C INC A Incrementa l’accumulatore 3D DEC A Decrementa l’accumulatore 3E LD A, dato Carica il dato in A 3F CCF Complementa il flag di carry 40 LD B,B Carica B nel registro B 41 LD B,C Carica C nel registro B 9.4. LA SCHEDA ARDUINO UNO Esadecimale Simbolico Descizione 42 LD B,D Carica D nel registro B 43 LD B,E Carica E nel registro B 44 LD B,H Carica H nel registro B 45 LD B,L Carica L nel registro B 46 LD B, (HL) Carica il contenuto della locazione (HL) nel registro B 47 LD B,A Carica l’accumulatore nel registro B 48 LD C,B Carica B nel registro C 49 LD C,C Carica C nel registro C 4A LD C,D Carica D nel registro C 4B LD C,E Carica E nel registro C 4C LD C,H Carica H nel registro C 4D LD C,L Carica L nel registro C 4E LD C,(HL) Carica il contenuto della locazione (HL) nel registro C 4F LD C,A Carica l’accumulatore nel registro C 50 LD D,B Carica B nel registro D 51 LD D,C Carica C nel registro D 52 LD D,D Carica D nel registro D 53 LD D,E Carica E nel registro D 54 LD D,H Carica H nel registro D 55 LD D,L Carica L nel registro D 56 LD D,(HL) Carica il contenuto della locazione (HL) nel registro D 57 LD D,A Carica l’accumulatore nel registro D 58 LD E,B Carica B nel registro E 59 LD E,C Carica C nel registro E 5A LD E,D Carica D nel registro E 5B LD E,E Carica E nel registro E 5C LD E,H Carica H nel registro E 5D LD E,L Carica L nel registro E 5E LD E,(HL) Carica il contenuto della locazione (HL) nel registro E 5F LD E, A Carica l’accumulatore nel registro E 60 LD H,B Carica B nel registro H 61 LD H,C Carica C nel registro H 62 LD H,D Carica D nel registro H 63 LD H,E Carica E nel registro H 64 LD H,H Carica H nel registro H 65 LD H,L Carica L nel registro H 66 LD H,(HL) Carica il contenuto della locazione (HL) nel registro H 353 354 CAPITOLO 9. MICROCONTROLLORI Esadecimale Simbolico Descizione 67 LD H, A Carica l’accumulatore nel registro H 68 LD L,B Carica B nel registro L 69 LD L,C Carica C nel registro L 6A LD L,D Carica D nel registro L 6B LD L,E Carica E nel registro L 6C LD L,H Carica H nel registro L 6D LD L, L Carica L nel registro L 6E LD L, (HL) Carica il contenuto della locazione (HL) nel reqistro L 6F LD L, A Carica l’accumulatore nel registro L 70 LD (HL), B Carica B nella locazione (HL) 71 LD (HL), C Carica C nella locazione (HL) 72 LD (HL), D Carica D nella locazione (HL) 73 LD (HL), E Carica E nella locazione (HL) 74 LD (HL), H Carica H nella locazione (HL) 75 LD (HL), L Carica L nella locazione (HL) 76 HALT Alt 77 LD (HL), A Carica l’accumulatore nella locazione (HL) 78 LD A, B Carica B in A 79 LD A,C Carica C in A 7A LD A,D Carica D in A 7B LD A, E Carica E in A 7C LD A, H Carica H in A 7D LD A, L Carica L in A 7E LD A, (HL) Carica il contenuto della locazione (HL) in A 7F LD A, A Carica il contenuto dell’accumulatore in A 80 ADD A, B Somma B ad A e mette il risultato in A 81 ADD A, C Somma C ed A e mette il risultato in A 82 ADD A, D Somma D ed A e mette il risultato in A 83 ADD A, E Somma E ad A e mette il risultato in A 84 ADD A, H Somma H ad A e mette il risultato in A 85 ADD A, L Somma L ad A e mette il risultato in A 86 ADD A, (HL) Somma il contenuto della locazione (HL) ad A, risultato in A 87 ADD A, A Somma A ad A e mette il risultato in A 88 ADC A, B Somma B e il flag di carry ad A e mette il risultato in A 89 ADC A, C Somma C e il flag di carry ad A e mette il risultato in A 8A ADC A, D Somma D e il flag di carry ad A e mette il risultato in A 8B ADC A, E Somma E e il flag di carry ad A e mette il risultato in A 9.4. LA SCHEDA ARDUINO UNO 355 Esadecimale Simbolico Descizione 8C ADC A, H Somma H e il flag di carry ad A e mette il risultato in A 8D ADC A, L Somma L e il flag di carry ad A e mette il risultato in A 8E ADC A, (HL) Somma il contenuto della loc.(HL) e carry ad A, risultato in A 8F ADC A, A Somma A e il flag di carry ed A e mette il risultato in A 90 SUB B Sottrae B da A e mette il risultato in A 91 SUB C Sottrae C da A e mette il risultato in A 92 SUB D Sottrae D da A e mette il risultato in A 93 SUB E Sottrae E da A e mette il risultato in A 94 SUB H Sottrae H da A e mette il risultato in A 95 SUB L Sottrae L da A e mette il risultato in A 96 SUB (HL) Sottrae il contenuto della loc.(HL) e mette il risultato in A 97 SUB A Cancella l’accumulatore 98 SBC A, B Sottrae B e il carry da A e mette il risultato in A 99 SBC A, C Sottrae C e il carry da A e mette il risultato in A 9A SBC A, D Sottrae D e il carry da A e mette il risultato in A 9B SBC A, E Sottrae E e il carry da A e mette il risultato in A 9C SBC A, H Sottrae H e il carry da A e mette il risultato in A 9D SBC A, L Sottrae L e il carry da A e mette il risultato in A 9E SBC A, (HL) Sottrae il contenuto della loc.(HL) e carry da A, risultato in A 9F SBC A, A Sottrae il carry da zero e mette il risultato in A A0 AND B AND di B con A e mette il risultato in A A1 AND C AND di C con A e mette il risultato in A A2 AND D AND di D con A e mette il risultato in A A3 AND E AND di E con A e mette il risultato in A A4 AND H AND di H con A e mette il risultato in A A5 AND L AND di L con A e mette il risultato in A A6 AND (HL) AND del contenuto della locazione (HL) con A, risultato in A A7 AND A AND dell’accumulatore con se stesso A8 XOR B OR esclusivo di B con A e mette il risultato in A A9 XOR C OR esclusivo di C con A e mette il risultato in A AA XOR D OR esclusivo di 0 con A e mette il risultato in A AB XOR E OR esclusivo di E con A e mette il risultato in A AC XOR H OR esclusivo di H con A e mette il risultato in A AD XOR L OR esclusivo di L con A e mette il risultato in A AE XOR (HL) OR esclusivo del contenuto della locazione (HL) con A, il risultato in A AF XOR A Cancella l’accumulatore e il flag di carry B0 OR B OR di B con A e mette il risultato in A 356 CAPITOLO 9. MICROCONTROLLORI Esadecimale Simbolico Descizione B1 OR C OR di C con A e mette il risultato in A B2 OR D OR di D con A e mette il risultato in A B3 OR E OR di E con A e mette il risultato in A B4 OR H OR di H con A e mette il risultato in A B5 OR L OR di L con A e mette il risultato in A B6 OR (HL) OR del contenuto della locazione (HL) con A, il risultato in A B7 OR A OR di A con A e mette il risultato in A B8 CP B Confronta B con l’accumulatore e cambia solo i flags B9 CP C Confronta C con l’accumulatore e cambia solo i flags BA CP D Confronta D con l’accumulatore e cambia solo i flags BB CP E Confronta E con l’accumulatore e cambia solo i flags BC CP H Confronta H con l’accumulatore e cambia solo i flags BD CP L Confronta L con l’accumulatore e cambia solo i flags BE CP (HL) Confronta il contenuto della loc.(HL) con A e cambia i flags BF CP A Confronta A con l’accumulatore e cambia solo i flags C0 RET NZ Ritorna dalla subroutine se il risultato non è zero C1 POP BC Richiama il contenuto di BC dallo stack C2 JP NZ, addr Salta ad (addr) se il risultato non è zero C3 JP addr Salto incondizionato ad (addr) C4 CALL NZ,addr Chiama la subroutine ad (addr) se il risultato non è zero C5 PUSH BC Forza BC nello stack C6 ADD A,dato Somma dato ad A e mette il risultato in A C7 RST OOH Chiama la subrontine (OOOOH) C8 RET Z Ritorno alla subroutine se il risultato è zero C9 RET Ritorna incondizionatamente alla subroutine CA JP Z, addr Salto ad (addr) se il risultato è zero CB *** Istruzione a piu’ bytes CC CALL Z, addr Chiama la subroutine ad (addr) se il risultato è zero CD CALL addr Chiama la subroutine incondizionatamente CE ADC A, dato Somma il carry e dato ad A e mette il risultato in A CF RST 08H Chiama la subroutine a (0008H) D0 RET NC Ritorna alla subroutine se il risultato non ha carry D1 POP DE Estrae dallo stack e mette in DE D2 JP NC, addr Salta ad addr se il risultato non ha carry D3 OUT (n), A Rinvia il contenuto dell’accumulatore alla porta (n) D4 CALL NC,addr Chiama la subroutine ad (addr) se il risultato non ha carry D5 PUSH DE Mette DE nello stack 9.4. LA SCHEDA ARDUINO UNO Esadecimale Simbolico Descizione D6 SUB dato Sottrae dato da A e mette il risultato in A D7 RST 10H Salta alla locazione 0010H D8 RET C Ritorna alla subroutine se il risultato ha carry D9 EXX Scambia il contenuto di DE, BC, HL con DE’, BC’, HL’ DA JP C,addr Salta ad (addr) se il risultato ha carry DB IN A, (n) Carica il dato in ingresso dalla porta (n) in A DC CALL C,addr Chiama la subroutine ad (addr) se il risultato ha carry DD *** Istruzione a piu’ bytes DE SBC A, dato Sottrae il carry e il dato da A e lo mette in A DF RST 18H Salta alla locazione 18H E0 RET PO Ritorna dalla subroutine se il risultato ha parità dispari E1 POP HL Richiama il contenuto HL dallo stack E2 JP PO, addr Salta ad (addr) se il risultato ha parità dispari E3 EX (SP), HL Scambia i due bytes più alti dello stack con HL E4 CALL PO,addr Chiama la subroutine ad (addr) se il risultato ha parità dispari E5 PUSH HL Forza HL nello stack E6 AND dato AND tra dato e A e mette il risultato in A E7 RST 20H Salta alla locazione 20H E8 RET PE Ritorna dalla subroutine se il risultato ha parità pari E9 JP (HL) Salta all’indirizzo contenuto in HL EA JP PE,addr Salta a (addr) se il risultato ha parità pari EB EX DE, HL Scambia DE con HL EC CALL PE,addr Chiama la subroutine ad (addr) se il risultato ha parità pari ED *** Istruzione a piu’ bytes EE XOR dato OR esclusivo tra dato e A e mette il risultato in A EF RST 28H Salta alla locazione 0028H F0 RET P Ritorna alla subroutine se il risultato è positivo F1 POP AF Richiama il contenuto di AF dallo stack F2 JP P,addr Salta ad (addr) se il risultato è positivo F3 DI Disabilita il flag di interrupt F4 CALL P, addr Chiama la subroutine ad (addr) se il risultato è positivo F5 PUSH AF Forza AF nello stack F6 OR dato OR tra dato e A e mette il risultato in A F7 RST 30H Salta alla locazione 0030H F8 RET M Ritorna alla subroutine se il risultato è negativo F9 LD SP, HL Carica lo stack pointer con HL FA JP M,addr Salta ad (addr) se il risultato è negativo 357 358 CAPITOLO 9. MICROCONTROLLORI Esadecimale Simbolico Descizione FB EI Abilita il flag di interrupt FC CALL M,addr Chiama la subroutine ad (addr) se il risultato è negativo FD *** Istruzione a piu’ bytes FE CP dato Confronta il dato con A e cambia solo i flags FF RST 38H Salta alla locazione 0038H Bibliografia [1] R.Cervellati - D. Malosti: "ELETTRONICA - Esercitazioni per il Laboratorio di Fisica" La Goliardica Editrice - Roma [2] J.Millman: "Circuiti e sistemi microelettronici" Boringhieri, 1985 [3] P.Horowitz - W.Hill: "The Art of Electronics" Cambridge University Press, 1989 [4] T.C.Hayes - P.Horowitz: "Student Manual for the Art of Electronics" Cambridge University Press, 1989 [5] A.S.Sedra - K.C.Smith: “Microelectronic circuits” Oxford University Press, 2004 [6] R.Cervellati - P.Monacelli - S.Petrarca: "Lezioni per il corso di Microprocessori" Dispense edite dal Dipartimento di Fisica - Universita’ "La Sapienza"- Roma [7] I.Vannucci: “Introduzione alla Scheda Didattica Z80” Nota interna 870 (9/10/1986) - Dipartimento di Fisica - Universita’ "La Sapienza"Roma 359