bagımsız 4 adet pwm

Başlatan masb, 05 Temmuz 2010, 11:49:31

masb

LPC ile pwm baslangıc ve bitis noktaları farklı 4 adet pwm sinyali üretmek istiyorum
-----_____---------___          pwm1
    _____----------__             pwm2
  ___-----_________----      pwm3       
     --------______--------      pwm4
lpc2368 le sadece 3 tane farklı pwm olusturula biliyor (single mod da baslangıc noktaları aynı 6 adet pwm
dual modda bitis noktası kendinden sonraki pwm sinyalinin baslangıc noktası oluyor yani aralardaki pwm leri
elersek 3adet  bagımsız pwm sinyali kalıyor elimizde)

masb

fikri olan bir arkadaş yokmu lpc serisi ile olması şart degil yapmak istedigim birbirinden bagımsız
dort adet pwm uretmek timet interrup ile bu mümkün ama 50 khz seviyelerine cıkmak istiyorum
başka bir mcu ile yapan yada bilen bir arkadaş varsa sadece yol gostersin yeter (türkiyede bula bilecegim bir mcu olursa
iyi olur tabi)

picmanya

16 bit piclerde bahsettiğiniz tarz bir işi 2 OC kanalı kullanarak timer2 veya 3 üzerinden çok yaptım 4 OC liside yapılabilir tabiki bu piclerin bazılaraında 4 OC kanalıda var ama bu işe iki timer ayırılabiliyor bunu iyi biliyorum oda dediğim gibi timer2 ve 3 ama bu iş anlatmayla olmazki geniş kapsamlı bir iş size nasıl yardım edebilirim diye düşünüyorum kararsız kalıyorum.
senin işlemcinde oldukça iyi yalnızca bu iş için hemen satcanmı onu yazık olur madem ona baya dalmışsın dahada ilerlet kendini bu tür işlemcilerde OC modül için 50kHz. alt düzey frekanslar kalır çok daha üzerine bile rahat çıkılır ama siz bu frekansla ne tür eleman anahtarlıyacanız ve ne iş yapacanız açık olunki bizde iyi yardımda bulunabilelim.sizin 50kHz. üretmekde değilde bunu iş yaptırmak için taşıyacağınız elemanlarda 50kHz. işlenirmi onda şüpheliyim.
sizin uygulamada 4 pwm kanalın frekansları ve sinyallerin şekilleri devamlı sabitmi kalacak yani sinlalerin iş yapan ve yapmayan saykılları sabitmi oluyor yoksa değişkenlikde istiyormusunuz? birde asıl frekansınız olan 50kHz. değişikenmi olacak.

XX_CİHAN_XX

En dandik atmel AVR serilerinde dahi 4 kanla pwm mevcuttur.
ATmega serisi için örnek kod:
#define		PWM1(p1)		OCR0 = p1
#define		PWM2(p2)		OCR1AL = p2
#define		PWM3(p3)		OCR1BL = p3
#define		PWM4(p4)		OCR2 = p4

	TCCR0 = 0b01101001; 
	TCCR1A = 0b10100001; 
	TCCR1B = 0b00001001;
	TCCR2 = 0b01101001;
	TCCR0 = 0;
	OCR0 = 0;
	TCNT1H = 0;         
	TCNT1L = 0;         
	OCR1AH = 0;
	OCR1AL = 0;
	OCR1BH = 0;
	OCR1BL = 0;
	TCNT2 = 0;         
	OCR2 = 0;
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

muhittin_kaplan

olduki Atmel ile değilde PIC ile çalışıyoruz. 4 adet PWM i nasıl sürekli Üretebiliriz.

XX_CİHAN_XX

Kullanılabilirliği uygulanacağı yere göre değişmekle birlikte,
Timer0 gibi bir sayıcı ile yazılımsal olarak sürekli n kanal pwm üretilebilir.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

muhittin_kaplan

aslında konuyu buraya değilde ufoxe açaaktım ama konu açılmışken devam etmek istedim.
4 adet ESC (elkt. Speed Control) süreceğim ve bunlar yanlış öğrenmediysem PWM ile oluyormuş. onun için bir işlemciye 4 adet sürekli pwm ürettirmeliyim ve diğer işlerede baktırmalıyım.

XX_CİHAN_XX

Hızlı bir işlemci ve iyi bir yazılım ile yüksek frekansta pwm üretmeyeceksen timer0 kesmelerini kullanarak 4 kanal pwm üretebilirsin. Bu şekilde ben 3 kanal pwm üretmiştim. İlgili asm kodları forumda olmalı.

