Un moduletto PWM multiuso.
E' comodo avere a disposizione un generatore in cui si possa modificare sia
la frequenza che il duty cycle, magari con display e controllo digitale.
Certamente è possibile realizzarne quanti se ne desiderano partendo da uno
dei tanti microcontroller disponibili, però la cosa richiede tempo e, non
ultimo, ha un costo maggiore di quello che il mercato dei moduli rende
disponibile.
In particolare parliamo del modulo marcato XY-LPWM.
|
Si tratta di un modulo di piccole dimensioni ( 52mm x 32mm) che
svolge le funzioni di generatore PWM con frequenza regolabile da 1Hz a
100kHz e duty cycle da 0 a 100%. Il modulo è alimentabile esternamente con tensioni da 3 a 30V,
tensione che corrisponde anche a quella dell'impulso in uscita e può
fornire fino a 30mA.
La regolazione della frequenza e del duty è effettuata con due
coppie di pulsanti. |
Il modulo con tiene diversi componenti, saldati sul lato opposto a quello del
display:
Il cuore del sistema è un microcontroller Holtek N76E003AT20 o STM8S003F3P6
che comanda un LCD driver HT1621
e il relativo pannello LCD custom, retroilluminato. L'alimentazione è ottenuta
con un regolatore lineare a tre terminali che rende in uscita 3.3V ed arriva a
supportare fino a 30V in ingresso (anche se questo è un dato limite di targa a
cui non è il caso di avvicinarsi troppo).
Il connettore J3 serve ad accedere ai pin di programmazione del
microcontroller
La regolazione del PWM e della frequenza è ottenuta con 4 pulsanti che
incrementano o decrementano i relativi campi.
Il modulo è dotato di una presa RS232 a livello 3.3V per interfacciarsi con un
micro host o con un adattatore seriale per un controllo remoto dei parametri.
Il segnale in uscita è ottenuto dal collettore di un transistor NPN che ha
come pull-up una resistenza da 1k collegata alla alimentazione del modulo; si
può quindi prelevare un impulso di pari ampiezza con una corrente di alcuni
milliampere (dichiarati dal costruttore 30mA massimo).
Il funzionamento dei comandi è semplice:
- i pulsanti FREQ+ e FREQ- servono ad aumentare e diminuire la
frequenza del segnale. Premendoli brevemente la variazione è di una unità;
tenendoli premuti più a lungo, l'aumento o la riduzione sono veloci.
- Altrettanto per il duty cycle, che può variare da 0% (segnale in uscita a
massa) al 100% (segnale sempre positivo) con incrementi dell'1% con i
pulsanti DUTY+ e DUTY-
La lettura della frequenza e del duty avviene sul display.
Date le dimensioni minime e le poche cifre presenti, la lettura della frequenza
è un poco complessa; la posizione del punto decimale indica la gamma:
- Se il display presenta xxx,
il valore è in hertz. La variazione possibile è 1Hz
Ad esempio, nelle foto sotto, 100 indica 100Hz e il duty è al 50%.
- Se il display presenta x.xx
il valore è in kHz, con una variazione minima di 10Hz
Ad esempio 1.00 indica 1kHz
- se il display presenta xx.x
il valore è in decine di kHz, con una variazione minima di 100Hz
Ad esempio, nella foto sopra, 33.6 indica 33.6kHz e il duty al 68%
- se il display presenta xxx.
il valore è in centinaia di kHz, con un massimo di 150kHz.
Ad esempio 100. indica 100kHz
Il passaggio da una gamma all' altra è automatico. Il costruttore dichiara
una precisione entro il 2%.
Il display indica la scritta OUT quando il modulo funziona
normalmente e SET quando si sta operando una variazione dei
parametri. Tutti i parametri selezionati sono salvati quando l'alimentazione è
sospesa e ripresi quando il modulo viene nuovamente alimentato.
E' possibile comandare il modulo da remoto con un collegamento seriale RS232.
Un connettore rende accessibili i segnali TXD, RXD e il GND per il collegamento
diretto con un microcontroller (livello logico 3V), ma si può collegare una
interfaccia TTL/RS232 per la comunicazione con un PC.
La comunicazione è il classico 9600, n, 8, 1. Il connettore è
costituito da 3 fori metallizzati, in cui è possibile saldare il solito
connettore a spine.
Il pin RXD è quello di ricezione del segnale dalla linea, il pin TXD
quello di trasmissione dal modulo alla linea
Il "protocollo" è semplice:
- L'host può inviare un comando per modificare la frequenza
Ad esempio "F100" seleziona 100Hz
"F1.00" seleziona 1000Hz
"F10.0" seleziona 10kHz
"F100." seleziona 100kHz
Come per la regolazione con i pulsanti, occorre qualche ciclo del
microcontroller perchè la frequenza sia variata.
- L'host può inviare un comando per modificare il duty
Ad esempio "D050" seleziona il 50%
In ogni caso, si ottiene dal modulo un messaggio di risposta "DOWN"
se l'operazione ha avuto successo" "FAIL" se
non è riuscita (ad esempio perchè il comando inviato è errato).
- l'host può inviare una stringa "read" ed ottenere
in risposta la situazione della frequenza e del duty
L'alimentazione è accessibile su quattro fori in cui si può saldare
direttamente i cavetti o, meglio, delle spine per facilitare le connessioni. Un
diodi evita danni al micro e al controller LCD (ma non all'uscita !) in
caso di inversione della polarità.
ATTENZIONE: ci sono due coppie di fori VIN+/VIN-, ma sono in
parallelo.
Anche l'uscita è accessibile con 4 fori.
ATTENZIONE: ci sono due coppie di fori PWM/GND, ma sono in
parallelo, dato che il segnale in uscita è singolo e non doppio.
Il modulo è fissabile meccanicamente con 4 viti M2 inseribili nei fori agli
angoli.
I test.
Innanzitutto, è necessario notare come in questi moduli (e, in
generale, in tutte le realizzazioni cinesi simili, è opportuno aggiungere
elettrolitici sull'alimentazione: i condensatori presenti sono il minimo per la stabilità.
Però, quando la richiesta di corrente è alta, non sono sufficienti. Le prove
sono state effettuate con un 100uF in parallelo all'alimentazione.
Per quanto riguarda la frequenza, si nota dallo schema che il
microcontroller lavora con l'oscillatore interno e non con un quarzo; ne deriva
che la precisione da attendersi sarà quella di questo oscillatore, che
tipicamente è entro l'1-2%; il costruttore dichiara un errore massimo del 2%: non si tratta di
un campione di frequenza, ma di un circuito funzionale a basso costo.
|
|
50Hz - 10% |
1kHz - 80% |
|
|
100kHz - 50% |
150kHz - 50% |
In effetti, la frequenza misurata dall'oscilloscopio (Tektronik)
è risultata entro quanto previsto; in alcuni pezzi provati si è verificata
migliore dello 0.3%, il che non è male per un oggetto così economico.
Modifche?
L'unica modifica necessaria è l'aggiunta di un elettrolitico da 100uF in
parallelo all'alimentazione VIN.
Il consumo a vuoto del modulo è 18-19mA. Se, per qualche ragione, è necessario ridurre
questo valore, si potrà sostituire la resistenza R4, che limita la corrente nei LED della retro illuminazione, che è da 33ohm, con
una da 36-43ohm (SMD size 0805).
Conclusioni.
Si tratta di un modulo che ha un rapporto prezzo/prestazioni notevole e che
non ha dato particolari problemi. I costi minori sono per le spedizioni dalla
Cina, con tempi di trasporto abbastanza lunghi, ma pagando un po' di più si
trova anche in Europa in tempi brevi.
Se avete una applicazione in cui utilizzarlo, è da considerare una scelta più
che ragionevole. In ogni caso, è un modulo abbastanza flessibile da avere nel cassetto dove occorra prontamente avere a pronta disposizione un piccolo
generatore di PWM digitale.
Potrà essere usato come:
- generatore di onde quadre per ogni genere di sperimentazioni.
- generatore di PWM per controllare dimmer o variatori su motori, lampade,
resistenze
- generare impulsi per conteggio o timing verso una MCU
- generare impulsi per comando di step motor
- testare servocomandi per modellismo
e tanto altro
In particolare, la possibilità di ricevere comandi attraverso una
connessione seriale permette di inserirlo in realizzazioni più complesse.
Il modulo è stato utilizzato anche per realizzare un generatore
PWM di potenza.
|