Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Endüstriyel Elektronik => Konuyu başlatan: Mucit23 - 04 Şubat 2021, 19:07:12

Başlık: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 04 Şubat 2021, 19:07:12
Selamlar

RS485 Haberleşmesinde pratikte iki bağlantı türünde fark oluşabiliyor mu?
(https://i.hizliresim.com/uDi6Wf.png)
(https://i.hizliresim.com/CQ83Hn.png)

Her Slave arasında ortalama 5 metre mesafe olacak. Ve ard arda 64 tane slave bağlanabilecek. Sonlandırma direnci hat sonunda mı olması gerekiyor?

Burada Haberleşme hızı düşük olacak. 4800bps olabilir.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: foseydon - 04 Şubat 2021, 19:43:13
sonlandırma direnci hattın en sonunda olur, 120ohm yanlış hatırlamıyorsam. hatta giden sinyal hattın sonunda sönümlensin diye koyarsınız. bütün diferansiyel sinyaller için bu mantık aynıdır.

1. şekil ile 2. şekil arasında ne gibi bir fark var ben anlamadım. ikisi eşdeğer devre.

mesafe olarak sınır olması lazım. tam hatırlamıyorum ne kadar olduğunu. kablo kalınlığı da önemli. kabloda da kayıp olacak.  birde pratik olarak 32 cihaz limit diye biliyorum.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Okan AKÇA - 04 Şubat 2021, 20:06:15
Rs 485 1. Şekildeki gibi bağlanır.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: tunayk - 04 Şubat 2021, 20:54:31
1. Şekil olması gereken yapıdır. Lakin kısa mesafe ve düşük baudrate için 2. De pek sorun yaşatmaz.
2. Şekilde hattın başı sonu belli olmadığı sonlandırma da sağlıkı yapılamayacaktır.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 04 Şubat 2021, 22:06:02
Baudrate Düşük olacak. 4800bps gibi bir değer olabilir. Bir projede plan gereği ikinci bağlantı şekli yapılacak. Sorun teşkil edermi onu merak ettim. Sonlandırma direnci hat sonuna bağlanabilir
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: foseydon - 04 Şubat 2021, 23:00:51
1 ile 2 arasında ne fark pratik olarak ne fark var?
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: tunayk - 04 Şubat 2021, 23:08:09
Fiziksel yada temel elektrik açısından bir fark yok. Ancak üstatlar derler ki;
Yüksek haberleşme hızlarında, bit süresi kısalır. Yıldız bağlantıda hatta oluşan düzensiz yansımalar/ gürültüler bu kısacık süreli bitleri etkiler ve alıcının doğru şekilde algılamasına mani olur.
Tek hat tipinde ise sinyal uçtan uca gidene kadar tüm alıcılardan geçmiş olur ve yansıma etkisi en aza iner.
Bu nedenle genel geçer bir kural olarak, tek hat şekli ve mümkünse düğüm noktalarının transciever entegrenin hemem dibinde olması istenir.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: ipek - 05 Şubat 2021, 00:25:26
TDR Time Domain Reflection diye osilaskopa bağlanan çok basit devreler var, ekranda kare dalgaya yakın Curve formları izleyebiliyorsun,kablolama yada terminasyonu kurallar çerçevesine çıktığın an görüntüleyebiliyorsun,artık giden gelen sinyal sinyalede benzemediği için,haberleşme kalitesi altüst oluyor..
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: yas - 05 Şubat 2021, 01:09:22
1. ve 2. bağlantıların ek noktası ile slave ler arasındaki mesafe aynı ise hiçbir farkı yok. Olması gereken (tavsiye edilen) aşağıdaki gibi. Yani eklerin slave terminalde gerçekleşmesi.

(https://www.bb-elec.com/Images/2wire_rs485_fig1.aspx)
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: yas - 05 Şubat 2021, 01:19:33
Örnek resmi aldığım sayfada birde doküman (https://www.bb-elec.com/Learning-Center/All-White-Papers/Serial/RS-485-Connections-FAQ/faq_rs485_connections.pdf) varmış.
19200 baud ve altı hızlar için 4000 ft (1220 mt) gibi bir mesafeden bahsediyor. Şahsen 2400 baud hızda 1 master, 1 slave şeklinde ~900 metre civarı uygulamam olmuştu. Bir sıkıntı çıkmadı.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: M.Salim GÜLLÜCE - 05 Şubat 2021, 02:40:07
Çizimlere yansımamış ancak sonlandırma Empedans dirençleri ne olmalı.
Sadece uçlardamı yoksa hepsindemi.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: triyak - 05 Şubat 2021, 07:13:07
2. resim için,
masterı, slave 1 yerinde olduğunu düşünün.

master ver yanında 4-5 modül ( plc ve io modülü, hmı vs ) bir pano içinde 485 üzerinden birbirine bağlı.

ayrıca 485 üzerinden 20 metre ötedeki diğer panoya gidiyor. Burda da 100kWlık bir güç inverteri ile 5 tane motor sürücüyü 485 üzerinden 9600 baud ile sağlıklı haberleştirememiştim. Kablom ekranlı, A ve B uçlarında pullup, pulldown, sonlandırma mevcuttu. Bağlantıyı ilk resimdeki gibi yapınca yada hız düşürülünce sıkıntı çözülüyordu.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 05 Şubat 2021, 11:54:48
uzayan hatların sonunda sonlandırma direnci olsun yeter
her şekilde çalışır.

hatta aşırı yük durumu varsa (olması gereğinden fazla) sinyal algılanamayacak kadar düşer
(bu değer 75176 için +-200mV)

bunun çözümü de sinyalin henüz çok düşmediği bir yerede hat kesilir, araya data güçlendirici bağlanır
data güçlendirici = bir RX çalışan 75176, ve bir TX çalışan 75176
TX 75176'nın çıkışı tekrar 5V'a yükselmiş olacaktır.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 26 Mart 2021, 12:01:13
Bu uygulama değil ama başka bir uygulamada SN75176'ların çok çabuk bozulduğuna şahit oldum. Bazı Web sitelerinde MAX485 gibi entegrelerin daha sağlıklı çalıştığı söyleniyor. Bu konuda tecrübeleriniz var mıdır.

RS485 entegrelerini statik gerilimlerden ve diğer bozucu faktörlerden korumak için Her bir aygıt 'ta RS485 Entegresinin A ve B uçlarına paralel TVS diyot bağlamak yeterli olur mu?

200 metre gibi bir uzunlukta en fazla 64 tane aygıt bulunan bir sistem kurucam. Bağlantılar ilk mesajda 2. Resimdeki gibi yapılacak.  RS485 üzerinden bir Master bütün slave'ler den durum bilgisi okuyacak. Böyle bir sistemde sadece hattın en sonunda sonlandırma direnci olması yeterli mi? Sistemin Tek seferde problemsiz çalışması lazım. Bu yüzden donanımsal bütün önlemleri almam lazım.

Alıntı yapılan: wanted0035 - 05 Şubat 2021, 07:13:07ayrıca 485 üzerinden 20 metre ötedeki diğer panoya gidiyor. Burda da 100kWlık bir güç inverteri ile 5 tane motor sürücüyü 485 üzerinden 9600 baud ile sağlıklı haberleştirememiştim. Kablom ekranlı, A ve B uçlarında pullup, pulldown, sonlandırma mevcuttu. Bağlantıyı ilk resimdeki gibi yapınca yada hız düşürülünce sıkıntı çözülüyordu.

Bu pull up pull down dirençleri ne için? RS485 uygulamalarında pull up direnci bağlandığını pek görmüyorum.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 26 Mart 2021, 21:09:45
Alıntı YapBu uygulama değil ama başka bir uygulamada SN75176'ların çok çabuk bozulduğuna şahit oldum. Bazı Web sitelerinde MAX485 gibi entegrelerin daha sağlıklı çalıştığı söyleniyor. Bu konuda tecrübeleriniz var mıdır.
SN75176'yı binlerce kullanıyorum, üstelik hemen hepsi 250Kb hızında, hiç bir sorun yok.
markalı olmasına dikkat edin (yani aynı zamanda güvenilir yerden alın demektir, ben Özdisan'dan alıyorum, smd kullanıyorum)

Alıntı YapRS485 entegrelerini statik gerilimlerden ve diğer bozucu faktörlerden korumak için Her bir aygıt 'ta RS485 Entegresinin A ve B uçlarına paralel TVS diyot bağlamak yeterli olur mu?
Data hattının dolaştığı yerler önemli, ben hiç kullanmadım,
mini sparklar (buna yıldırım diyorlar ama aslı mini deşarjlar) içeren ortam ise kesin kullanın

TVS'yi dirençsiz bağlayanlar oluyor, yanlış (tam doğru değil),
Ayrıca Data hattı arasına tek TVS bağlayanlar oluyor, bu da yanlış
Sayfa 9 daki gibi olmalı (https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf)

(https://i.ibb.co/hm3Qrn2/TVS.jpg) (https://imgbb.com/)

Alıntı Yap200 metre gibi bir uzunlukta en fazla 64 tane aygıt bulunan bir sistem kurucam. Bağlantılar ilk mesajda 2. Resimdeki gibi yapılacak.  RS485 üzerinden bir Master bütün slave'ler den durum bilgisi okuyacak. Böyle bir sistemde sadece hattın en sonunda sonlandırma direnci olması yeterli mi?
Kural şu;
uzanan hattın ucu boş kalmayacak,
üniteler uzanan bir hat ile bağlanıyor, bu durumda ünitelerde sonlandırma direnci olacak
ayrıca şekil 2 de hattın uzanan boş ucu görünüyor, her hattın ucu direnç ile kapanacak

----

Alıntı YapBu pull up pull down dirençleri ne için? RS485 uygulamalarında pull up direnci bağlandığını pek görmüyorum.
(https://i.ibb.co/XJpQ2qp/PULL-UP-DOWN.jpg) (https://imgbb.com/)

Bu yapıyı ben de kullanıyorum, Sayfa 7, Şekil 9 (https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf)

ek,
(önceden burada konuşuldu https://www.picproje.org/index.php?msg=481786 )
75176'nın RO ucu (pin 1) yani mcu'ya rx sağlayan ucunu 1K~5K gibi direnç ile Vcc ye pullup yapın,
yani aslında usart RX pinine
çok rahat ettirir.

ne faydası var derseniz,
hat kopuksa, sistemdeki mcu yazılımı da ciddi önlemler alınmadıysa, data alışta usart interrupt da kullanılıyorsa,
- usart durduk yerde kesme atar
- usart frame error, overrun error verir, bunun kontrollerini yapmadıysanız uğraştırır durur

Şekil 9'daki dirençlerin hangisi + ya, hangisi gnd ye bağlı olduğuna dikkat edin, önemli.
bu dirençler için 120R falan yazdıklarına bakmayın ben 10K kullanıyorum ve hatta daha fazla cihaz bağlanabiliyor
cihaz sayısı az ise 120R daha iyidir, hat yansımalarına daha iyi engel olur.


MAX485 kullanmaya gerek yok, daha pahalı,
sistemde sorun var ise 75176 kullanıldığından değildir, sorun çıkabilecek hususları belirttim, MAX485'de de aynı sorunlar yaşanır.

Edit, resim eklendi
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 27 Mart 2021, 00:40:20
Alıntı yapılan: OG - 26 Mart 2021, 21:09:45SN75176'yı binlerce kullanıyorum, üstelik hemen hepsi 250Kb hızında, hiç bir sorun yok.
markalı olmasına dikkat edin (yani aynı zamanda güvenilir yerden alın demektir, ben Özdisan'dan alıyorum, smd kullanıyorum)
Data hattının dolaştığı yerler önemli, ben hiç kullanmadım,
mini sparklar (buna yıldırım diyorlar ama aslı mini deşarjlar) içeren ortam ise kesin kullanın

TVS'yi dirençsiz bağlayanlar oluyor, yanlış (tam doğru değil),
Ayrıca Data hattı arasına tek TVS bağlayanlar oluyor, bu da yanlış
Sayfa 9 daki gibi olmalı (https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf)
Kural şu;
uzanan hattın ucu boş kalmayacak,
üniteler uzanan bir hat ile bağlanıyor, bu durumda ünitelerde sonlandırma direnci olacak
ayrıca şekil 2 de hattın uzanan boş ucu görünüyor, her hattın ucu direnç ile kapanacak
Bu yapıyı ben de kullanıyorum, Sayfa 7, Şekil 9 (https://www.analog.com/media/en/technical-documentation/application-notes/AN-960.pdf)
ne faydası var derseniz,
hat kopuksa, sistemdeki mcu yazılımı da ciddi önlemler alınmadıysa, data alışta usart interrupt da kullanılıyorsa,
- usart durduk yerde kesme atar
- usart frame error, overrun error verir, bunun kontrollerini yapmadıysanız uğraştırır durur

Şekil 9'daki dirençlerin hangisi + ya, hangisi gnd ye bağlı olduğuna dikkat edin, önemli.
bu dirençler için 120R falan yazdıklarına bakmayın ben 10K kullanıyorum ve hatta daha fazla cihaz bağlanabiliyor
cihaz sayısı az ise 120R daha iyidir, hat yansımalarına daha iyi engel olur.
ek,
75175'nın RX ucu (pin 1) yani mcu'ya rx sağlayan ucunu 1K~5K gibi direnç ile Vcc ye pullup yapın, çok rahat ettirir.

MAX485 kullanmaya gerek yok, daha pahalı,
sistemde sorun var ise 75176 kullanıldığından değildir, sorun çıkabilecek hususları belirttim, MAX485'de de aynı sorunlar yaşanır.


Abi bu bilgiler çok değerli tam olarak bunları öğrenmek istiyordum. Çok Teşekkür ederim. Ben dataları usart kesmesi ile alıyordum. Bir çok kez frame error gibi hatalarla karşılaşıyordum. Master cihazın rX pinini logic analyser ile incelediğimde Master Hatta veri basarken RE ve DE pinini 1 yaptığında RO pini lojik 0 oluyordu. Normalde High Z konumuna geçmesi lazım. Eğer MCU RX kanalını kendi içerisinde pull up yapmadıysa Master TX modun da RO çıkışının lojik sıfıra inmesini açıklamış olurum.

Dediğiniz önlemleri alacağım. Daha önceki yaptığım uygulamalarda çok hata yapmışım. Sistem birkaç node ile çalışsa bile sürekli hata alıyordum.

Termination Resistor olayını şekil 2 için konuşursak bağlantı noktaları ile slave aygıtlar arasındaki mesafenin uzaması durumunda her bir slave aygıta termination resistor bağlanması gerekir mi?
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 27 Mart 2021, 09:23:36
Alıntı YapTermination Resistor olayını şekil 2 için konuşursak bağlantı noktaları ile slave aygıtlar arasındaki mesafenin uzaması durumunda her bir slave aygıta termination resistor bağlanması gerekir mi?

bir an cihazları unut, yok say,
data hat döşenmiş (ihtiyaca gerekecek şekilde)
hatta cihaz mihaz yok
bütün uzanan uçlar kapatılacak,
bu durum, transmisyon hatlarının sağlıklı çalışması için ihtiyacı, yani gerekli bir empedans ile kapatmak.


(https://i.ibb.co/Tg2k4LN/RS485.jpg) (https://ibb.co/71CXn40)



Şimdi data hat uçlarına cihazları bağlıyoruz,
(hangisi hangi uca?
MASTER hangi uçta, SLAVE'ler hangi uçta olacak diye bir kural yok,
her uçta her biri olabilir, MASTER haberleşme trafiğini yöneten unite demektir)

önceden bağladığımız o dirençler, taktığımız cihazların içinde de varsa ( ? )
hat ucuna taktığımız önceki dirence gerek kalmıyor, söküyoruz,
sökmesek?
sökmesek de çalışır, gereksiz ve hat için fazladan yük,

unutmayalım,
bütün hattın toplam elektriksel yükünü,
o an TX olmuş bir adet 75176 sürer, zavallı  :P  .
(aynı anda yalnızca 1 ünite TX olmalıdır, rs485 halfduplex yapıyı hatırlayalım)

TX olan 75176 datayı hatta 5V genlikte sürer,
veya diğer malzemelerden örnek 3V3 olsun,
farketmez 2V sürsün, 1V olsun


hat elektriksel yükü arttıkça, unitelere ulaşan datanın voltajı düşer, düşer, düşer...
yeter ki, RX durumundaki 75176'lar datayı algılayabilcek kadar voltajı görsün.

bu voltaj değeri, 75176 için 200mV dur,
yani,
200mV'dan alta inmedikçe, RS485 hattan gelen sinyali doğru algılar ve
mcu'ya TTL seviyesinde veririm
demektir

bu 200mV parametresi için önüne +- koyarlar,
anlamı pp 400mV demek DEĞİLDİR,
(data hattında sinyal bir öyle bir böyle iken demek)






Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 27 Mart 2021, 21:02:49
Abi Teşekkürler.

Yapacağım uygulamada ve bundan sonraki uygulamalarda TVS diyot mutlaka koymak lazım.. Örnek Uygulamalarda SM712 kullanıldığını gördüm.

A ucunu 10K ile 5V'a çekip B ucunuda 10K gibi bir direnç ile GND ye çekmek gerekiyor düzenli bir haberleşme için. Örnek uygulamalarda daha düşük dirençler kullanıldığını gördüm. Düşük direnç kullanımı hattın empedansını çok düşüreceği için bağlanabilecek node sayısını düşürüyor sanırım. En önemlisi RO çıkışını harici olarak pull up yapmak bence. Çünkü SN75176 TX modunda RO çıkışını High Z yapıyor. Bu durumdayken RO çıkışı lojik 1 de kalmalı.

Gerekli düzenlemeleri yapıyorum.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 28 Mart 2021, 09:02:59
Alıntı YapA ucunu 10K ile 5V'a çekip B ucunuda 10K gibi bir direnç ile GND ye çekmek gerekiyor düzenli bir haberleşme için.

alttaki hali ile binlerce cihaz 250Kb'de şıkır şıkır çalışıyor,
hız 250Kb olduğundan data kablosu o hıza göre, CAT5 veya bazı özel data kabloları ile, tek özen gösterilen husus bu.

bahsettiğim hususlara dikkat edilirse
ve üniteler gereksiz konuşmaya kalkmazsa (bu hataya yazılımda atlanan hususlar sebep olur)
RS485'in ne şahane bir icad  :P  olduğunu keşfedeceksin.

mesela 9,6Kb de,
2 zil telini uzat gitsin, yüzlerce metreye binlerce cihaza
nereden giderse gitsin, gitsin de,
data zayıfladı mı, kes kabloyu, at araya çift yönlü tekrarlayıcıyı (3 kuruşluk şey), bitti.



Vcc 
-
10K
-     D+ ucu, 
10K   terminasyon direnci
-     D- ucu
10K
-
GND

Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Cemre. - 29 Mart 2021, 11:40:23
Çift yönlü tekrarlayıcı kaç kuruşluk bir şey hocam? Advantech'den almıştık Repeater pek de ucuz değildi :D
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 29 Mart 2021, 11:49:28
Alıntı yapılan: Cemre. - 29 Mart 2021, 11:40:23Çift yönlü tekrarlayıcı kaç kuruşluk bir şey hocam? Advantech'den almıştık Repeater pek de ucuz değildi :D
kendiniz çok ucuza yapabilirsiniz, çok basit bir şey.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: kimlenbu - 29 Mart 2021, 13:58:24
SN75176 tavsiye etmiyorum. Mouser'dan aldım, patates olmadığına eminim ama 4800baud sürekli iletişim olduğunda el değmeyecek kadar ısınıyorlar.  Bunun yerine SN65HVD485'e geçtim, tıkır tıkır ısınmadan çalışıyor.

Ayrıca @OG nin belirttiği failsafe diye tabir edilen dirençleri mutlaka ekleyin. A hattı 100k ile VCC'ye, B hattı 100K ile GND'ye. Eklemezseniz cihaz girişlerine herhangi bir data/kablo bağlanmadığında parazitleri sinyal olarak algılıyor ve aynen bahsedildiği gibi usart kesmelerinin tetiklenmesine sebep oluyor. Dijital kapılarla data akışı var mı yok mu kontrol etmeye çalışırsanız da bu parazitler yüzünden yedek girişe otomatik geçiş yapması beklenen bir cihaz hatta verinin kesildiğini algılayamıyor ve sisteme bozuk veri basıyor.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 29 Mart 2021, 16:26:12
Alıntı YapSN75176 tavsiye etmiyorum. Mouser'dan aldım, patates olmadığına eminim ama 4800baud sürekli iletişim olduğunda el değmeyecek kadar ısınıyorlar
Tatlı bir ısı olur, ısı sebebiyle bozulan 75176 görmedim, SN65HVD485  kullanmadığımdan kıyas yapamıyorum.

Fiyatları çok farklı
https://ozdisan.com/entegre-devreler-ics/interface-entegreleri/driver-receiver-ve-transceiver-entegreleri/SN75176BDR
https://ozdisan.com/entegre-devreler-ics/interface-entegreleri/driver-receiver-ve-transceiver-entegreleri/SN65HVD485EDR

birde
65 serisi -40°C~+85°C
75 ise   0°C~+70°C

Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Okan AKÇA - 29 Mart 2021, 20:05:05
Sp485 daha uygun fiyatlı sorunsuz yıllardır kullandığım ürün.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: tunayk - 29 Mart 2021, 23:26:23
75176 ile yıllardır sorun yaşamadık. Ancak yeni tasarımlarda naçizane tavsiyem, ISO3082, 3088 gibi izole olanlarla çalışmak ve pekçok sorunu baştan yoketmek.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 30 Mart 2021, 07:43:24
Alıntı yapılan: tunayk - 29 Mart 2021, 23:26:23Ancak yeni tasarımlarda naçizane tavsiyem, ISO3082, 3088 gibi izole olanlarla çalışmak ve pekçok sorunu baştan yoketmek.
Marine uygulamaları ve askeri işlerde kullanıyoruz, isole mecbur.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 27 Mayıs 2021, 12:13:20
RS485 Terminasyon direnci için bir sorum olacak.

120R tavsiye ediliyor ama hattın başına ve sonuna 120R direnç taktığımda haberleşmenin büyük bir oranda bozulduğunu görüyorum. Şuanda 5 metre kablo içinde yaklaşık 20 tane Node Var. Geliştirme ortamında cihazları test ediyorum. 120R dirençleri sökersem hiç bir sorun olmadan sorunsuz haberleşiyorum. Bu 120R olayını anlamadım. Her yerde 120R deniyor ama bence 120R hattın empedansını çok düşürüyor. SN75176'ların çıkış akımı yeterli gelmiyor. Yüksek mesafede(>100m) nasıl davranır henüz test etmedim.

Ek olarak yaptığım sistemde 4-5 byte'dan oluşan basit seri paketler gönderiyorum. Veri formatını kendim oluşturdum. Modbus gibi standart bir algoritma yok. Ek olarak CRC hesaplaması yaptırmak paket sonuna onu eklemek istiyorum. CRC için önereceğiniz bir algoritma var mı?
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 27 Mayıs 2021, 17:49:30
120R'ye sahip 20 adet node ile
5 metre kabloda
haberleşmede bozulma oluyorsa
başka sorun/sorunlar var
bu KESİN.

Sorunu aramaya donanımdan başlamak daha isabetli
genelde dalgınlıkla yapılmış basit hatalar gibi
pcb'deki bir çizim hatası, eleman/direnç değeri hatası vs

DATA- hattının kopukluğu
RS485 sistemlerinin testleri yapılırken
node'lar için aynı güç kaynağı kullanılıyor ise
DATA -  (data B, soğuk uç) hattındaki var olan kopukluk
veya bu hattın cihaz içindeki var olan bir bağlantı hatası/ değer hatası
üniteler aynı güç kaynağı ile beslenirken
var olan hata algılanamayabilir,
bu durum, hat'ta yüklü ünite sayısına göre farklılık gösterebilir
yani,
testlerde aynı güç kaynağını kullanmak, DATA -  hat'tındaki var olan kopuklukların görülmesini engelleyebilir


- - - - - -

Burası (buradan altta yazdıklarım) konuya kısa bir toparlama
(RS485 kullanımı için)

485'in dirençleri (data hattına yani dışarıya bakan)

Vcc
-
10K
-    D+ ucu,
10K  terminasyon direnci
-    D- ucu
10K
-
GND


485'in USART'a RX out pinine pullup direnci
75176 için pin 1 den pullup
çook işe yarar, önceden anlatıldı,
gereksiz usart kesmelerine/frame hatalarına  engel olur


Basit haberleşme formatı

Öncelikle;
alıcı tarafın gelen byte sonrası bazı kontroller yapması gerekiyorsa
gönderen tarafın, gönderdiği byte sonrası, gerekli küçük bir süre bekleme vermesi iyidir
işlemcinin hız kaabiliyetine ve datanın yavaşlığına göre bu süre gerekmiyebilir de

eğer vermek gerekiyorsa pratik bir bilgi,
delay'lar ile uğraşmaktansa
USART'ın TX ayarı 8N2 olarak ayarlanır, fazladan olan son bit H olmalıdır
USART'ın RX ayarı 8N1 olarak ayarlanır, kalan o 1 bitllik süre çok iş için yeterlidir


(buradan aşağısı CRC'ye dahil byte'lar, yani crc hesabına girecekler)

* 3 byte kafa datası (ilk beklenen bunlar, peşisıra bunlar gelmez ise gerisini dinleme, baştan al)
rastgele seçilmiş 3 byte dır, (3 adet zorunluluk değil, arttırılabilir, azaltılmaması önerilir)
bitleri arka arkaya çok değişen değerler olursa daha iyi
mesela 10101010 , 01010101, 11001101  gibi (decimal karşılığı 170, 85, 205) yalnızca örnektir 


* Muhatabın ID si
(ID = x ise gönderi hapsine,
x=0 değeri crc hesaplamalarında güvenli olmayabilir,
ek güvenlik için 2 kere ID,
birbirinin invertü değerler olarak iki kere göndermek
gibi çözümler gerekebilir)

diğer husus
ID, node sayısına göre 1 byte dan fazla da olabilir



* Esas bilgi
şimdi esas bilgi,
(bu bilgi her gönderide sabit adette değil ise,
hemen önüne, kaç adet bilgi olacak eki (alışta işe yarar)

kaç byte (bilgi byte sayısı)
bilgi
bilgi
bilgi
.
.
bilgi


* CRC (datayı alan taraf bu değer ile doğrulama yapar)
son bilgiye kadar byte'ların CRC olarak hesaplanmış değeri

CRC işlemi çok çeşitli yöntemlerle yapılabilir, yöntemimizi kendimiz üretebiliriz
En basiti bütün byte'ların exorlanması ve 8 bit (1 byte) bir değer elde edilmesi,

Güvenliğin önemli olduğu işlerde
daha sağlam ve en az 16 bitlik CRC yapıları kullanılmalıdır
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 27 Mayıs 2021, 17:59:24
Abi teşekkürler mesajların gerçekten çok açıklayıcı.

Şuanki sistemde bütün cihazlar birbirine kaskat bağlı. Sistemi baya değiştirdim.

Master >>>> Node1 >>> Node2 >>> Node3 >>>> Node4 >>>> ... Şeklinde gidiyor. Kartlar üzerine 2 Tane RJ9 4P4C konnektör var. V+, RS485A, RS485B ve GND bu hat üzerinden tamamlanıyor. Master cihazda MCU RX ve TX pinine Lojik analyser bağlayıp ordan hattı izliyorum. Kim ne gönderiyor kim ne cevap veriyor görülüyor. Bozuk data olursa zaten hemen yakalıyorum.

Her bir cihaza 120R bağlamadım. Sadece MAster'da ve Hattın en sonuna bağladım. Sadece Master'da varsa sorun yok. Ama Hem master'da hemde hattın sonunda varsa problem oluyor. Haberleşme çoğunlukla bozuluyor. Muhtemelen 120R dirençler kısa mesafede hattın empedansını çok düşürüyor. Şimdilik takmayacağım.

Ama abi dediğin gibi RX pinini 10K ile pull-up yapmam çok faydalı oldu. Transmit anında artık RX pini 0'a düşüp framing uart'ın kafasını karıştırmıyor.

Komut yapısını şuanda geliştiriyorum hala. Şuanlık 4-5 byte'dan oluşan sabit bir frame yapısı kullanıyorum.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 27 Mayıs 2021, 19:42:03
başka hata/hatalar olduğunu zannediyorum,

terminatör (ve beraberindeki pullup, pulldown)
dirençlerinden vazgeçmesen iyi olur.

Alıntı YapMaster >>>> Node1 >>> Node2 >>> Node3 >>>> Node4 >>>> ... Şeklinde gidiyor. Kartlar üzerine 2 Tane RJ9 4P4C konnektör var. V+, RS485A, RS485B ve GND bu hat üzerinden tamamlanıyor.
Ş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)
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 28 Mayıs 2021, 17:34:23
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.


Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 28 Mayıs 2021, 20:23:12
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

Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 29 Mayıs 2021, 02:02:58
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.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 29 Mayıs 2021, 08:32:10
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
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 29 Mayıs 2021, 11:48:53
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.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 29 Mayıs 2021, 12:12:33
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.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 29 Mayıs 2021, 12:35:44
Şuan çalıştığım proje RS485 ürün geliştirme konusunda baya tecrübe edindirdi. Halada öğreniyorum. Teşekkürler
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 07 Haziran 2021, 16:08:20
@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?

Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: OG - 07 Haziran 2021, 17:58:06
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 (https://www.hepsiburada.com/wozlo-2-x-0-75-kordon-kablo-elekrtik-hoparlor-kablosu-100-m-p-HBCV000006FX00) 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.
Başlık: Ynt: RS485 Slave Bağlantı şekli
Gönderen: Mucit23 - 07 Haziran 2021, 20:24:16
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.