28
Simone Buso - Microcontrollori e DSP - Lezione 20 1 Lezione 20 Sommario Modulazione PWM. Esempi di applicazione. Esempi di modulatori PWM. Configurazione dei modulatori PWM. Sincronizzazione con il converitore A/D. Sviluppo di una semplice applicazione con il mC LP2129. Simone Buso - Microcontrollori e DSP - Lezione 20 2 Lezione 20 Materiale di riferimento 1. Datasheet del microcontrollore Philips LPC2129, disponibile sul sito web del corso in formato pdf. 2. Datasheet del DSP ADMC401, disponibile sul sito web del corso in formato pdf. 3. Datasheet del microcontrollore PIC18Fxxx, disponibile sul sito web del corso in formato pdf.

Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

1

Simone Buso - Microcontrollori e DSP - Lezione 20 1

Lezione 20

Sommario• Modulazione PWM.• Esempi di applicazione.• Esempi di modulatori PWM.• Configurazione dei modulatori PWM.• Sincronizzazione con il converitore A/D.• Sviluppo di una semplice applicazione con

il mC LP2129.

Simone Buso - Microcontrollori e DSP - Lezione 20 2

Lezione 20Materiale di riferimento1. Datasheet del microcontrollore Philips LPC2129,

disponibile sul sito web del corso in formato pdf.

2. Datasheet del DSP ADMC401, disponibile sul sito web del corso in formato pdf.

3. Datasheet del microcontrollore PIC18Fxxx,disponibile sul sito web del corso in formato pdf.

Page 2: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

2

Simone Buso - Microcontrollori e DSP - Lezione 20 3

Modulazione PWMSi tratta di una tecnica che permette di trasmettere l’informazione associata ad un segnale dato, che viene detto segnale modulante.Nella trasmissione tramite modulazione PWM si usa come supporto un segnale a onda quadra, di frequenza e ampiezza fissate, nel quale la larghezza, ovvero la durata degli impulsi, è proporzionale al livello del segnale modulante.Nel processo di trasmissione è spesso implicita una considerevole amplificazione di potenza.

Simone Buso - Microcontrollori e DSP - Lezione 20 4

Modulazione PWM

Logica dicomandodegli

interruttori

CS1

CS2V

+E/2

-E/2

+-

Controllo del tempo morto

V*

Modulatore PWM

Segnale portante (onda tringolare)

Segnale modulante

Schema semplificato di un modulatore PWM analogico.

Page 3: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

3

Simone Buso - Microcontrollori e DSP - Lezione 20 5

Modulazione PWMLo stadio di uscita funge da buffer, nel senso che la tensione V riproduce lo stato logico del comparatore di ingresso, che confronta continuamente segnale portante e segnale modulante.Tuttavia, i livelli di tensione ± E/2, sono di norma assai maggiori di quelli logici in uscita al comparatore (possono arrivare a centinaia di Volt).Nel caso di segnale modulante costante, l’uscita è un segnale a onda quadra, costante nel tempo in tutte le sue caratteristiche.

Simone Buso - Microcontrollori e DSP - Lezione 20 6

Modulazione PWM

t-E/2

+E/2

T

V(t)

t1 = δ·Tt2 = (1-δ)·T

V* t

Vp

-½·Vp <V*< ½·Vp

Page 4: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

4

Simone Buso - Microcontrollori e DSP - Lezione 20 7

Nel periodo T (periodo di modulazione), si susseguono i due intervalli: t1, in cui V(t)=+E/2 e t2, in cui v(t)=-E/2.La frazione di periodo δ = t1/T, che corrisponde all’intervallo di tensione di uscita positiva, i.e. quando l’interruttore superiore S1 è chiuso, viene usualmente indicata con la denominazione inglese “duty-cycle”. Si vede poi che la media della tensione V, nel periodo T, è pari a:

Modulazione PWM

Vmed = (δ - 1/2)·E = E·(V*/Vp)

Simone Buso - Microcontrollori e DSP - Lezione 20 8

L’informazione trasportata dal segnale V* (associata alla sua ampiezza) si è trasferita nella media del segnale V, che è ad essa proporzionale.Variando la durata t1 dell’impulso positivo tra 0 e T, che equivale a variare δ da 0 a 1, si varia infatti, in modo proporzionale, il valore della tensione media Vmed da -E/2 a +E/2.Di conseguenza, la potenza associata al segnale V può essere notevolmente maggioredi quella associata al segnale V*.

