18f45k22 ile puls kaçırmadan7000 d/d lık puls ölçme

Başlatan F.T, 29 Mayıs 2013, 23:16:47

F.T

yaklaşık 7000 d/d encoderli puls üreten 2 adet dc motorum var .bu motorları pwm ile sürüp enkoderden gelen pulsleri kaçırmadan almam gerekiyor.puls sayma olayında sıkıntım oluşuyor configrasyonları pdf den kuruyorum ama başarılı olamadım.bu işi nasıl en uygun şekilde halledebilirim.sadece encoderden gelen puls sayısı lazım bana.motor çalışırken pulsleri alacak toplam pulse göre motoru durdurmam lazım.bu iş capture ilemi olur yoksa tmr gate tetiklemesi ilemi olur.

iyi çalışmalar.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

camby

hocam imkan var ise MCU'yu değiştirin. Encoder modülü olan bir denetleyici kullanın .

F.T

.  2 encoderin ileri geri   urettigi pulsleri hangi
Pic olcebilir. Tabi k serisi olursa daha saglikli olur.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

camby

sonu 31 ile biten pic serilerinde encoder modülü var. QEI diye geçiyor

örneğin 18f2431 18f4431 gibi.

Başka seriler de olabilir 18f'lere bakmadım bayadır. Üst serilerde de var dspic 33f vs..

ARM işlemcilerin de hepsinde var zannediyorum..


Encoder sinyalleri A-B-Z şeklinde mi geliyor ?


Daha önce okudunuz mu bilmiyorum encoder sinyallerini ama bu sinyalleri yazılımsal olarak okumak biraz sıkıntılı , donanımsal desteğe ihtiyaç var..

esensoy

Hocam bu şema ile ben 18f4550 den bayağı iyi sonuç aldım,
1000 pals encoder, yükselen düşen kenarları da okuyor, yani 4000 pals, gerçi motora bağlamadım hiç ama bir sıkıntı olacağını da sanmıyorum,
diff reciever ile a a/ b b/ şeklinde gelen sinyali a ve b ye çeviriyorum,
a b yi ayrıca exor kapısına sokup değişim anında kesme oluşturuyorum,
kesmede de sinyal durumuna göre konumu değiştiriyorum
En tehlikeli an "zafer" anıdır.

camby

Hocam iş görecektir tabi fakat bu işlemleri sürekli olarak MCU'da koşturmanız gerekecek , olası başka yoğun işler yapmaya çalıştığınızda ve Puls'lar hızlanmaya başladığında program yetişemeyecektir sürekli Kesmelere gidecektir.

A ve B 'yi aynı anda XOR'a girdiğinize göre yön ayrımı yapmıyorsunuz sanırım değil mi ?

esensoy

yön ayrımı da var, a b ayrı ayrı da girişleri bağlı, xor la da kesme girişine bağlı
dediklerinize katılıyorum, benim amacım fikir açmak sadece,
ayrıyetten 4550 değil ama 45k22 16 MIPS, pll ile 64MHz de çalışabiliyor, belki de bir sıkıntı çıkmaz,
en doğru çözümü zaten problemi görmeden söyleyemeyiz
En tehlikeli an "zafer" anıdır.

Erol YILMAZ

@F.T
Sizin sistemin sn'de kaç kesme oluşturması bekleniyor ?

64Mhz/16Mips  PIC18 ile sn'de 20 kHz lik kesme sinyalleri kolaylıkla alınabilir diye düşünüyorum..

Daha da iyisi QEI modüllü bir Mcu.

Soft okuma için  basitçe bir hesap yapalım, 

Verilenler:
7000 dev/dk motor, 100 Pulse/tur encoder...
olduğunu varsaydım.

116.7 dev/sn -> 11670 Pulse/sn
Muhtemelen 4x modunda okuduğunuzda 46700 Kesme/sn oluyor...
2 tane motor var ise çıktı 94 bine...
Yani bu iş, bu şartlarda  sıkıntı

Lojikle,
A-B sinyallerinden Pulse/Dir elde edip bir şekilde 4x modundan da kurtulabilirsen bu iş kesme/yazılımla olur...

sadogan

Yön bilgisi gerekmediği için tm1 tm0 ile sayabilirsiniz.
Tm1 ve Tm0 belirlediğiniz bir aralıkta okuyup (1000ms gibi)
devri rahatlıkla hesaplayabilirsin.
Düşük devirlerde bu yöntem sorunlu olabilir okuma aralığını büyütmen gerekir.


skara1214

2431-4431 i kullanıyorum gayet sağlıklı bir şekilde datasheette yazana göre (600khz ye kadar okuma yapabiliyor)ben 50 Khzde okuyordum 
Herkes ölür ama herkes gerçekten yaşamaz

F.T

Alıntı yapılan: skara1214 - 30 Mayıs 2013, 11:17:54
2431-4431 i kullanıyorum gayet sağlıklı bir şekilde datasheette yazana göre (600khz ye kadar okuma yapabiliyor)ben 50 Khzde okuyordum 

hocam bu işlemcinin 45k22 ile arasında çok bir fark varmı?

ben d/d saymıyacam.arka planda puls sayacam motorun attığı puls lazım.bununlada alınan yolu bulacam.aynı anda adc ve pwm de devrede olacak.hepsi beraber 3 ü bir yerde .
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

skara1214

45k22 de dahili qei yok senin ilacın 2431 gel beni dinle :D
Herkes ölür ama herkes gerçekten yaşamaz

z

QEI kullanacaksan 2 tane motor için 2 tane QEI lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

F.T

piyasada bulunacak bunalmış hocanın dediği gibi 2 qıe  modülü olan pic varmı?
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

iyildirim

Pulsları Motoru yavaşlatmak, zamanında durdurabilmek için kullanacaksak QEI olsa da kesmeye girmek gerekir. QEI bu açıdan hayat kurtamıyor. En fazla 4 kez az kesmeye girmeyi sağlar.
Kullanılacak enkoderin çözünürlüğü 1x modunda yeterli oluyorsa QEI kullanıp kullanmamak birşeyi değiştirmeyecek.
ADC, PWM vs de lazımsa motor kontrol serilerinden bir pic daha uygun.