Skocz do zawartości
piotr96

Wejścia i wyjścia binarne - konwersja napięć 3,3V<->24V

Pomocna odpowiedź

W związku z realizacją pewnego projektu proszę o sprawdzenie dwóch załączonych schematów. Jeden, znajdujący się w pliku ,,wejscia.png", ideowo przedstawia układ do konwersji poziomów logicznych 0-24V (DC) na 0-3,3V (DC). Składa się on głównie z diody sygnalizującej poziom wysoki na wejściu (24V), transoptora oraz filtru RC. Proszę o komentarz dotyczący układu - wszelkie uwagi są mile widziane (zwłaszcza na temat ewentualnie brakujących elementów, które podniosłyby poziom ,,bezpieczeństwa" układu oraz na temat wartości elementów).

Drugi dołączony rysunek przedstawia (na razie) zarys schematu odwrotnego - realizującego konwersję napięć 0-3,3V na 0-24V, z tym, że wyjście układu będzie sterowało jakimś obciążeniem (załóżmy na razie, że pobierającym maksimum 0,5-1A). Także proszę o wszelkie uwagi.

Układy po stronie logiki 0-3,3V będą współpracowały z płytką Mimas V2.

Z góry dziękuję za każdą odpowiedź.

wyjscia.png

wejscia.png

Udostępnij ten post


Link to post
Share on other sites

Schemat wejściowy jest poprawny co do topologii: stan wysoki na wejściu (jak rozumiem względem masy tej lewej) da stan wysoki na wyjściu (względem masy prawej). Masy nie muszą być połączone i chyba taka jest idea tego układu - pełna optoizolacja, bo inaczej to wystarczy dzielnik z dwóch oporników. Mma jedynie zastrzeżenia co do wartości elementów: prąd LEDa D1 jest podejrzanie wielki: z 50mA to można dziś pokój oświetlić. Talk samo prąd diody transoptora: wystarczy tam 1-2mA. A mając taki prąd kolektora to R4 jest sporo za duży. Takie obciążenie emitera sprawia, że układ będzie czuły na upływności i zakłócenia. Daj tam 10k. I dlaczego tak duży rezystor na wyjsciu? Daleko ten sygnał wysyłasz? Linia sterowana przez 300k jest słabiutka jak staruszka z gruźlicą. Rozumiem, że chodziło o stałą czasową filtra R3/C1, ale lepiej daj mniejszy opornik a większy kondensator, np. 10k/2.2uF. Po co takie agresywne filtrowanie? Skąd pochodzi sygnał 24V?

Wyjście jest.. dziwne, wygląda jak zlepek kilku układów połączonych trochę bezmyślnie. Po pierwsze skoro na wejściu wpływa 8mA (strasznie dużo, biedny procesor) to możesz założyć, że takim prądem dysponujesz w kolektorze - standardowy CTR to 100%. A po drugiej stronie masz: opornik 100k (prąd nieznaczący), diodę LED (prąd ponad 40mA - strasznie dużo chcesz) i dwa oporniki szeregowe, w sumie 21k czyli kolejny 1mA prądu. A masz przecież tylko 8mA, słabo, prawda? No i to podłączenie MOSFETa - źle to przerysowałeś. Zamieniła Ci się bramka ze źródłem. Ten układ kompletnie do porawki. Acha, i jeszcze napisz jak chcesz mieć włączone obciążenie. Czy koniecznie od wyjścia do masy? Bo jakoś ten drugi pin gniazdka wisi w powietrzu wiec nie wiem co tam planowałeś. No i znów: czy konieczna optoizolacja? Nie napisałeś tego w wymaganiach.

 

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dziękuję bardzo za szybką i wyczerpującą odpowiedź. W obydwu układach konieczna jest optoizolacja. Co do rezystora przy LEDach - zdecydowanie mój błąd, bezmyślnie przepisałem wartość z pewnego schematu na którym się częściowo wzorowałem, nawet nie sprawdzając czy ma jakikolwiek sens.

