shiftin shiftout pin durumları

Başlatan safaka123, 31 Mayıs 2015, 12:06:06

safaka123

iki pic arası shiftin komutlarını kullanarak haberleşme yapmak istedim belki mantık hatası yapıyor olabilirim fakat dünden beri bildiklerimi denedim clock palsinin olduğu pinler çakışıyor.
Öncelikle sadece tek bir entegre olsa ve 74hc595 gibi belki sorun olmayacaktı tek clock kullanılacaktı. 2. pic ile haberleşirken birinden shiftout diğerinde shift in ile almaya çalışırsak problem oluyor gibi . sanırım mantık hatası yapıyorum. siz ne dersiniz. 

Derseniz ki spi ve I2C kullan onuda denerim ama bunu kullanmak istemiştim. seri haberleşme kullanmak istemiyorum program mantığından dolayı. zaten 1. entegre dış devreden hserin ile bilgi alıyor düzenliyor 2. entegreye gönderiyor. 2. entegre salt bilgilerle çalışması gerekiyor ve işlemin çabuk olması gerekiyor.

Yardımlarınız için teşekkürler.

ete

Veren (Shiftout) pic de CLK ve Data pinleri çıkış olmalı
Alan (shiftin) pic de ise CLK ve Data pinleri giriş olmalı

Bu şekilde yaparsanız çakışmaz.

Ete

safaka123

Dediğiniz gibi düşünüp bende öyle yaptım. isiste ilk çalıştığında shift in kısmı çalışmadığından herşey normal, fakat virtual terminalden 1 karakter 1. entegreye gittiğinde program gereği 1. entegre bunu shiftout ile 2. ye iletiyor. fakat tam bu esnada shiftin çalışırken isite clock pini sarı oluyor ve çakışma yaşanıyor.

program ekte gözümden kaçan bir şey varmı bakarmısınız. 2. entegre portb.0 kesmesiyle devreye girip shiftin ile alma yapacak.

teşekkürler

ete

İki clk pini arasna 100 ohm direnç yerleştir bakalım ne olacak sonuç.

Ete

safaka123

ETE bey yardımınız için teşekkürler. görüşünüzde haklısınız. neden olduğunu bilemiyorum araştırmadım ama direnç doğru teşhis.


Fakat shiftin shiftout ikilisi 2 pic arasında doğru teşhis gibi görünmüyor. bir türlü stabil veri alamadım. bundan dolayı benzer mantıkla  kendi haberleşme rutinimi yazdım daha stabil çalışıyor. Ya bu komutlarda acemi olduğumdan gözden kaçırıyorum yada 2 yönlü haberleşmede bu çok iyi fikir değil.

iyi çalışmalar

ete

Daha öncede benzer bir konuda deneme yapmıştım. Ancak hatırladığım Donanımsal SPI portunu kullandım.
Bu şekilde veri en az 10 kat daha hızlı aktarılıyor. Sorunsuz çalışıyor idi. Sitede olması gerekir bu çalışma.
Aradınızmı bilemiyorum ama bence arayıp bakın.

SPI haberleşmede senkron tutturulması çok önemlidir. Bunun için bir pin daha kullanmak senkron meselesini çözebilir.
Zira haberleşmeye başlamadan önce karşı tarafıda haberdar etmek bilgi yollayacağım sende almaya hazırlan demek gerekiyor. Aksi halde bir veri yollarken diğeri alma konumunda değil ise ver kaçırılması sözkonusu oluyor.

Ete

safaka123

16f628 kullandığımdan donanımsal spi yok fakat 877 ye geçtiğimde bunu denemek istiyorum çünkü hızlı veri akışı gerekebilecek. 

Dediğiniz gibi karşı tarafın bilgilendirilmesi stabil olması için şart. bundan dolayı portb.0 kesmesini bu amaçla kullandım.

Şimdilik daha yavaş çünkü donanımsal değil ama data ve clock eşleştirmesine dayanan ve karşı tarafın hazırlanması için 5-10 us beklemeli  olarak çalışıyor. bunun altına indiğimde verileri algılayamıyor. şimdilik yetiyor ama sonrasında yetmeyecek gibi. herşey gerçek devrede denendikten sonra belli olacak.

teşekkürler.


Powered by EzPortal