Newsgroup: it.hobby.elettronica.digitale
Titolo: PWM e zero-crossing

Ciao,
sto provando a realizzare un semplice PWM multicanale a 8 bit per 
applicazioni a frequenza di rete, quindi con sincronia sul passaggio per 
lo zero. I segnali PWM li genero via software data la bassa frequenza di 
esecuzione. Lo zero-crossing è pure immediato rilevarlo tramite un pin 
di interrupt.
Quello che chiedo è come gestire la sincronizzazione tra la base dei 
tempi interna e il sincronismo esterno.
Per semplificare, diciamo che quando viene generato l'interrupt esterno 
siamo sul punto di zero crossing: accendo il timer e comincio a generare 
il PWM. Quando il timer va in overflow mi aspetto che siano passati 20 
ms. Ma probabilmente il nuovo sincronismo non sarà esattamente sincrono 
con l'overflow (altrimenti non servirebbe...). Ecco, come risicronizzo 
il timer?
Marco / iw2nzm

il timer?
Non vedo il problema, lo fai partire ogni volta dall'interrupt e cominci a
contare da lì.
Avrai molte più imprecisioni data dalla filtratura del segnale di rete che dalla
differenza tra la precisione del generatore e il quarzo.
Questo perchè quando vai a mettere delle capacità vai inevitabilmente a
modificare la fase.
--
ciao
  Stefano

 modificare la fase.
mmm, quindi il contatore dovrebbe lavoare tipo one-shot: da 0 a FF poi 
fermarsi aspettando il nuovo sincronismo. Nel caso in cui il sync 
arrivasse prima della fine del ciclo reset immediato.
Ciao Stefano, grazie della risposta.
Marco / iw2nzm

Ciao Stefano, grazie della risposta.
Di niente,
--
ciao
  Stefano

 agli spykes anche senza filtrare troppo.
Ok, farò qualche prova!
Marco / iw2nzm

 ms.
Forse non ho capito cosa intendi, ma dovresti lavorare su intervalli di 10 
ms perche' la frequenza con cui si presenta lo zero crossing e' di 100 Hz.
-fammi sapere se con lo schemino che hai linkato oltre allo zero crossing 
passano altre schifezze.
Ciao Massimo 

 passano altre schifezze.
Probabilmente lo monterò nei prossimi giorni (spero prima di Natale!) e 
scriverò i risultati delle prove. Se mi dimenticassi sei autorizzato a 
ricordarmelo :)
Ciao!
Marco / iw2nzm

 
http://www.mcselec.com/index.php?option=com_content&task=view&id=89&Itemid=57
 
Io conosco anche questo, ma non saprei se è più o meno affidabile del tuo. La 
fonte rimane comunque autorevole.
http://electronicdesign.com/Articles/Index.cfm?AD=1&ArticleID=6225

 variabili di comparazione del pwm.
Si, per la fretta mi sono spiegato male ;nell'interrupt mi limito ad 
incrementare qualche variabile e impostare qualche flag.
L'rtc lo codifico nel ciclo main. Neanche a me stanno molto simpatici gli 
interrupts e cerco sempre di farne a meno :)
Ciao, a presto
Massimo

Una volta ho scritto un driver per controllare in parzializzazione di 
fase diversi triac.
Il concetto era molto semplice:
- Tramite interrupt attendevo lo zero-cross
- Nell'ISR armavo un timer per ogni triac, con un ritardo inversamente 
proporzionale alla "potenza" che volevo dare.
- I timer armati scadevano e attivavano con il ritardo programmato i 
triac corrispondenti, che si spegnevano da soli al prossimo zero-cross.
- La funzione era adattiva sul periodo, poteva funzionare a 50-60Hz
Per prendere spunto ti metto un link al codice, fa parte di un sistema 
operativo che tra poco rilasceremo, spero ti possa essere utile.
http://www.develer.com/~batt/phase.zip
Ciao


Interessante, grazie!
Marco / iw2nzm

 sto provando a realizzare un semplice PWM multicanale a 8 bit per 
ecco, non ho capito "multicanale"

un pll software? con finestra per capire se e' agganciato o no ?
ps: 8bit potrebbero non essere sufficienti; ti assicuro che +-50uS si vedono
bene con una lampada incandescenza.
buone feste

 bene con una lampada incandescenza.
Se verifico che sussiste il problema non dovrebbe essere molto rognoso 
portarsi a risoluzioni più alte. Il µC sarà dedicato e quindi non deve 
fare molto altro che tirare su e giù i pin al momento giusto.
Ciao!
Marco / iw2nzm

Marco Trapanese ha scritto:

per chi può interessare, qualche anno fa avevo fatto questo circuito con 
integrati discreti, senza micro.
All'epoca lo avevo collaudato e funziona, solo che non ricordo se lo 
schema è quello definitivo o se avevo fatto delle modifiche in corso di 
collaudo, ma non mi pare.
Ad ogni modo c'è il circuito per la rivelazione del passaggio per lo 
zero, che confesso non essere farina del mio sacco, e il resto che 
permette di comprendere il principio di funzionamento.
Dovrebbe andare uno di questi due collegamenti:
http://dc44.4shared.com/download/32402349/6684dddb/Regolatore_PWM.png?tsid=20071218-121824-546377ec&forceAttachmentDownload=true
http://www.4shared.com/file/32402349/6684dddb/Regolatore_PWM.html
saluti.
-- 
Prima di rispondermi devi togliere le dita dal naso!!! :-)