Modulazione PWM

Page 5: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

5

Simone Buso - Microcontrollori e DSP - Lezione 20 9

Vi sono altri metodi di modulazione nei quali, oltre a variare la durata t1 dell’impulso positivo, si varia anche la distanza T tra un impulso positivo e l’altro. In altri casi si mantiene costante t1 e si varia T. Si parla allora di Pulse Frequency Modulation, Random Modulation, Pulse Density Modulation o Modulazione Delta. I vari metodi differiscono per i differenti criteri di scelta di T e t1 in funzione della tensione media voluta. Questi metodi hanno tuttavia un uso abbastanza limitato.

Modulazioni PFM, Delta, etc…

Simone Buso - Microcontrollori e DSP - Lezione 20 10

Modulazione PWMNaturalmente, non è necessario che il segnale V* sia costante nel tempo. I casi di maggiore interesse prevedono infatti un segnale V* variabile nel tempo.Supponiamo che il segnale V* sia comunque lentamente variabile rispetto a T. In questo caso, l’operazione di media sul periodo T del segnale di uscita V ha ancora significato.Possiamo quindi dire che:

Vmed(t) = (δ(t) - 1/2)·E = E·(V*(t)/Vp)

Page 6: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

6

Simone Buso - Microcontrollori e DSP - Lezione 20 11

Modulazione PWM

L’andamento della tensione media Vmed segue quello del segnale modulante V*.

-E/2

+E/2

t

T

V(t) Vmed

V*

t

Simone Buso - Microcontrollori e DSP - Lezione 20 12

v(t) Vmed

t

t

t

t

t

t

v1

v2

v3

v4

vs13

0

0

0

0

0

0

Modulazione PWM

Componenti armonichedella forma d’onda PWM (δ = 0.3 = costante).

Il valore mediocontiene l’informazione utile, il rimanente contenuto spettrale è facilmente separabile.

Risultante delle prime13 componenti

Page 7: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

7

Simone Buso - Microcontrollori e DSP - Lezione 20 13

Modulazione PWM

½ E

00 40

0.4

0.3

0.2

0.1

V1

2V

10 20 30f =1/T1

f 1

Simone Buso - Microcontrollori e DSP - Lezione 20 14

Modulazione PWMComponenti armoniche della forma d’onda PWM nel caso di modulante sinusoidale.La riga spettrale compare intorno ai multipli interidella frequenza portante (inclusa la frequenza 0).

Page 8: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

8

Simone Buso - Microcontrollori e DSP - Lezione 20 15

Modulazione PWMIl processo di modulazione PWM comporta una distorsione molto consistente del segnale (si tratta in effetti di una operazione non lineare).Tuttavia, la distorsione introdotta presenta una caratteristica distribuzione in frequenza,che permette di recuperare l’informazione associata al segnale modulante in modo molto semplice (demodulazione).E’ infatti sufficiente filtrare le componenti armoniche della frequenza portante. Il residuo è lo spettro del segnale modulante.

Simone Buso - Microcontrollori e DSP - Lezione 20 16

Modulazione PWMLa demodulazione funziona tanto meglio, garantendo una minore distorsione residua, quanto più è elevato il rapporto tra la frequenza portante e la massima frequenzadel segnale modulante.Per questa ragione, le frequenze dei segnali PWM tendono ad essere relativamente elevate.Ciò consente di usare semplici filtri passa-basso per realizzare il demodulatore. In alcuni casi il demodulatore può addirittura non essere necessario.

Page 9: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

9

Simone Buso - Microcontrollori e DSP - Lezione 20 17

Modulazione PWM

V*

Vmed

Vdemod

Il segnale demodulato può contenere un rippleresiduo alla frequenza della PWM.

Sfasamento dovuto al filtro demodulatore

Simone Buso - Microcontrollori e DSP - Lezione 20 18

Modulazione PWM digitaleÈ possibile realizzare un modulatore PWManche ricorrendo a circuiti digitali. In questo caso il segnale portante è sostituito da un contatore binario e l’azione del comparatore viene svolta da un circuito di “compare”.La frequenza del conteggio è pari alla frequenza della portante moltiplicata per 2n, dove n è il numero di bit del contatore.Per questa ragione non è facile disporre di modulatori digitali ad elevata risoluzione e, nello stesso tempo, elevata frequenza di modulazione.

