[RS-232] Jaki stan na linii RTS?
Masz problem? Zapytaj na forum elektroda.pl
From: voice <po.co_at_nospam_komu.dzis>
Subject: [RS-232] Jaki stan na linii RTS?
Date: Wed, 19 May 2004 20:54:25 +0200
Cześć!
Spotkałem się z dziwną rzeczą...
Mam w domu dwa komputery. Podłączam moje urządzonko do COM'a pierwszego
komputera i wszytstko jest ok. Transmisja działa.
Podłączam do drugiego komputera (identyczna konfiguracja) i transmisja
już nie działa.
Szukam więc błędu... Łączę dwa komputery przewodem (skrzyżowane TXD z
RXD i CTS z RTS, a DTR i DSR zwarte we wtyczce przewodu) i trasmisja jest!
Co do licha?
Pomierzyłem więc poziomy napięć na pinach portów.
W obu komputerach wszystko się zgadza, poza jedną rzeczą - w jednym
(tym, na którym transmisja jest ok) na RTS jest -10V, a w drugim jest
+10V. Jak więc powinno być?
I to chyba tego wina, bo jak zwarłem CTS i RTS to transmisja ruszyła.
Jednak muszę zrobić coś, żeby wszystko działało bez dodatkowych zworek.
Może wiecie jak zmusic port, żeby pracował w takiej konfiguracji jak na
pierwszym komputerze? Aha, pracuję pod linuksem.
Oto jak mam podłączone moje urządzenie:
komp: urządzenie:
TXD ----------- RXD
RXD ----------- TXD
RTS ----------- CTS
CTS ----------- RTS
DTR -+
|
DSR -+
GND ----------- GND
Proszę o rady!
Pozdrawiam,
voice
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.ipartners.pl!not-for-mai
From: "andrzej_wilk" <pisz.do.andrzej_at_nospam_sielanka.gda.pl.com>
Subject: Re: [RS-232] Jaki stan na linii RTS?
Date: Thu, 20 May 2004 08:14:23 +0200
Użytkownik "voice" <po.co_at_nospam_komu.dzis> napisał w wiadomości
news:c8ga3g$mok$1_at_nospam_inews.gazeta.pl...
Cześć!
Spotkałem się z dziwną rzeczą...
Mam w domu dwa komputery. Podłączam moje urządzonko do COM'a pierwszego
komputera i wszytstko jest ok. Transmisja działa.
Podłączam do drugiego komputera (identyczna konfiguracja) i transmisja
już nie działa.
Szukam więc błędu... Łączę dwa komputery przewodem (skrzyżowane TXD z
RXD i CTS z RTS, a DTR i DSR zwarte we wtyczce przewodu) i trasmisja jest!
Co do licha?
Pomierzyłem więc poziomy napięć na pinach portów.
W obu komputerach wszystko się zgadza, poza jedną rzeczą - w jednym
(tym, na którym transmisja jest ok) na RTS jest -10V, a w drugim jest
+10V. Jak więc powinno być?
...
Może wiecie jak zmusic port, żeby pracował w takiej konfiguracji jak na
pierwszym komputerze? Aha, pracuję pod linuksem.
A jaki program uruchamiasz na linuksie - prostego minicom'a, czy jakiś
dedykowany.
Czy te programy ustawiają identycznie hardware flow control ??
Andrzej
========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai
From: "voice" <po.co_at_nospam_komu.dzis>
Subject: Re: [RS-232] Jaki stan na linii RTS?
Date: Fri, 21 May 2004 00:06:49 +0200
A jaki program uruchamiasz na linuksie - prostego minicom'a, czy jakiś
dedykowany.
Czy te programy ustawiają identycznie hardware flow control ??
Odpalam własny soft.
Jeśli wyłączę kontrolę przepływu
options.c_cflag &= ~CRTSCTS;
to transmisja na tym drugim kompie działa (+10V na RTS).
Jeśli natomiast kontrola przepływu jest włączona:
options.c_cflag |= CRTSCTS;
to już mi na tym komputerze nie działa... Ale na tym pierwszym jest ok!
Oto jak konfiguruje port w programie:
#v+
// open port
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
tcflush(fd, TCIOFLUSH);
// set blocking mode
fcntl(fd, F_SETFL, 0);
// get current options and store them in old_options
tcgetattr(fd, &options);
tcgetattr(fd, &old_options);
// set flow rates
cfsetispeed(&options, B57600);
cfsetospeed(&options, B57600);
// enable receiver and set local mode
options.c_cflag |= (CLOCAL | CREAD);
// set no parity
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
// set character size
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
// hardware flow control
options.c_cflag |= CRTSCTS;
// set raw input
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
// set raw output
options.c_oflag &= ~OPOST;
// set new options
tcsetattr(fd, TCSANOW, &options);
#v-
Zatem który UART jest ok? Ten z +10V czy -10V na RTS?
Pozdrawiam,
voice
--
unsigned int gg = 2627828;
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [RS-232] Jaki stan na linii RTS?
Date: Fri, 21 May 2004 02:30:28 +0200
On Fri, 21 May 2004 00:06:49 +0200, voice wrote:
Zatem który UART jest ok? Ten z +10V czy -10V na RTS?
Oba :-)
Linia RTS, Request To Send, teoretycznie ustawia sie w stan aktywny
[+10V, dokladniej +3 do +15V] gdy komputer [DTE] chce wyslac dane.
Urzadzenie z drugiej strony [DCE] potwierdza gotowosc do przyjecia
danych stanem aktywnym na linii CTS [wejsciowa w komputerze].
Komputer powinien byc tak oprogramowany, zeby nie wysylal danych
o ile CTS nie jest w stanie aktywnym.
Ale teraz mamy pelna gale mozliwosci:
a) twoje urzadzenie wymaga +10V na linii RTS, np do zasilania ... albo
nie.
b) komputer nie aktywuje RTS bo zapomniales tego zrobic.
c) komputer deaktywuje, bo nie ma nic do wyslania [cos pod modemy
half duplex]
d) RTS nie ma znaczenia, urzadzonko nie wystawia CTS
e) spalony pin CTS w komputerze i program nie widzi stanu aktywnego.
chociaz ruszenie po zwarciu CTS z RTS sugeruje port jest dobry,
cos z urzadzeniem lub kablem.
A moze wylacz kontrole przeplywu ?
J.
========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai
From: "voice" <po.co_at_nospam_komu.dzis>
Subject: Re: [RS-232] Jaki stan na linii RTS?
Date: Fri, 21 May 2004 13:52:25 +0200
Linia RTS, Request To Send, teoretycznie ustawia sie w stan aktywny
[+10V, dokladniej +3 do +15V] gdy komputer [DTE] chce wyslac dane.
Urzadzenie z drugiej strony [DCE] potwierdza gotowosc do przyjecia
danych stanem aktywnym na linii CTS [wejsciowa w komputerze].
Zgadza się.
Komputer powinien byc tak oprogramowany, zeby nie wysylal danych
o ile CTS nie jest w stanie aktywnym.
Tak, ale to jest zadanie sterownika portu szeregowego. Ja nie mam na to
wpływu.
Ale teraz mamy pelna gale mozliwosci:
a) twoje urzadzenie wymaga +10V na linii RTS, np do zasilania ... albo
nie.
Nie, nie wymaga. "Urządzenie" to moduł bluetooth podczepiony do koputera
przez MAX'a 3232. Moduł ma wyprowadzone TXD, RXD, CTS i RTS -- zakładam
więc, że ma sprzętową kontrolę przepływu.
b) komputer nie aktywuje RTS bo zapomniales tego zrobic.
No właśnie to jest zadanie sterownika. Ja tylko piszę do pliku (portu) a
sterownik powinien zająć się kontrolą przepływu.
Spróbuję pisać do portu non stop i zobaczę na oscyloskopie czy cokolwiek
dzieje się na RTS czy TXD.
A moze wylacz kontrole przeplywu ?
No właśnie kiedy ją wyłączam
options.c_cflag &= ~CRTSCTS;
to wszystko gra...
Nie rozumiem tylko tego, dlaczego na dwóch komputerach w tej samej
konfiguracji port działa inaczej :/
Pozdrawiam,
voice
--
unsigned int gg = 2627828;
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [RS-232] Jaki stan na linii RTS?
Date: Fri, 21 May 2004 19:19:36 +0200
On Fri, 21 May 2004 13:52:25 +0200, voice wrote:
Komputer powinien byc tak oprogramowany, zeby nie wysylal danych
o ile CTS nie jest w stanie aktywnym.
Tak, ale to jest zadanie sterownika portu szeregowego. Ja nie mam na to
wpływu.
Zazwyczaj masz - ty ustawiasz jak sterownik ma dzialac.
b) komputer nie aktywuje RTS bo zapomniales tego zrobic.
No właśnie to jest zadanie sterownika. Ja tylko piszę do pliku (portu) a
sterownik powinien zająć się kontrolą przepływu.
Spróbuję pisać do portu non stop i zobaczę na oscyloskopie czy cokolwiek
dzieje się na RTS czy TXD.
Warte sprawdzenia.
A moze wylacz kontrole przeplywu ?
No właśnie kiedy ją wyłączam
options.c_cflag &= ~CRTSCTS;
to wszystko gra...
Nadal nie wiesz czy problemem jest nieaktywny stan widziany na CTS
i komp nic nie wysyla, czy moze urzadzenie nie wysyla.
Nie rozumiem tylko tego, dlaczego na dwóch komputerach w tej samej
konfiguracji port działa inaczej :/
Tak samo oprogramowane [dysk przekladasz ?] ?
Bo jeszcze sa mozliwe niekompatybilnosci napieciowe - np +2V na jednym
komputerze to stan aktywny, na drugim nieaktywny.
J.
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai