R

PIC(12f510) lerin senkron çalışması

Başlatan r_d_, 13 Haziran 2014, 09:08:55

r_d_

Arkadaşlar merhaba, içlerinde PIC 12f510 bulunan 2 ayrı modülün senkron bir şekilde, ek bir kontrol devresi kullanmadan çalışmasını istiyorum. modüller led flasher olarak görev yapıyorlar ve ikisinin de donanımları ve yazılımları aynı. dışarıdan sadece flash modunu değiştirmek istiyorum. İki modülün de ayrı ayrı dışarıdan butonla mod değiştirme işlemini yaptım ve iş sadece iki modülün birbiri ile bağlantısı ve senkron bir şekilde çalışması kaldı, nasıl bir yöntem kullanabilirim? yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.

kartal_0689

Eğer UART protokolü destekliyorsa kullanabilrsin. Ya da birer pinden lojik 1 - 0 gönderip kontrol edebilirsin.
TURKEY/ANK

ete

#2
İki işlemci bir çok şekilde bir birine bağlanabilir. Aralarındaki mesafe çok değil ise (1-2m) ve boşta pinleri var ise direk kablo ile bağlamak en doğrusu ve hızlısıdır.
Tabiiki kablo sayısı kontrol edilecek sistemin adedine bağlıdır.
En fazla iki konum var ise tek kablo ile yapılabilir.  (%1 - %0)
En fazla 4 konum var ise iki kablo ile yapılabilir  (%00 - %01 - %10 - %11)
En fazla 8 konum var ise 3 kablo ile yapılabilir.
Enfazla 16 konum var ise 4 kablo ile yapılabilir.

Gerek mesafe uzun ve gerekse kontrol edilecek konum sayısı fazla ise o zaman tavsiye edilebilecek tek bağlantı şekli USART kullanılması olabilir. Ancak işlemcide USART portu görülmüyor. Bu durumda diğer seri port komutları ile bu işi yapman gerekir ancak buda çalışmaz. Zira serin komutu programı bloke edip bekletecektir. Ancak ve ancak USART portu olan başka bir işlemci ile yapılabilir. Mesela 12F1822 olabilir.
Diğer bir yöntemde SPI kullanarak olabilir. Bunun için en azından 3 pin kullanmak doğru olacaktır.

Ete

r_d_

Öncelikle çok teşekkür ederim değerli yorumlarınız için.  kartal_0689 hocam uart protokolünü desteklemiyor PIC.
Ete hocam mesafe en fazla bikaç metre olacak, ayrıca bu proje sadece iki modül olarak değil de daha fazla modül(8-10 a kadar)olarak da çalışmasını istiyorum ve kablo sayısının da fazla olmamasını istiyorum. Söylediklerinize göre benim için en uygunu  Usart portlu bir işlemci kullanarak işlemcilerin birbirlerini kontrol etmeleri galiba, kablo bağlantıları ve yazılım üzerinde araştırmam gerekecek sanırım.

ete

Ortada bir şema olmadanbu tür soruları cevaplamak zor oluyor. Olayı kafamda canlandıramıyorum.
Ortada çalışan bir kaç kart var üzerinde işlemcileri var ve sen bir veya bir kaçının (belkide aynı anda hepsinin) çalışma modunu değiştirmek istiyorsun. Peki bu ortamda sen nerede bulunuyorsun. Daha açık bir deyimle elinde bir buton olması gerek buna basarak bu işi yapacak isen yine açık kapılar kalıyor demektir.  Yalnızca bir veya bir kaç kartın modu değişecek ise onları nasıl seçeceksin. Bütün bunları bir şema üzerinde görmek mümkün olabilirdi belki.
Her neyse kendin doğru yolu buluyorsun sanırım. Kolay gelsin.
Ete

r_d_

Ete hocam devreyi ekledim. ortadaki butonla ikisinin de modunu değiştirebiliyorum. Mclr ile resetlemek için de buton koydum ayrıca. Devreyi gerçekleştirdiğimde  aralarında zamanla senkron kayması gerçekleşiyor. Asıl amacım dışarıdan tek butonla mod değiştirmek ve bu modüllerin kendi kendilerine senkronu ayarlaması.

ete

Bu işte senkron mu önemli mod değiştirmek mi önemli acaba? Ben olsam şöyle yapardım.
Senkron kayması farklı osc ler ile çalışan devrelerde kaçınılmazdır. Aynı OSC tarafından beslemedikçe bütün devreler farklı hızlarda çalışırlar bunlarda zaman içinde senkron kaymasına sebep olur. Bütün çalışan işlemcileri bir başka işlemciye tek buton üzerinden bağlardım. bu tek işlemci öncelikle bütün hepsinin açılıp çalışmaya başlamasından sonra hepsine başla komutu yollar ve hepsinde aynı anda sistem başlar. Çalışma tamamlandığında yeniden başlamak için yine aynı işlemciden komut beklerler. Böylece başlatma aşamasını senkronize ettinmi hepsi senkron içinde en azından çalışırlar. Senkronun kaymasını beklemeden her çalışma için ayrıca bir senkron başlatma işareti verilirse sistem kaymadan uzun süre çalışabilir.
Mod değiştirme işini de yine ilave işlemciye vererek bir başka pininden mod değiştirme sinyali verdirilebilir. Yada varsa bir ikinci pinide bu amaçla kullanabilirsin. Şemaya göre var gözüküyor. Başka bir metod aklıma gelmiyor.

Ete


Evren Kılıç

İşlemcilerde clkin cklout pinleri var bu pinler ile senkron calisma sağlanamaz mi, bu pinlerin amaci nedir sadece osc1 osc2 olarak mi kullaniliyor

ete

CLK_in pinleri OSC amaçlı kullanmak içindir. Kristal bağladığın zaman bu pinden osc frekansı alınır, harici osilatör bağladığın zamanda aynı pinden frekans verilir.
Elbette bu pinleri kullanarak işlemcileri aynı osilatör ile çalıştırıp senkron elde edebilirsin.
Bunun için harici bir osilatör yapman veya hazır osilatörlerden birini kullanman ve bu osilatörün çıkışını her işlemcinin OSC_in girişine girmen yeterli olacaktır.

Ete


r_d_

Ama bu durumda da işlemciler arası mesafe uzun olduğundan yine bir senkron sorunu yaşanmaz mı.

ete

İşlemcilerin uzakta olduğunu kimse söylemedi. Üstelik uzakta kelimesi relative bir kavram. Sana uzak gelen bana yakın gelebilir. BU nedenle uzaklığı kelime ile değil rakam ile belirtmek gerekir.
Elektriğin ilerleme hızını internette araştırın. Kablo üzerinden verilen bir puls'in 10m-100m-1000m öteye ne hızla gidebildiğine bir bakın araştırın isterseniz. Benim bildiğim elektrik ışık hızında yayılır. Bu nedenle mesafe metre bazında ise pek sorun çıkarmaz. Zaten bu tür ortak osilatörlü sistemler bir birinden 10m den uzakta olamaz.  Bu mesafede sorun çıkarmaz senkron yakalama açısından.

Ete

r_d_

Uzaktan kastım en fazla 1-2m idi, elektrik hızı söylediğiniz gibi ışık hızından biraz az ama kullanılan kablonun özelliklerine ve akıma göre değişmekte tabi. Bu sistemi deneyeceğim teşekkür ederim değerli yorumlarınız için. 

Powered by EzPortal