Corso di BASCOM 8051 - (Capitolo 3 4 )
Corso Teorico/Pratico di programmazione in BASCOM 8 0 5 1 .
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.
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.
215
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.
216
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 ed 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.
217
Esempio.063. Gestione PWM. Genera una
Converter Realizzata Tramite un Segnale PWM.
Uscita
D/A
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
Nessuna
Operatori aggiunti:
Nessuno
Programma di Esempio.063 del corso BASCOM 8051.
Gestione PWM: Genera un'uscita di Conversione D/A, realizzata tramite un
segnale PWM.
Generazione di un D/A Converter Tramite Linea PWM.
218
Il programma genera un segnale PWM di frequenza fissa a 14.400 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 PCA del
microcontrollore, di cui si usa il canale 0 collegato al pin CEX0 del Mini Modulo,
riportato sul connettore CN4.3 della GMM TST3, come da schema elettrico.
La risoluzione della sezione PCA è 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 8 0 5 1 (vedere Configurazioni IDE) .
Il programma funziona solo se la GMM 5 1 1 5 è montata sullo zoccolo Z2 della
GMM TST3!!
219
Esempio.064. Gestione PWM. Genera una Uscita
Converter Continuamente Crescente e Decresente.
D/A
Definizioni aggiunte:
Nessuna
Dichiarazioni aggiunte:
Nessuna
Istruzioni aggiunte:
DOWNTO.
Operatori aggiunti:
Nessuno
Programma di Esempio.064 del corso BASCOM 8051.
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.400 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 PCA del
microcontrollore, di cui si usa il canale 0 collegato al pin CEX0 del Mini Modulo,
riportato sul connettore CN4.3 della GMM TST3, come da schema elettrico.
220
La risoluzione della sezione PCA è di 8 bits ed il segnale generato aumenta e
diminuisce con 2 5 6 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 8 0 5 1
(vedere Configurazioni IDE) .
Il programma funziona solo se la GMM 5 1 1 5 è montata sullo zoccolo Z2 della
GMM TST3!!
221
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 8051.
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.
222
Il programma genera un segnale PWM di frequenza fissa a 14.400 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
secondo 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 PCA del
microcontrollore, di cui si usa il canale 0 collegato al pin CEX0 del Mini Modulo.
Esso, come si può notare dallo schema elettrico, è riportato sul connettore CN4.3
della GMM TST3.
La risoluzione della sezione PCA che genera il segnale PWM è di 8 bit mentre
quella della sezione A/D è di 1 0 bit. 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 oppure l'omonima modalità offerta dal BASCOM 8 0 5 1
(vedere Configurazioni IDE) .
Il programma funziona solo se la GMM 5 1 1 5 è montata sullo zoccolo Z2 della
GMM TST3!!
223