Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MAX485 - w trybie odbioru (stan linii RO z rezystorem terminującym na wejściu)

emk 24 Lut 2016 11:46 477 4
  • #1 24 Lut 2016 11:46
    emk
    Poziom 12  

    Witam,
    Mam problem ze stanem na linii RO transceivera MAX485 po podłączeniu rezystora terminującego.
    Dobrze jest jeżeli MAX485 jest w trybie odbioru (RE oraz DE w stanie niskim) a rezystor pomiędzy liniami nie jest podłączony. Linia RO jest w stanie wysokim - układ czeka na dane na wejściu A-B.
    Problem pojawia się gdy podłączę rezystor terminujący 130 Ohm - linia RO ustawiana jest w stan niski przy oczekiwaniu na dane. Niestety trochę mi to niszczy komunikację, bo MAX485 po odebraniu danych z A-B ustawia linię RO w stan niski, co mikrokontroler interpretuje jako rozpoczęcie nowej transmisji bajtu (0x00).

    Czy takie zachowanie linii RO jest poprawne z rezystorem terminującym? Może układ innej firmy zachowuje się inaczej :?:

    W nocie aplikacyjnej układu MAX485 jest napisane, że układ w trybie Receiving, gdy linie RE\ DE są w stanie L a wejścia A-B są 'Open' wyjście RO jest w stanie H. Jeżeli układ nie ma rezystora terminującego to jest to prawdą, natomiast jeżeli rezystor jest podłączony to wyjście RO przełącza się niestety w L.
    Dodam, że po podłączeniu rezystora 130 Ohm różnica potencjałów na AB to ~2mV (nie +-200mV, które powinny zmieniać stan wyjścia RO).
    Na liniach nie występują rezystory podciągające do VCC i GND. Nie umieściłem ich na płytce, a magistrala RS485 nie będzie długa, więc obecnie chciałbym ich uniknąć – jeżeli oczywiście jest to możliwe.
    Jeżeli ktoś spotkał się z podobnym problemem, to będę wdzięczny za pomoc lub radę :|

    0 4
  • Pomocny post
    #2 24 Lut 2016 11:58
    tmf
    Moderator Mikrokontrolery Projektowanie

    emk napisał:

    Dodam, że po podłączeniu rezystora 130 Ohm różnica potencjałów na AB to ~2mV (nie +-200mV, które powinny zmieniać stan wyjścia RO).
    Na liniach nie występują rezystory podciągające do VCC i GND. Nie umieściłem ich na płytce, a magistrala RS485 nie będzie długa, więc obecnie chciałbym ich uniknąć – jeżeli oczywiście jest to możliwe.
    Jeżeli ktoś spotkał się z podobnym problemem, to będę wdzięczny za pomoc lub radę :|


    To nie problem tylko normalne zachowanie układu. Wobec braku polaryzacji linii A i B, co ma pomiędzy nimi utrzymywać bezpieczną różnicę potencjałów >200 mV. Rezystory polaryzujące A i B są niezbędne niezależnie od długości magistrali RS485. Tylko one w sytuacji, w której nic nie nadaje (i w konsekwencji A i B nie są sterowane) zapewniają ich prawidłową polaryzację.
    Ich brak możliwy jest chyba tylko w jednej sytuacji - dwa tranceivery, z których jeden ma zawsze włączony nadajnik.

    0
  • Pomocny post
    #3 24 Lut 2016 12:08
    BlueDraco
    Specjalista - Mikrokontrolery

    Wiele transceiverów (ale nie wszystkie) zawiera wbudowane rezystory polaryzujące lub inny obwód o podobnym działaniu, ale ogólna zasada jest taka, że należy zewnętrznie wymusić rezystorami stabilny stan nieaktywny na linii RS485.

    0
  • #4 24 Lut 2016 12:09
    emk
    Poziom 12  

    Ok, ale czy można wytłumaczyć jeszcze to, że bez rezystora terminującego na wejściach AB, wyjście RO ustawiane jest w stan wysoki? Wtedy różnica potencjałów na wejściu również nie przekracza 200mV.

    Jeżeli jest to typowe zachowanie to już nie będę kombinował z innymi układami...tylko spolaryzuję te linię rezystorami.

    0
  • #5 24 Lut 2016 12:56
    BlueDraco
    Specjalista - Mikrokontrolery

    Można wytłumaczyć. Wejście zostało przypadkowo spolaryzowane przez jakieś rezystancje pasożytnicze, znacznie większe niż 120R.

    0