A teraz po kolei:

  1. Prąd LED jak wyżej.
  2. Prąd diody transoptora - dam większy rezystor.
  3. Wartość R4 - nie mam doświadczenia i wyrobionej intuicji w doborze wartości takich elementów, zmienię na 10k. Postaram się znaleźć później jakieś materiały na ten temat - jeżeli znasz coś przystępnego dla początkujących, to proszę o podesłanie.
  4. Rezystor na wyjściu, filtr RC - tak chodziło o stałą czasową filtra, zmienię to zgodnie z zaleceniami. Co rozumiesz przez ,,agresywne filtrowanie"? Dużą stałą czasową filtru? Myślałem, że 33 ms to nie jest wiele. Sygnał 24V pochodzi z pewnych ,,zabawek" symulujących linię produkcyjną - nie są to sygnały szybkozmienne, stała czasowa jest dobrana trochę na wyrost.
  5. Wyjście rzeczywiście powstało w bólach na bazie kilku schematów. Trochę mylnie rozumiałem działanie transoptora - trochę na zasadzie włącz/wyłącz.
  6. Oznaczenie tranzystora - byłem przekonany, że źródło w oznaczeniu to połączone ,,dwie nóżki:, a bramka jest z ,,drugiej strony" niż żródło i dren. Moją intencją było zapewnić stałe napięcie na bramce, a ,,sterować" napięciem na źródle.
  7. Tak, obciążenie włączone od wyjścia do masy. Drugi pin gniazdka na razie jest nieistotny, po prostu wziąłem taki element z biblioteki Altiuma - nie widziałem tam ,,jednoelementowego" goldpina (pewnie jest tam jakiś bardziej stosowny element, który powinienem użyć). Docelowo tych wejść i wyjść będzie po 8, tutaj przedstawiłem tylko schematy pojedynczych.

Zabieram się teraz za poprawę schematów. Niedługo postaram się je wrzucić.

Udostępnij ten post


Link to post
Share on other sites

OK, no to optoizolacja ma być. Nie wiedząc skąd pochodzi sygnał założyłem, że to coś szybszego. Jeżeli symulator procesu, maszyny itp to faktycznie 30ms jest niezłe. To rząd wielkości czasu zadziałania przekaźników. Niestety takiego sygnału nie możesz wpuścić do wejścia cyfrowego, bo powolne narastanie/opadanie wygeneruje w strefie przejściowej bufora mnóstwo zboczy a jeśli dalszy układ je kupi, może być dziwnie. Rozwiązaniem w takich sytuacjach jest przerzutnik Schmitta więc między wyjściem filtra RC a czymś tam dalej konieczne będą bramki np. 74HC14. Spokojnie pracują przy 3V a mają histerezę na wejściu co załatwia sprawę wolnych zboczy. One do tego po prostu są, a ich zasilanie i tak przecież masz pod ręką. Nad wyjściem popracuj 🙂 Jeżeli obciażenie chcesz do masy, to narysuj połączenie drugiego pinu złącza do GND (tak samo jak na schemacie wejscia brakuje podłączenia drugiego pinu złącza do masy izolowanej - trzeba się domyślać). Właśnie dwupinowy konektor nadaje się do przekazania tej idei świetnie. Wtedy wiadomo bez słów, z samego schematu, że coś tam podłączasz między gorący koniec drivera a GND. 

  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dziękuję raz jeszcze za bardzo merytoryczne odpowiedzi. Dałeś mi do myślenia tymi przerzutnikami Schmitta, dlatego schematy poprawione będą później. Na razie zmieniłem wszystkie rezystory w ,,wejsciach" na 10K - powinno być chyba ok (razem ze zmianą kondensatora w filtrze RC).

Do tej pory byłem przekonany, że stosując filtr RC wytnę wszystkie śmieci. Dotychczas mój projekt na tej płytce Mimas V2 (a wcześniej Elbert V2) działał z wejściami - przyciskami bez żadnych sprzętowych filtrów oraz programowej eliminacji drgań styków - każde wciśnięcie przycisku było zliczone tylko raz (mój program odczytuje stan wejść co kilkadziesiąt, kilkaset taktów zegara 12 MHz), ponadto jest to mój pierwszy projekt elektroniczny, stąd nie jestem świadomy takich zagrożeń. Myślałem, że przy narastaniu sygnału z 0V do 24V, część układu po drugiej stronie transoptora zacznie przełączać się z 0 na 3,3V i dzięki filtrowi dostanę po chwili ładną jedynkę logiczną. Czy filtr RC nie powinien kasować właśnie takich szybkich przełączeń? Czym opisywana sytuacja różni się od drgań styków (w sensie przebiegów sygnałów, generacji zboczy)? Czy powolnego narastania zboczy nie można skompensować w jakiś sposób programowo?  Pytam, gdyż zależy mi z kilku powodów na możliwie najprostszej części sprzętowej, a jednocześnie działającej niezawodnie.

