-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net
.pl!not-for-mail
From: TM <t...@e...pl_I_HATE_SPAM>
Newsgroups: pl.misc.elektronika
Subject: RS232, zmiana poziomów napięć
Date: Thu, 01 Apr 2010 19:27:08 +0200
Organization: Dialog Net
Lines: 80
Message-ID: <hp2l19$f4$1@news.dialog.net.pl>
NNTP-Posting-Host: dynamic-78-8-142-135.ssp.dialog.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.dialog.net.pl 1270142825 484 78.8.142.135 (1 Apr 2010 17:27:05 GMT)
X-Complaints-To: a...@d...net.pl
NNTP-Posting-Date: Thu, 1 Apr 2010 17:27:05 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl-PL; rv:1.9.1.8)
Gecko/20100227 Lightning/1.0b1 Thunderbird/3.0.3
Xref: news-archive.icm.edu.pl pl.misc.elektronika:585832
[ ukryj nagłówki ]Witam,
Problem mój dotyczy przemysłowego monitora dotykowego z interfejsem
RS232. Monitor ten przy dotknięciu powłoki dotykowej wysyła przez RS232
ciąg bajtów. Komunikuje się on bez problemów z komputerem PC
posiadającym fizyczny port RS232 (wysyłane bajty są odbierane z portu
RS232 PC np. przy pomocy HyperTerminala), natomiast nie chce
współpracować z innymi urządzeniami, tj.:
- sterownikiem Beckhoff CX9001 z modułem CX9000-N030 z dwoma portami
RS232 (na współpracy monitora z tym urządzeniem najbardziej mi zależy),
- komputerem PC przez konwertery RS232<->RS485 ADAM 4520 (testowałem
konfigurację: monitor [RS232] -> ADAM1 <-[RS485]-> ADAM2 -> PC[RS232], w
której monitor nie komunikował się z PC - aby wykluczyć problemy z
konwerterami, podłączyłem w miejsce monitora drugi port RS232 PC,
komunikacja między portami - przesyłanie znaków przez HyperTerminal -
działała poprawnie).
Wykluczyłem możliwość uszkodzenia portów RS232 w/w urządzeń (te w module
CX900-N030 były testowane z czytnikiem kodów kreskowych, także
komunikacja między komputerem PC a sterownikiem Beckhoffa, przy
połączeniu kablem nullmodem działała poprawnie - przez HyperTerminal
były odbierane/wysyłane znaki). Także parametry transmisji były we
wszystkich opisanych przypadkach identyczne (9600 b/s, 8 bitów danych, 1
bit stopu, brak sterowania przepływem - zgodnie z instrukcją monitora).
W związku z powyższym, nie doszukując się żadnych programowych przyczyn
problemów, postanowiłem zbadać poziomy napięć generowane przez interfejs
RS232 monitora w trakcie przesyłania danych.
Poniżej zamieszczam link do oscylogramu napięcia na pinie Tx interfejsu
RS232 monitora w trakcie transmisji (dotknięcia powłoki dotykowej).
Napięcie logicznej "1": -7V, logicznego "0": 6.8V, więc niby mieszczą
się w specyfikacji RS232.
http://kni.prz.edu.pl/~tom/rs232/monitor_levels.jpg
Dla porównania zbadałem napięcie na nóżce Tx portu RS232 PC (z którym
wspomniany powyżej sterownik Beckhoffa bez problemów komunikuje się) w
trakcie transmisji znaków - napięcie logicznej "1": -10.8V, logicznego
"0": 11.4V.
Jest to o 3.8V mniej dla logicznej "1" i o 4.6V więcej dla logicznego
"0" niż w monitorze!
http://kni.prz.edu.pl/~tom/rs232/pc_levels.jpg
Na podstawie tych testów doszedłem do wniosku, iż powodem kłopotów może
być brak tolerancji RS232 w CX9001-N030 oraz w konwerterze ADAM na
niższe (chociaż mieszczące się w specyfikacji RS232) poziomy napięć.
Postanowiłem zatem dopasować poziomy napięć generowanych przez RS232
monitora do górnych granic określonych w standardzie RS232, gdyż .
Moim pierwszym pomysłem było użycie układu MAX232A:
monitor [RS232] -> MAX232A [RS232->TTL->RS232] -> PC [RS232].
W tym celu podłączyłem sygnał z pinu Tx monitora do pinu R1_IN MAX232,
zmostkowałem piny R1_OUT i T1_IN, wyjście na pinie T1_OUT.
Napięcie logicznej "1" zostało w takim układzie obniżone do -15.6V,
natomiast problem pojawił się z napieciem logicznego "0" - przy
rozpoczęciu nadawania "0", występuje krótka "szpilka" napięcia 14V, po
czym napięcie spada do poziomu -2V, a monitor nadal nie współpracuje z
"problematycznymi" urządzeniami :-( MAX232A jest wyposażony, zgodnie z
datasheetem, w kondensatory 0.1uF (tantalowe), zasilany 5V.
Poniżej zamieszczam oscylogram napięcia na nóżce T1_OUT w trakcie
transmisji z monitora.
http://kni.prz.edu.pl/~tom/rs232/max232_monitor_leve
ls.jpg
Chciałbym zatem zapytać, w jaki sposób dokonać w opisanej sytuacji
zmiany poziomów napięć generowanych przez interfejs RS232 monitora (bez
ingerencji wewnątrz monitora - raczej w postaci układu pośredniczącego
między monitorem a urządzeniem "klientem"), aby mieściły się w górnej
granicy specyfikacji RS232?
Czy jest to w ogóle możliwe do osiągnięcia?
Czy powinienem dodać coś do opisanego MAX232A/zmienić parametry
kondensatorów, aby generowane dla logicznego "0" napięcie znajdowało się
na poziomie początkowej "szpilki"?
Może należałoby zastosować jakiś inny układ (jaki)?
Z góry dziękuję za wszelkie odpowiedzi i pozdrawiam,
--
Tomek
Następne wpisy z tego wątku
- 01.04.10 18:13 entroper
- 01.04.10 18:56 TM
- 01.04.10 19:10 Mario
- 01.04.10 20:15 TM
- 01.04.10 20:48 TM
- 01.04.10 21:06 entroper
- 01.04.10 21:14 Mario
- 01.04.10 21:39 Konop
Najnowsze wątki z tej grupy
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
Najnowsze wątki
- 2025-02-01 "Nie kupujcie samochodów elektrycznych
- 2025-02-01 jakie małe auto duże w środku :-)
- 2025-02-01 Re: pytanie do oponiarzy lub szybkojeżdzących (opony Hankook Ventus Prime, S1 Evo, alternatywy)
- 2025-02-01 T-1000 was here
- 2025-02-01 Warszawa => DevOps Engineer <=
- 2025-02-01 Katowice => Administrator IT - Operating Systems and Virtualization <=
- 2025-02-01 Warszawa => Spedytor międzynarodowy <=
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=