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

Jak zwiększyć napięcie sygnału RS-232 do 24V na 60m dla AVR?

merien 11 Paź 2012 20:43 2298 17
REKLAMA
  • #1 11401870
    merien
    Poziom 14  
    Posty: 107
    Pomógł: 6
    Ocena: 10
    Witam,

    zaistniała potrzeba wykonania transmisji szeregowej JEDNOKIERUNKOWEJ między dwoma kontrolerami AVR. Wybór padł na na interfejs szeregowy USART, ze względu na jego prostote obsługi i dużą niezawodność. Problem jednak jest tej natury, że trzeba to przesłać na dość duże odległości ok - 60 m.

    Wiem, że rs-232 nie jest przystosowany do tego celu, jednak ilość danych które wmagane są do przesłania jest śmiesznie mała - paczki po 2, 3 bajty ok 10 razy na sekunde - wystarczy mi nawet najwolniejsza prędkość transmisji.

    Na wyjściu Tx z mikrokontrolera mamy sygnał na poziomie 5 woltów. Zastanawiam się czy przy odległści 60 metrów, sygnał na tym poziomie nie będzie zbyt podatny na zakłucenia. Myślałem o podniesieniu tego sygnału do poziomu 24 V, co powinno zwiększyć odporność sygnału na ewentualnie wyindukowane napięcia w kablu, które na pewno do tego poziomu nawet się nie zbliżą.
    Jak to uzyskać? Zwykły klucz tranzystorowy? a co z drugiej strony? Myślałem o optoizolatorze z bramką schmitta.
    A może wystarczy zastosowanie układu max-232, i przesyłać to "standardowym" rs'em?

    A może wcale to nie jest konieczne i wystarczy 60 metrowy przewód z wyjscia Tx do wejscia Rx ?

    Proszę o pomoc :)
  • REKLAMA
  • #3 11401901
    merien
    Poziom 14  
    Posty: 107
    Pomógł: 6
    Ocena: 10
    Nigdy nie miałem z nim doczynienia. Jak bardzo układ się komplikuje w stosunku do standardowego 232?

    Aaaa i nie dodałem ważnej sprawy - rs232 dlatego, że do transmisji w jedną strone wymaga jest tylko jedna lnia sygnałowa - to jest warunek KONIECZNY
  • #4 11402539
    Urgon
    Poziom 38  
    Posty: 7294
    Pomógł: 197
    Ocena: 2635
    AVE...

    Może tak:
    Jak zwiększyć napięcie sygnału RS-232 do 24V na 60m dla AVR?
    Rezystory policz sobie sam. Gratis masz optoizolację. Transoptor i tranzystor mogą być dowolne...
  • REKLAMA
  • #5 11402589
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    A dlaczego nie RS485 ? Jeśli to transmisja jednokierunkowa to wręcz ideał. Ustaw jeden układ na odbiór drugi na nadawanie i praktycznie to cała filozofia.
  • #6 11408249
    PiRoman2
    Poziom 20  
    Posty: 337
    Pomógł: 22
    Ocena: 15
    Z RS485 będzie chyba najtaniej - układy 75176 można kupić po ok. 1 PLN
  • #7 11412434
    kuba1im
    Poziom 19  
    Posty: 284
    Pomógł: 23
    Ocena: 31
    RS485 chyba autorowi nie podpasuje ze względu iż do przesyłu informacji niezbędne są dwie linie sygnałowe - lub jak kto woli, jedna - dwu przewodowa. Zastosowanie skrętki powinno wyeliminować zakłócenia. Swoją drogą 60m to nie jest jeszcze aż tak dużo. Nie sprawdzałem tego w praktyce, ale myślę, że max232 powinien załatwić sprawę. Jeżeli masz taką możliwość zmontuj na pająku dwa układy połącz 60m kabla i się przekonasz. Jeżeli nie zadziała części możesz wykorzystać w przyszłych projektach, a nie jest to jakiś duży wydatek.
  • #8 11412502
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Ale do RS232 potrzeba 3 przewodów, w przypadku komunikacji w jedną stronę 2. Tak więc bez różnicy, w obu przypadkach (RS232, RS485) potrzebne są dwa przewody.
  • #9 11412594
    kuba1im
    Poziom 19  
    Posty: 284
    Pomógł: 23
    Ocena: 31
    merien napisał:
    (...) wymaga jest tylko jedna lnia sygnałowa - to jest warunek KONIECZNY
    pisałem o tym.
  • #10 11412686
    komatssu
    Poziom 29  
    Posty: 1056
    Pomógł: 98
    Ocena: 166
    Zrób pętlę prądową, a jako odbiornika użyj transoptora.
  • REKLAMA
  • #11 11427071
    _jta_
    Specjalista elektronik
    Posty: 49109
    Pomógł: 3212
    Ocena: 4254
    Głównym źródłem trudności z przesyłaniem przez RS-232 na większe odległości
    jest niedopasowanie do impedancji kabla - kabel może mieć np. 110R, co oznacza
    przy zmianach napięcia o 5V zmiany prądu o 45mA - a RS-232 tyle nie daje.
    Dlatego wskazane jest nie wyższe napięcie, a większy prąd wyjściowy nadajnika
    i ewentualnie terminator przy odbiorniku, żeby uniknąć odbicia sygnału - ale za to
    bez terminatora ten prąd 45mA jest potrzebny tylko do powrotu odbicia.
    Przy odległości 60m czas do powrotu odbitego sygnału to około 0.5us, więc mały.
  • #12 11439485
    mdziewie
    Poziom 19  
    Posty: 312
    Pomógł: 15
    Ocena: 545
    O jakim odbiciu sygnału mówimy przy wspomnianych przez Kolegę prędkościach transmisji i długości kabla 60 m??? Impedancja kabla nie ma tu najmniejszego znaczenia, proszę nie komplikować sprawy.
    Zachowanie możliwie niskiej impedancji ma tylko takie znaczenie, że mniejszy będzie poziom zakłóceń.

    Od siebie mam dwie propozycje:
    1) Nadajnik na MAX232, odbiornik taki sam, a linię (po stronie odbiornika) obciążamy eksperymentalnie dobranym opornikiem, ew. równoległym kondensatorem.

    2) Nadajnik na kilku bramkach TTL/CMOS połączonych równolegle, a na odbiorniku tylko obciążenie:)

    Oczywiście, najlepsza byłaby linia symetryczna, ale z poprzednich ustaleń wynika, że mamy tylko jeden drut i masę, która musi pozostać masą.
  • REKLAMA
  • #13 11440247
    _jta_
    Specjalista elektronik
    Posty: 49109
    Pomógł: 3212
    Ocena: 4254
    Pamiętaj, że zazwyczaj jest niedopasowanie o czynnik kilkadziesiąt
    - masz nie pojedyncze odbicie, a całą serię, przy kablu 60m co 0.4us,
    a seria wystarczająco długa, żeby szybka transmisja nie działała.
    MAX232 jest tu mało użyteczny (bo nie do tego jest przeznaczony),
    o niebo lepsze wyniki można uzyskać stosując zwykły tranzystor...
    A kondensator _równoległy_ do opornika zdecydowanie odradzam -
    i tak kabel ma za dużą pojemność w stosunku do impedancji wyjścia.
    Opornik o wartości równej impedancji przewodu wytłumi odbicia, ale
    sygnał też, na tyle, że bez wzmacniacza (MAX232 się nie nada) nic
    się nie odbierze, o ile nadajnik nie da dużego prądu.
    Bramki CMOS, nawet kilka równolegle, też na nic. Za to były kiedyś
    bramki TTL mocy, wystarczyłaby jedna, żeby wysterować linię.
  • #14 11444840
    mdziewie
    Poziom 19  
    Posty: 312
    Pomógł: 15
    Ocena: 545
    Doceniam rozległą wiedzę i doświadczenie Kolegi, niemniej wypada mi stawić odpór:
    Primo- z tymi "kilkudziesięcioma odbiciami" Kolega przesadził. Czas trwania "0" lub "1" duuużo dłuższy od czasu propagacji sygnału, układ jest nieliniowy itd. Sygnał na wejściu będzie miał tylko jeden mały schodek, a na wyjściu w ogóle nie będzie miał schodka. Widzę to oczyma duszy mojej.
    Secundo - wiem, że kondensator na końcu druta jest chamski - ale dalej twierdzę, że nie budujemy linii dopasowanej. Jeśli zaś mówimy o chwilowym przeciążeniu nadajnika, to zgadzam się dać szeregowy opornik:)
    Tertio - Na Max232 nie zrobimy linii dopasowanej (10 mA prądu zwarciowego);toż i nie mam zamiaru - natomiast co do regeneracji stłumionego sygnału, proszę zajrzeć w specyfikację.

    Poza tym mam wrażenie, że zaczynamy się kłócić, zamiast pomóc Koledze, który zadał pytanie.

    P.S. Myślę, że dobrze sprawdzić się może się pętla prądowa z MIDI.


    Pozdrawiam:)
  • #15 11444995
    _jta_
    Specjalista elektronik
    Posty: 49109
    Pomógł: 3212
    Ocena: 4254
    Kolega widzi oczami duszy, a ja to widziałem na oscyloskopie, i to wyglądało zupełnie inaczej... ;)
    Można jako tłumik przy odbiorniku szeregowe połączenie kondensatora 2n2 i opornika 120R.
    A przy nadajniku można by włączyć wtórnik na parze komplementarnej, opornik 100R szeregowo.
    Jakkolwiek pętla prądowa z transoptorem jest lepsza, bo daje separację galwaniczną - bez tego
    dwa przewody (sygnał i masa) to nie jedna, a dwie linie, w których powstają stany nieustalone.
    No i nigdy nie ma gwarancji, że pomiędzy masami nie będzie napięcia kilkunastu V...
    Żadne łączenie równoległe, bo opornik zeżre ponad 40mA przy 5V, kondensator tylko zwiększy
    pojemność linii i wydłuży czas trwania stanów nieustalonych. Robiłem próby z liniami od dziesiątek
    m do ćwierć km i "trochę" się orientuję, co się tam dzieje, bo pooglądałem to na oscyloskopie.
  • Pomocny post
    #16 11445017
    kulmar
    Poziom 33  
    Posty: 1941
    Pomógł: 184
    Ocena: 382
    merien napisał:


    A może wystarczy zastosowanie układu max-232, i przesyłać to "standardowym" rs'em?



    Prawdopodobnie wystarczy. Sam używałem kabla w ekranie do transmisji na ok. 25m. Wybierz niezbyt duże tempo transmisji (np. 9600) i zastosuj kabel w ekranie. Układy max-232 po stronie nadawczej i odbiorczej zapewnią większy odstęp od zakłóceń.
  • #17 11445140
    _jta_
    Specjalista elektronik
    Posty: 49109
    Pomógł: 3212
    Ocena: 4254
    Proponuję zmodyfikować układ Urgon-a: R1=120R do masy, Q1=PNP i emiter do '+5V',
    R2=100R, R3 pewnie z 5k... Ale to by oznaczało ze 35mA przez transoptor, a to może
    być dla niego za dużo, więc R2 taki, żeby prąd transoptora był sensowny (np. 330R),
    a równolegle do tego R2' taki, żeby R2||R2'=100-110R, czyli np. R2'=150R (albo 160R)
    przy odbiorniku między przewodami linii. Na pewno będzie dużo lepsze od MAX232.
    Oczywiście baza tranzystora do wyjścia RS-a przez jakiś opornik, np. z 10k.
    W stanie wyłączenia jest pełne tłumienie przy nadajniku, z R2' spore przy odbiorniku;
    w stanie włączenia jest pełne tłumienie przy odbiorniku. Można pokombinować, żeby
    mieć spore tłumienie po każdej stronie w każdym stanie, ale to wymaga opornika R1'
    szeregowo z linią przy nadajniku, R1+R1'=120, im mniejszy R1 tym lepiej, ale kosztem
    większego prądu tranzystora i przez to większego zużycia energii, oraz mniejszego
    prądu i napięcia w linii, przez co R2 musiałby być mniejszy, R2' większy... ostatecznie
    mogłoby być coś w stylu R1=62R, R1'=56R, R2=R2'=220R, ale chyba nie warto.
  • #18 14675418
    merien
    Poziom 14  
    Posty: 107
    Pomógł: 6
    Ocena: 10
    max232 - transmisja napięciem 15 V załatwiła tę sprawę.

Podsumowanie tematu

✨ W dyskusji poruszono problem transmisji szeregowej jednokierunkowej między kontrolerami AVR na odległość 60 m z wykorzystaniem interfejsu RS-232. Użytkownik zastanawiał się nad podniesieniem napięcia sygnału do 24 V, aby zwiększyć odporność na zakłócenia. Uczestnicy sugerowali alternatywy, takie jak RS-422 i RS-485, które lepiej nadają się do dłuższych odległości, jednak podkreślono, że RS-232 może być wystarczające przy niskiej prędkości transmisji. Proponowano użycie układów MAX232 oraz transoptorów dla zapewnienia izolacji galwanicznej. Wskazano również na znaczenie doboru odpowiednich rezystorów i kondensatorów w celu minimalizacji odbić sygnału.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA