uart sorunu

KUMRU3458

Üye
Katılım
17 Mar 2012
Mesajlar
8
Puanları
1
merhabalar...
bu aralar pic basic ile haberlesme uzerine calisiyorum..fakat takildigim bazi noktalar var..yapmak istedigim birinci 16f628 de olan butonlarla repeter tarzi bir calisma yaparak son 628de olan ledleri istedigim gibi yakmak... fakat olmuyor... birinci devre gonderiyor .birinci repeter devreside alip gonderiyor. fakat alicida bulunan devre islem yapmiyor..alma kisiminda programsal sorun var sanirim..
simdiden tesekurler....
 
rs485 ile alakalı bir araştırma yap bakalım. mikroBasic derleyicisinin hazır kodları vardı yanılmıyorsam oraları bi incele. Hadi kolay gelsin.
 
merhabalar...
onlara baktim genel olarak kabaca inceledim....yapmAK ISTEDIGIM ayni bilgiyi ayni olan devrelerle tekrarlatarak son olan alici devrelere ulastirmaktir...programda biraz sorun vardi onlari giderdim ...simdi bazen istedigim gibi calisiyor ama bazen repeterlardan sorun cikiyor bilgi aliciya ulasmiyor....ve kulandigim hazir modulerde sorun oluyor isiniyorlar...simdi onunla ugrasiyorum...
selamlar....
 
Merhaba
"istedigim gibi calisiyor ama bazen repeterlardan sorun cikiyor bilgi aliciya ulasmiyor....ve kulandigim hazir modulerde sorun oluyor isiniyorlar...simdi onunla ugrasiyorum...
selamlar.... "
PIC çalışmalarında ısınmaya yer yoktur.Şemanızı paylaşabilirseniz yardımcı olacak arkadaşlar olur.Kolay gelsin.
 
"birinci" ve "son" 628 dediğinize göre 2 den fazla mı pic var? Öncelikle direk birebir bağlamayı deneyin hocam.. Arada rs485 vs bulunmasın direk TX->RX bağlantısı olsun.. Şaseleri de birleştirin..

Yazılımda da FF baytı yollamayı deneyin veriden önce.. Eğer hatta parazit varsa verinin doğru iletilmesi için yardımcı olur..

Bir 2 pic de hemen hemen aynı voltta çalışıyor olmalı.. Ledliyi 5 voltla butonluyu 4 voltla beslerseniz direk bağlantıda uarttan sağlıklı veri iletemezsiniz bildiğim kadarıyla..

Devre hakkında biraz daha detay verirseniz daha fazla yardımcı olabiliriz..
 
DsPic30F Serisinin bir çoğunda iki adet Uart modülü var. Ayrıca bunlardan başka birde Canbus var. Buna benzer bir devreyi yaklaşık 3-4 yıl önce bir güvenlik sisteminde kullandım. Bu sistemde 16F628a Kullarak çözmüştüm. Dediğiniz gibi repeater vede slave olarak çalışıyordu. Çokta maliyet çıkmadı. 20 kmlik bir alanda güvenlik sağlamak amacıyla kurulmuştu. Şimdi yazılımın mantığını ben şu şekilde kurmuştum. Birincisi iki adet porta ihtiyaç var.. Peki bu nasıl olacak ? Biri Picin Normal Uart modülü diğeri ise yazılımla oluşturulmuş bir haberleşme portuydu. Bu portlardan her hangi birine giriş yapıldığı sürece yani A ve B portu olmak üzere iki portumuz olsun. B'ye data girdisi olduğu zaman A'dan çıkış, A portundan girdi olduğu zaman B portundan çıkış yaparak tekrarlama işlemi bitmiş oldu. Her ünite(slave) dinleme modunda bekliyor ve bir master tarafından kontrol edilebiliyordu hepsi. kendime özgü bir protokol geliştirdim. Çünkü yaklaşık olarak 170 cihaza veri gönderiyor ve teyid etme gibi bir takım işlemleri hızlı yaptırmam gerekiyordu. CRC Gibi işlemlerle verinin iletiminin sağlamasını yapıyordum. Sizin yapmak istediğinizde sanırım böyle bişey. Yani dediğim gibi bu size bir fikir verebilmiştir umarım.
 
Repeater terimini yeni öğreniyorum.. Kusuruma bakmayın.. =)

Dediklerimin yanında hata ayıklamak için ek veri kullandıysanız doğrulama fonksiyonunuzu da kontrol edebilirsiniz,, belki oradadır sorununuz.. Bir diğeri de eminim kontrol etmişsinizdir ama baudratelerin ve kristallerin aynı olduğuna emin olur..

Bu arada iletim tek yönlüyse tek 628 de yeterli olur kanımca..
 
data her halukarda karsı tarafa ulasır,yanlız burda dıkkat etmen gereken nokta alma ve verme arasındakı boslugu guzel ayarlamak,bir cihaz daha üzerindeki datayı göndermeden yeni data gelirse arada kayıplar olabilir.kayıpları en aza indirmek icin interrup kullanarak datayı alıp vermende fayda var.
bir diger konu ise bu tarzda birden fazla cihazı birbiri ile haberlestirmek icin rs485 kullanman daha mantıklı.veri yoluna datayı koyarsın ve id nosu tutan cihaz kendine alır,veri yolunun bosaldıgını gördügü andada istedigin datayı geri gönderir.
 
İletimdeki diğer bir problem ise uart tamponunun dolması ile haberleşmenin kapanmasıdır. Eğer tampon dolar ise verileri okumak ve haberleşmeyi yenilemek gerekir. Mesela 3 baytlık veri aldın diyelim ve bunları okumadın haberleşme kesilir. Sürekli olarak kontrol etmen gerek..
 
merhabalar....
suanlık sanırım sorunu cozdum gıbı gorunuyor ..programda bulunan RCIE ve GIE durumlarının aktıf ve oasıf etmek ıle cozuldu gıbı..bılgı alınca RCIE pasıf yapıyorum alınan bılgı ıslendıkten sonra gonderme ısınıde yaptırdıktan sonra RCIE aktıf duruma getırıyorum..bunu her durum yapıldıgında tekrarlıyorum... sımdılık sorun gozukmuyorum..
selamlar...
 

Forum istatistikleri

Konular
127,965
Mesajlar
913,961
Kullanıcılar
449,611
Son üye
ramazansanli@

Yeni konular

Geri
Üst