RTV forum PL | NewsGroups PL

Jak zrealizować automatyczne nadawanie w RS-485 dla dwóch urządzeń bez dodatkowych linii?

RS-485 ale automatycznie dwukierunkowy

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zrealizować automatyczne nadawanie w RS-485 dla dwóch urządzeń bez dodatkowych linii?

Arnold Ziffel
Guest

Wed Dec 03, 2025 11:02 pm   



Chc spi dwa urzdzenia przez RS-485 (jedno bdzie moje, drugie to
bdzie przystawka / konwerter do PC, i soft do kontroli na PC).

RS-485 moe by dwukierunkowy (czyli obie strony mog nadawa), ale tam
jest z tego co widz half-dupleks (czyli tylko jedna strona moe nadawa
w jednym czasie). Czyli musz przecza nadawanie / odbiór.

Czy da si zrealizowa to w taki sposób, eby obie strony mogy nadawa
(nie w tym samym czasie, czyli nadal half-dupleks) bez dodatkowego
przeczania? Obie odbierayby to, co jest na linii (czyli byoby echo
lokalne).

Chciabym, eby to byo jak najprostsze. Z MCU sobie wysteruj tak jak
chc, ale z PC musiabym wyprowadza dodatkowe linie sterujce (chciabym
uy gotowego konwertera na FT232 + scalaka do zrobienia z tego RS-485),
oprogramowywa to. Zrobi to, jeli trzeba, ale jeli mog nie robi, to
wolabym nie robi.

Pomysy, idee?

--
ysi maj lepiej chodzony procesor.

Mirek
Guest

Wed Dec 03, 2025 11:45 pm   



W dniu 3.12.2025 o 22:02, Arnold Ziffel pisze:

Quote:
Czy da się zrealizować to w taki sposób, żeby obie strony mogły nadawać
(nie w tym samym czasie, czyli nadal half-dupleks) bez dodatkowego
przełączania?

Bez przełączania się nie da, jak chcesz nadawać to sterujesz linią, jak
chcesz odbierać to nie możesz nią sterować. To się robi bardzo prosto,
np. w układzie MAX485 dajesz jedynkę na DE i !RE i dane na DI, po czym
dajesz zero na DE i !RE i jesteś przełączony na odbiór.
Jak chcesz słyszeć z powrotem co nadajesz to trzymasz zero na !RE cały
czas, ale jedynki na DE się nie da trzymać, bo druga strona nie nada.
Przystawka do PC sama to robi (chyba sygnałami DTR CTS) - w każdym razie
programy i biblioteki to obsługują same - nawet nie wiesz kiedy. Jak nie
może nadawać bo akurat odbiera to zbuforuje i za chwilę masz wszystko.

--
Mirek

J.F
Guest

Thu Dec 04, 2025 5:00 am   



On Wed, 3 Dec 2025 22:45:31 +0100, Mirek wrote:
Quote:
W dniu 3.12.2025 o 22:02, Arnold Ziffel pisze:
Czy da się zrealizować to w taki sposób, żeby obie strony mogły nadawać
(nie w tym samym czasie, czyli nadal half-dupleks) bez dodatkowego
przełączania?

Bez przełączania się nie da, jak chcesz nadawać to sterujesz linią, jak
chcesz odbierać to nie możesz nią sterować. To się robi bardzo prosto,
np. w układzie MAX485 dajesz jedynkę na DE i !RE i dane na DI, po czym
dajesz zero na DE i !RE i jesteś przełączony na odbiór.
Jak chcesz słyszeć z powrotem co nadajesz to trzymasz zero na !RE cały
czas, ale jedynki na DE się nie da trzymać, bo druga strona nie nada.

Dwa Maxy i dwie pary drutów - po jednej w każdą stronę :-)

Quote:
Przystawka do PC sama to robi (chyba sygnałami DTR CTS) - w każdym razie
programy i biblioteki to obsługują same - nawet nie wiesz kiedy. Jak nie
może nadawać bo akurat odbiera to zbuforuje i za chwilę masz wszystko.

O ile pamiętam, to problemem w pecetach był brak sygnału, kiedy UART
zakończył nadawanie - a bufor był powiekszany w kolejnych wersjach.

Przy znanej prędkości nadawania można dorobić automatyczny przełącznik
- timer wyzwalany bitami danych.

J.

heby
Guest

Thu Dec 04, 2025 9:38 am   



On 03/12/2025 22:02, Arnold Ziffel wrote:
Quote:
RS-485 może być dwukierunkowy (czyli obie strony mogą nadawać), ale tam
jest z tego co widzę half-dupleks (czyli tylko jedna strona może nadawać
w jednym czasie). Czyli muszę przełączać nadawanie / odbiór.

