Pytanie:
Wejście 12V na pinie mikrokontrolera
Christian
2017-07-24 18:50:44 UTC
view on stackexchange narkive permalink

Próbuję liczyć impulsy / sek.na pinie mikrokontrolera w zakresie ~ 5 do 100Hz.ΜC może działać przy napięciu 5 V, więc muszę bezpiecznie obniżyć poziom napięcia.

Przychodzi na myśl prosty rezystor, który jednak pozostawia wszelkie przepięcia bezpośrednio na pinie µC - meh .

Natknąłem się na odpowiedź, ale pozostaje pytanie, czy ten obwód jest zdolny do „szybkich” zmian 100 Hz.

Czy istnieje sprawdzony, niezawodny sposób (może za pomocą układu scalonego?) na podłączenie pinów 5V lub 3,3V do „zabrudzonych” wejść 12V? Mam dostępne 12 V i 5 V do zasilania dowolnego „gotowego” układu scalonego.

dzielnik rezystancyjny + diody Zenera / mocujące?
Czy naprawdę jest to pytanie, na które nie można odpowiedzieć za pomocą prostego wyszukiwania w Google?
Można na nie odpowiedzieć, ale bardzo chciałbym uzyskać odpowiedź dotyczącą jakości, zanim zniszczę mój sprzęt przez własną głupotę.Zdecydujmy się na „spokój ducha”?
@AliChen ma być kanonicznym repozytorium pytań i odpowiedzi.Nawet proste pytania mogą być dobre, jeśli zawierają przydatne odpowiedzi.
100 Hz nie jest szybkie.
Dziesięć odpowiedzi:
Michael Karas
2017-07-24 19:10:37 UTC
view on stackexchange narkive permalink

Spróbowałbym rozwiązania z dzielnikiem rezystora, jak pokazano poniżej.

enter image description here

Wybierz współczynnik rezystora tak, aby podzielone napięcie było na odpowiednim poziomie dla MCU, gdy napięcie wejściowe jest znamionowe.Napięcie diody Zenera jest wybierane w celu zaciśnięcia sygnału wejściowego MCU, gdy wartość wejściowa przekracza maksymalne napięcie wejściowe.Zener będzie również chronił MCU, jeśli sygnał wejściowy będzie ujemny.

To rozwiązanie sprawdzi się doskonale w określonym przez Ciebie stosunkowo niskim zakresie częstotliwości.

Dlaczego wybrać Zenera, aby być 4v7?Czy gra 5v2 (5v1?) Byłaby lepszym rozwiązaniem?
@R.Joshi: Jeśli mikrokontroler 5 V jest zasilany z 10% tolerancji zasilania (4,5-5,5 V VDD), wówczas przyłożenie 5,2 V na pin może być większe niż typowe VDD + 0,3 V bezwzględne maks.Wysoka logika jest rozpoznawana przy 2 V dla TTL i 2/3 * VDD dla CMOS, więc nie ma problemów z zenerem 4V7.
Naprawdę chciałbym móc oznaczyć dwie odpowiedzi jako „wybrane”.Twoja droga jest codzienną drogą, ale odpowiedź Jeroena jest tylko odrobinę bardziej dogłębna.Dziękuję jednak za poświęcenie czasu na odpowiedź.
Jeroen3
2017-07-24 19:25:58 UTC
view on stackexchange narkive permalink

Użyj takiego obwodu:

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

R1 i R2 określają zakres napięcia i wykonują początkowy podział. Te rezystory muszą mieć pewną moc. Typowa wartość to MELF 0,4 ​​W. Wszystkie inne mogą być rezystorami chipowymi / kondensatorami.

R3 zapobiega wszelkim przepięciom, które mogłyby spowodować uszkodzenie wyzwalacza Schmitta. R4 i R5 są opcjonalne, aby zapobiec wszelkim pływającym sygnałom.
Jednak kombinacja R3 / R4 może być również użyta do dostosowania progu, jeśli to konieczne.

C1 i C2 określają maksymalną prędkość. Kombinacja R3 / C2 może filtrować wolno. C1 filtruje stany nieustalone.