Udostępnij ten post


Link to post
Share on other sites

Filtrem wycinasz "śmieci" jeśli sa one szybkimi zmianami - tak działa filtr LP. Jeśli na wyjście podłączysz oscyloskop to zobaczysz powolne zbocza a jeśli analiztor widma (lub włączysz FFT w oscyloskopie) to ujrzysz obcięte pasmo i to jest OK. Niestety, odbiornikiem tego nowego, lepszego i odfiltrowanego sygnału nie jest jakiś układ analogowy zainteresowany pasmem tylko wejście bufora/bramki cyfrowej w procesorze lub co tam masz. Cechą takiego układu jest praca dwustanowa, ale żeby działał dobrze to poziomy logiczne powinny być jasno określone (zajrzyj do specyfikacji producenta). Napięcie w stanie niskim nie może być wyższe niż X a w stanie wysokim niższe niż Y i te obszary nie zachodzą na siebie. A w obszarze przejściowym zachowanie takiego układu nie jest określone, bo w rzeczywistości masz tam wzmacniacz na dwóch tranzystorach MOS. Dopóki przesterowujesz go w jedną albo drugą stronę oddaje dalej taki sam przester i masz czystą jednykę albo zero. Gdzieś po środku zaczyna po prostu wzmacniać to co przychodzi a przecież na powolne zbocze z filtra nałożóny jest szum jak wszędzie. Ten szum robi się rzędy wielkości większy na wyjściu bufora/wzmacniacza i dalsze bloki widzą niespodziewany ciąg impulsów zanim napięcie nie zdecyduje się "zaparkować" w którymś ze stanów krańcowych. Im wolniejszy filtr zastosujesz tym większa szansa na wzmacnianie szumu i paradoksalnie więcej impulsów w czasie przejścia przez obszar zabroniony. Nie musi tak być, ale jest to scenariusz bardzo prawdopodobny.

Dzięki histerezie przeczutników Schmitta większej niż amplituda szumu wejściowego masz jedno zbocze na wejściu -> jedno zbocze na wyjściu.

A teraz o tym co dalej. Jeżeli zamiany sygnału mają być np. zliczane w liczniku, to oczywiście impulsy odpadają. Jeśli jest to wejście z zestyku, to wszystko zależy jak to wykorzystujesz. Czasem liczba zboczy nie ma znaczenia, bo np. już pierwszy stan aktywny (niski lub wysoki) odpala jakiś proces który będzie ponownie zainteresowany stanem tego przycisku za setki milisekund i nieważne co się działo w międzyczasie. Jeśli reakcja na zbocze będzie szybka, to liczba impulsów zaczyna mieć znaczenie. W procesorze, jeśli i tak masz obsługę/kompensację odbić trwających dziesiątki milisekund to kilka impulsów po 200ns niczego nie zmieni - nikt tego nie zauważy. Tak więc sam musisz się zastanowić jak z tego sygnału korzystasz. Ja budując taki "przemysłowy" blok wejściowy nie chciałbym przekazywać śmieci dalej, no jakoś dobra praktyka mi na to nie pozwala, ale to Twój projekt. Osobiście nigdy nie stosuję żadnego odkłócania z lokalnych przycisków i klawiatur, ale też nigdy nie podłączam takich rzeczy do wejść liczników/timerów sprzętowych lub do przerwań. Obsługa programowa radzi z tym sobie doskonale. Jeśli priorytetem jest minimalizacja sprzętu (naprawdę koszt 2zł za 6 bramek 74HC14 robi?), to zwal robotę na program lub jakiś blok filtrów w FPGA, ale jeśli nie wiesz jak sygnał będzie wykorzystany w systemie projektowanym być może przez kogoś innego, nie życzę Ci czerwienienia się gdy wyjdzie co tam im wysyłasz.

  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...