Ynt: 6 ayaklı hareket platformu

Başlatan muhittin_kaplan, 20 Ağustos 2013, 15:48:41

muhittin_kaplan

http://www.ti.com/lit/sw/slvc106/slvc106.pdf

şuradaki flow da bir problem mi var, Yeşil Bölgede
Is Data_Counter > n*192-1 kararında ne yapmaya çalışmış


muhittin_kaplan

Ne Saçma Bir IC miş, ben devamlı sana Refresh Göndereceksem Neden Seni Kullanayım, Arkadaşım Sen İstediğim PWM i değişiklik olana Kadar çıkart işte.

muhittin_kaplan

#183
TLC ile uğraşlarım Sonucunda İsteğim Freq da ve Duty de ( Unutmadan Herhangi bir kanalın ilgili registerine FFF verilirse Kanal "0" çıkış veriyor.) çıkış almayı başardım. IC devamlı bir CLK istiyor anlamsız bir IC miş ama kullanacağım. Bakayım biraz daha kurcaladıktan sonra daha özelliklerini keşfedebilecekmiyim.

Kodları Bir KÜTÜKHANE ye çevireyip ve optimize edeyim (Pek Elimden gelmez Ama Boş Durmayalım)
Sonuç olarak
50hz 1-2 ms duty ayarlandı. system is OK

(Fotoda Büyük Olmuş Kaldırdım Gitti.)

Ramiz

Alıntı yapılan: muhittin_kaplan - 13 Şubat 2014, 02:02:39
TLC ile uğraşlarım Sonucunda İsteğim Freq da ve Duty de ( Unutmadan Herhangi bir kanalın ilgili registerine FFF verilirse Kanal "0" çıkış veriyor.) çıkış almayı başardım. IC devamlı bir CLK istiyor anlamsız bir IC miş ama kullanacağım. Bakayım biraz daha kurcaladıktan sonra daha özelliklerini keşfedebilecekmiyim.

Kodları Bir KÜTÜKHANE ye çevireyip ve optimize edeyim (Pek Elimden gelmez Ama Boş Durmayalım)
Sonuç olarak
50hz 1-2 ms duty ayarlandı. system is OK

(Fotoda Büyük Olmuş Kaldırdım Gitti.)

CLK ucunu Mcu nun pwm bacağına bağlayacaksın ve donanımsal olarak clk ürettireceksin. İçersine bir kez bilgileri yazdığında, çıkışlar sabit kalır.

Pwm i mcu dan al. 100mSn lik bir timer da, servo pozistonlarını set et. Ic anlamsız değil. Sen çalışma mantığını tam olarak anlayamadın muhittin.


Birde merak ettiğim birşey var. St arm mcularda birkaç adet tim donanımı içeren mcular olması lazım. f407 de kaç adet ayrı pwm elde edebiliriz? Eğer sayısı yetiyorsa, neden stm32f407 kullanmayasın ki?
Electrical & Electronics Engineering -> Step one

muhittin_kaplan

software olarakta oluşturdum o konuda problem yok. (http://muhittinkaplan.com/2013/08/hexapot/)
ama ilk etapta 18 adet pwm lazım olunca iş sıkıntılı oluyor. sıkıntısı işlemcinin yetişmesi yetişmemesi, çok timer kullanmaktan ziyade işlemci için çok değerli olan IO portlarını heder etmem.

ayrıca IC nin kullanımıni bilmememdeki kasıtın nedir, nereyi yanlış yaptım.
MCU nun PWM ucu dediğin yer neresidir ?
"Pwm i mcu dan al" derken neyden bahsediyorsun ?

Ramiz

Kötü birşey söylemek istemedim..

Kullandığın ic 16 channel pwm led driver. Bu tarz iclerin Pixel clock adında(yada benzer isimle) bir bacağı olur ve pwm üretebilmeleri için, bu bacağın sürekli clock lanması gerekir. Eğer bu clock işini, mcu da yazılımsal olarak yapıyorsan, çok yanlış. Çünkü mcu yu boşu boşuna yormuş olursun.

Pwm i %50 duty ile, servoları sürmek istediğin frekansa ayarla. Mcu programının en başında pwm i set et ve bir daha clock ile uğraşma..

Demek istediğim bu idi :) Sevgiler.
Electrical & Electronics Engineering -> Step one