Oddzielny wyzwalacz Schmitta jest używany, ponieważ można je uzyskać naprawdę małe i tanie. Zapobiega też kierowaniu słabego sygnału na długie ścieżki. Będąc także ofiarnym udziałem w poważnych falach.

Zaprojektowałem ten obwód na podstawie tego, co widziałem w PLC. Powyższy obwód jest dla 24V. Wyreguluj rezystory tak, aby pasowały do ​​12 V zgodnie z normą IEC61131-2.

iec 61131-2
Koncepcja normy polega na zapewnieniu, że wejście musi obniżyć minimalną ilość prądu przed uznaniem go za „1”. Te trzy typy określają, ile i są stosowane na podstawie hałasu otoczenia. Zapobiega to dotykaniu go lub pobliskich przekaźników. Wadą jest to, że R1 / 2 musi mieć przyzwoitą moc i niski opór.

Łał.Bardzo dokładna odpowiedź na pytanie, które początkowo wydawało się proste.Dziękuję Ci.
Jestem naprawdę ciekawy R4 i R5 - kiedy kiedykolwiek zrobią coś pożytecznego?R2 + R3> R4 i tak.Czy dzieje się tak na wypadek awarii któregoś z „ciężkich” podzespołów?
@pipe R3 i R4 mogą pomóc w skonfigurowaniu progu, zapewniając jednocześnie ścieżkę o wysokiej impedancji do logiki.R5 jest przez większość czasu zbędny, ale w projekcie został użyty, nie można było użyć mcu pull-down.Jeśli z jakiegoś powodu bufor ulegnie awarii, wejście MCU nie odczyta buczenia 50 Hz.(Uwaga: zażądano niezawodności)
Rendeverance
2017-07-24 18:55:01 UTC
view on stackexchange narkive permalink

Użyłbym dzielnika rezystorowego, a następnie chroniłbym uC za pomocą Zenera 5,1 V

Jeśli umieścisz zenera między pinem a masą równolegle z, powiedzmy, rezystorem obniżającym napięcie 10k, a następnie podaj swój sygnał podziału napięcia, a następnie ... zener jest więcej niż wystarczająco szybki i tani / łatwy.

Często to robię i dzielę sygnał przed zenerem przez pulę.

Inna opcja jest tak samo połączona, jeśli naprawdę martwisz się, że można użyć opto, jeśli nie jest to problem z bezpieczeństwem, poszedłbym z powyższym lub miałbym pin normalnie wysoki od 5 V Vcc i pociągnąć go nisko za pomocą fet (off topmojej głowy 2N7000 powinno działać) - ale jest to mniej proste niż opcja zenera.

JimmyB
2017-07-25 13:37:37 UTC
view on stackexchange narkive permalink

Jeśli poziomy sygnału to GND i 12 V (lub> 5 V), najprostszym iw 100% bezpiecznym sposobem jest:

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

To, czy naprawdę służy to Twojemu celowi, zależy od faktycznej impedancji sygnału 12 V (powinien być znacznie poniżej R1) i tego, co masz na myśli mówiąc „brudny”.

Ponadto, jak słusznie zauważa @MichaelKaras, niski poziom na wejściu µC może zostać przesunięty do niskiego poziomu sygnału 12V plus Vf diody (do około 0,7V).Powinieneś sprawdzić, czy jest to problem w Twoim przypadku, czy nie.Jeśli tak, nadal możesz spróbować użyć diody Schottky'ego z Vf około 0,35 V.

