• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
UART i izolacja za pomocą transoptora
#1
Witam!

Mam nadzieję, że to właściwy dział, jeśli nie to proszę o przeniesienie.
Otóż mam taki problem, że muszę przesyłać dane między Arduino które pracują na różnych potencjałach przez co konieczne jest ich odizolowanie. Postanowiłem wykorzystać transoptory LTV827, które akurat miałem pod ręką.
Trafiłem na schemat oparty na dwóch PC817 czyli w sumie na LTV827:
   
Zmajstrowałem na płytce stykowej podobny układ ale niestety dane między Arduino nie przechodzą.
Uprościłem układ żeby wyeliminować zbędne połączenia (wybaczcie moje zdolności plastyczne):
   
Prędkości ustawiłem w obu Arduino na 4800, by opóźnienia w zapalaniu/gaszeniu diody w transoptorze nie miały znaczenia. Niestety ciągle nic nie przechodzi. Podłączyłem diodę do wyjścia transoptora i podawałem +5V na wejście diody transoptrora (oczywiście przez rezystor) i dioda się zapalała - więc chyba połączenia są OK. Nie mam pomysłu co zrobić, że by Arduino zagadało przez transoptor. Jak łączę TX jednego z RX drugiego to dane się przesyłają, przez transoptor nie Sad
Zauważyłem jeszcze, że jak zostawię diodę na wyjściu transoptora i podepnę RX drugiego Arduino to dioda zaczyna świecić (stan na RX jest wysoki) ale to chyba normalne?
Będę wdzięczny za sugestie i podpowiedzi jak rozwiązać problem albo w którą stronę drążyć temat Smile
 
Odpowiedź
#2
Coś mi źle wygląda to Twoje podłączenie.

Chodzi mi o sygnały RX1 i RX2.
Stan niski na nich masz przez rezystory 10k, czyli tak jabyś tego stanu nie miał.

Wydaje mi się, że powinno to wyglądać mniej więcej tak jak na rysunku ponizej:
[Obrazek: attachment.php?aid=443]

Pozdr.


Załączone pliki Miniatury
   
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#3
Przed wyjściem do pracy na szybko spiąłem układ w pokazany przez Ciebie sposób i wychodzi na to, że chyba działa. Diody na Arduinach zaczęły ładnie mrugać. Wieczorem sprawdzę czy transmisja działa bezbłędnie i czy to nie jest przypadek Smile
 
Odpowiedź
#4
Witam,
Może być problem z układem przedstawionym przez @ANT-a, bo następuje negacja sygnału. Jeśli zasilisz diodę transoptora (czyli dasz stan wysoki, abstrahując od Vdd 12 V na schemacie) to tranzystor zacznie przewodzić i na jego kolektorze będzie około 0,2 V czyli stan niski. Czyli podajesz wysoki, a wychodzi niski i na odwrót. Na pierwszym, podanym przez Ciebie, schemacie taka inwersja nie następuje. Ja spróbowałbym zmniejszyć wartość rezystora będącego w szeregu z diodą z 1 kom do wartości zależnej od posiadanego transoptora, bo niektóre potrzebują większego prądu dla diody. Może to być nawet jedynie 33 ohmy, ale to wartość minimalna. Najpierw spróbuj 470 ohm, jeśli nie zadziała to 220 ohm, 100... No chyba, że wepniesz potencjometr i sprawdzisz przy jakiej wartości rezystancji podanie stanu wysokiego na wejściu daje stan wysoki na wyjściu i analogicznie dla stanów niskich.
Pozdrawiam,
Tomek.
 
Odpowiedź
#5
(12-12-2017, 14:02)Smaczek napisał(a): Może być problem z układem przedstawionym przez @ANT-a, bo następuje negacja sygnału.

Kolego nie wprowadzaj w błąd...

Na diodę transoptora podaje się stan niski aby ona zaświeciła.
To powoduje wysterowanie tranzystora czyli podanie równiez stanu niskiego na jego kolektorze!

Nie występuje tutaj negowanie sygnału!
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#6
Witam,
Kolego @ANT, masz rację. Błędnie potraktowałem wejście układu jako masę. Niemniej jednak jeśli Vdd będzie wynosić 12 V (tak jak na schemacie) to bez względu na to co będzie na wejściu układu to na wyjściu będzie raczej stan niski
Pozdrawiam,
Tomek.
 
Odpowiedź
#7
Smile 
(12-12-2017, 17:10)Smaczek napisał(a): Niemniej jednak jeśli Vdd będzie wynosić 12 V (tak jak na schemacie) to bez względu na to co będzie na wejściu układu to na wyjściu będzie raczej stan niski

A niby dlaczego tak ma być?

Jeżeli po stronie wejściowj jest logika oparta na 12 Voltach to masa będzie powodowała nadal stan niski, a podanie na wejście układu czyli na katodę diody +12V wywoła stan wysoki (dioda transoptora się wówczas nie świeci, więc tranzystor jest nie wysterowany i na jego kolektorze jest stan wysoki).

Poza tym ten schemat był przykładem jesli chodzi o logikę podłączenia a nie zastosowane napięcia.

Pozdr.
Smile
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#8
Zdecydowanie działa, dzięki Smile
Rezystory pozostawiłem jakie były czyli 1K i 10K. Działa stabilnie na 4800 i 9600baud, więcej nie próbowałem bo nie jest mi na razie potrzebne. Później sprawdzę czy uda się więcej. Dodać mogę, że dwa transoptory pobierają 0,065mA kiedy nie ma transmisji, czyli nawet przy zasilaniu bateryjnym można ich śmiało używać.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości