422 yardım lütfen.

Başlatan canbulut, 19 Aralık 2011, 15:22:12

canbulut

http://www.kmitl.ac.th/~kswichit/Pc_Rs422_web/PC_Rs422.html

arkadaşlar ben bu resimdeki bağlantıya göre slaveleri aynısı yaptım.. pcbimide çizdirdim...slavelerin hepsinin bağlantısı bu resime göre....master olarak pc'ye bağlı 232to422 konvertor kullanıyorum.yani master pc.bir cihaz bağlayınca iletişim çalışıyor.ama ikinci pcbyide takınca çalışmıyor...bana yardımcı olurmusunuz :'(

devreyi aynen şu şekilde kullandım http://

ferdem

Full duplex çalışmak istemişsiniz. RX tarafı için DE/RE ucunu toprağa çekmek olabilir ancak TX tarafı için DE/RE yi VCC ye çekerseniz her bir slave TX+ TX- uçlarına bir gerilim dayatır. Slave1 mcunun TX çıkışı data göndermediği zamanlarda bile 5V veya 0V olacağından TX+ TX- uçlarını belirli bir gerilimde tutmak ister, Slave2 bu durumda TX yapamaz! TX veriler hep çakışır. Verilen şema başka amaçla verilmiştir, sadece bir uzak terminal vardır, ağ düşüncesi olmayabilir.
Sonuç: Slave lerin sağlıklı TX yapmaları için DE/RE ucunu sadece TX gerektiğinde lojik1 yapmalısınız.

Kolay gelsin.

canbulut

Alıntı yapılan: ferdem - 19 Aralık 2011, 15:50:02
Full duplex çalışmak istemişsiniz. RX tarafı için DE/RE ucunu toprağa çekmek olabilir ancak TX tarafı için DE/RE yi VCC ye çekerseniz her bir slave TX+ TX- uçlarına bir gerilim dayatır. Slave1 mcunun TX çıkışı data göndermediği zamanlarda bile 5V veya 0V olacağından TX+ TX- uçlarını belirli bir gerilimde tutmak ister, Slave2 bu durumda TX yapamaz! TX veriler hep çakışır. Verilen şema başka amaçla verilmiştir, sadece bir uzak terminal vardır, ağ düşüncesi olmayabilir.
Sonuç: Slave lerin sağlıklı TX yapmaları için DE/RE ucunu sadece TX gerektiğinde lojik1 yapmalısınız.

Kolay gelsin.

evet full dublex çalışmak istedim.şimdi hocam tx yapabilmek için tx tarafında de/re ucunu picle kontrol edersem dediğiniz gibi pull-down yapıp de/re ucunu gönderme yaparken high yapınca çalışacakmı bu şema...iliginiz için teşekkürler.

Klein

DE/RE ucunu değil sadece DE ucunu kontrol edeceksiniz. RE yine VCC'de olacak.

DE/RE ucunu birleştirip kontrol edebilirsiniz. Ama o çip RX yapmayacağı için anlamsız olur. TX yapmazken boş yere güç harcamış olursunuz.

My75

Tek yönlü iletişim olmayacaksa 2 ve 3 nolu pinler sürekli rx modunda olmaları yani low olmaları gerek,sadece data gönderirken high yapıp tekrar low olmaları gerek..Master ve slave farketmez..

Fakat mcu dan data gönderiminde 2 ve 3 nolu pinler (txe) high olduktan sonra kısa bir süre bekleyip öyle göndermek gerekiyor yoksa data iletişimi sağlanamadan tekrar rx moduna geçer..

High txe:delayms 20
hserout data
delayms 20:low txe

gibi..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

canbulut

#5
Alıntı yapılan: Klein - 19 Aralık 2011, 19:33:37
DE/RE ucunu değil sadece DE ucunu kontrol edeceksiniz. RE yine VCC'de olacak.

DE/RE ucunu birleştirip kontrol edebilirsiniz. Ama o çip RX yapmayacağı için anlamsız olur. TX yapmazken boş yere güç harcamış olursunuz.



hocam yanlış anlamadıysam şema şu şekilde değişecek doğrumudur?ve düzgün çalışması için yeterli olurmu?



canbulut

Alıntı yapılan: My75 - 19 Aralık 2011, 20:29:11
Tek yönlü iletişim olmayacaksa 2 ve 3 nolu pinler sürekli rx modunda olmaları yani low olmaları gerek,sadece data gönderirken high yapıp tekrar low olmaları gerek..Master ve slave farketmez..

Fakat mcu dan data gönderiminde 2 ve 3 nolu pinler (txe) high olduktan sonra kısa bir süre bekleyip öyle göndermek gerekiyor yoksa data iletişimi sağlanamadan tekrar rx moduna geçer..

High txe:delayms 20
hserout data
delayms 20:low txe

gibi..

my75 hocam sanırım 20+20 =40ms demek istediniz.bu çok uzun bir süre olabilir?bu verdiğiniz değerleri 1er ms'den toplam 2 ms yapsak olmazmı?ne kadar küçük olursa o kadar iyi benim için.

My75

#7
Denemen lazım,hızlı bir protokol kullanıyorsan belkide hiç gecikme kullanmana gerek kalmaz..

Ben mesela 5 byte veri gönderiyorum,bu gecikmeleri vermezsem;

Hserout [a,b,c,d,e]   ilk gecikmeyi vermezsem a ve b kırpılıyor,son gecikmeyi vermezsem d ve e kırpılıyor yani ulaşmıyor..

Bu sorunu 2400 baud'da yaşadım,çok daha hızlı olursa yapmayabilir ki yapmaz sanırım,denemedim..

Hadi son gecikme neysede ilk gecikmeyi çok garipserim,txen aktif olana kadar bir kaç byte gönderilmiş oluyor, ya 75176 çok uyuşuk davranıyor yada Pic çok hızlı davranıyor.. :)

Ama 75176 aktif olana kadar bir kaç byte gittiği kesin..O yüzden kalk hadi elini yüzünü yıka demek için bir zaman  veriyorum.. :D
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

canbulut

Alıntı yapılan: My75 - 19 Aralık 2011, 22:17:39
Denemen lazım,hızlı bir protokol kullanıyorsan belkide hiç gecikme kullanmana gerek kalmaz..

Ben mesela 5 byte veri gönderiyorum,bu gecikmeleri vermezsem;

Hserout [a,b,c,d,e]   ilk gecikmeyi vermezsem a ve b kırpılıyor,son gecikmeyi vermezsem d ve e kırpılıyor yani ulaşmıyor..

Bu sorunu 2400 baud'da yaşadım,çok daha hızlı olursa yapmayabilir ki yapmaz sanırım,denemedim..

Hadi son gecikme neysede ilk gecikmeyi çok garipserim,txen aktif olana kadar bir kaç byte gönderilmiş oluyor, ya 75176 çok uyuşuk davranıyor yada Pic çok hızlı davranıyor.. :)

Ama 75176 aktif olana kadar bir kaç byte gittiği kesin..O yüzden kalk hadi elini yüzünü yıka demek için bir zaman  veriyorum.. :D


:))elini yüzünü yıka diye zaman ha:))

bu kırpılma işi bendede oluyordu..sonlandırmanın karekterinin değerini değiştirdim düzelmişti.

Klein

evet şema doğru.
Ama R11,R13 sonlandırma  dirençleri sadece PC tarafında ve son düğümde olacak.

canbulut

Alıntı yapılan: Klein - 20 Aralık 2011, 10:29:15
evet şema doğru.
Ama R11,R13 sonlandırma  dirençleri sadece PC tarafında ve son düğümde olacak.

sağolun hocam diğer işlerden hala deneme fırsatını bulamadım fakat pc tarafında ve son düğümde olması ne demek..son düğüm demek istediğiniz yer sanırım en sona takılan slave cihazına demek istediğinizi anlıyorum.arada kalan slave cihazlarındaki r11 ve r13 dirençlerini sökeceğim...fakat pc tarafı dediğiniz kısmı anlayamadım.

Klein

PCtarafı , RS-232 485 çeviricinin Ave B uçları. Muhtemelen çeviricinin içinde yoktur, dışarıdan bağlaman gerekebilir.

canbulut

Alıntı yapılan: Klein - 20 Aralık 2011, 15:15:26
PCtarafı , RS-232 485 çeviricinin Ave B uçları. Muhtemelen çeviricinin içinde yoktur, dışarıdan bağlaman gerekebilir.

hocam benimki 485 değil 422...eski tip slavelerde rs232tors422 cihazlardan 4 uç çıkıyor..çıkan uçları 5-4-3-2 olarak kabul edersek 4 ve 3'ün arasına 120ohmluk direnç atın diyorsunuz doğrumudur....biz eski tip slave cihazlarda böyle bir işlem yapmıyorduk.belirtmek istedim.gerekiyorsa ve diğer eski tip slavleri etkilemezmi?

Klein

farketmez ha 422 ha 485. 422'de hem RX hem de TX uçlarına sonlandırma bağlayacaksın.

Eskiden bağlamıyor olmanızın iki sebebi olabilir.

1- Çeviricinin kendi sonlandırma direnci vardır
2- Hat kısa ve az sayıda cihaz vardır.

canbulut

#14
hocam bu bağlantıyı yaptım.75176nın gönderme tarafını sadece gönderme yaparken lojik 1 yapıp işlemim bittiğinde lojik 0 yapıyorum..hiç haberleşmiyor.