 | Elektrotekno.com Elektronik ve Teknoloji Merkezi
| | Yazar | Mesaj | ryan | | Tarih: 29.12.2006, 16:26 Mesaj konusu: pwm hesaplamaları | |
| Selam
16f877 ile HPWM kullanarak servo motor sürücem.
PicBasic Pro kullanıyorum.
şu parametrelerin içinden bitürlü çıkamadım.
şimdi 50hz lazım bana.20ms yani periyot.
microişlemci için de 4 mhz clock kullanıcam.
bi formul var da datasheette:
PWM period = [(PR2) + 1]*4*Tosc*(TMR2 prescale value)
ben de dedim ki:
20 ms = [(PR2)+1] * 4 * (250*10^-6) * 1
burdan PR2 = 19999 çıktı
pek mantıklı bi değer gibi görünmedi bu bana
şu formülle de gerekli resolution hesaplanıyo
Resolution = [log( Fosc/Fpwm)] / log(2)
burdan hesaplayınca resolution 16biti geçio. 877 ise 10 bitlik pwm üretebiliyo.
saat hızını arttırdıkça da PR2 daha da artıyo.
bunun mümkün olması gerekiyo bu işlemciyle aslında
ben hatayı nerde yapıyorum?
not:pbp ile pwm yaparken bu hesaplamalar gerekmeyebilir ama ben yine de burdaki sorunu anlamak istiyorum.
|
|
|
|
zafzaf82 | | Tarih: 13.02.2007, 17:14 Mesaj konusu: | |
| CCS C kullanan varsa onlar için pwm wizard buyrun çok kullanışlı bi program
|
|
ibrsel | | Tarih: 13.02.2007, 22:03 Mesaj konusu: | |
| PBP da HPWM komutunun kullanımı:
HPWM Channel,Dutycycle,Frequency
Channel: PWM çıkışını alacağın uç.(HPWM kullandığın için bu uç PIC in donanımsal olarak desteklşediği uçlardan biri olmalı)
Dutycycle: PWM (kare dalga) sinyalinin iş yapabilen kısmı.
Frequency: PWM sinyalinin frekansı.
Tabiki kullanacağın entegrenin datasheetini inceleyip kullanacağın kristal ile min ve max desteklediği frekansı belirlemelisin..
Örneğin:
4MHz ile min 245 Hz,max 32KHz PWM çıkışı alabilirsin..
50hz elde etmek için basitçe kendin de bir program yapabilirsin..
|
|
|
|