W większości µC można nawet upuścić rezystor i aktywować wewnętrzne podciąganie dla tego pinu.
Proponowane tutaj rozwiązanie diodowe nie zawsze jest najlepszym lub optymalnym rozwiązaniem.Niskopoziomowe napięcie wejściowe prezentowane do MCU będzie powyżej GND o jedną diodę do przodu o spadek napięcia plus jakiekolwiek napięcie wyjściowe niskiego poziomu, które wytwarza sygnał od 0 do 12 V.Może to być szczególnie problem, gdy sygnały mogą przenosić szum, a wejście MCU jest określone z poziomami napięcia typu TTL dla V IL .Często ta specyfikacja może wynosić tylko 0,8 V.Więc jeśli zastosuje się to rozwiązanie, uważaj i przynajmniej sprecyzuj diodę niskiego spadku napięcia przewodzenia, taką jak BAT54.
@MichaelKaras Masz rację co do przesunięcia niskiego poziomu o Vf diody;należy to uwzględnić.Dla mnie dla 5V µC, V [IL] 0,8V wydaje się wyjątkowo niskie.Wydaje mi się, że generalnie znajduję specyfikację 0,3 Vcc (~ 1,5 V).
Jeśli Twój MCU ma specyfikację typu CMOS dla V IL , być może działa poprawnie.Nadal lubię projektować w sposób, który działałby, nawet jeśli specyfikacja byłaby znacznie niższa, aby uzyskać jak największą marżę operacyjną.Nawet różnica w określeniu diody o niskim spadku jest dobrym krokiem w tym kierunku, jeśli zdecydujesz się użyć tego typu obwodu.Twój obwód nie jest szczególnie dobry w przypadkach, w których mogą występować ujemne odchylenia na wejściu 12 V.
Zgadzam się.Projektowanie pod kątem marginesu to dobra rzecz.A ujemne napięcia na sygnale 12V mogą rzeczywiście siać spustoszenie w obwodzie.
John U
2017-07-24 19:23:00 UTC
view on stackexchange narkive permalink

Użyłbym optoizolatora, 100 Hz z łatwością mieści się w zakresie każdego przyzwoitego.Pojawia się na myśl 4n25 jako wspólny numer części i wiem, że może to być znacznie lepsze niż 100 Hz.

Problem z użyciem optoizolatora do rozwiązania tego problemu polega na tym, że zakłada on, że można pobierać prąd z sygnału 12V.Możesz zbuforować sygnał 12V, ale wymagałoby to dodatkowego zasilania.
Jestem pewien, że można uzyskać opto, które byłoby skuteczne przy prawie takim samym prądzie jak wejście mikro, od 12 V nie będzie obciążać zbytnio małej diody LED.
Upływ na wejściu cyfrowym wynosi zwykle od 10nA do 1uA (zależnie od temperatury i procesu).Nigdy nie spotkałem sprzęgacza optycznego, który działa nawet z 1uA.Typowy sprzęgacz optyczny sprzedawany jako niskonapięciowy, np.Broadcom ACPL-x6xL potrzebuje 1,6 mA.To od 1600 do 160000 razy więcej prądu.Ale potem, jak stwierdzam w mojej odpowiedzi, od wymagań zależy, co zadziała, więc nie odrzucam rozwiązania optycznego.
https://www.xkcd.com/386/
Jason Morgan
2017-07-25 14:55:29 UTC
view on stackexchange narkive permalink

Wybrana metoda zależy częściowo od tego, co robi sygnał wejściowy, jak się zachowuje i jaki może to mieć wpływ na obwód wejściowy i kod, który go odczytuje?

np. Czy to zawsze 12V? Czy ma kolce lub hałas? Ile prądu może napędzać? Czy można w to wprowadzić prąd? Czy pobieranie prądu wpłynie na cokolwiek innego? Czy jest to krytyczne dla bezpieczeństwa? ....

Z tego powodu nie ma uniwersalnej odpowiedzi na to pytanie, ponieważ „prawidłowe” rozwiązanie zależy od tego, co robi reszta systemu. Wybrane rozwiązanie spełniające wymagania będzie miało inny koszt i złożoność.

To powiedziawszy, ponieważ nikt jeszcze tego nie zasugerował, pójdę po wejście FET.

Można użyć JFET lub MOSFET i może to być wspólne źródło lub wspólne tryby drenu. Na przykład zwykły drenaż:

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

Zaletą trybu wspólnego drenu jest to, że umożliwia on podłączenie wejścia zarówno do analogowego (np. ADC), jak i cyfrowego pinu. Jeśli sygnał jest naprawdę cyfrowy, włączyłbym wyzwalacz Schmitta na wejściu procesora (jeśli taki posiada) lub dodałbym zewnętrzny bufor Schmitta do styku wejściowego procesora.

