RS485 RE ve DE pinlerini birleştirmeden kullanmak hakkında

Başlatan musti463, 28 Ağustos 2014, 12:13:01

musti463

Merhaba, sorum şu RS485 devrelerinde genellikle RE ve DE pinleri birleştirilerek PIC'e veriliyor. Bu pinleri birleştirmeden kullandığımızda bilgi çakışmalarını(collision) engelleyebiliyormuşuz.

1-) RE ve DE'yi ayrı pinlerle kontrol edersek collision'u nasıl engelleriz
2-) RE ve DE'yi birleştirirsek collision'u engelleyebilirmiyiz/nasıl engelleriz?(gecikmelerle filan)
Mustafa Emir SADE

Tagli

Benim pek kafama yatmadı. DE etkinken hatta başkası veri basamaz.
Gökçe Tağlıoğlu

Kabil ATICI

Bende aynı fikirdeyim. Sadece bacak israfı.  Veri gelirken işlemci veri gelişi tamamlanana kadar ne olduğuna bakmaz. En iyi ihtimalle  bir bacak gelen veri hattına bağlanarak hatta bir değişik olup olmadığına bakar ve değişikilik varsa veri göndermeye çalışmaz. Yoksa  izin hatları ayrı ayrı kontrol ile sadece kullağını tersten göstermeye çalışılır. Zaten bu modüller boş durumda iken sürekli alma modunda durur. Tabii ekstra bir yolu varsa bende bilmek isterim.
ambar7

Klein

De ve RE hattını nayrı kullanmak  güç tüketimi düşük cihazlar için önemli.
RE pini LOW iken, receiver aktif durumda ve akım çekiyor.  düşük güç tüketimli uygulamada, gönderme yapmıyorken, hattı da dinlemek istemmiyorsak, RE pinini hi yaparak güç tüketimini düşürebiliriz.

musti463

Yabancı bir sitede de benzer soruyu sorduğumda şöyle bir cevap aldım tam olarak ne dediğini anlayan var mı?

"If you connect RE and DE together, the transceiver chip is either sending
or receiving (half duplex) and it only takes 1 pin on your PIC to control
the send/receive mode.

If RE and DE are separately controlled by two pins on your PIC, you
could enable both at the same time, and then transmit a byte and
receive it back in your PIC, to test if the circuit is working OK.
Also, if you don't receive the same message that you sent, it could mean
that another device is trying to send at the same time. (This is called
a collision). So you could abort sending for a short time, and then try again."
Mustafa Emir SADE

Klein

Sitede verilen yanıt, RE ve DE pinlerinin ayrı olmasının nedenini alatan bir yanıt değil.  Sadece bu şekilde de kullanılabilir şeklinde bir tavsiye.
RE ve DE pinlerini birleştirirsen devre ya almada ya da göndermede olur. Göndermede iken  gelen veriyi okuyamazsın.  eğer RE ve DE pinlerini ayrı bağlarsan, hem göndermeyi hem de almayı aynı anda aktif edebilirsin. Böylece veri gönderirken aynı zamanda okuyabilisin.  Eğer gönderdiğin veriyi alamıyorsan , hatta başka bir aygıt olduğunu ya da hattın bozuk olduğunu anlarsın. demiş kısaca.

Karamel

hocam daha onemli birsey demis. eger hicbirsey almak istenmiyorsa rx kismi enable edilmeyip hattan hicbirsey okunmayabilir. eger birlestirilirse ya gonderici yada alici olur.

mesaj birleştirme:: 29 Ağustos 2014, 01:51:50

Alıntı yapılan: musti463 - 29 Ağustos 2014, 01:05:47
Yabancı bir sitede de benzer soruyu sorduğumda şöyle bir cevap aldım tam olarak ne dediğini anlayan var mı?

"If you connect RE and DE together, the transceiver chip is either sending
or receiving (half duplex) and it only takes 1 pin on your PIC to control
the send/receive mode.

If RE and DE are separately controlled by two pins on your PIC, you
could enable both at the same time, and then transmit a byte and
receive it back in your PIC, to test if the circuit is working OK.
Also, if you don't receive the same message that you sent, it could mean
that another device is trying to send at the same time. (This is called
a collision).
So you could abort sending for a short time, and then try again."

Eger RE ve DE birbirine baglanirsa, pic controller dan 1 pin e ihtiyac olur ve transceiver ya alici yada verici mode da olur.

Eger RE ve DE pinleri Pic iniz tarafindan ayri ayri control ediliyorsa, iki modu da ayni anda aktif hale getirebilirsiniz ve sonra test amacli herhangi bir byte gonderir ve picinizle bunu okursunuz ve devre calisiyor dersiniz.  Bunun anlami baska cihazlar ayni anda gondermeye calisirken cakismalazlar. bu yuzden kisa zaman icin gonderim yapamiyorken, sonra tekrar deneyebilirsin.




