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

Jak połączyć MAX485C z FT232RL do sterowania USB-RS485?

lukas_gab 14 Maj 2016 09:48 1053 6
  • #1 15672117
    lukas_gab
    Poziom 15  
    Cześć. Posiadam przejściówkę USB-UART TTL na FT232RL. Dokupiłem MAX485C. Chciałbym połączyć te dwa układy, żeby uzyskać przejściówkę USB-RS485. Mam pytanie, czy liniami DTR oraz RTS mogę stertować MAX485C jako nadajnik/odbiornik przez połączenie:

    RTS-RE
    DTR-DE
    TXD-DI
    RXD-RO

    Z góry dzięki za pomoc ! Jeżeli moje rozumowanie jest błędne, to jak inaczej mogę sterować przejściówką na FT232RL własnie tym modułem MAX485C ?? Finalnie w projekcie chce kupić przejściówkę z automatycznym przełączaniem i separacją galwaniczną, jednak obecnie chciałbym wykorzystać takie połączenie tego co mam, żeby oprogramować protokół.
  • Pomocny post
    #2 15672281
    Eagle
    Poziom 24  
    RE połącz DE, ponieważ są komplementarne, a następnie podłącz pod RTS. Windows i linux wspierają RTS TOGGLE.

    https://msdn.microsoft.com/pl-pl/library/windows/desktop/aa363214(v=vs.85).aspx

    W szczególności :

    Cytat:
    RTS_CONTROL_TOGGLE

    Specifies that the RTS line will be high if bytes are available for transmission. After all buffered bytes have been sent, the RTS line will be low.
  • #3 15676825
    lukas_gab
    Poziom 15  
    Szanowny kolego ! Twoja porada okazała się doskonała ( ale nie widziałem tego z początku gdyż źle podłączyłem MAXy ech...). Transmisja pięknie się odbywa. Mam w zasadzie jeszcze jedno pytanie - skoro flaga RTS po prostu może sterować tym transciverem to dlaczego w zestawie AVT530 na którym się wzorowałem jest sterowanie za pomocą NE555 i stanami Tx Rx ?? Wobec istnienia RTS sądzę, że to jest conajmniej dziwne i albo ja o czymś nie wiem i jest jakiś ciekawy powód zastosowania NE555 lub autor projektu nie wiedział o fladze RTS ??
  • #4 15679000
    lukas_gab
    Poziom 15  
    No nic - widocznie już się nie dowiem ;) @Eagle - dzięki za pomoc, już śmigam na RS485 bez dodatkowych kosztów !
  • Pomocny post
    #5 15679389
    Eagle
    Poziom 24  
    Są dwie metody przełączania nadawanie/odbieranie przy RS485

    Pierwsza polega na przełączeniu na nadawanie, po wykryciu bitu startu, na czas potrzebny do przesłania 8 bitów danych ( gdy nadawane będzie 0xFF, tylko bit startu będzie miał zero ( 8N1)). Z każdym kolejnym bajtem danych 555 restartuje się, pozwalając przesłać dowolną ilość danych. Przy tym sposobie urządzenie, które zakończyło odbierać dane, powinno odczekać co najmniej czas potrzebny na przetransmitowanie jednego bajta na wypadek przesłania jako ostatniego 0x7F ( ostatni bit równy zero - wówczas NE555 zrestartuje się i przełączy w tryb nadawania na czas potrzebny do transmisji 8/9 bitów) . Jeśli odbiornik tego nie zrobi i rozpocznie od razu odpowiadać nastąpi konflikt. Do odmierzania czasu 8/9 bitów typowo stosuje się NE555 z możliwością zmiany R/C dla różnych prędkości.

    Druga metoda polega na wykorzystaniu linii RTS, która wspierana jest przez system. Pisząc aplikację należy ustawić pole fRtsControl w strukturze DCB. Jednak w mojej praktyce spotkałem przejściówki USB/RS232, których sterownik nie obsługiwał sterowania przy pomocy :RTS TOGGLE, tz dało się zmieniać linię RTS przy pomocy : RTS_CONTROL_ENABLE / RTS_CONTROL_DISABLE, jednak przy ustawieniu TOGGLE nie zmieniała się podczas transmisji.
  • #6 15679585
    lukas_gab
    Poziom 15  
    W takim razie temat jest już jasny. Dzięki bardzo.
  • #7 15691355
    lukas_gab
    Poziom 15  
    Jednak nie do końca rozwiązuje to mój problem. Być może ftdi działa faktycznie na ustawianie RTS, ale jak wspomniałeś należy to robić. Nie potrafię ustawić tak RealTerma, żeby dobrze nadawał. Może w ogóle tego nie potrafi ( kontrolować RTS). Niemniej pogooglałem i znalazłem parę wątków.
    http://forum.atnel.pl/topic2240.html
    https://www.elektroda.pl/rtvforum/topic1857994.html#8899737

    po czym spojrzałem do dokumentacji FT232RL. Okazuje sie, że jest tam gotowa przejściówka USB-RS485. Sam posiadam YP-05 (http://www.efu815.com/efor/pic/FT232RLRED/02.jpg). Niestety nie ma oznaczonego CBUS na pinach, ale jest PWREN. Po tym jak sprawdziłem ścieżkami TEN to CBUS2 na chipie. Gdy połączyłem TEN z RE oraz DE, okazuje się, że FTDI sam steruje tymi pinami i działa ( tak jak rekomenduje nota).

    Widać, zatem, że RTS jest dobry w zastosowaniu sftoware, jak tego nie oprogramujesz to nie działa. NE555 dobry, ale należy zmieniać podzespołu z tego co rozumiem, jak zmieniamy parametry transmisji, natomiast PWREN oraz TXDEN są idealne. Przejściówka działa automatycznie w 2 strony half duplex. No ok, to teraz musze prawidłowo obsłużyć zmianę po stronie atmegi - mam tak jeszcze bugi ;)
REKLAMA