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

RS485 - pytanie odnośnie podłączenia kolejnych urządzeń.

elstronik 18 Mar 2011 14:13 1688 4
  • #1 9291415
    elstronik
    Poziom 10  
    Witam,
    wykonałem sobie 3 płytki jak na rys. poniżej:
    RS485 - pytanie odnośnie podłączenia kolejnych urządzeń.
    Podświetlone zostały linie A,B. Prawe gniazdo RJ45 to wejście syg., lewe - wyjście na dalsze urządzenia. Po lewej stronie znajduje się również układ MAX485CSA+.

    Niestety pomimo różnych kombinacji z terminatorami (na początku i końcu lini), często mam bardzo duże błędy w transmisji. Zastosowałem układy Maxim'a.
    Nawet bardzo prosta transmisja z jednego nadajnika do dwóch odbiorników opatrzona jest bardzo dużymi błędami + syf, nie wiadomo skąd. Do połączenia używam skrętki nieekranowanej.

    Zastanawiam się czy takie położenie ścieżek czasem tego nie powoduje?
    Zawsze się spotykałem, że urządzenia są podłączane do głównej lini danych za pomocą krótkiego przewodu, a u mnie są one wpięte 'bezpośrednio' pomiędzy AB.
  • #2 9292260
    Krauser
    Poziom 26  
    Warto w jednym z urządzeń wstępnie spolaryzować linie A i B podciągając je odpowiednio do +VCC i GND przy pomocy rezystorów 150 - 680 ohm.
  • #3 9292386
    elstronik
    Poziom 10  
    To również wykonałem, tylko zapotniałem o tym napisać.
  • #4 9293579
    markosik20
    Poziom 33  
    Może problem nie jest sprzętowy?
  • #5 9306028
    percol
    Poziom 12  
    Markosik20 może mieć rację.
    Częstym błędem jest niewłaściwe ustawienie dzielnika USARTu Atmegi (błąd zaokrąglenia, szczególnie ważny dla szybkich transmisji lub niskiej częstości użytego kwarcu - nawet w manualach są gorsze propozycje niż optymalne rozwiązanie, warto sprawdzić ręcznie dla sąsiednich wartości dzielnika, tzn. dla X będą to x-1 oraz x+1). Zakładam, że używasz kwarcu a nie wbudowanego generatora RC. ;-)

    Osobiście używam zwykłego kabla ethernetowego (nieekranowany) do transmisji - bez problemu (obowiązkowe terminatory, polaryzacja niepotrzebna). A środowisko mam nieprzychylne (dzielnica przemysłowa, a w pomieszczeniach różna aparatura generująca całe spektrum zakłóceń, szczęśliwie niezbyt dolegliwych;).
    Proponuję odłączyć wszystkie urządzenia od linii prócz PC, a najlepiej wziąć jeden krótki przewód: płytka---PC + terminatory i zobaczyć "co słychać na linii" (oscyloskop). Jak będą śmieci to:
    * kiepskie napięcie zasilające uC/MAXa (śmieci trudne do odfiltrowania, może trzeba dać np. dławik? jeśli sterujesz silnikami krokowymi czy innymi indukcyjnościami możesz mieć szpilki na zasilaniu - poszukaj rozwiązań na forum)
    * brak kondensatora filtrującego Vcc blisko nóżki MAXa albo Atmegi (0.1 uF np. ceramiczny czy foliowy)
    * masz duże skoki poboru prądu zasilającego układ, tj. przeciążasz zasilanie - zwiększ trafo, kondensatory filtrujące, a jeśli masz długie linie zasilające (więcej niż ok. 10 cm od najbliższego elektrolitu) to daj po dodatkowym elektrolicie przy zasilaniu danego układu.
    * ścieżki sygnałowe TTL idące do MAXa (nie widać ich na rys.) nie powinny biec w pobliżu innych takich ścieżek, trafa, kwarcu itp. źródeł potencjalnych zakłóceń! Nie powinny też być zbyt długie, a jeśli już muszą a otoczenie generuje "to i owo" to dociąż je nieco rezystorem (np. 1k) do masy - słabe zakłócenia powinno to wyeliminować (wtedy oba układy "pracują bardziej" prądowo).
    * Nie puszczaj ścieżek sygnałowych pod kwarcem, dogodnie jest przeznaczyć jedną z warstw na masę
    * pod scieżkami sygnałowymi TTL (w ostateczności) też możesz puścić masę ale to nie jest konieczne, jeśli linie mają tylko kilka cm

    OK, masz nad czym myśleć. ;-)

    To tyle co mi przychodzi do łepetyny na szybkiego...
    Powodzenia!
REKLAMA