PIC lerin senkronize çalışması [ÇÖZÜLDÜ]

Başlatan halukece, 07 Temmuz 2008, 10:52:16

halukece

Selam arkadaşlar.

100 adet PIC16f628(hepsinde aynı yazılım var) içeren modullerin eşzamanlı çalışmasını istiyorum. Port çıkışlara RGB ledlere bağlı ve hepsi aynı anda aynı renk tonunu vermesini istiyorum. İlk denemelerimde, aynı aynda besleme verdiğimde gözle farkedilmeyecek şekilde istediğim gibi çalışıyor. Ama 3-4 saat içinde fark hissedildi. Devre tasarımı bana ait değil ama yazılımı ben yapıyorum. Her modulde ikişer adet SN75176 var.

Kristallerin doğruluk dereceleri aynı olmadığını düşündüğümden bu farkın ortaya çıktığını sanıyorum. İlk başta hepsi aynı anda başlasa bile ileride yine fark olabilir. Sistemi gözle hissedilmeyecek şekilde donanımsal olarak resetlemek fikri var ama farkedilir sanırım.

Bunların birim zamanda aynı kodu koşmalarını nasıl sağlarım?
İlginiz için teşekkürler.

debi

Alıntı yapılan: "halukece"Selam arkadaşlar.

100 adet PIC16f628(hepsinde aynı yazılım var) içeren modullerin eşzamanlı çalışmasını istiyorum. Port çıkışlara RGB ledlere bağlı ve hepsi aynı anda aynı renk tonunu vermesini istiyorum. İlk denemelerimde, aynı aynda besleme verdiğimde gözle farkedilmeyecek şekilde istediğim gibi çalışıyor. Ama 3-4 saat içinde fark hissedildi. Devre tasarımı bana ait değil ama yazılımı ben yapıyorum. Her modulde ikişer adet SN75176 var.

Kristallerin doğruluk dereceleri aynı olmadığını düşündüğümden bu farkın ortaya çıktığını sanıyorum. İlk başta hepsi aynı anda başlasa bile ileride yine fark olabilir. Sistemi gözle hissedilmeyecek şekilde donanımsal olarak resetlemek fikri var ama farkedilir sanırım.

Bunların birim zamanda aynı kodu koşmalarını nasıl sağlarım?
İlginiz için teşekkürler.


Adresleyerek dışarıdan sinyal vermiyorsan,,, yani renk değişimi şeklinde ise modüllerin 100ünü birden senkron çalıştırmak biraz anormal gibi geldi bana.. Entegre ne işe yarar bakmadım ama şu şekilde yapsan olmuyor mu? Tek pic + X adet mos'lu devre?

mucitotomasyon

rs485 ile bu iş olmaz ancak
sen bir tetikleme girişi yaparak
hepsini aynı anda calıstıra bilirsin

iyonosfer

@hakukece
Moduller dışarıdan komut alıyorlarmı? yani bir haberleşme hattı kullanıyormusun? yoksa moduller açılır açılmaz rgb değerlerinin belirli bir senaryoya gore mi uretiyor (hepsinde aynı senaryo). Bunu belirtirsen ona gore dusunuruz..
Blog Sayfam: www.teknobakis.com

halukece

Alıntı yapılan: "debi"
Entegre ne işe yarar bakmadım ama şu şekilde yapsan olmuyor mu? Tek pic + X adet mos'lu devre?

Devreye müdahale edemem. Sistem hazır. Ben yapsaydım dediğim gibi tek işlemci kullanırdım.:)

Alıntı yapılan: "iyonosfer"@hakukece
Moduller dışarıdan komut alıyorlarmı? yani bir haberleşme hattı kullanıyormusun? yoksa moduller açılır açılmaz rgb değerlerinin belirli bir senaryoya gore mi uretiyor (hepsinde aynı senaryo). Bunu belirtirsen ona gore dusunuruz..

Dışarıdan bir komut almıyor. Kendi içinde belirli bir senoryaya göre dönüyor.(Şimdilik benim yazılımım öyle.)

Sistem aslında DMX için taşarlanmış ama vazgeçilmiş. Her bir modülü birleştirerek bir bütün olarak hareket etmesi isteniyor. Her bir pic e giden bir kontrol ucu var ve bu sanırım PIC in RX(UART) ucuna gidiyor. Devre şuan elimde değil ama baktığımda öyle idi.

RS485 için altyapı müsait sanırım ama daha önce bu konuda uygulama yapmadım.

Her bir modulde 1 adet 16f628A 3 adet TPIC5B595 i sürüyor. Ayrıca SN75176 line driver tüm sistemi "A,B" uçları ile dolaşıyor.

XX_CİHAN_XX

