RS232 ye veri gönderirken DTR a karşılık hangi pin?

Başlatan waldayer, 24 Ocak 2010, 18:09:28

waldayer

Arkadaşlar Konu başlığından çok derdimi anlatamadım aslında. Şimdi şöyle anlatayım bilgisayarla seri haberleşme yapıyorum. C# da DTR aktif olunca yani Veri terminali jazır olunca işletilecek bir fonksiyon var C# tarafında. ama PIC tarafında ayarlara bakarken CD(Data Carrier Detecet) i Bilgisayarın DTR'ına bağlamam lazım.
mesela kodu yazayım
#use rs232 (xmit=PIN_A2, rcv=PIN_A3)


gibi TXD ve RXD portlarını ayarlayabiliyoruz. ama bu CD pinini nasıl ayarlayacaz. öyle bir durum yoksa Bilgisayar tarafındaki DTR ı nasıl aktif edecez. Teşekkürler.

BenC

Hangi mcu yu kullanıyorsunuz bilmiyorum ama Kullandığınız MCU nun full duplex rs232 si yoksa bunu siz kendiniz yapıyorsunuz. Yani herhangi bir pini DTR,RTS,CTS,DSR,CD vs ayarlıyorsunuz. Full donanım rs232 olan mcu larda handshake olayını donanım olarak kendisi yaparken diğerlerinde ( olmayanlarda)  manual olarak siz yapmak zorundasınız.  

Diyelim ki PC ile haberleşeceksiniz ve HandShake( El Sıkışma) olarak RTS/CTS (donanım) olarak seçmişseniz RTS ve CTS pinlerini siz  işlemden geçireceksiniz. RTS olarak atadığınız pini yükseğe çekip karşıya "Gönderme isteğinizi" bildireceksiniz o da müsaitse size CTS pini üzerinden hazırım diyecek ve verinizi göndereceksiniz.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

debi

Amacınız yazılımsal flow kontrol yapmak değil de, bu sorunu çözmekse eğer;
Donanımsal olarak sorunu çözebilirsiniz. Slave tarafından DSR-DTR ikilisini kısa devre ediniz. Aynı şeyi ihtiyaç olması durumunda RTS-CTS için de kullanabilirsiniz..

Yok ben yazılımsal flow kontrol yapacağım derseniz;
Herhangi iki pini kullanarak bu işlemi yapabilirsiniz. Derleyici size bu kontroller için benim bildiğim herhangi bir opsiyon tanımıyor.

BenC

Ayrıca DCE ve DTE diye google dan bir arat orda detaylı RS232 haberleşme mantığı ile ilgili çok şey bulacaksınız.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

z

Alıntı YapFull donanım rs232 olan mcu larda handshake olayını donanım olarak kendisi yaparken diğerlerinde ( olmayanlarda) manual olarak siz yapmak zorundasınız.

Donanım Handshake işlemine karışmaz. Hepsi yazılımla yapılır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

BenC

Alıntı yapılan: "bunalmis"
Alıntı YapFull donanım rs232 olan mcu larda handshake olayını donanım olarak kendisi yaparken diğerlerinde ( olmayanlarda) manual olarak siz yapmak zorundasınız.

Donanım Handshake işlemine karışmaz. Hepsi yazılımla yapılır.

Haklısınız üstad orayı yanlış anlatmışım. MCU deyince sadece PIC geliyor insanın aklına. Mesela LPC2148 in Full duplex UART'ı var orda bütün donanım pinleri ayrı ayrı belirtilmiştir. CD sinden tutunda RI sine kadar.

Eğer el sıkışmayı XON/XOFF yaparsanız yazılımla halledersiniz. Yok RTS/CTS seçerseniz mcu nuz desteklemiyorsa yine yazılımla halledersiniz. Ama LPC2148 de bunu otamatik olarak yaptırabiliyorsunuz.   Ve bunu da modem kontrol registeri vasıtasıyla yapabiliyorsunuz.  Yani el sıkışmayı donanım kullanarak halledebiliyorsunuz.

Sonuçta hepsini yazılımla hallediyorsunuz.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

z

PC lerdeki 8250 oldukca yetenekli bir UART çipi ve modem pinleri tamanen software denetiminde. LPC2148 istisna olmuş.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

BenC

@bunalmış hocam ortada bir yanlış anlaşılma var. Ben Yazılım denetiminde değil demedim. Sonucta LPC de olsa, PCde de olsa, PIC te olsa bütün hepsi yazılım denetiminde. :)
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

BenC

Bu arada hocam gördüğüm kadarıyla DELPHI ile alakanız  var. Yeri değil ama sorayım Delphi de ki bir projenin install paketini hazırlamak için ne yapmam lazım.  Install Shield demeyin çok karmaşık geldi bana. Başka bir secenek var mı?
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

z

Kafami karistirdin simdi.

Alıntı YapAma LPC2148 de bunu otamatik olarak yaptırabiliyorsunuz. Ve bunu da modem kontrol registeri vasıtasıyla yapabiliyorsunuz. Yani el sıkışmayı donanım kullanarak halledebiliyorsunuz.

Handshake sinyalleri siradan bir portun pinleri gibi yazilimla set ve reset edilebilir pin sinyalleri.

Sadece input sinyallerindeki degisim, bu pine ait flagi set ediyor. Siz o an input pindeki 010 yada 101 degisimi yakalayamazsaniz bile flag size bunu soyluyor.

Hepsi bu kadar.

Bu durumda LPC2148 de bunu mu yapiyor?

Delphi ile ilgileniyorum, kurulumlari zamaninda install shield ile yapiyordum. Artik kurulumsuz program yaziyorum ve Delphi konusunda iyi değilim, sorularim oldukca Delphi basliginda soruyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

BenC

LPC2148 de gördüğüm bunu otamatik yapıyor olması. Modem kontrol registerin de auto RTS (RTSen biti ) veya auto CTS (CTSen biti) set edildiği zaman flow kontrolü kendisi yapıyor. Sizin dediğiniz gibi bu bitleri sonuçta yine yazılımla set  yapıyoruz.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!