Page 10: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

10

Simone Buso - Microcontrollori e DSP - Lezione 20 19

Modulazione PWM digitale

conteggi del timer

t

IRQ del timer

t

t

Impulsi generati

valore di “compare”

Uso del timer in modalità “compare” per generazione di un segnale PWM.Gli impulsi generati sono asimmetrici rispetto al periodo di modulazione.

T

Simone Buso - Microcontrollori e DSP - Lezione 20 20

Modulazione PWM digitaleIn questa modalità, il valore del registro di “compare” assume il significato di duty-cycle.Il suo valore, rapportato al fondo scala del conteggio, rappresenta infatti la frazione del periodo di modulazione nella quale il segnale di uscita rimane alto (come nel caso analogico).Naturalmente, se fosse richiesta amplificazione, il segnale di uscita del timer dovrà essere inviato ad un opportuno buffer realizzato esternamente al mC (o DSP).Il modulatore digitale introduce però un certo ritardo di risposta (discusso più avanti).

Page 11: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

11

Simone Buso - Microcontrollori e DSP - Lezione 20 21

Modulazione PWM digitaleIn alcune applicazioni (e.g. controllo di convertitori a commutazione) è importante che il segnale a onda quadra del modulatore sia simmetrico rispetto al semiperiodo, i.e. ogni impulso deve apparire centrato nel periodo di modulazione.Alcuni modulatori PWM presenti a bordo di mC e DSP consentono questa modalità di funzionamento (detta appunto PWM simmetrica).In alcuni è anche possibile aggiornare il valore del duty-cycle ogni semiperiodo.

Simone Buso - Microcontrollori e DSP - Lezione 20 22

Modulazione PWM digitale

Uso del timer come modulatore PWM.Gli impulsi generati sono simmetrici rispetto al periodo di modulazione.

conteggi del timer

t

IRQ del timer

t

t

Impulsi generati

valore di “compare”

T

Page 12: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

12

Simone Buso - Microcontrollori e DSP - Lezione 20 23

Modulazione PWM digitaleEsistono anche modalità più sofisticate per la realizzazione del modulatore PWM.Ad esempio i modulatori detti “vettoriali” (SVM: space vector modulator), sono pensati per applicazioni molto specifiche e di granderilevanza industriale, i.e. per il controllo di convertitori a commutazione trifase(raddrizzatori e invertitori di potenza).Su questi sistemi si basa a sua volta il controllo degli azionamenti elettrici e di altri apparati elettronici di potenza (UPS, filtri attivi, raddrizzatori ad alto PF …)

Simone Buso - Microcontrollori e DSP - Lezione 20 24

PWM: risposta dinamicaUn problema di grande rilevanza per l’uso del modulatore PWM è il suo tempo di risposta. I modulatori digitali, diversamente da quelli analogici, rispondono con ritardo alle variazioni del segnale modulante.Questo è, di fatto, campionato alla frequenza di modulazione e, nell’intervallo di tempo tra due campioni successivi, è sempre costante.Volendo cambiare il segnale modulante in un istante qualunque, nel caso peggiore, sarebbe necessario attendere un tempo pari a un periodo di modulazione, prima di poterlo fare.

Page 13: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

13

Simone Buso - Microcontrollori e DSP - Lezione 20 25

PWM: risposta dinamica

t

t

T

Subito dopo l’inizio del periodo, un evento esternorichiede la riduzionedel duty-cycle.Il sistema risponde con un ritardo R di (quasi) un periodo.

RSi può avere un ritardo pari, al massimo, ad un periodo di modulazione. Nei modulatori in cui è permesso l’aggiornamento del duty-cycle ogni semiperiodo, il ritardo massimo si riduce a metà (ecco perché esistono).

Simone Buso - Microcontrollori e DSP - Lezione 20 26