muhittin_kaplan

#187
Yanlış anlamdım, Yada Kızmadım Bilmeni İsterim.

IC de SIN, SCLK,BLANK,VPRG,GSCLK, XLAT adında mcu ile bağlantılı pinler mevcut.

(Denemedim Ama Akşam deneyeceğim) Muhtemelen SIN ve SCLK ile dataları verdikten sonra GSCLK yı verdiğim sürece aynı pwm değerini göreceğim kanallarda.



mesaj birleştirme:: 13 Şubat 2014, 13:27:30

XLAT ın ne işe yaradığını anlamadım örneğin. (Yazılanları Okudum, Denedim Olmadı)

mesaj birleştirme:: 13 Şubat 2014, 13:28:05

When XLAT = low,
the data in GS or DC register is held constant.
Copyright

Ramiz

Alıntı yapılan: muhittin_kaplan - 13 Şubat 2014, 13:26:00
(Denemedim Ama Akşam deneyeceğim) Muhtemelen SIN ve SCLK ile dataları verdikten sonra GSCLK yı verdiğim sürece aynı pwm değerini göreceğim kanallarda.

Aynen demek istediğim bu idi. GSCLK ya dediğim gibi clock u pwm den sağla. Ic içersine değerleri bir kez yaz. O artık o değerleri sabit olarak kaballardan üretecektir.
Yenileme içinde 100msn lik bir timer da yap. Mcu nun işi çok hafiflemiş olur.
Electrical & Electronics Engineering -> Step one

rree

pdf baktım. xlat shift registerlerdeki değerleri çıkış pwm registerlerini yükle anlamında. tri state buffer lerde olduğu gibi sanırım. ya 0..1.. 0 la yada tersi 1...0...1  gibi yükleme yapılır.

muhittin_kaplan

-blank
4096 adet gsclk
-blank

yapınca en son verilen pwm değerleri devamlı basılıyor.  Bunu Güzel bir timer ın içerisine koyup 4,88us (20ms/4096) de bir kesmeye girecek şekilde ayarlarsam epeyce yükü hafifletmiş olurum sanırım.

Ramiz

4,88 uSn çok küçük bir rakam. Mcu yu yorar. Ayrıca servoyu 4096 adımda kullanamazsın. 78.08usn lik bir timer kur ve servoları 8 bit olarak kontrol et.(256 adım)

Aslında dahada iyisi, 156.16usn de timer üret ve 7 bit(128 adım) ile kontrol et.

Elindeki servolar kaç derece açı yapabiliyorlar bilmiyorum ama açı değerin X olsun.

X/128 yada X/256 kadar adım derecesi yapma şansın olur ki, bu iyi bir rakam..
Electrical & Electronics Engineering -> Step one

muhittin_kaplan

Ramiz Ne Olursun Şu IC nin Datasını İndir Sonra Konuşalım.

Ramiz

Alıntı yapılan: muhittin_kaplan - 14 Şubat 2014, 17:16:58
Ramiz Ne Olursun Şu IC nin Datasını İndir Sonra Konuşalım.

Muhittin yine beni anlamıyorsun. Yukarıda demek istedim ki, Rc servo motorları 4096 çözünürlükte kullanamazsın.

Sen pwm duty değerine, atıyorum 1024 değeri yazarsın ve rc servon XXX konumuna gelir. Bundan sonra 1025 değeri yazsanda servo hareket etmez. Çünkü rc servolar bu küçük değişimi algılayamacaklardır. Demek istediğim bu idi. Okuldayken, ic nin datasheetini indirip, azacık incelemiştim. Hatta sana komplex bir ic seçtiğinide söylemiştim. MBI5030 gibi bir ic seçse idin işin çok basit olacaktı.

Şuan üç ayrı iş üzerinde çalışıyorum ve bir haftalık tatilim var.(Tatilde çalışabiliyorum anca) Vaktim olsaydı seve seve ic nin datasheetini indirir hatta sana minik yazılım parçacıklarıda yazardım.

İyi çalışmalar dilerim.
Electrical & Electronics Engineering -> Step one

muhittin_kaplan

Ramiz Biliyorum ama GS dataların yerli yerine oturması için gerekli değilmi bu 4096