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