Applicazioni della PWMAl di fuori delle applicazioni in elettronica di potenza nel controllo di convertitori a commutazione (SMPS), i modulatori PWM trovano impiego anche nella amplificazione dei segnali audio (amplificatori in classe D) e nella realizzazione di convertitori D/A.Solo nell’ultimo caso la demodulazione avviene in un circuito realizzato solo a questo scopo.Nel caso degli SMPS e degli amplificatori audio la demodulazione avviene in tutto o in parte nel sistema stesso, che ha caratteristiche intrinsecamente passa-basso.

Page 14: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

14

Simone Buso - Microcontrollori e DSP - Lezione 20 27

Controllo PWM di un inverter

C = 100 µF, R = 0.1 Ω, L = 2 mH

Vdc = 400 V, fsw = 10 kHz

L

R

CILoad

Vdc/2

Vdc/2

O

Nodo di uscita a tensione V

mC

V

Simone Buso - Microcontrollori e DSP - Lezione 20 28

Il convertitore di potenza (detto inverter) è pilotato da un modulatore PWM.Agisce come un buffer di tensione, con grande guadagno di potenza.La parte passiva del sistema costituisce il demodulatore (è un passa-basso di ordine 2).Sulla capacità C si viene a formare una tensione pari al valore medio della tensione prodotta dal’inverter nel punto O, più un certo ripple sovrapposto.La tensione (e anche la corrente) di uscita si può controllare a catena chiusa.

Controllo PWM di un inverter

Page 15: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

15

Simone Buso - Microcontrollori e DSP - Lezione 20 29

Controllo PWM di un inverterIn questo caso, il mC può realizzare il sistema di controllo in questo modo:

regolatore PID

V*

V

PWM+-

segnale modulante (valori del duty-cycle)

comandi per gli interruttoridal convertitore

A/D

riferimento interno (costante o variabile)

mC

Naturalmente, il regolatore PID è un algoritmoche calcola i valori del duty-cycle per il PWM.

Simone Buso - Microcontrollori e DSP - Lezione 20 30

Esempi di modulatori PWMModulatore PWM del DSP ADMC401.Il modulatore è trifase,e permette tutte la modalità di operazione più comuni (asimmetrica, simmetrica, double update, vettoriale).Alla frequenza di 50 kHz e in modalità simmetrica consente una risoluzione sul valore del duty-cycle di 8 bit(@26MHz).

6 canali di uscita

Page 16: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

16

Simone Buso - Microcontrollori e DSP - Lezione 20 31

Esempi di modulatori PWMModulatore PWM del mC PIC18F452.Il modulatore è bifase,e permette solo la modalità asimmetrica.Il contatore presenta 10 bit.La risoluzione in bit per una fissata frequenza di PWM è però pari a:

Log10

Log10(2)

fclk

fPWMbit

Simone Buso - Microcontrollori e DSP - Lezione 20 32

Esempi di modulatori PWMModulatore PWM del mC LP2129.

Il modulatore è trifase,ma permette solo la modalità asimmetrica (con single o doubleupdate).

Alla frequenza di 40 kHz consente una risoluzione sul duty-cycle appena superiore a 8 bit (per una frequenza di clock di 12MHz).

6 canali di uscita

Page 17: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

17

Simone Buso - Microcontrollori e DSP - Lezione 20 33

Configurazione dei PWMTrattandosi in sostanza di un contatore, il modulatore PWM si configura in modo molto simile ad un timer.Il primo parametro da scegliere è la frequenza di modulazione. Se questa non è fissata dalle specifiche del progetto, conviene che sia la più elevata possibile, per rendere meno complicata la demodulazione del segnale.Bisogna però fare attenzione alla risoluzionerisultante per il valore del duty-cycle. Se questa scende al di sotto degli 8 bit, possono emergere cicli limite.

Simone Buso - Microcontrollori e DSP - Lezione 20 34

Configurazione dei PWMLa frequenza desiderata si ottiene poi impostando un opportuno fattore di divisionesul prescaler che è sempre presente, in modo da abbassare la frequenza di conteggio rispetto alla frequenza del clock di sistema.Normalmente sono richiesti fattori di riduzione abbastanza elevati, dovendo abbassare la frequenza di lavoro da valori dell’ordine del MHz a valori dell’ordine del kHz.La risoluzione sul duty-cycle è inversamente legata al valore “in conteggi” del periodo di modulazione.

Page 18: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

18

Simone Buso - Microcontrollori e DSP - Lezione 20 35

