RS485 Slave Bağlantı şekli

Başlatan Mucit23, 04 Şubat 2021, 19:07:12

Mucit23

Alıntı yapılan: OG - 27 Mayıs 2021, 19:42:03başka hata/hatalar olduğunu zannediyorum,

terminatör (ve beraberindeki pullup, pulldown)
dirençlerinden vazgeçmesen iyi olur.
Şu yapı iyileştirilmiş (arttırılmış) C'ler gerektirir,
yani,
besleme hatlarında daha fazla elektrolitik kapasite ve 100nF (veya 220nF) değerler...

beslem hatları kontaklarla (pin) girdi çıktıyı fazla sevmez, onu desteklemek için.

(üstteki mesaja bazı eklemeler yaptım)

Abi ben iki byte arasında işlem yapmıyorum. Slave'ler kesme ile veriyi alıyor. Veri formatım aslında örneğin *xxxx# şeklinde. Paketin başı ve sonu belli. Paket başını görünce veriyi almaya başlıyorum. '#' karakteri gelince ilk başta gelen verinin ID'sine bakıyorum. Gelen paket içerisinde ID verisi oluyor. Daha sonra komuta bakıyorum. Eğer bu iki parametre alıcının beklediği komutlar ile uyumlu ise Tamam bu veri bana gelmiş diyorum ve cevap gönderiyorum benzer bir formatta. Şuan iyi çalışıyor gibi ama dediğim gibi sahada test etmedim henüz. Mesafe çok kısa.

Alıntı yapılan: OG - 27 Mayıs 2021, 19:42:03Şu yapı iyileştirilmiş (arttırılmış) C'ler gerektirir,
yani,
besleme hatlarında daha fazla elektrolitik kapasite ve 100nF (veya 220nF) değerler...

Şuan tüm 75176'ların besleme bacakları dibinde 330nF kapasite var. Beslemeden yana sorun varmı bakmam lazım ama şuan pull-up ve pull down dirençlerini eklemek biraz zor gibi. Yeni Tasarımlarda bu dirençleri 10K olarak sürekli takacağım.

En azından paket sonuna CRC eklemeyi deneyeceğim. Bu şekilde güvenliği biraz daha arttırmış olacağımı düşünüyorum.



OG

Alıntı Yapben iki byte arasında işlem yapmıyorum. Slave'ler kesme ile veriyi alıyor. Veri formatım aslında örneğin *xxxx# şeklinde. Paketin başı ve sonu belli. Paket başını görünce veriyi almaya başlıyorum. '#' karakteri gelince ilk başta gelen verinin ID'sine bakıyorum. Gelen paket içerisinde ID verisi oluyor. Daha sonra komuta bakıyorum. Eğer bu iki parametre alıcının beklediği komutlar ile uyumlu ise Tamam bu veri bana gelmiş diyorum ve cevap gönderiyorum benzer bir formatta.

Tamam, bu iş için data miktarı azdır, gelenlerin hepsini bir array'a doldurur sonra ayıklarsın, kolaydır
ama öyle işler olur ki datalar uçuşur, bir ondan bir bundan, ne array yeter, ne RAM yeter, ne de zaman
her data alışdan sonra, doğrumu, beklediğimmidir vs kontrollere ihtiyaç duyarsın,
tüyosü o gibi işler için, işe baştan bu yöntemlerle kendini alıştırırsan,  böyle bir data veriş-alış kalıpların olursa en kalabalık akışlarda bile sıkıntı çekmezsin,

diye bahsettim onlardan

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Mucit23

Bir Soru daha sorayım abi. Master cihazın üzerindeki RS485 Transreciever 3.3V, Slave olanlar ise 5V. Bu pratikte bir sorun yaratırmı? Garantiye almak için 3.3V transreciever yerine 5V transreciever kullanmak daha mantıklı olur diyebilirmiyiz? Master 3.3V olduğu zaman hatta basmış olduğu voltaj seviyeleri de 3.3V olacak.

OG

datalarına bakarsan 
dif inp voltage +- 12V civarındadır (max)

