Sezione di PWM e Generatore di D/A Converter.

Corso di BASCOM AVR - ( 3 4 )
Corso Teorico/Pratico di programmazione in BASCOM AVR.
Autore: DAMINO Salvatore.
Sezione di PWM e Generatore di D/A Converter.
La struttura interna dei Mini Moduli è composta da molte diverse sezioni che
sono in grado di offrire svariate interfacce Hardware per supportare le più diverse
possibilità applicative. Tra le varie unità disponibili, nei Mini Moduli, una sezione
molto interessante è quella denominata PWM.
Schema a Blocchi della Sezione PWM.
La Modulazione di Larghezza di Impulso, dall'inglese Pulse-Width
Modulation o PWM, è un tipo di Modulazione Analogica in cui l'informazione è
codificata sotto forma di durata nel tempo di ciascun impulso di un segnale.
220
La durata di ciascun impulso può essere espressa in rapporto ai periodi dei due
livelli successivi che formano l’impulso, implicando il concetto di Duty Cycle.
Un Duty Cicle pari a 0 % indica un impulso di durata nulla, in pratica assenza di
segnale, mentre un valore del 100% indica che l'impulso termina nel momento in
cui inizia il successivo.
Andamendo del Segnale PWM.
Molte volte i progettisti si trovano di fronte alla necessità di generare livelli di
tensione analogica in circuiti esclusivamente digitali.
Anche se oggi il mercato offre una gamma molto ampia di convertitori DigitaliAnalogici dedicati, è possibile ricorrere anche ad una soluzione, a basso costo,
utilizzando la sezione PWM del Mini Modulo.
221
Ricostruzione del segnale da PWM ad Analogico.
Nella figura, sopra riportata, si può esaminare come si passa da un segnale PWM
ad un segnale analogico. Con questa tecnica, utilizzando solo pochi componenti
passivi, si può generare un buon convertitore Digitale/Analogico.
Negli esempi successivi si potranno esaminare alcuni programmi di utilizzo di un
Mini Modulo che sfruttano una linea di uscita PWM per generare una tensione
analogica che possa coprire l'intero range tra lo 0 Vdc e la tensione di
alimentazione, che è il massimo valore generabile.
Tramite gli esempi proposti, e utilizzando un normale Voltmetro oppure un
Tester, è possibile visualizzare immediatamente il valore di tensione generato.
Molteplici sono le possibili applicazioni di questa tecnica. La più immediata è, ad
esempio, quella di pilotare un ingresso di un azionamento per gestire, ad esempio,
un motore in DC, una valvola proporzionale, ecc.
Questa soluzione, estremamente economica, permette di poter pilotare dei piccoli
azionamenti per movimentare meccanismi in cui la risoluzione, che il PWM può
raggiungere, sia sufficiente.
222
Esempio.063. Gestione PWM. Genera una
Converter Realizzata Tramite un Segnale PWM.
Uscita
D/A
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
CONFIG TIMER1; PWM1A.
Operatori aggiunti:
Nessuno
Programma di Esempio.063 del corso BASCOM AVR.
Gestione PWM: Genera un'uscita di Conversione D/A, realizzata tramite un
segnale PWM.
Generazione di un D/A Converter tramite linea PWM.
223
Il programma genera un segnale PWM di frequenza fissa a circa 14.500 Hz e
Duty Cycle impostabile da utente, tramite console. Il segnale a modulazione di
ampiezza d'impulso (Pulse Width Modulation) generato, se collegato ad
un'opportuna rete RC, produce un segnale analogico variabile nel campo 0÷5 V.
La generazione del segnale PWM avviene via hw con la sezione Timer 1 del
microcontrollore, di cui si usa il segnale di comparazione collegato al pin OC1A del
Mini Modulo, riportato sul connettore CN4.3 della GMM TST3, come da schema
elettrico.
La risoluzione usata sul Timer 1 è di 8 bits ed il segnale PWM generato avrà 2 5 6
valori diversi di duty cycle.
Il programma si presenta ed usa una console seriale dotata di monitor e tastiera
con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit,
Nessuna Parità.
Questa console può coincidere con un sistema in grado di gestire una
comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC
dotato di una linea COMx, che esegue un programma di emulazione terminale
come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere
Configurazioni IDE) .
Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della
GMM TST3!!
224
Esempio.064. Gestione PWM. Genera una Uscita
Converter Continuamente Crescente e Decresente.
D/A
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
STEP.
Operatori aggiunti:
Nessuno
Programma di Esempio.064 del corso BASCOM AVR.
Gestione PWM: Genera un'uscita di conversione D/A, continuamente crescente
e decrescente, tramite un segnale PWM.
Il programma genera un segnale PWM di frequenza fissa a 14.500 Hz e Duty
Cycle variato continuamente prima dal minimo al massimo e poi dal massimo al
minimo. Il segnale PWM generato, se collegato ad un'opportuna rete RC, produce
un segnale analogico a dente di sega (onda triangolare), variabile nel campo 0 ÷ 5
V. La scelta della rete RC determina sia la stabilità del segnale D/A generato che
la sua prontezza nel seguire le variazioni di Duty Cycle. Tali valori variano quindi
a seconda delle esigenze dell'utente e del carico applicato al segnale D/A.
La generazione del segnale PWM avviene via HW con la sezione Timer 1 del
microcontrollore, di cui si usa il segnale di comparazione collegato al pin OC1A del
Mini Modulo, riportato sul connettore CN4.3 della GMM TST3, come da schema
elettrico. La risoluzione usata sul Timer 1 è di 8 bits ed il segnale generato
aumenta e diminuisce con 256 passi equivalenti ad altrettanti Duty Cycle
diversi.
Il programma si presenta ed usa una console seriale dotata di monitor, con un
protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna
Parità. Questa console può coincidere con un sistema in grado di gestire una
comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC
dotato di una linea COMx, che esegue un programma di emulazione terminale
come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere
Configurazioni IDE) .
Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della
GMM TST3!!
225
Esempio.065. Gestione PWM. Pilota LED Variando la
Luminosità Tramite linea D/A Converter.
La Linea D/A Viene
Pilotata Agendo sulla Posizione un Potenziometro Letto da un
A/D Converter.
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
Nessuna
Operatori aggiunti:
Nessuno
Programma di Esempio.065 del corso BASCOM AVR.
Gestione PWM: genera un'uscita di conversione D/A, tramite un segnale PWM,
definito dalla posizione di un Potenziometro acquisito tramite A/D converter.
Pilotaggio di un D/A Converter Tramite Potenziometro.
226
Il programma genera un segnale PWM di frequenza fissa a 1 4 . 5 0 0 Hz e Duty
Cycle variato dalla posizione di un Potenziometro.
Il segnale PWM generato, se collegato ad un'opportuna rete RC, produce un
segnale analogico proporzionale alla posizione del potenziometro, variabile nel
campo 0÷5 V.
La scelta della rete RC determina, sia la stabilità del segnale D/A generato, che la
sua prontezza nel seguire le variazioni di Duty Cycle. Tali valori variano quindi a
seconda delle esigenze dell'utente e del carico applicato al segnale D/A.
Collegando un LED al segnale D /A la sua luminosità varierà al variare del
potenziometro ed, essendo tutto gestito da software, il programma può decidere
in che modalità. Ad esempio la luminosità del LED potrà essere determinata
anche da ingressi digitali, ritardi, altri ingressi analogici, temperature, parametri in
memoria, ecc.
La generazione del segnale PWM avviene via HW con la sezione Timer 1 del
microcontrollore, di cui si usa il segnale di comparazione collegato al pin OC1A del
Mini Modulo, riportato sul connettore CN4.3 della GMM TST3, come da schema
elettrico.
La risoluzione usata sul Timer 1 che genera il segnale PWM è di 8 bits mentre
quella della sezione A/D è di 10 bits: il programma provvede ad adattare i due
valori.
Il programma si presenta ed usa una console seriale dotata di monitor, con un
protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna
Parità.
Questa console può coincidere con un sistema in grado di gestire una
comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC
dotato di una linea COMx, che esegue un programma di emulazione terminale
come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere
Configurazioni IDE) .
Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della
GMM TST3!!
227