Configurazione dei PWMI valori della frequenza di modulazione non superano, di solito, i 50 kHz.La configurazione si completa fissando, quando possibile, la modalità di funzionamento del modulatore (simmetrica, asimmetrica) e il numero di uscite (uscita singola o doppia).Infine, è necessario predisporre il sistema delle interruzioni in modo che la IR generata dal modulatore PWM sia servita.La ISR ha il compito di aggiornare il valore del duty-cycle per il periodo successivo a quello corrente (⇒ ritardo di risposta).

Simone Buso - Microcontrollori e DSP - Lezione 20 36

Configurazione dei PWMNel caso di controllo a catena chiusa di un sistema pilotato tramite PWM, si pone sia il problema di scelta della frequenza di campionamento che di quella di modulazione.Le due non possono essere scelte in modo indipendente l’una dall’altra. Infatti, a causa del ritardo di risposta implicito nella PWM realizzata con mezzi digitali, la dinamica del sistema sotto controllo viene rallentata in modo significativo.Il campionamento delle variabili deve tenere conto di questo problema.

Page 19: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

19

Simone Buso - Microcontrollori e DSP - Lezione 20 37

Sincronizzazione PWM/ADCIl controllo digitale dovrà essere quindi limitato in banda ben al di sotto della frequenza di modulazione, altrimenti si può incorrere in fenomeni di instabilità dovuti al ritardo di risposta del modulatore.D’altra parte, si tende ad avere la frequenza di campionamento più alta possibile, per massimizzare le prestazioni del sistema di controllo.Una scelta comune è quindi quella di porre le due frequenze allo stesso valore.Si pone però un serio problema di aliasing.

Simone Buso - Microcontrollori e DSP - Lezione 20 38

Sincronizzazione PWM/ADCLe variabili campionate in un sistema controllato tramite PWM presentano sempre componenti armoniche alla frequenza di modulazione e multiple.Il campionamento di queste variabili ad una frequenza pari alla frequenza di modulazioneviola quindi il teorema di Shannon.L’errore di aliasing che si produce risulta però, in questo caso, molto conveniente. In effetti ci permette di estrarre direttamente i valori medi delle grandezze di interesse, operandone implicitamente la demodulazione.

Page 20: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

20

Simone Buso - Microcontrollori e DSP - Lezione 20 39

Sincronizzazione PWM/ADC

TCon sincronizzazione

Senza sincronizzazione

Segnale da acquisire

t-E/2E/2

Segnale campionato

Simone Buso - Microcontrollori e DSP - Lezione 20 40

Sincronizzazione PWM/ADCLa figura precedente mostra che, se il campionamento viene effettuato sempre nello stesso momento all’interno del periodo di modulazione, allora la variabile campionata è priva di ripple residuo.Questo risultato si ottiene sincronizzando il processo di campionamento e quello di conversione.Scegliendo poi in modo intelligente l’istante del periodo di modulazione in cui campionare, si può addirittura estrarre il valore mediodella grandezza campionata.

Page 21: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

21

Simone Buso - Microcontrollori e DSP - Lezione 20 41

Esempio di applicazioneSupponiamo di dover variare la temperatura di un elemento riscaldante (i.e. una resistenza), regolando con un comando elettrico l’entità della potenza che questa dissipa.Supponiamo di avere a disposizione il nostro mC preferito, ovvero il Philips LP2129 e di poterlo far funzionare alla frequenza di clock di 12 MHz.Vogliamo allora progettare un sistema di regolazione, basato sul mC, che ci permetta di raggiungere il risultato desiderato.

Simone Buso - Microcontrollori e DSP - Lezione 20 42

Definizione del problemaVCC = 20 V

R = 20 Ω

ST

Un semplice modo di ottenere il risultato desiderato è controllare in modalità PWM la potenza elettrica media che interessa il resistore R, ponendo in serie ad esso un interruttore S.

iRSegnale PWM dal mC

Page 22: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

22

Simone Buso - Microcontrollori e DSP - Lezione 20 43

Definizione del problemaValutiamo la potenza media sulla resistenza:

P = 1T∫

Tp(t) dt =

VCC2

R⋅ δ

Questa risulta proporzionale al duty-cycle della modulazione PWM. La nostra ipotesi di realizzazione si presta quindi a risolvere il problema posto.Si tratterà allora di acquisire con il mC un segnale di comando e rendere il duty-cycle proporzionale a questo segnale.

