PIC ile Seri Haberleşen cihaz sorunu

KingpinTR

Üye
Katılım
23 Tem 2007
Mesajlar
16
Puanları
1
Bir ölçüm cihazım var bu cihaz PC'de yazmış olduğum C programında 9600,8,1,None özelliklerine ek RTSenable=True yapıldığı zaman Hex olarak '3101' gönderince size ölçtüğü değeri veriyor.


Şimdi biz buna istinaden bir PIC, Max232 ile haberleşebilen devre yaptık ve bu devreyi PC ve farklı bir RS232 haberleşen cihazlarla da test ettik sorun yok. Ancak bu RTS'yi enable etmekle alakalı herhangibir ayar bulamadığımız için PIC de sadece 9600,8,1,none özelliklerini tanımlaya bildik. Şu anda PIC her şeyle haberleşebilse de bizim ihtiyacımız olan ölçme cihazıyla haberleşemiyor.


Araştırmalarımda RTS için farklı bir BIT ve Com portta takdığımız kabloda da 4'üncü bir uç olaması gerektiği yazıyor. Ancak benim kullandığım 3 uçlu ( 2,3,5 ) kabloyu PC ye bağlıyorum ve C'de yazdığım program ile çatır çatır haberleştiriyorum.


Valla fena halde takıldım kaldım sorun veya eksik ne olabilir? Bilen arkadaşlardan yardım bekliyorum.


Teşekkürler.
 
slm yaptığın devrenin besleme voltajını kontrol et. cihaz bağlantısı yaptığında voltaj düşüyormu 3 uçlu kablon ile pc bağlantında sorun yok demişsin 232 voltaj farkı ile çalışıyor kontrol et bende yaşamıştım kondansatör lerden kaynaklı idi belki sendede aynısıdır. birde devrenin çalıştığını söylemişsin devreni pc ile denediysen yanıla bilirsin devreni başka bir devren ile denemeni tavsiye ederim
 
Merhaba Arci, devrede bir problem olduğunu düşünmüyorum. Sebebini aslında yazdım ancak yenilemekte fayda var. Şöyle ki ben aynı porta başka bir cihaz bağladım ve cihaz dan sorunsuz olarak verileri aldım. Kanımca programsal bir sorun var ama ne?
 
Merhaba
Seri iletişimde RTS'yi ben kullanmadım ve de bilmiyorum ama başka bir forumda profesyonel arkadaşım şöyle yazmış
*********
Ynt: seri iletişim - HANDSHAKING

« Yanıtla #1 : 27 Haziran 2011, 17:19:12 »


Önce DTE ve DCE kavramlarına bir göz atalım. Çünkü 232 iletişiminde tarafları ifade etmek için kullanılır. DTE = Data Terminal equipment , bizim genel kullanımımızda PC ye karşılık gelir. DCE = Data Control equipment bu da kontrol kartımıza , yani mikroişlemcimize denk gelir.

DTR = Data Transmit Ready DTE --> DCE Terminalin veri göndermeye hazır olduğunu bildirir. RS232 485 çeviricide DTE tarafının Transmit enable ucu gibidüşünülebilir.
DSR = Data SetReadt DCE --> DTE Bu da kontrolörün veriyi almaya hazır olduğunu bildirir.
Bunlar kontrol bitleriydi. bunlar donanımsal olarak kontrol edilir.
Aşağıdakiler ise HandShaking pinleridir. Eğer kullanılmaz ise yazılımsal olarak da handshaking yapılabilir.

RTS = Request To Send DTE --> DCE Terminalin kontrolöre veri gönderme isteğini bildirir.
CTS = Clear To Send DCE --> DTE RTS nin karşılığıdır. kontrolör RTS aldığında eğer veri almaya uygunsa CTS pinini 0 yapar. Böylece veri aktarımı başlar. Eğer veri alma sırasında tampon dolarsa CTS yi tekrar 1 yaparak DTE ye müsait olmadığını bildirir.

Yazılımsal handshaking.
Xon ve Xoff karakterleri ile yapılır. Şu ana tam hatırlamıyorum ama decimal 17 ve 19 olmalı. Yanlış hatırlıyor da olabilirim.
DCE veri alırken tampon dolarsa DTE ye XOFF gönderir. DCE veri göndermeyi durdurur. veri işlenip tampon müsait duruma geldiğinde DCE DTE'ye XON gönderir. DTE de kaldığı yerden veriyi göndermeye devam eder.
Yazılımsal handshaking için Full Dublex haberleşme yapılıyor olması gerekir.

Ekleme:
Normalde bütün pinler 1 durumundadır.
DTE veri gönderme isteğinde bulunacağı zaman DTR yi 0 yapar. DCE de haır olduğunu bildirmek için DSR pinini 0 yapar. Null modem diye tabir edilen bağlantıda DTR ve DSR kullanılmaz. Ancak DTE yi kandırmak için kendi DTR ve DSR uçları birbirine bağlanır. Böylece terminal DTR'yi0 yaptığında , uçlar kısadevre olduğu için DSR de 0 olur ve terminal kontrolörün hazır olduğunu zannedr.
Aynı düzen RTS ve CTS için de geçerlidir.


« Son Düzenleme: 27 Haziran 2011, 17:24:58 Gönderen: Klein »
************
Belki bu bilgi işinize yarar.Kolay gelsin.
900MHz Wireless Embedded Systems Programming
SerialPort.RtsEnable Property (System.IO.Ports)
 

Forum istatistikleri

Konular
129,689
Mesajlar
929,033
Kullanıcılar
452,394
Son üye
aliaktas016

Yeni konular

Geri
Üst