avatar_mustafa

SERİ HABERLEŞME SORUNU

Başlatan mustafa, 20 Şubat 2012, 00:48:10

mustafa

Merhaba arkadaşlar,
Erol beyin de yardımları ile bu programı yazmıştım.Devresini kurdum ve çalıştırdımda ancak daha sonra bir kaç değişiklik yapmam gerekti ,Örneğin master devreyi yeni bir devre ile değiştirdim ve program da da bir kaç değişiklik yaptım ve bir daha da çalıştıramadım programı .Aslında isiste program çalışıyor ,termitten gönderdiğim komutlar ile motoru deöndürebiliyorum.Ve virtual terminalden olayı gözlemleyebiliyorum , ancak devre üzerinde bir türlü çalıştıramadım.Master devreyi ve slave devreleri aynı güç kaynağı ile besliyorum.Aşağıda programları ve devreleri ekte koydum arkadaşlar yardımlarınız ve tavsiyeleriniz için şimdiden teşekkür ederim.

mustafa

Tamamdır arkadaşlar sorunu çözdüm.

ete

Sorunu çözdüğüne sevindim.
Elektronikde tecrübeler çok önemlidir. Yaşadığın olay ise tecrübeye güzl bir örnekdir.
Aynı sorunu yaşayabilecek birisi için vereceğin çözüm onu bir çok sıkıntodan kuratarabilir.
Bu nedenle "sorunu çözdüm arkadaşlar" şeklinde bir mesaj yerine,
"Sorunu şuymuş ve bende şu şekilde çözdüm" demen bizim için daha iyi olacak idi.
Senden ricam sorunun sebebini ve çözüm yolunu da burada açıklaman.

Ete

mustafa

Merhaba Erol bey;
Söylediğinizde çok hakllısınız,ben o kısmı atlamışım.
Sorun yazlımsal değil donanımsamış.Donanımda master devrede kısadevre varmış ,o yüzden çalışmamış.O sourunu giderince çalıştı.Bende programı biraz daha değiştirdim ve kaç adım atması gerektiğini de bilgisayardan gönderdim.O da çalıştı ,bu programıda ekte gönderiyorum.Ancak bu şekilde mastera bağlı tek bir slave olduğunda sistem çalışıyor.Ama benim yaptığım 4 slave i de master a bağladığımda sistem çalışmıyor.Hatta 2 adet slave bağlasam sistem yine çalışmıyor.Bunun nedenine de anlayamadım.Şimdi onula uğraşıyorum.Ve siz de bu konuda bana fikir verebilirseniz çok sevinirim.Kablo olarak CAT5 kablonun tellerini kullanıyorum.Master ve slaveler arası mesafe de 20 cm kadar.Mater ile slave leri de ayrı güç kaynaklarından besliyorum.Onunla alakalı olabilirmi?

ete

Sorunun ana kaynağı RS232 giriş ve çıkışlarının birleştirilmesidir. Bu empedans uyumsuzluğu ve seviye bozulması yaratır.
Karşılıklı iki sistem bir birine bağlanınca bozulma olmaz çünki sistem buna göre kurulmuştur. Ama devreye başkalarıda girince bozulma kaçınılmazdır. Bunu en başta sana söylemiştim. Bence kusuru başka yerde arama.

Her ilave sistem bir gerilim bölücü etkisi yaratır. Normalde +5V seviyesinde olan HIGH sinyal seviyesi düşer ve belirli limitin altınıda işlemciler göremez. Bu işin teorik açıklaması elbette. Bu tür sorunları engellemek için RS485 ve RS422 yaratılmış zaten.

Ete

mustafa

Erol bey merhaba,
Söyledikleriniz için teşekkür ederim.Sizin http://etepic.com/index.php?topic=57.15 bu linkte verdiğiniz programı ve isis devresini tekrardan inceledim.Ve şunu anladım.Benim projemde olan master devrenin  rx ve tx çıkışına bir adet sn75176 entegresi koyacağım. , bütün slave lerin girişlerine de bu entegreden koyupbunların A ve B girişlerini paralel bağlayacağım.Tabi bu arada sonlandırma dirençlerini de unutmamamız gerekecek.

ete

Bir şey daha eklemek lazım. 75176 nın RE ve DE uçlarını bileştirip, işlemciye bağlayacaksın.
Bu ucu LOW da tutarsan sistem Alma konumunda , HIGH da tutarsan yollama konumunda olacaktır.
Bu nedenle normalde bütün sistem alma konumunda olacağına göre bu ucu LOW da tutup yalnızca bilgi yollarkane önce HİGH yapıp bilgiyi yollayacak sonra LOW yapacaksın.

Hepsi bu kadar.

Ete


mustafa

Çok teşekkür ederim Erol bey ,Ben bunu uygulayacağım.inşallah başarılı olurum.

menduh

Mustafa bey birkaç deneyimimi sizinle paylaşmak isterim başıma geldiği için ;
programın kesme kısmı şu şekilde ;
Disable
INT:
    GIE=0
    HSerIn 5,ATLA,[Wait ("A"),KIMLIK,YON] 'stp buraya eklenecek
    'ARAKIM=KIMLIK:TEMPYON=YON
   
    If KIMLIK=MKIMLIK And YON=50 Then  '50 SAYISI 2 RAKAMINION ASCII KARŞILIĞIDIR.
    GOSUB SAGADON
    KIMLIK=0
    YON=0
    EndIf
   
    If KIMLIK=MKIMLIK And YON=51 Then   '51 SAYISI 3 RAKAMININ ASCII KARŞILIĞIDIR
    GOSUB SOLADON
    KIMLIK=0
    YON=0
    EndIf
    GOTO BASLA
ATLA:
    TEMP=RCREG
    GIE=1
    Resume
    Enable 
End

Kesinlikle yanlış demiyorum ama kesme alt programından başka bir etikete Gosub ile gönderdiğinizde her zaman olmasa da bazen işlemci kilitleniyor nedeni de sanırım programın kesmeye giderken kaydedilen ve çıktından sonra yine aynı yerden devam etmesi gerekirken edememesi.. bunun yerine Erol Hocamızın tavsiyesi üzerine kesme alt programında falanca yere git demek yerine bir değişkene değer atayarak ve ana programda o değere göre hareket etmek en doğrusu olur diye düşünmekteyim.

Saygılar.

mustafa

Merhaba arkadaslar.
Enson 4 slave i bir anda çalıştıramamıştım.Onun yerine master çıkışlarına sn75176 koymayı düşünmüştüm.Ama internette araştırma yaparken karşıma bir yöntem çıktı ve denedim.Şu an 4 slave birden çalışıyor.Tabi benim master ve slavelerim arası mesafe yakın en uzak mesafedeki slave masterdan 1 m uzakta olur yani.Ancak bilgisayarla master arası uzak olacağı için o arada max 485 kullanacağım.Uyguladığım devre şemasını ekte veriyorum arkadaşlar.Ve Menduh bey öneriniz için çok teşekkür ederim

Powered by EzPortal