-
1. Data: 2025-12-03 22:02:56
Temat: RS-485 ale automatycznie dwukierunkowy
Od: a...@h...invalid (Arnold Ziffel)
Chcę spiąć dwa urządzenia przez RS-485 (jedno będzie moje, drugie to
będzie przystawka / konwerter do PC, i soft do kontroli na PC).
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.
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? Obie odbierałyby to, co jest na linii (czyli byłoby echo
lokalne).
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),
oprogramowywać to. Zrobię to, jeśli trzeba, ale jeśli mogę nie robić, to
wolałbym nie robić.
Pomysły, idee?
--
Łysi mają lepiej chłodzony procesor.
-
2. Data: 2025-12-03 22:45:31
Temat: Re: RS-485 ale automatycznie dwukierunkowy
Od: Mirek <m...@n...dev>
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.
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
-
3. Data: 2025-12-04 04:00:30
Temat: Re: RS-485 ale automatycznie dwukierunkowy
Od: "J.F" <j...@p...onet.pl>
On Wed, 3 Dec 2025 22:45:31 +0100, Mirek wrote:
> 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ę :-)
> 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.
-
4. Data: 2025-12-04 08:38:00
Temat: Re: RS-485 ale automatycznie dwukierunkowy
Od: heby <h...@p...onet.pl>
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.
> 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.
> 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
-
5. Data: 2025-12-04 12:06:54
Temat: Re: RS-485 ale automatycznie dwukierunkowy
Od: "J.F" <j...@p...onet.pl>
On Thu, 4 Dec 2025 08:38:00 +0100, heby wrote:
> 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.
>> 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.
>> 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.
> 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.


do góry
Ile kosztują tanie mieszkania w polskich metropoliach?