logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Konwerter RS232<->RS485

szoki 23 Maj 2010 16:11 5048 8
  • #1 8109115
    szoki
    Poziom 16  
    Witam
    Robiłem ostatnio konwertera RS232<->RS485 z optoizolacją. Schemat znalazłem na portalu elektroniki praktycznej. Jest on dostępny tutaj Link w rozdziale Projekty.
    Wszystko jest u mnie zrobione dokładnie jak na schemacie z tą różnicą, że nie użyłem mostka prostowniczego (zasilam układ za pomocą 12V DC z zasilacza stabilizowanego) i nie użyłem także układu US2 : NME0505S (kosztowny element, przydatny jedynie przy łączeniu wielu urządzeń, więc połączyłem nóżki 1 z 3 i 2 z 4).
    Problem objawia się w tym, że dioda D2 po załączeniu zasilania cały czas świeci więc zachowuje się tak jakby nadawała. Nie wiem w czym szukać przyczyny. Wymieniałem już układy na nowe lecz bez rezultatu. Może ktoś z Was ma jakiś pomysł gdzie szukać.
    Pozdrawiam
  • #2 8111419
    Maciekqbn
    Poziom 15  
    Usuwając przetwornicę (NME0505S) pozbawiasz układ jednej z jego podstawowej cech - czyli optoizolacji, jednak nie zmienia to faktu, że jako konwerter RS232-RS485 powinien działać.

    Pominięcie mostka (jeśli używasz zasilacza DC) nic nie zmienia, czyli jest OK.

    Podaj jakie napięcia masz na pinach 12 i 13 US1.
  • #3 8111596
    szoki
    Poziom 16  
    Nóżka 12 względem masy: 3,05V
    Nóżka 13 względem masy: 0V
  • #4 8111811
    Maciekqbn
    Poziom 15  
    Na nodze 12 (R1O) powinien być stan wysoki TTL (czyli zmierzona przez Ciebie wartość napięcia mieści się w normie).
    Zauważ jednak, że dioda D1 (LED) sterowana jest tranzystorem T1 (BC557 -PNP). Tranzystor ten "otworzy się" - tzn. wysteruje diodę prądem wystarczającym do jej zaświecenia, gdy napięcie na bazie T1 będzie o ok. 0,7V niższe niż napięcie na emiterze (względem masy).
    Zatem sygnalizacja LED działałaby prawidłowo, gdyby napięcie na nodze 12 US1 miało wyższą wartość (tzn. bliższą 5V). W obecnej sytuacji w stanie "spoczynkowym" (czyli przy stanie wysokim na pin 12 US1) masz zbyt niską wartość napięcia na bazie T1.
    Aby to zmienić, proponowałbym Ci zmniejszyć wartość rezystora R2. Trudno mi powiedzieć jaka wartość będzie optymalna (najlepiej dobierz, zacznij od zmiany z 3k3 na 2k7, jeśli dalej D1 będzie świecić, daj 2k2 lub 2k0, ale tak "na oko" 2k7 powinno wystarczyć). Jak "przedobrzysz" - czyli dasz zbyt małą wartość R2, to wyłączysz diodę na stałe.
    Musisz tak dobrać R2, aby spadek napięcia na nim (przy stanie H na pin 12 US1) był w przybliżeniu równy sumie spadków napięcia na D1 i R1. T1 będzie wówczas "zamknięty" a D1 nie będzie się świecić. Gdy na pin 12 US1 pojawi się stan niski, przez R2 popłynie większy prąd, zwiększy się spadek napięcia na nim i gdy różnica spadków (na R2 względem R1 i D1) przekroczy ok. 0,7V to T1 "otworzy się", D1 zacznie świecić.
  • #5 8111900
    szoki
    Poziom 16  
    Witam
    Małe sprostowanie. Jak napisałem w pierwszym poście świeci dioda D2, a nie D1 jak kolega pisze wyżej.
    Niemniej jednak dziękuję za zainteresowanie tematem i czekam na dalsze podpowiedzi w sprawie świecenia diody D1.
    Pozdrawiam
  • #6 8112272
    Maciekqbn
    Poziom 15  
    Przepraszam - jakoś "krzywo" spojrzałem i byłem przekonany, że chodzi o D1 :)
    Dioda D2 powinna sygnalizować odbiór danych na linii RS485.

    Jeśli po stronie RS485 (czy tutaj raczej RS422, bo układ może pracować w pełnym duplexie) nie masz nic podłączone, to na pinie 2 MAX490 masz stan spoczynkowy TTL, czyli wysoki. Powoduje to wysterowanie transoptora ISO1, przez co jego pin 6 jest "zwarty" do masy (zmierz napięcie na pin 6 ISO1, powinno być gdzieś w granicach 0-0,3V). Dalej sytuacja przedstawia się tak jak opisałem dla D1 - czyli baza T2 jest na niższym potencjale niż jego emiter - różnica jest większa niż ok. 0,7V -> T2 jest otwarty i D2 świeci.

    Zatem - przy układzie nie podłączonym do żadnych urządzeń, w stanie spoczynkowym D2 ma świecić. Odbiór danych sygnalizowany jest jej mruganiem (zmiana stanu na wyjściu odbiornika RS).

    Aby mieć pewność, czy wszystko działa OK, najlepiej zapętlić układ po stronie RS485/422 - na ZI2 zewrzeć odpowiednio 1 (A) z 5 (Y) oraz 2 (/B) z 4 (/Z). Po stronie RS232 podłącz do PC, uruchom jakiś program terminalowy i sprawdź czy na konsole wraca to co nadajesz z klawiatury.
    D1 (sygnalizacja nadawania) i D2 (sygnalizacja odbioru) powinny mrugać w czasie transmisji znaków.
  • #7 8112813
    szoki
    Poziom 16  
    Więc tak.
    Na pinie 6 ISO1 jest napięcie 0,28v więc mieści się w podanym przez Ciebie przedziale.
    Chcąc przetestować konwerter zwarłem piny po stronie RS485, podłączyłem go do port Com w komputerze i niestety dioda od zasilania w tym momencie gaśnie. Jak wyciągnę wtyk DB9 z Com'a to dioda zasilania świeci normalnie wraz z diodą D2. Dodam, że nie wlutowywałem w płytkę gniazda Z11 żeńskiego tylko od razu podłączyłem wtyk żeński na kablu, ale to chyba niema znaczenia, bo piny łączy się tak samo.
  • #8 8118972
    szoki
    Poziom 16  
    Witam
    Chciałbym trochę ruszyć temat.
    Zmierzyłem jeszcze raz napięcie na nóżce 13 (wychodzącej na 3 pin wtyku DB9) układu US1 (max232), wynik jak poprzednio 0V. Natomiast na nóżce 14 (pin 2 wtyku DB9) tego układu jest 8,36V, nie wiem czy taka sytuacja powinna mieć miejsce. Z pozostałych pinów DB9 5 pin jest połączony do masy, a 7 i 8, 6 i 4 połączone jak na schemacie. Czy ktoś może mi coś powiedzieć o napięciu na nóżce 14-tej. To może przez nią następuje zwarcie po podłączeniu do com'a.
    Pozdrawiam, szoki
  • #9 8130381
    Maciekqbn
    Poziom 15  
    Cytat:
    Zmierzyłem jeszcze raz napięcie na nóżce 13 (wychodzącej na 3 pin wtyku DB9) układu US1 (max232), wynik jak poprzednio 0V. Natomiast na nóżce 14 (pin 2 wtyku DB9) tego układu jest 8,36V, nie wiem czy taka sytuacja powinna mieć miejsce.



    Tak być powinno, na pinie 14 masz stan wysoki (wyjście RS232) bo na wejściu sterującym (pin 11) masz stan niski. Driver RS232 logicznie patrząc działa jak negator (stan niski TTL na wejściu to ok. +12V na wyjściu RS, stan wysoki TTL na wejściu to ok. -12V na wyjściu RS). Oczywiście te +/- 12V to wartość teoretyczna, w praktyce (zaleznie od konkretnego drivera rs232) wartość mieści się w zakresie +/- 6-12V.

    Teoretycznie nigdzie tam nie ma prawa zrobić się zwarcie. Podejrzewam, że możesz mieć jakiś błąd w montażu (zwarcie na płytce itp.). Trudno powiedzieć ...
REKLAMA