Simone Buso - Microcontrollori e DSP - Lezione 20 44

Definizione del problemaVDD = 3.3 V

0<Vin<3.3 VAll’ADC del mC

La cosa può essere fatta ricorrendo ad un semplice partitore resistivo, realizzato con un potenziometro. La tensione di alimentazione può essere quella del mC stesso. In questo modo non si pone il problema di adattare il segnale.

10 kΩ

47 kΩ 100 nF

Page 23: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

23

Simone Buso - Microcontrollori e DSP - Lezione 20 45

Scelte di progettoDobbiamo scegliere in primo luogo le frequenze di campionamento e di modulazione.La dinamica del nostro sistema dipenderà dalle caratteristiche fisiche del resistore. Potendo questo dissipare fino a 20 W, avrà sicuramente dimensioni abbastanza grandi e una costante di tempo termica certamente non trascurabile.Supponiamo per esempio di ottenere un regime stazionario in risposta ad un gradino di potenza in un tempo dell’ordine di 30 s.

Simone Buso - Microcontrollori e DSP - Lezione 20 46

Scelte di progettoCon queste velocità di risposta da parte del sistema non ha sicuramente senso acquisire il segnale di controllo ad altissima velocità.Una frequenza di campionamento dell’ordine di pochi Hz può essere più che sufficiente.Supponiamo quindi di campionare il segnale di controllo alla frequenza di 5 Hz.L’aggiornamento del duty cycle può poi essere fatto alla stessa frequenza. Si configura così la struttura del programma di controllo del nostro sistema.

Page 24: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

24

Simone Buso - Microcontrollori e DSP - Lezione 20 47

Algoritmo di controlloDato che il controllo del duty-cycle è per noi l’unica attività del mC, possiamo organizzare l’algoritmo in modo molto semplice, abilitando una sola sorgente di interruzioni.Ad esempio, possiamo fare in modo che, all’inizio di ogni periodo di modulazione, il PWM attivi una IR.All’interno della ISR corrispondente provvederemo sia alla conversione del dato che all’aggiornamento del duty-cycle per il periodo di modulazione successivo.

Simone Buso - Microcontrollori e DSP - Lezione 20 48

Algoritmo di controllo

InizializzazioneProgramma principale loop: nop

jmp loop

ISR_PWMPWM: …

Il programma, dopo una fase di inizializzazionedi variabili, registri, periferiche etc., entra in un ciclo infinito di attesa.

routine che aggiorna il valore del duty-cycledel segnale PWM.ret

La ISR del PWM attiverà il convertitore A/D per una conversione “single-shot” e si porrà in attesa del dato. Poi aggiornerà il valore del duty-cycle.

Page 25: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

25

Simone Buso - Microcontrollori e DSP - Lezione 20 49

Configurazione del mCAbbiamo deciso che la frequenza di modulazione sia di 5 Hz. Dobbiamo quindi calcolare il valore del periodo di modulazione in termini di cicli di conteggio del timer.Possiamo fissare la frequenza di conteggio decidendo prima la frequenza del bus delle periferiche (e.g. pclk = cclk/4, quindi 3 MHz) e poi agendo sul prescaler del timer.Conviene inoltre che il duty-cycle sia regolabile su almeno 1024 livelli. Questo implica che la durata del periodo dovrà essere pari per lo meno a 1024 conteggi.

Simone Buso - Microcontrollori e DSP - Lezione 20 50

Configurazione del mCDovremo quindi fare in modo che, alla frequenza di 3 MHz, 1024 conteggi del timer siano pari ad un tempo di circa 0.2 s (i.e. 1/(5 Hz)).Il prescaler ci permette di ridurre la frequenza del timer. Scegliendo un fattore di riduzione pari a 586 si ottiene una frequenza di conteggio pari a:Ftimer = 3 MHz / 586 = 5.12 kHzQuindi in 1024 conteggi avremo un periodo di circa 0.2 secondi, come desiderato.

Page 26: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

26

Simone Buso - Microcontrollori e DSP - Lezione 20 51