yani
rs485 data için giriş voltajı değeri toleransı
kendi besleme değerlerinden (bu, aynı zamanda hat'ta sürdüğü çıkış voltaj değerinin sınırı oluyor mecburen)
çok üstte olur
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Mucit23

Entegrenin giriş voltajının yüksek olması çok sorun olmaz sanırım. Zaten 12V sınırı içinde olacak. Fakat Master cihazın 3.3V seviyesinde hatta veri basması mesafeyi biraz düşürür diye tahmin ediyorum.

OG

giriş
+-200mV'a kadar doğru işlenebilir (min dif inp volt)
max'da +-12V

hat'ta ne kadar yüksek voltaj basılırsa o kadar uzağa gider demektir, bu doğru
ancak mesafe yalnızca voltaja bağlı değil,
hıza göre kablo kalitesi genelde daha çok öne çıkıyor

RS485'e voltaj konusunda yaşadığım bir olay,
bir avm'de sistem odasından CAT5 data hattını uzuuunca bir mesafeye döşemişler (koruyucu boru içinde),
kablo test cihazıyla ölçümünü yapmışlar, sağlam
alt yapı hazır diye sonra üstüne de beton dökmüşler (beton gerektiren bir yer)

gün gelmiş esas cihazları bağlamışlar, çalışmıyor
kabloyu yine test etmişler, sağlam,
ne yaparız diye kaşınıp duruyorlar, konu bir şekilde bana geldi
voltajın çok düştüğüne ihtimal verdim, çünkü kablo sağlam

4 mosfet çıkışlı (2+2) bir RS485 kuvvetlendirici yaptım, çıkışlar 12V ile besleniyor, tabi hatta 12V sürüyor
denemek için montajlarken avm'nin elektronik işlerden sorumlusuyla beraberiz
"ne yaptın" falan sorunca, datayı 12V olarak bastım dedim
"oolmaaaz, cihazları yakarız" feryadı
ben  :o   ,
"bozulursa benden" dedim, enerjiyi verdik, sistem şıkır şıkır.

yani işi ezbere yapınca böyle.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Mucit23

Şuan çalıştığım proje RS485 ürün geliştirme konusunda baya tecrübe edindirdi. Halada öğreniyorum. Teşekkürler

Mucit23

@OG hocam şöyle bir konu var tam anlayamadım. 60 Metre 4'lü flat köken kablo var. Rulo halinde haberleşmeyi test etmek için bu kabloyu kullandım. Kablonun başında master cihaz var. Kablo sonunda ise 1'er metre ara ile 18 tane node var. Bütün cihazları 60 Metre öteden 12V ile besliyorum. GND'ler ortak.

Tüm Slave'cihazlarda A ve B hattını 10K direnç ile pull up, pull down yaptım. 60 Metrede şöyle bir sorun yaşandı. 5-6Tane slave aygıt bağlansa sorun yok. Ama node sayısı artınca haberleşme bozulmaya başlıyor. Bu durumdayken A ve B hattını GND potansiyeline göre incelediğimde A ve B çıkışlarında DC 2V civarı DC ofset olduğunu görüyorum. Daha sonra Hattın başında master cihazın bulunduğu konumda B hattını ekstra 560R ile GND'ye bağlarsam haberleşme düzeliyor.

Bu durumun sistemin ortak GND yi kullanması ile alakalı olabilir mi?  Yada Twisted pair kablo kullanmadım bununla da alakalı olabilir diye düşünüyorum. Ne düşünüyorsunuz bu konuda?


OG

#38
sondaki sorudan geriye doğru gidelim

"flat köken kablo kullanımı"

yüksek hızlı işlerde datayı twisted pair (CT5 gibi) ile kullanırım, işlerimin geneli böyle,

ancak düşük hızlı işlerde çok oldu (aç kapa gibi basit işler), bu işlerde,

2400~4800bps datayı yüzlerce metre ŞU TİP BASİT flat kablo ile çok taşıdım (9600'ü 200~300m gibi)
ancak enerjiyi hep bulunduğu noktadaki kaynaklardan alıyordu, hiç sorun olmadı


data (hızlı) + enerjiyi, CAT5 (twisted pair) kablo ile, kısa mesafe (birkaç 10m) birkaç kez kullandım, hiç bir problem olmadı.


çektikleri mevcut kablodan, enerji üzerinden 300b gibi hızda data taşıdım (donanım kendi basit tasarımım, yani X10 falan değil), sorun olmadı (demir çelik fabrikalarının yüksek bacalarının uçak ikaz sistemleri, yan-sön) .

böyle karışık kuruşuk amaçlarla farklı şekillerde çok kullandım
karşıma çıkan sorunların hepsini önceki mesajlarda (farklı başlıkda da olabilir) anlatmaya çalıştım,
zannediyorum, anlatmayı unuttuğum bir şey (tecrübe) yok

yani, basit bir yerde basit bir hata yaşıyorsun

- - - -

Anlattığın husus için
önce enerjileri ayırıp test ederdim, ancak
"B hattını ekstra 560R ile GND'ye bağlarsam"
bu olmamalı, bu yanlızca ağrı kesici, tedavi edici değil,
teşhisi koymaya engel bir ekleme.

kablonun besleme uçlarını ünitelere giden yönünden keser
kablonun tersdeki ucundan ayrı enerji verirdim

sanki B hattı kopuk, gnd den tamamlıyor, bunu görmek için gerekiyor.
hattâ gnd kopuk, gnd'yi B'den tamamlıyor dahi olabilir,
bu yaşanırmı, az yük akımında yaşanırsa farkedilmez

besleme kondansatörleri önemli.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Mucit23

Beslemeden yana sorun yoktur sanırım. Her bir cihaz skünette 20ma çekiyor. Hattın en başından en sonuna kadar kısa devre testi yapıyorum A, B, GND ve V+ İçin sorun yok. Bütün bağlantılar sorunsuz. Ben en iyisi beslemeyi ayırıp neler olduğuna Bi bakayım. Öyle daha net belli olacak.