Zalety

  • Bardzo wysoka impedancja wejściowa
  • Częściowo izolowane wejście (może wytrzymać +/- 30V, w zależności od wyboru FET)
  • Możliwy analog
  • Minimalny wpływ na sygnał zewnętrzny
Transistor
2017-07-25 13:46:02 UTC
view on stackexchange narkive permalink

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

Rysunek 1. Interfejs izolowany optycznie.Użyj wewnętrznego podciągania w GPIO.

Optoizolator rozwiązuje kilka problemów.

  • Pełna separacja galwaniczna między obwodem 12 V a logiką 5 V.
  • Obsługuje brudny sygnał 12 V bez ryzyka.
  • Prostota.
Jason Han
2017-07-28 06:42:06 UTC
view on stackexchange narkive permalink

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

R1, R2 i C1 tworzą dzielnik napięcia z filtrem dolnoprzepustowym 1 kHz.Każdy niechciany sygnał wysokiej częstotliwości przemieszczający się na napięciu 12V może zostać odfiltrowany.Obliczenie częstotliwości filtra wynosi 1 / (2 pi R2 C1).Uwaga: Podstawa wymaga co najmniej 0,7 V do prawidłowego działania, należy zachować ostrożność podczas regulacji rezystora.

BJT jest używany, ponieważ jest bardzo powszechny w porównaniu z mosfetem.W przypadku, gdy 12 V jest nadal aktywne, ale 5 V dla twojego uC jest wyłączone, BJT nie przekaże prądu do styku i nie spowoduje uszkodzenia.

W przypadku programowania uC użyj wyzwalacza od wysokiego do niskiego, aby zliczać puls.Ponieważ ten obwód odwróci impuls.

Ayhan
2017-07-24 19:28:44 UTC
view on stackexchange narkive permalink

Generalnie wejścia MCU są już zabezpieczone diodami zaciskowymi, o ile masz rezystor o zoptymalizowanej wartości (wystarczająco wysoki dla cęgów i wystarczająco niski do próbkowania) i masz dobrą przepustowość obejścia między VDD i VSS, nienie muszę się tym martwić.Więc wystarczy rezystor.

edycja: Dzięki komentarzowi PeterJ, chcę to wyjaśnić nieco dokładniej.Najmniejsza moc pobierana przez MCU (zakładając, że nie jest w stanie uśpienia), pojemność obejścia, wartość rezystora;kiedy wszystkie z nich są w punkcie kompromisu - co jest łatwo bardzo ogólnym przypadkiem, w którym tylko warunek używa rezystora około 10 kOhm - jedyny rezystor jest w porządku do prostego zastosowania OP.

Jednym z problemów, które znalazłem z tym wiele lat temu, jest to, że chociaż może to nie uszkodzić niczego, Vcc wewnętrznie może nieco dryfować (do czasu przewodzenia diody) iw zależności od mikrokontrolera może wyrzucić takie rzeczy, jak odczyty ADC.
@PeterJ Działa dobrze, jeśli możesz zagwarantować, że przynajmniej tyle prądu zostanie usunięte z zasilania.W najgorszym przypadku dodaj atrapę rezystora…
Chociaż „paskudne”, widziałem to robione na wielu tanich dóbr konsumpcyjnych.Raz naprawiałem budzik, w którym sieć zasilająca była podawana do wejścia cyfrowego przez rezystor 10M jako odniesienie czasowe.Nic dziwnego, że chip był martwy.
Yash
2017-07-24 19:14:37 UTC
view on stackexchange narkive permalink

Możesz wybrać regulator napięcia LM7805 / LM7803 odpowiednio dla 5 V i 3,3 V. Zakładam, że uC jest izolowane od obciążenia wymagającego prądu, jeśli takie istnieje.

To jest twórcze.Ale będziesz działać poza specyfikacją przy dużej prędkości.Gdyby to było wszystko, co leżało, być może.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...