altini cizdigim kisim bana mantiksiz geldi. birlestirincede surekli alici sadece gonderim zamanlarinda verici yapilirsa yine cakismalar olmaz ki?

Kabil ATICI

 Gönderdiğiniz aynı mesajı alamıyorsanız, bunun anlamı başka bir alet aynı anda göndermeye çalışıyor demektir. (Bu çakışma olarak adlandırılır)

Bunun gibi bir şey.
Bu durumda göndermek isteyen istasyon kendini kurtarır ama diğer istasyonun haberleşmesini bozmuş olur.
ambar7

Tagli

Tamam şimdi anladım. Evet, adam doğru söylemiş. CANBus'ta da bu şekilde oluyor. Veri yollayan taraf, yolladığı verinin düzgün bir şekilde hatta basılmadığını görürse, hatta kendisini bastıran bir başka konuşmacı olduğunu anlıyor ve susuyor.

Yani özetle, ayrı bağlamanın kendine göre kullanım alanları var. Kendi yaptığım basit multi-drop hatlarda böyle bir şeye hiç ihtiyaç duymadım ama. Olay daha çok multi-master hatalara yönelik.
Gökçe Tağlıoğlu

musti463

Hocam benim sistemde 4 adet sensör master a bilgi gönderecek. 4 ünde de direk gönder komutunu kullandım herhangi bir bekleme filan yok bu 4 bilgi cakisacak o zaman. Nasıl engelleyebiliriz. 0ms 10 ms 20 ms 30ms diye gecikme versek herbirine yine cakisma olur gibi geliyor yani sonuçta Senkron çalışmalarını da sağlamak gerekir
Mustafa Emir SADE

Tagli

O zaman senin sistemde 1 değil 5 master oluyor. Sorun burada. Slave cihazlar, master izin vermeden konuşmazlar. Kendilerine soru sorulmadan cevap vermezler. Senin master cihazının 4 slave cihaza sırayla soru sorması ve cevap alması gerekiyor. Birine soracak, cevabını alacak, sonra diğerine soracak ve böyle devam edecek. O zaman zaten çakışma olmaz.
Gökçe Tağlıoğlu

yldzelektronik

Alıntı yapılan: musti463 - 29 Ağustos 2014, 11:30:49
Hocam benim sistemde 4 adet sensör master a bilgi gönderecek. 4 ünde de direk gönder komutunu kullandım herhangi bir bekleme filan yok bu 4 bilgi cakisacak o zaman. Nasıl engelleyebiliriz. 0ms 10 ms 20 ms 30ms diye gecikme versek herbirine yine cakisma olur gibi geliyor yani sonuçta Senkron çalışmalarını da sağlamak gerekir

Konuyu başından itibaren okumadım.Ancak bir pini veri gönderecek olan slave 1e çekip veri uzunluğuna göre 10ms sonra veri göndermeye başlasa daha iyi olabilir.Diğer slave cihazlarda da veri göndermeden evvel bu pinin kontrolünü yapabilirsiniz.

Veya i2c incelenip benzeri güzel bir yapı ortaya konulabilir. Pinleri serbest bırakma ve lowa çekme durumları göz önüne alınırsa (pinin 3 state olması durumu) daha iyi sonuçlar alınabilir gibi geliyor.

Dediğim gibi konuyu baştan sona okumadım.Belki de alakasız bir çözüm de olabilir.

Ekleme:Tagli benden evvel post etmiş.Ama onun iletisini okuyunca evet @musti senin sürekli sensör ile veriyi göndermen hatalı.Sorgu cevap yapmalısın.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

musti463

Aslında 4 sensör 1 merkeze bilgileri gönderecek. Merkezde bu bilgileri yorumlayip başka bir alıcıya gönderecek.

@Tagli hocam o zaman sensörleri düşündüğümün aksine sürekli alıcı yapmam gerekecek. Emir geldiği anda vericiye dönüşüp bilgiyi  gonderdikten sonra tekrar alıcıya dönüşecek
Mustafa Emir SADE

oyaz

Alıntı YapAslında 4 sensör 1 merkeze bilgileri gönderecek. Merkezde bu bilgileri yorumlayip başka bir alıcıya gönderecek.

@Tagli hocam o zaman sensörleri düşündüğümün aksine sürekli alıcı yapmam gerekecek. Emir geldiği anda vericiye dönüşüp bilgiyi  gonderdikten sonra tekrar alıcıya dönüşecek

Sensorleri slave yapıp, RE pinini normal zamanda sürekli aktif yapacaksın. Böylece slave konumunda iken Masterdan sana soru sormasını bekleyeceksin. Master soru sorduğunda cevabı gönderip tekrar veri alma durumuna geçeceksin hepsi bu.
Become a learning machine...

ete

Bu konuda önceden yaptığım açıklamalı bir çalışmam var. Okumanda yarar görüyorum.
Link aşağıdadır. Sayfa-2 de program ve diğer dosyalar verilmiştir.

Ete


http://etepic.com/index.php/topic,57.15.html

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com