-
61. Data: 2017-09-23 08:28:09
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: "J.F." <j...@p...onet.pl>
Dnia Fri, 22 Sep 2017 22:05:41 -0500, Pszemol napisał(a):
> "J.F." <j...@p...onet.pl> wrote in message
[...]
>>> Ja piszę o automatycznym machaniu RTSem przez uarta odpowiednio
>>> ustawionego.
>>> Jest to funkcja uarta dedykowana właśnie do zastosowania w
>>> RS485.
>>
>> Ale 16550 chyba jeszcze tego nie ma.
>> Wiec malo ktory program ma :-(
>
> Ficzerek ten się nazywa "RS-485 half duplex direction control".
>
> Chyba masz rację, oryginalny 16C550 tego jeszcze nie miał,
> miały to późniejsze chipy EXARa - od lat jestem jak widać rozpieszczony
> używając uartów klasy XR16C850 i podobnych która mają właśnie taki
> ficzerek i nie zdawałem sobie nawet sprawy jaki szczęściarz ze mnie ;-)
Jakk tak siegam pamiecia ... te dwa porty szeregowe nie zeszly do
chipsetu ?
A potem wyszly ... i faktycznie jestes rozpieszczony ze je w ogole
miales :-) czy na osobnej karcie ?
> 4.18 Feature Control Register (FCTR) - Read/Write
> FCTR[2]: IrDa RX Inversion
Irda, ech, tez juz dawno nie widzialem :-)
> FCTR[3]: Auto RS-485 Direction Control
> . Logic 0 = Standard ST16C550 mode. Transmitter generates an interrupt when
> transmit holding register
> becomes empty and transmit shift register is shifting data out.
> . Logic 1 = Enable Auto RS485 Direction Control function. The direction
> control signal, RS485 pin, changes
> its output logic state from low to high one bit time after the last stop bit
> of the last character is shifted out.
I o to chodzi.
> Also, the Transmit interrupt generation is delayed until the transmitter
> shift register becomes empty.
A o to to IMO niekoniecznie.
> The
> RS485 output pin will automatically return to a logic low when a data byte
> is loaded into the TX FIFO.
> https://www.exar.com/ds/16c850-231-080905.pdf
> No piknie.
To jest osobny pin czy RTS ?
Bo jesli osobny ... chyba byles rozpieszczony komputerm/karta z portem
RS485 a nie 232.
>>> Ty opisałeś nazywa się "transmitter holding register empty" THRE a jest
>>> jeszcze "transmitter empty" TEMT.
>>
>> tylko TEMT przerwania nie zglasza.
>> wiec musisz procesor zmarnowac na pilnowanie, albo jakies
>> przerwanie/timer dobrac do predkosci :-P
>
> No tak, lepiej mieć ficzerek opisany wyżej :-)
Szczegolnie jak bufor dlugi i czekac trzeba nie na jeden czy 2 znaki,
ale np na 120 ... albo alternatywnie taki maly timerek dolozyc do
konwertera :-)
P.S. ale widze rozwiazanie - trzeba dolozyc jakies maly uC, ktory
bedzie monitorowal nadawane dane, rozpoznawal predkosc i sterowal
kierunkiem odpowiednio :-)
J.
-
62. Data: 2017-09-23 10:21:35
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Dariusz Dorochowicz <_...@w...com>
W dniu 2017-09-23 o 04:01, Pszemol pisze:
> "Dariusz Dorochowicz" <_...@w...com> wrote in message
> news:oq430a$a57$1@node1.news.atman.pl...
>>>>>>>> Może z tego wydłubiesz?
>>>>>>>> https://ivel.pl/p2850,konwerter-rs232-rs485.html?gcl
id=EAIaIQobChMI-cWPu-6z1gIVlcqyCh2ytg9wEAYYASABEgKkh
fD_BwE
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> No więc obczaiłem jak tu działa sterowanie kierunkiem transmisji:
>>>>>>> Zwarte DE/RE sterowane TX, transmisja zera włącza nadajnik,
>>>>>>> transmisja
>>>>>>> jedynki, bitu stopu wyłącza nadajnik...
>>>>>>>
>>>>>>> Czyli zamiast push-pull i polaryzacji pary raz +5V a za drugim
>>>>>>> razem -5V
>>>>>>> masz tylko 5V i zero volt, pozwalasz odbiornikowi zewrzeć linię w
>>>>>>> trakcie
>>>>>>> transmisji jedynki opornikiem 120ohm.
>>>>>>>
>>>>>>> Oszukaństwo czy raczej praktyczne rozwiązanie szeroko stosowane??
>>>>>>
>>>>>> Wiesz, to ma znaczenie wtedy, kiedy nie masz do dyspozycji sygnału
>>>>>> sterującego nadajnikiem, czyli właśnie w konwerterach i
>>>>>> repeaterach. Jak
>>>>>> masz swojego procka to nie ma to najmniejszego sensu. W "normalnym"
>>>>>> gotowym urządzeniu tylko raz się spotkałem z tym, że trzeba było
>>>>>> wstępnie spolaryzować magistralę - na szczęście wystarczył rezystor z
>>>>>> którejś linii do masy. I to był jakiś kontroler do PC-ta. Z innymi
>>>>>> kontrolerami było OK.
>>>>>>
>>>>>
>>>>> Nie musisz mieć swojego procka - wszystkie porty RS232 mają linię
>>>>> RTS która
>>>>> była historycznie używana zawsze do sterowania kierunkiem nadawania
>>>>> RS485.
>>>>
>>>> Jak masz urządzenie które nie ma fizycznie żadnej linii poza TxD i RxD
>>>> to sobie możesz korzystać z RTSa ile wlezie. A jak weźmiesz takiego
>>>> AT91SAM9260 który nawet na niektórych UARTach ma RTS tylko starsze
>>>> wersje linuxów nie obsługują tego poprawnie to też sobie możesz.
>>>>
>>> I co wtedy robisz?
>>>
>>> Dajesz timer wyzwalany bitem startu do sterowania linią DE/RE? I czas
>>> ustawiasz zgodnie z baudrate?
>>>
>>> Czy może robisz tak jak konwerter z linku u góry, że steruje nadajnikiem
>>> tylko w czasie bitu startu i zerowych bitów danych a resztę zostawia
>>> odbiornikom aby sobie radziły z niesterowaną linią?
>>
>> Temat został odłożony, a teraz jest nieaktualny.
>> Gdybym miał to jednak zrobić, to słowo daję - nie wiem. Być może nawet
>> postawiłbym tam po drodze jakiegoś "maluszka" (TINY albo raczej
>> malutkiego ARMa) żeby się nie zastanawiać, a przy okazji mógłby coś
>> pożytecznego zrobić co w Linuksie może być trudne... Różne pomysły
>> można mieć. Ale na pewno przetestowałbym wreszcie właśnie ten układ o
>> którym piszesz i może właśnie tego użył.
>
> Nie wiem czy się rozumiemy... ja nie chcę kupić, ja nie chcę użyć.
> Ja chcę zrobić. Mam dwa urządzenia połączyć, potrzebuję porobić
> między nimi interfejsy różne, i między innymi RS232-RS485.
> Innymi słowy - chcę "wyprodukować" nową swoją płytkę na której
> jedną z kilku funkcji będzie taki konwerter :-)
Ależ oczywiście że rozumiem częściowo Twój problem. Częściowo, bo nie
znam wszystkich uwarunkowań ani preferencji. A tu ma znaczenie np
protokół komunikacji. Przy konwerterach sterowanych z użyciem timera
protokół musi uwzględniać konieczność robienia przerw między nadawaniem
i odbieraniem. Jeżeli masz na to wpływ, no to można kombinować.
Osobiście najbardziej mi się podoba rozwiązanie ze sterowaniem linią DE,
a nie DI. Ma m.in. jedną wadę - jeżeli chcesz żeby nie trzeba było
opierać się na odbiornikach fail safe, to polaryzacja linii musi być
cały czas zasilana. Całość się skomplikuje przy kontrolerze w środku
magistrali. No i różne takie rzeczy trzeba rozważyć przy podejmowaniu
decyzji. Co innego jak robisz punkt-punkt, co innego jak musisz przyjąć
że musisz współpracować z dziwnymi urządzeniami itd.
Co do ustawiania timeoutów to są jakieś algorytmy autodetekcji
ustawienia portów, ale nie korzystałem nigdy, więc nie wiem co są warte.
Ale możesz np dać procka który nie będzie zbierał całego bajtu i pchał
go dalej po skompletowaniu, tylko włączy nadajnik jak się pojawi
pierwsza zmiana stanu i wyłączy po odebraniu całego bajtu. Tzn że sam
UART procka będzie tylko żeby zweryfikować i ewentualnie w jakiś sposób
zareagować jak dane będą niekompletne. To by nie wprowadzało praktycznie
opóźnienia w transmisji, a i pozwalałoby na zrobienie jednego softu
również dla repeatera RS485... Tak sobie gdybam.
Ponieważ w którymś momencie zrezygnowaliśmy z korzystania z pecetowych
portów 232 (potrafią się skubańce powiesić i trzeba peceta restartować)
i zaczęliśmy korzystać z innych rozwiazań, to nawet nie wiem jak teraz
rynek wygląda. A zajrzałbym do paru konwerterów.
Pozdrawiam
DD
-
63. Data: 2017-09-23 11:19:56
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Piotr Gałka <p...@c...pl>
W dniu 2017-09-23 o 00:10, Pszemol pisze:
> Ja piszę o automatycznym machaniu RTSem przez uarta odpowiednio
> ustawionego.
> Jest to funkcja uarta dedykowana właśnie do zastosowania w
> RS485.
>
W mikrokontrolerach, które obecnie używamy (ATXmega256A3U) mam 7 UARTów,
ale każdy ma tylko TXD i RXD i jeszcze jakiś XCK.
O tym XCK to wiem tylko, że te UARTy mają jakiś tryb transmisji
synchronicznej - nigdy w to nie wnikaliśmy.
Może taki clock dało by się wykorzystać do włączania nadajnika na
początku każdego bitu.
P.G.
-
64. Data: 2017-09-23 15:24:05
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: "J.F." <j...@p...onet.pl>
Dnia Sat, 23 Sep 2017 11:19:56 +0200, Piotr Gałka napisał(a):
> W dniu 2017-09-23 o 00:10, Pszemol pisze:
>> Ja piszę o automatycznym machaniu RTSem przez uarta odpowiednio
>> ustawionego.
>> Jest to funkcja uarta dedykowana właśnie do zastosowania w
>> RS485.
>>
> W mikrokontrolerach, które obecnie używamy (ATXmega256A3U) mam 7 UARTów,
> ale każdy ma tylko TXD i RXD i jeszcze jakiś XCK.
Tylko do tego chyba masz troche normalnych pinow I/O, z ktorych kazdy
moze robic za RTS.
Pozostaje tylko sprawdzic jak to z tymi przerwaniami :-)
J.
-
65. Data: 2017-09-23 17:18:44
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Piotr Gałka <p...@c...pl>
W dniu 2017-09-23 o 15:24, J.F. pisze:
>> W mikrokontrolerach, które obecnie używamy (ATXmega256A3U) mam 7 UARTów,
>> ale każdy ma tylko TXD i RXD i jeszcze jakiś XCK.
>
> Tylko do tego chyba masz troche normalnych pinow I/O, z ktorych kazdy
> moze robic za RTS.
> Pozostaje tylko sprawdzic jak to z tymi przerwaniami :-)
>
Nie ja piszę oprogramowanie więc tego nie wiem, ale myślę, że jest
jakieś przerwanie jak "wszystko wyszło".
Ja podłączam hardware i stąd wiem, że prawie z każdej strony procka
znajdę jakieś piny z UARTem.
Było hasło, że hardwareowy RTS i dlatego wtrąciłem swoje 3gr, wszystkie
UARTy jakie widziałem od 10... lat nie mają.
P.G.
-
66. Data: 2017-09-25 11:55:21
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:oq5u0c$rvk$1$P...@n...chmurka.ne
t...
W dniu 2017-09-23 o 15:24, J.F. pisze:
>>> W mikrokontrolerach, które obecnie używamy (ATXmega256A3U) mam 7
>>> UARTów,
>>> ale każdy ma tylko TXD i RXD i jeszcze jakiś XCK.
>
>> Tylko do tego chyba masz troche normalnych pinow I/O, z ktorych
>> kazdy
>> moze robic za RTS.
>> Pozostaje tylko sprawdzic jak to z tymi przerwaniami :-)
>Nie ja piszę oprogramowanie więc tego nie wiem, ale myślę, że jest
>jakieś przerwanie jak "wszystko wyszło".
>Ja podłączam hardware i stąd wiem, że prawie z każdej strony procka
>znajdę jakieś piny z UARTem.
>Było hasło, że hardwareowy RTS i dlatego wtrąciłem swoje 3gr,
>wszystkie UARTy jakie widziałem od 10... lat nie mają.
Piotrze - ale specjalizowane uklady, czy zawarte w jakis uC ?
W uC jak pisalem - moze potrzebne, moze niepotrzebne, jest multum
portow, ktore moga te funkcje pelnic w razie potrzeby.
I tylko jakis "automatyczny RTS" by sie mogl przydac, a go nie bedzie
... chociaz ... takie uC czesto do 485 uzywane, to az dziwne, ze nie
ma.
A moze jednak lepiej, jak program to obsluguje :-)
J.
-
67. Data: 2017-09-25 14:48:11
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Dariusz Dorochowicz <dadoro@_wp_._com_>
W dniu 2017-09-25 o 11:55, J.F. pisze:
> Użytkownik "Piotr Gałka" napisał w wiadomości grup
> dyskusyjnych:oq5u0c$rvk$1$P...@n...chmurka.ne
t...
> W dniu 2017-09-23 o 15:24, J.F. pisze:
>>>> W mikrokontrolerach, które obecnie używamy (ATXmega256A3U) mam 7
>>>> UARTów,
>>>> ale każdy ma tylko TXD i RXD i jeszcze jakiś XCK.
>>
>>> Tylko do tego chyba masz troche normalnych pinow I/O, z ktorych kazdy
>>> moze robic za RTS.
>>> Pozostaje tylko sprawdzic jak to z tymi przerwaniami :-)
>
>> Nie ja piszę oprogramowanie więc tego nie wiem, ale myślę, że jest
>> jakieś przerwanie jak "wszystko wyszło".
>> Ja podłączam hardware i stąd wiem, że prawie z każdej strony procka
>> znajdę jakieś piny z UARTem.
>
>> Było hasło, że hardwareowy RTS i dlatego wtrąciłem swoje 3gr,
>> wszystkie UARTy jakie widziałem od 10... lat nie mają.
>
> Piotrze - ale specjalizowane uklady, czy zawarte w jakis uC ?
> W uC jak pisalem - moze potrzebne, moze niepotrzebne, jest multum
> portow, ktore moga te funkcje pelnic w razie potrzeby.
>
> I tylko jakis "automatyczny RTS" by sie mogl przydac, a go nie bedzie
> ... chociaz ... takie uC czesto do 485 uzywane, to az dziwne, ze nie ma.
> A moze jednak lepiej, jak program to obsluguje :-)
Są takie co mają, są takie co nie mają. A i są takie co mają różne
rodzaje nawet w jednym układzie. Od TxD/RxD do pełnego (?) USARTa.
A ten XCK w XMega, jak sie można domyślić, to do transmisji
synchronicznej. Handshaking trzeba samemu "ręcznie" obsłużyć.
Pozdrawiam
DD
-
68. Data: 2017-09-25 16:44:12
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Piotr Gałka <p...@c...pl>
W dniu 2017-09-25 o 11:55, J.F. pisze:
>> Było hasło, że hardwareowy RTS i dlatego wtrąciłem swoje 3gr,
>> wszystkie UARTy jakie widziałem od 10... lat nie mają.
>
> Piotrze - ale specjalizowane uklady, czy zawarte w jakis uC ?
Przez 10 lat widziałem tylko UARTy w Xmegach :)
Użyłem słowa "wszystkie" aby zwrócić uwagę, że istnieją osoby, które
niby ciągle coś z UARTami mają do czynienia (my akurat używamy ich do
RS485), ale pod hasłem UART rozumieją coś co ma tylko TXD i RXD.
> W uC jak pisalem - moze potrzebne, moze niepotrzebne, jest multum
> portow, ktore moga te funkcje pelnic w razie potrzeby.
>
> I tylko jakis "automatyczny RTS" by sie mogl przydac, a go nie bedzie
> ... chociaz ... takie uC czesto do 485 uzywane, to az dziwne, ze nie ma.
Nie wiem dokładnie jak taki RTS działa to trudno mi się wypowiedzieć czy
byłby przydatny w RS485.
Mi się wydaje, że RTS/CTS to były informacje, że jestem gotów na
odbieranie danych, ale może się mylę.
Czy taki sygnał z UARTa przydałby się do sterowania DE RS485 - mam
wątpliwości.
P.G.
-
69. Data: 2017-09-25 17:13:44
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:oqb4nt$t2m$1$P...@n...chmurka.ne
t...
W dniu 2017-09-25 o 11:55, J.F. pisze:
>> W uC jak pisalem - moze potrzebne, moze niepotrzebne, jest multum
>> portow, ktore moga te funkcje pelnic w razie potrzeby.
>
>> I tylko jakis "automatyczny RTS" by sie mogl przydac, a go nie
>> bedzie ... chociaz ... takie uC czesto do 485 uzywane, to az
>> dziwne, ze nie ma.
>Nie wiem dokładnie jak taki RTS działa to trudno mi się wypowiedzieć
>czy byłby przydatny w RS485.
>Mi się wydaje, że RTS/CTS to były informacje, że jestem gotów na
>odbieranie danych, ale może się mylę.
Urzadzenie chcąc nadawac aktywuje sygnal RTS, modem przestawia sie na
nadawanie i potwierdza sygnalem CTS.
Przy czym ... urzadzenie w zasadzie powinno poczekac, az sie ten
aktywny stan na CTS pojawi, zanim zacznie wysylac.
>Czy taki sygnał z UARTa przydałby się do sterowania DE RS485 - mam
>wątpliwości.
Jak jednak widac - taki sygnal by sie przydal. Automatycznie
aktywowany.
Troche dziwne, ze go nie ma ... ale z drugiej strony - programistom
nie sprawia to problemu :-)
J.
-
70. Data: 2017-09-25 19:14:33
Temat: Re: Izolowany konwerter zrobić z RS232 na RS485
Od: Piotr Gałka <p...@c...pl>
W dniu 2017-09-25 o 17:13, J.F. pisze:
>
>
>> Czy taki sygnał z UARTa przydałby się do sterowania DE RS485 - mam
>> wątpliwości.
>
> Jak jednak widac - taki sygnal by sie przydal. Automatycznie aktywowany.
> Troche dziwne, ze go nie ma ... ale z drugiej strony - programistom nie
> sprawia to problemu :-)
>
Dawniej używaliśmy UARTy w PC, ale te linie RTS i chyba DTR używaliśmy
do zupełnie innych celów - przełączaliśmy do 64 pętli prądowych (jedna
linia - "na pętlę 0", druga linia - "na kolejną pętlę". Oczywiście poza
tym linie te dostarczały zasilanie dla całości.
Z tego wychodzi, mi, że nawet tam nie były sterowane automatycznie tylko
ręcznie z programu.
P.G.