l297-l298 mikrostep sürme

Başlatan fryrmnd, 29 Ağustos 2011, 10:57:08

fryrmnd

Selamın aleyküm arkadaşlar. Bayağıdır step motoru mikrostep sürmek için internette bakınıyordum(acemi olunca nedense örnek bir kod arama eğilimim oluyor :() . Şimdi microchipin  18c542 ve l298 ile asm de yapmış olduğu uygulamayı  http://ww1.microchip.com/downloads/en/AppNotes/00822a.pdf  inceledim.Asm mem çok iyi değil ama  code tag felan koymuşlar az buçuk ne yaptıklarını anladım. Asıl sorum şimdi l297 yi ekledğimiz zaman motorları mikrostep sürme imkanımız olmuyor mu? Uygulama notunda Rsense lerin voltajını picin analog girişlerden ölçüp ona göre pwm uygulamış yanlış anlamdı isem. şimdi pic l297 ve l298 kullanmak geçmişti aklımdan ben de bu meşhur ikiliden aldım. l297 Rsense leri kendi kullanıyorsa bu ikliyle mikrostep adımalarla step motor süremezmiyiz. Kafam biraz karıştı yardımcı olursanız sevinicem.

Tagli

#1
L297 ile bu iş olmaz. Bu elemanı kaldırıp yerine bir mikrodenetleyici koyman gerekiyor.

Ben de bir ara bu işe heves edip bir devre tasarlamıştım. Pek adam gibi çalışmadı, sonradan zaman bulamadığım için sorunları çözmekle uğraşamadım ama yine de genel yapısını anlatayım, çünkü kötü de olsa sonuç almıştım. Belki faydası olur.

Mikrostep'in ana mantığı, step motorun iki bobinindeki akımları kontrol etmeye dayanıyor. Bu akımları da aralarında faz farkı olan sinüs sinyalleri şeklinde vermelisin. İnternette bu sinyallerin nasıl olması gerektiği hakkında grafikler var. Ben genel olarak Microchip'in uygulama notlarından faydalanmıştım.

Ben L298'in iki sens çıkışını PIC'in analog girişine girmedim. Onun yerine harici bir chopper devresi yaptım. Bunun içinde de gelen analog sinyali bir komperatör ile PIC+DAC ile ürettiğim referans sinyali ile karşılaştırdım. PIC'in içindeki bir tablo ile her adıma karşılık gelecek referans voltajlarını elde edip DAC'a yolluyordum dijital olarak. Gerisini zaten chopper devresi hallediyordu. Chopper'ı da 555, 74HC74 ve LM393 kullanarak yapmıştım. Vsens 'ten gelen sinyali de komperatöre girmeden önce opamp ile yükseltiyordum ama galiba benim sorun buradan kaynaklanıyor olabilir.

Sorunum ise sinüsün tepe noktaları civarında adım atmanın durması idi. Motor bobinindeki akımı 0'a düşüremiyordum tam. Motor hızlı dönerken insan gözü tarafından pek algılanmasa da yavaşladığında bir sorun olduğu belli oluyordu. Dediğim gibi, sonradan uğraşmadım, öyle kaldı...

Chopper için hazır bir entegre de var: L6506. Benim yaptığım devredeki 555, LM393 ve 74HC74 üçlüsünün işini bu entegre tek başına yapabilir.

Yalnız burada bir sorun daha var: Azami akımı sınırlamak. Bu tür bir elle ayarın, hassasiyetin kaybedilmemesi açısından analog yapılması daha uygun olur. Yani PIC'in ürettiği iki analog referans voltajının aynı oranda bölünebilmesi gerekiyor. Bunun için ilk akla gelen şey stereo pot, ancak bunlar hassas olmuyorlar. Muhtemelen daha iyi bir yol dijital pot kullanmak olacaktır, ancak bunları da Türkiye'de bulmak zor.

Yukarıda anlattığım konularla ilgili forumda daha önce başlıklar açmıştım. Bulabilirsem burada bağlantılarını eklerim.

Ekleme: Konuyla ilgili mesajlarımı buldum:
https://www.picproje.org/index.php/topic,30112.msg207435.html#msg207435
https://www.picproje.org/index.php/topic,28207.msg192177.html#msg192177
Gökçe Tağlıoğlu

fryrmnd

Hocam çok teşekkürler ilginiz için. daha önceki mesajlarınızı baya bi okumuştum ama kafa biraz kalın olunca  :o benim gene  sormak istediğim bir kaç şey oluyor. PİC de tablodan üretip DACa ordanda chopper a yolladığınız voltaj  yanılmıyorsam o anki adıma karşılık gelen Pwm sinyalinin genliğim mi oluyor. Yani 32 ye böldüğümüzü farz etsek sin5.6 gibi mi. Referans voltajımız bu oluyor chopper da Rsense den gelen değeree göre akımı ayarlıyor.
birde l6506 nın  297 den farkı tam olarak nedir. L6506 da mikrostepe de uygun yazıyor birde 2 ayrı Vrf girişi var. Eşdeğer şemalarına baktım başka bir fark yok gibi. Birde bu microchipin uygulamasının sakıncalı bir yönümü var acaba. Çünkü chopper devresini benim kurmam ve buna bağlı olarak da l298 i kontrolde sanırım fazladan kod yazmamı gerektirecek  o da şu aşamada beni kasabilir. Bu durumda tavsiyeniz ne olabilir. 

Tagli

Sayılır. PWM genliği demek yanlış olur ama. Örneğin benim motor akımını 0-2 amper arasında değiştirmem gerekiyor. Rsens de 0.47 ohm (0.5 gibi varsayalım). Yani 2 amper akım çekerken 1 volt geri besleme okuyacağım. Bu durumda, benim referans voltajını 0-1 volt aralığında değiştirmem gerekecek. Ama ben hassasiyeti arttırmak için geri besleme voltajını bir opampa sokup 5 ile çarpıyorum. Sorun çıkardığını düşündüğüm nokta da burası zaten. Üzerinden baya zaman geçti ama yanlış hatırlamıyorsam okuduğum voltaj değerleri doğru değildi, olması gereken değerle çarpılmıyor gibiydi. O sırada elimde bir osiloskop olmadığı için detaylı olarak inceleyememiştim.

Neyse, sorunsuz olarak 5 ile çarpılma olabildiğini düşünürsek, üretmem gereken referans voltajı da 0-5 volt arasında olmalı. Bunu da senin dediğin gibi aralıklara bölmüştüm. Sin işlemiden elde edilen değeri de 8 bitlik DAC kullandığım için 256 ile çarparak tabloları oluşturdum. Konu yakın zamanda bu başlıkta konuşulmuştu.

L297'nin tek bir referans girişi var. Bu da koruma amaçlı olarak tasarlanmış. İki bobindeki akımı da bu tek bir referans voltajıyla karşılaştırarak bobinlerden fazla akım geçmesini engelliyor. Ancak mikrostep için iki bobindeki akımın ayrı ayrı kontrol edilebilmesi gerekiyor. L297'nin desteklediği tam ve yarım adım sürüş yöntemlerinde ara değerler yok. Sadece 1-0 mantığı çalışıyor. Yani azami akım 2 amper olabiliyorsa (ki referans voltajı bunu ayarlıyor) akım ya 0 ya 2 amper oluyor. L297'de ek olarak translator da var. Yani girişi yön ve clock. H köprüsünü sürmek için gereken 4 çıkışı bu 2 girişten faydalanarak kendisi hesaplıyor.

L6506'da ise translator yok. Ancak iki bobin üzerinde birbirinde bağımsız olarak akım kontrolü yapabiliyor. H köprüsünü süren 4 bacağın L6506'ya girip çıktığını görebilirsin. Bunun sebebi, istenildiği zaman chopping işleminin bu 4 kanal üzerinde yapılabilmesi. Diğer durumda ise chopping, H köprüsü entegrelerinde genelde bulunan Enable bacaklarına uygulanıyor. Bu iki yöntem arasında da fark var, ancak ayrıntılarını o zaman da pek anlamamıştım. Ben chopping işlemini EN bacaklarına uyguladım. Aslında bu seçim L297'de de var. Yanlış hatırlamıyorsam iki davranış arasındaki farkı Control adı verilen bir giriş belirliyordu.

Microchip'in uygulamasından çok fazla yararlanmadım. En çok kullandığım yeri Şekil 22 idi. Referans voltajlarını bu şekilden yola çıkarak oluşturmuştum . Hatta bu şeklin kağıda çıktısını alıp üzerinde karalamalar yaptığımı hatırlıyorum.  :) Bu arada şimdi aklıma geldi, Microchip, teorik grafiğin Şekil 21'deki gibi olduğunu, ancak 22'deki yöntemin daha faydalı olduğunu söylemiş. Bu sebeple ben de Şekil 22'den faydalanmıştım.
Gökçe Tağlıoğlu

camby

L297 gibi , mikrostep özelliği bulunan bir entegre var mıdır ?

fryrmnd

Teşekkürler Taglı hocam. Gene üstünkörü bakmışım. l6506 dediğiniz gibi step ve dır şeklinde değil. 4 tane girişi var. Bakalım şu asm kodunu bir çözeyim olmadı devreyi de kurayım biraz daha anlamaya çalışalım.

fryrmnd

@camby
L6506 oluyor gibi gözüküyo. l297 ye benziyor

Tagli

TA8435H var. Bulunur mu, kaç paradır onu bilmiyorum. Ama sanki bir ara Karaköy Pasajı'nda bir yerde görmüştüm gibi kalmış aklımda. Adam bunu kullanarak kart da yapmıştı, onu da satıyordu.

Bu arada ufak bir not: L6506'nın komperatör girişlerine dikkat etmek lazım. Voltaj 0-5 volt aralığında değildi, aralık daha dardı. Aralık dışına çıkınca saçmaladığını hatırlıyorum. Üst sınır 3.5 volt gibi birşeydi galiba.
Gökçe Tağlıoğlu

camby

Alıntı yapılan: fryrmnd - 29 Ağustos 2011, 13:03:09
@camby
L6506 oluyor gibi gözüküyo. l297 ye benziyor

Hayır çok farklı çalışmaları . Demek istediğimi tagli gösterdi ona bak bi .

fryrmnd

@camby
hocam step ve dır sinyalleri ile sürülmediğini mi söylemek istediniz fark olarak. Eğer öyle ise onu farkettim zaten.

camby

#10
evet evet , mode secıcez dıyelım mıkro step , sonra her clockda 1/8 adım gıdecek gıbı..

Edit : ok yazmısssın yukarda zaten yenı gordum.


Bu sekılde daha pratık olmaz mı taglı ne dıyorsun  ?


Tagli

Gökçe Tağlıoğlu

fryrmnd

Hocam kafam çok pis karıştı. Mode seçimi l6506 da nasıl oluyor. l6506 nın datasheete bir baktım şöyle . l298 in enableA yı boşta bırakmış. Bu nasıl oluyor. Köprünün tekini çalıştırmıyor mu. Valla şu sinüs olayını çözmeye çalışıyodum yazılımda bir de devrenin işleyiş kafama takıldı gene.

Tagli

fryrmnd, evet şimdi baktım da o şekil muhtemelen yanlış, ENA'nın da +5 volta bağlanması gerekiyor. Chopping o 4 hat üzerinden uygulanmış. L6506 ile ilgili o konuyu yanlış hatırlıyormuşum. Zaten L297'deki gibi INH bacakları yokmuş. Yine de istersen L298'in 4 adet IN girişini doğrudan PIC ile sürüp, L6506'nın sadece 2 çıkışını kullanarak bunları EN bacaklarına verebilirsin. Tabi L6506'nın girişleri bu durumda PIC'e değil doğrudan +5 volt'a bağlı olacak.

camby, bu bahsettiğim iki entegrenin Türkiye'de rahat bulunabileceğini sanmıyorum. Ayrıca muhtemelen fiyatları da pek uygun değildir. Benim yapmaya çalıştığım mikrostep sürücüde kolay bulunabilen ucuz parçalar kullanmaya çalıştım. Ayrıca asıl amacım devreyi yapmaktan çok, işi öğrenmek idi.
Gökçe Tağlıoğlu

fryrmnd

Sağolun hocam az buçuk oturur gibi oldu. Ama dedğiniz gibi fiyatları baya bir yüksek. Şimdi baktım L6506 5 tl den başlıyor. Her bir yakışta 5 kağıt. Sizin yaptığınız gibi bu chopping olayını lojik elemanlarla( 74 serileri felan bayağı bir var da. Yanarsa yansın.Pek kullanmılmıyor zaten) galiba yapılabilir. Eş değer şemalara bakıp. Yanılıyormuyum hocam.