Configurazione del mCData la semplicità della nostra applicazione, il timer del PWM dovrà essere configurato per contare fino a 1024 e poi resettarsi per ripartire da 0.Al momento del match con il valore contenuto nel registro di “compare” (il nostro duty-cycle) l’uscita del PWM sarà automaticamenteportata a 0.Avremo quindi un funzionamento asimmetricocon singolo aggiornamento del duty-cycle.

Simone Buso - Microcontrollori e DSP - Lezione 20 52

Configurazione del mCI registri di configurazione del PWM vanno quindi così programmati:.equ PWMTCR, 0xE0014004 /* Indirizzo PWM Timer Control Register */

.equ PWMENA, 0x00000009 /* Abilito PWM (dopo aver settato PWMMR0) */

.equ PWMPRC, 0xE001400C /* Indirizzo registro controllo prescaler PWM */

.equ PRC_CFG, 0x00000249 /* Valore per il prescaler pclk/586 */

.equ PWMMR0, 0xE0014018 /* Indirizzo PWMMR0 (definisce periodo PWM) */

.equ PWMMR0_CFG, 0x00000400 /* Periodo: 16 cicli di conteggio (risoluzione) */

.equ PWMMCR, 0xE0014014 /* Indirizzo PWMMCR (controllo match) */

.equ PWMMCR_CFG, 0x00000002 /* Interrupt su MR0 e reset T0 a fine periodo */

.equ PWMPCR, 0xE001404C /* Indirizzo PWMPCR (definisce tipo PWM) */

.equ PWMPCR_CFG, 0x00000200 /* Attivo PWM1 in single edge mode (per forza) */

.equ PWMMR1, 0xE001401C /* Indirizzo PWMMR1 (definisce duty-cycle) */

.equ PWMMR1_CFG, 0x00000200 /* duty-cycle iniziale 512/1024 */

.equ PWMLER, 0xE0014050 /* Indirizzo PWMLER (aggiorna valori match) */

.equ PWMLER_CFG, 0x00000002 /* Aggiorno il valore in PWMMR1 */

Page 27: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

27

Simone Buso - Microcontrollori e DSP - Lezione 20 53

Configurazione del mCA questo punto, l’unica avvertenza da usare è l’allineamento corretto del dato convertito dall’ADC.Questo è posto sui 10 bit ADDR[15:6] quindi deve essere shiftato a destra in modo opportuno, per poter rappresentare il duty-cycle.E’ sufficiente osservare che il bit 6 di ADDR deve diventare il bit 0 del duty-cycle per realizzare che l’entità dello shift deve essere proprio pari a 6 posizioni.

Simone Buso - Microcontrollori e DSP - Lezione 20 54

Configurazione del mCLa ISR del PWM è quindi:

LDR r0,=ADCR /* r0 contiene indirizzo ADCR */LDR r1,=AD_CFG /* pattern di configurazione in r1 */ORR r1,r1,#0x01000000 /* inizia conversione A/D */STR r1,[r0] /* alzo il bit di start (24) */LDR r2,=ADDR /* carico indirizzo dato A/D */

Poll: LDR r3,[r2] /* leggo il dato convertito */CMP r3,#0x00000000 /* se è ancora in corso è positivo */BGE Poll /* aspetto fine conversione */BIC r1,r1,#0x01000000 /* arresto la conversione: dato pronto */STR r1,[r0]LDR r3,[r2] /* leggo dato */MOV r3,r3, LSR #6 /* normalizzo a T: r3 ora è il duty-cycle */

Duty:LDR r0, =PWMMR1 /* indirizzo duty-cycle per PWM1 */STR r3, [r0] /* aggiorno il duty-cycle */

Uscita: SUBS PC, r14, #4 /* ritorna da FIQ */

Page 28: Lezione 20 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · PWM +-segnale modulante (valori del duty-cycle) comandi per gli dal convertitore interruttori A/D riferimento

28

Simone Buso - Microcontrollori e DSP - Lezione 20 55

Bug del simulatoreIl simulatore usato finora ha manifestato un problema nella gestione del modulatore PWM,la cui simulazione sembra non riprodurre correttamente il funzionamento reale.Di conseguenza, per la verifica della soluzione al problema proposto, è stato necessario usare un normale contatore e anche rinunciare all’uso del prescaler.Se ne ottiene un codice funzionante, ma sicuramente inadatto agli usi pratici. Il bug è stato segnalato alla ditta produttrice del simulatore.