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