PICin donanımsal pwm modülünü yazılıma aktarmış oluyorsun.
Mantık aslında gayet basit:



Şekildeki TCNT0 ı TIMER0 gibi düşünürsek, sürekli 0 ile 255 arası saydığı görülmektedir.
OCR0A yı da bizim pwm duty değerini gireceğimiz registerimiz olarak düşünelim.
OC0A yı da bizim pwm çıkış pinimiz olarak kabul edelim.
Grafiktende görüleceği üzere,
Timer0 sayıcısı 0 dan bu registerin (OCR0Anın) değerine ulaşana kadar pwm çıkışımız(OC0A) set konumda,
ulaştıktan sonra ise 255 e kadar çıkışımız 0 konumda kalmaktadır.
OCR0A comparator registerinden ve OC0A pwm çıkış pininden kaç tane yaparsanız o kadar pwm çıkışınız olur.
Bu düzeneği kesme ile çalışacak şekle getirebilirseniz olay tamamdır...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

muhittin_kaplan

Anladım Hocam Sağolun 8 yada 16 Khz ile çalışıyormuş Bu ESC ler

XX_CİHAN_XX

Çok yüksek bir frekans sayılmasa da bence 18 serisi kullanman hız açısından çok daha iyi olacaktır. Tabi yazılıma da çok dikkat etmek gerek. Sonuç olarak yazılımsal olarak bu şekilde yapacağın 4 kanal pwm işini görebilir :)

Kolay gelsin.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

masb

cevap veren arkadaşlaraın hepsine teşekürler
zannedersem sorunu iyi ifade edemedim 4adet 50 khz sinyal üretmek istiyorum
işlemçi satmak gibi bir niyetim yok ama yapmak istedigimi yapamıyorsa oyalanmanında bir anlamı yok duygusal bir bagla degil
iş icabı beraberiz atmel ve picle bu frekanslara çıkıla bilecegine pek aklım yatmadı ama emin olmadıgım icin bir şey söyleyemem
ama dispicle olabilir belki diye düşünüyorum yada başka bir 32 bit işlemciyle lpc serisiyle başladıgım için tecrübe sahibi arkaşlar
süreci hızlandıra bilir diye düşündüm

XX_CİHAN_XX

Alıntı yapılan: masb - 08 Temmuz 2010, 11:27:03
cevap veren arkadaşlaraın hepsine teşekürler
zannedersem sorunu iyi ifade edemedim 4adet 50 khz sinyal üretmek istiyorum
işlemçi satmak gibi bir niyetim yok ama yapmak istedigimi yapamıyorsa oyalanmanında bir anlamı yok duygusal bir bagla değil
iş icabı beraberiz atmel ve picle bu frekanslara çıkıla bilecegine pek aklım yatmadı ama emin olmadıgım icin bir şey söyleyemem
ama dispicle olabilir belki diye düşünüyorum yada başka bir 32 bit işlemciyle lpc serisiyle başladıgım için tecrübe sahibi arkaşlar
süreci hızlandıra bilir diye düşündüm

1,5dolarlık AVR ler ile bile 50Khz 4kanal donanımsal pwmi çok rahat bir şekilde üretebilirsin!
Bu iş için DSpicleri kullanmak ciddi anlamda abartı kalır bence...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

masb

atmelin hangi serisiyle ve nasıl yapılır anlatırsan memnun olurum
bende biraz atmellerle ilgilendim ama  yapıla bilecegine pek gozüm kesmediği için 32 bit mikrokontrole geçtim
yardımcı olursan sevinirim

picmanya

geçtiğiniz 32 bit mikro kontrolcünün adı  ve modeli nedir?

XX_CİHAN_XX

Alıntı yapılan: masb - 10 Temmuz 2010, 10:53:41
atmelin hangi serisiyle ve nasıl yapılır anlatırsan memnun olurum
bende biraz atmellerle ilgilendim ama  yapıla bilecegine pek gozüm kesmediği için 32 bit mikrokontrole geçtim
yardımcı olursan sevinirim
Neye dayanarak atmelin 50khz de 4 kanal pwm sinyali üretemeyeceğine karar verdiniz anlamış değilim. Datasheet ini incelemeniz yeterliydi.
Örneğin, Atmega 8 kullanabilirsiniz. C dili kullanıyorsanız ücretsiz derleyicisini indirip kod yazmaya başlayabilirsiniz. Örnek pwm kodunuda yine burada yayınladım. Datasheet ile biraz haşır neşir oldumu gerisi gelir. En azından 32bitlik mculara girişmektense çok daha az bir çaba ile bu mcu nun altından kalkabilirsin...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.