To przełączenie nadawanie/odbiór wynika z protokołu. Zazwyczaj RS485 to
master-slave. Więc poza samym iface warto by wiedziec jaki proto tam
będzie biegał bo z niego wynika kto i jak będzie kontrolował kierunki
interfejsu na urządzeniach.

Quote:
Czy da się zrealizować to w taki sposób, żeby obie strony mogły nadawać
(nie w tym samym czasie, czyli nadal half-dupleks) bez dodatkowego
przełączania?

Przełaczenie jest absolutnie niezbędne, urządzenie albo odbiera albo
nadaje. Więc w 485, kiedy komunikacja jest dwukierunkowa, musisz
poświęcić jakiś pin na sterowanie nadajnikiem lini.

To może być automatyczne, czyli jeśli uC rozpoczyna nadawanie, przez
prostą logikę załaczyć nadajnik a potem go wyłączyć, jednak takie coś to
jazda po bandzie, bo dasz 1 scalak więcej zamiast gotowego pinu w uC.

Quote:
Obie odbierałyby to, co jest na linii (czyli byłoby echo
Chciałbym, żeby to było jak najprostsze. Z MCU sobie wysteruję tak jak
chcę, ale z PC musiałbym wyprowadzać dodatkowe linie sterujące (chciałbym
użyć gotowego konwertera na FT232 + scalaka do zrobienia z tego RS-485)

Po prostu użyj dodatkowego I/O na pokładzie FTDI do sterowania kierunkiem.

https://i.sstatic.net/LrLHH.jpg

W ogole to zostaw ten temat własnego rozwiązania. Na ali możesz kupić
konwertery za grosze.

https://pl.aliexpress.com/item/1005009991697372.html

J.F
Guest

Thu Dec 04, 2025 1:06 pm   



On Thu, 4 Dec 2025 08:38:00 +0100, heby wrote:
Quote:
On 03/12/2025 22:02, Arnold Ziffel wrote:
RS-485 może być dwukierunkowy (czyli obie strony mogą nadawać), ale tam
jest z tego co widzę half-dupleks (czyli tylko jedna strona może nadawać
w jednym czasie). Czyli muszę przełączać nadawanie / odbiór.

To przełączenie nadawanie/odbiór wynika z protokołu. Zazwyczaj RS485 to
master-slave. Więc poza samym iface warto by wiedziec jaki proto tam
będzie biegał bo z niego wynika kto i jak będzie kontrolował kierunki
interfejsu na urządzeniach.

Tak czy inaczej - każde urządzenie musi kontrolować.
Włączyć nadajnik na czas transmisji, wyłączyć po zakończeniu.

No chyba, że dodasz dodatkowe druty i będziesz sterował centralnie.

Quote:
Czy da się zrealizować to w taki sposób, żeby obie strony mogły nadawać
(nie w tym samym czasie, czyli nadal half-dupleks) bez dodatkowego
przełączania?

Przełaczenie jest absolutnie niezbędne, urządzenie albo odbiera albo
nadaje. Więc w 485, kiedy komunikacja jest dwukierunkowa, musisz
poświęcić jakiś pin na sterowanie nadajnikiem lini.

To może być automatyczne, czyli jeśli uC rozpoczyna nadawanie, przez
prostą logikę załaczyć nadajnik a potem go wyłączyć, jednak takie coś to
jazda po bandzie, bo dasz 1 scalak więcej zamiast gotowego pinu w uC.

Ten scalak to może byc 74123. Gorzej, że ustawiony tylko na jedną
prędkość transmisji.

Quote:
Obie odbierałyby to, co jest na linii (czyli byłoby echo
Chciałbym, żeby to było jak najprostsze. Z MCU sobie wysteruję tak jak
chcę, ale z PC musiałbym wyprowadzać dodatkowe linie sterujące (chciałbym
użyć gotowego konwertera na FT232 + scalaka do zrobienia z tego RS-485)

Po prostu użyj dodatkowego I/O na pokładzie FTDI do sterowania kierunkiem.

https://i.sstatic.net/LrLHH.jpg

Tylko jeszcze musisz przekonać programy, aby go obsługiwały.
No chyba, że program od początku piszesz sam.

Quote:
W ogole to zostaw ten temat własnego rozwiązania. Na ali możesz kupić
konwertery za grosze.
https://pl.aliexpress.com/item/1005009991697372.html

A jak sterują kierunkiem ? :-)

A, widzę - USB, to pewnie dobrze sterują.

Cena zajebista ...



J.

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zrealizować automatyczne nadawanie w RS-485 dla dwóch urządzeń bez dodatkowych linii?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map