Alıntı Yap
Sistem aslında DMX için taşarlanmış ama vazgeçilmiş. Her bir modülü birleştirerek bir bütün olarak hareket etmesi isteniyor. Her bir pic e giden bir kontrol ucu var ve bu sanırım PIC in RX(UART) ucuna gidiyor. Devre şuan elimde değil ama baktığımda öyle idi.

RS485 için altyapı müsait sanırım ama daha önce bu konuda uygulama yapmadım.

Her bir modulde 1 adet 16f628A 3 adet TPIC5B595 i sürüyor. Ayrıca SN75176 line driver tüm sistemi "A,B" uçları ile dolaşıyor.

RS485i araştırmaya şimdiden başla derim  :)
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

volkii

sanırım bu sistem RGB LED TUBE. bu sistem dmx sistemine göre tasarlanmıştır. rs485 standardında çalışırlar. ya burdan senkronizasyonu sağlayacaksınız, yada senaryo bittiği anda çalışan basit bir açma kapama devresi yapacaksınız. başka yoluda olduğunu sanmıyorum.

iyonosfer

modüllerin beslemesi nasıl? 220 volt şebekeye bağlı olarka çalışıyorsa veya 24V AC gibi bir besleme varsa, 220v uygun bir şekilde PIC'e girilip. sıfır geçişlerine göre, modüller kendilerini senkronize edebilirler.
Blog Sayfam: www.teknobakis.com

halukece

Alıntı yapılan: "iyonosfer"modüllerin beslemesi nasıl? 220 volt şebekeye bağlı olarka çalışıyorsa veya 24V AC gibi bir besleme varsa, 220v uygun bir şekilde PIC'e girilip. sıfır geçişlerine göre, modüller kendilerini senkronize edebilirler.

220 şebekeye bağlı olacak. her modülün kendi 12v dc beslemesi var.

Modullerden ayrı olarak bir devre yaptım ve bu modüllerle rs485 hattı üstünden haberleşerek, her birine aynı anda komut göndermeye çalıştım.
Örneğin pic in bir bacağını giriş yaparak, her modül de bu bacak 1 olmadığı sürece döngüye başlamamasını söyledim. Bir devre bunu algılarken diğeri bir türlü algılamadı. Yazılım ve devre aynı olmasına ragmen.

Amacım tüm piclerin aynı anda başlaması ve belli bir sürede bunların aynı kodu koştuklarından emin olmak.

iyonosfer

modüllerin 220 v beslemeye bağlanıyorsa işin kolay, 220V'u dirençle pic'e girip (ext_interrupt girişine) bu sinyale göre senkronize edebilirsin. Tabi modüller aynı fazda olmalı  ;)  bütün modüllerde aynı anda  durum değiştiren 50 hz lik bir sinyalin olmuş olur. sende bu sinyale göre bir takım düzeltmeler yapabilirsin.
Blog Sayfam: www.teknobakis.com

picusta

Alıntı YapÖrneğin pic in bir bacağını giriş yaparak, her modül de bu bacak 1 olmadığı sürece döngüye başlamamasını söyledim. Bir devre bunu algılarken diğeri bir türlü algılamadı. Yazılım ve devre aynı olmasına ragmen.
Bunu gözlemliyorsan önce orada durup neden böyle oldugunu anlamalisin.
1+1 = 3  gözlemlemen gibi birsey. Bir yerde hata var (sema, baglanti, temassizlik, yazilim, watchdog vs..).

halukece

rs485 alt yapısını çözdüm. Master dan modullere, ya da modullerden master a haberleşme mümkün. Çünkü devredeki SN75176 nın birisinin enable ucu sabit ground a çekili, ve de bilgi gönderme ve alma ucu ortak olarak PIC lerin bir ucuna bağlı. Her birinden bu yolları ayırıp yeniden düzenlemem zor.

Yaklaşık 1,5-2 saat senkronize çalışıyorlar. Bende bunu kullanıp 1 saatte bir sistemi kapatıp açmaya karar verdim. Kabaca bir hesap yaptığımda 220 AC de 7,5A çekiyor sistem.

Bu şekilde sistemi açıp kapatmam için uygun bir devre önerir misiniz? optokuplör ve triyak düşündüm.
Hızlı bir şekilde açıp kapatıp, sistemi resetlemeyi düşünüyorum. Her bir pic i resetlemek yerine sistemi açıp kapayı uygun gördüm. :roll:

Kapanıp açılma süresini ne kadar kısa tutabilirim.

halukece

PORTB nin B0 harici kesmesi ile senkronizasyon sağlanmıştır. Fikir beyan eden arkadaşlara teşekkür ederim.

MASTER PIC ile SLAVE piclerde aynı yazılım koşuyor olup, master diğerlerine belli bir turda kendisi ile aynı konuma (ben reset vektörüne gönderme yaptım) gelmelerini söylüyor. Donanımsal bir kesmenin önemli bir katkısı. :D

Başlar söyler, ayaklar yapar. ;)