Kontroluję 4-pinowy wentylator PC PWM z PIC16F684 z prędkością wentylatora sterowaną odczytem czujnika zbliżeniowego ADC. To wszystko działa dobrze.
Początkowo nie planowałem używać mocy obrotomierza z wentylatora, ale ponieważ jest on dostępny, monitorowałem go za pomocą mojego lunety, aby zobaczyć, czy działa moje mapowanie między zbliżeniem a prędkością wentylatora.
Zauważyłem teraz, że gdy PWM uruchamia wentylator na 100%, sygnał tachometryczny (który jest otwartym odpływem wyciągniętym przez rezystor 10K) jest ładny i czysty:
Jednak gdy uruchamiam mniej niż 100%, jest głośno:
Zbliżenie na ten hałas:
Zgaduję, że ma na to wpływ sygnał PWM, ale chciałbym zrozumieć, dlaczego i jak mogę go wyczyścić, jeśli to konieczne w przyszłości. Naprawdę interesuje mnie to, co powinieneś zrobić, gdy widzisz taki hałas, jak znaleźć przyczynę i jak ją „naprawić”. Luneta wyzwala się dobrze, więc zastanawiam się, czy po prostu doprowadzę ją do zewnętrznego styku przerwania na PIC (RA2), który jest wejściem Schmitta Triggera z poziomami CMOS, to nie „zobaczę” hałasu, a ja może np. wyemitować czysty sygnał z innego pinu, aby zaniknąć diodę LED lub coś w tym rodzaju.
Czy ktoś może zatem ogólnie wyjaśnić, jak zabrać się do rozpoznawania i korygowania hałaśliwych sygnałów? A jeśli jest to zbyt ogólne, może właśnie ten konkretny problem? Również jeśli coś jest nie tak z moim obwodem, dobrze byłoby wiedzieć. Na poniższym schemacie wyświetlany sygnał to wejście TACH po lewej stronie obwodu:
AKTUALIZACJA
Po pomocnych sugestiach zarówno @MichaelKaras, jak i @techydude, wykluczyłem Q2 jako źródło jakiegokolwiek problemu poprzez całkowite usunięcie go z obwodu i bezpośrednie uziemienie wentylatora. Brak znaczącego wpływu na hałas.
Następnie zakodowałem zewnętrzne przerwanie na RA2, aby wyemitować „oczyszczony” sygnał z zapasowego styku (w tym przypadku RA1), co bardzo pomogło, ale wciąż migało z powodu fałszywych przerwań. (Więc ustawiłem przerwanie na pułapkę zbocza narastającego, a następnie przełączałem się na zbocze opadające po uruchomieniu i odwrotnie, odpowiednio ustawiając / resetując RA1).
Ale po dodaniu kondensatora 100nF do R3 (jako część sugestii @ techydude), teraz mam znacznie bardziej stabilną moc wyjściową. Poniższy zrzut ekranu to sygnał TACH po czyszczeniu przez wejście RA2 Schmitt Triggered i ponowne wyjście na RA1:
Odpowiedzi:
O twoim schemacie:
Wszystko wydaje się w porządku, możesz zwiększyć R2 do 10k, a nawet 100k, pojemność MOST jest tak mała, FAN będzie miał znacznie większą bezwładność wirowania niż opóźnienie wyłączenia w MOST, prawdopodobnie nawet z 1M. W ten sposób lokalizacja twojego 100R nie ma znaczenia i nie marnujesz żadnego mA. Jeśli nigdy nie przytrzymasz de uC w resecie, technicznie wcale nie jest to wcale konieczne, ponieważ twój uC aktywnie podniesie go lub obniży.
W przypadku sygnału PWM można sprawdzić, czy arkusz danych pozwala na zewnętrzne podciąganie do 12V, choć wątpię, czy i tak będzie miało to duże znaczenie.
O hałasie:
EDYCJA: Źle odczytałem twój wykres dla kHz, co jest głupie, jeśli pomyślisz o tym, gdzie to Hz. Część mojej historii nieco się zmieni (na przykład mowa o potrzebie MHz do pracy cyfrowej), ale ogólny pomysł pozostaje.
Zostawię cały post bez zmian, ale dla sygnału 100 Hz z szumem 30 kHz, zamiast 100 kHz z szumem> 5 MHz (również nie miało to sensu, prawda?), Możesz zwiększyć rezystory, które współdziałają z kondensatorami 10 razy, a także zwiększ kondensatory 50–100. Dzięki temu uzyskasz 1000 razy niższą częstotliwość filtrowania we wszystkich przykładach. Ale można również zwiększyć kondensatory o współczynnik od 10 do 20, aby uzyskać ostrzejsze krawędzie lub szybszą reakcję na sygnał zainteresowania, ponieważ 30 kHz jest bardzo dalekie od 100 Hz.
Uważaj więc ten post za napisany z myślą o wysokich częstotliwościach i pomniejszaj pomysły, co znacznie ułatwi ich wdrożenie! (Zwłaszcza cyfrowe odrzucenie w 3.)
Koniec edycji
Ponieważ robisz tak dobry przypadek użycia do pracy z metodami redukcji hałasu, postaram się stworzyć taki, który będzie pasował do twojej sytuacji.
Każdemu czytającemu, należy pamiętać:
Chodzi tylko o szum w sygnale cyfrowym
W sygnale cyfrowym można założyć, że są tylko dwa napięcia, które są zainteresowane „włączeniem” i „wyłączeniem”. Wszystko pomiędzy jest bezcelowe i należy do hałasu lub zła. W sygnale analogowym musisz wiedzieć o każdym poziomie napięcia i wykonać pewne faktyczne filtrowanie z obciążeniami C, L itp.
Problem w twoim sygnale polega na tym, że ujemne impulsy hałasu na wysokim poziomie i dodatnie impulsy hałasu na niskim poziomie są bardzo blisko siebie, więc prosty standardowy wyzwalacz, nawet z regulowanym poziomem, nie może absolutnie zagwarantować, że nigdy nie dostaniesz zmieszany.
Twoje opcje:
1. Zmień nastawienie:
Pozytyw ma bardzo niskie ujemne skoki, ponieważ twoje podciąganie nie może wygrać z hałasu. Najłatwiejszą rzeczą, jaką możesz spróbować, jest zmniejszenie tego oporu. Istnieje ryzyko, że spowoduje to również zwiększenie wartości szczytowych sygnału wyłączenia, więc nie zawsze może to działać. Ale jest bardzo możliwe, że da ci to trochę przestrzeni między kolcami, aby ustawić prostą histerezę.
2. Zmień poziomy napięcia
Możesz łatwo, jeśli pozwala na to wentylator, zmienić Tacho na wyższy poziom napięcia i dodać stan pośredni:
symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab
Teraz może być wystarczająca przestrzeń między wysokim i niskim skokiem, aby upewnić się, że MOST jest zawsze włączony, nawet gdy występują ujemne impulsy i zawsze wyłączony, nawet jeśli występują dodatnie impulsy. Osiągnięcie wartości zadanej w nowej sytuacji może wymagać kilku diod, zenerów lub rezystorów, ale jeśli impulsy sygnału ujemnego pozostaną takie, jakie są, nie powinny wyzwalać MOSFETU, o ile nie zastąp go tym, który ma próg bramki poniżej 2 V.
3. Dodaj „powolną” histerezę:
Jest to sztuczka, która jest powszechnie stosowana, gdy wiesz, że kolczasty sygnał szumowy jest co najmniej o rząd wielkości większy niż sygnał, który Cię interesuje. Spowoduje to niewielkie opóźnienie sygnału, więc nie można go użyć w sytuacjach, w których dokładny moment ważna jest zmiana włączania / wyłączania.
Ale dla sygnału, w którym chcesz poznać tylko jego kształt lub częstotliwość, jest to bardzo solidna metoda. Zasadniczo zaczyna się uruchamiać, gdy napięcie przekracza próg, ale kończy tę akcję tylko wtedy, gdy pozostaje. Istnieje wiele sposobów na zbudowanie jednego.
Możesz to zrobić w kontrolerze (co jest najłatwiejsze w liczeniu komponentów): możesz wyzwolić na flance, a następnie próbkować trochę więcej wartości z wystarczającą prędkością, aby zobaczyć wysoki poziom między skokami hałasu, ale nie mylić o pominięciu całego okresu niskiego. Następnie dokonujesz predefiniowanej oceny na podstawie znajomości twojego sygnału i hałasu. Na przykład, jeśli możesz próbkować przy 10 MHz, możesz przechwycić 50 próbek i mieć pewność, że najwyższa częstotliwość 100 kHz nie zostanie zignorowana, jeśli zastosujesz zasadę większości. Tzn .: co najmniej 25 musi być niska, aby rzeczywiście była niska. Twoje kolce są tylko bardzo cienkie i przez większość czasu jest to oryginalny sygnał, więc to może działać, ale liczbę większości można dostosować. Będzie to działać również z próbkami 1 MHz i 6 lub 7, ale będzie to mniej niż rzeczywista większość, więc może być tam ponownie ryzyko.
Możesz to zrobić również zewnętrznie: ale jest to WIELE WIĘCEJ skomplikowane niż dodanie prostego filtra, szczególnie gdy patrzysz na wynik z uC z pewną histerezą na wejściu. Ale fajnie jest o tym myśleć, więc:
zasymuluj ten obwód
U1 to dowolny odpowiedni wzmacniacz operacyjny lub komperator. Komparatory są lepszymi przełącznikami, często z lepszym swingiem, ale dla sub-MHz OpAmp z przyzwoitym swingiem poradzi sobie łatwo.
Chociaż tego typu histerezę można zbudować z co najmniej jednym rezystorem mniej, ten jest łatwiejszy do wyjaśnienia i jako taki łatwiejszy do modyfikacji.
Najpierw wyobraź to sobie bez kondensatora:
Po pierwsze, zobacz, że na dzielnik rezystorów ma wpływ wyjście U1, pociągnie go nieco niżej lub wyżej poprzez pozorny opór 20kOhm. Powiedzmy, że na dodatnim wejściu U1 jest napięcie 1,1 V zaokrąglone w dół, gdy jego moc wyjściowa wynosi 0, a 3,9 V zaokrąglone w górę, gdy jego moc wyjściowa wynosi 5 V.
Jeśli wejściowe Tacho w stanie ustalonym jest wysokie, moc wyjściowa U1 będzie niska, ze względu na odwracający charakter wejścia do Tacho. Tak więc ujemny sygnał wejściowy będzie, znowu z powodu dodatkowego rezystora podciągającego, około 2,3 V. Ponieważ dodatnie napięcie wejściowe wynosi tylko 1,1 V, napięcie wejściowe musi spaść poniżej 2,2 V, aby ujemne napięcie wejściowe było niższe, a wyjście odwrócone.
Kiedy wyjście się odwróci, ujemne wejście zobaczy 3,6 V (ponieważ w tym momencie sygnał wejściowy wynosi 2,2 V, wyjście U1 wynosi 5 V, więc ich środek, wykonany przez rezystory 10k, wynosi około 3,6 V), ale dodatni napięcie wejściowe zmieniło się z 1,1 V na 3,9 V, więc wartość ujemna jest nadal poniżej wartości dodatniej, a wartość wyjściowa pozostanie 5 V.
Jeśli sygnał teraz szybko „przerywa” i przeskakuje z powrotem, moc wyjściowa U1 szybko wróci ponownie, ale wtedy skok musiał już spaść poniżej 2,2 V, więc to lepiej niż nic.
Jeśli sygnał spadnie dalej do zera, stabilna sytuacja będzie tylko silniejsza, ujemny sygnał wejściowy spadnie do 2,5 V (ponieważ zakładamy, że tacho WENTYLATORA jest wystarczająco mocne dla obniżenia), a dodatni pozostanie na poziomie około 3,9 V.
Teraz sygnał musi wzrosnąć powyżej 2,7 V, aby wyjście mogło się odwrócić. Bardzo prawdopodobne, że 95% twoich skoków zostanie już zignorowanych.
Dodanie kondensatora:
W przypadku kondensatora przychodzący sygnał musi dostarczyć wystarczającą ilość energii do wystarczającego czasu na naładowanie lub rozładowanie kondensatora. W efekcie jest to już filtr RC. Jakikolwiek skok, który szybko zanurza się, a następnie odzyskuje, nie będzie w stanie rozładować kondensatora.
Wartość C zależy oczywiście od sygnału źródłowego i sygnału szumu. Zaparkowałem piłkę 510pF dla sygnału źródłowego 100 kHz w porównaniu z czasem trwania skoku najwyżej 1us, ale tak naprawdę nie zrobiłem dużo matematyki, to po prostu przeczucie, że może być to bliskie tego, co zadziała.
4. Odfiltruj hałas
To trochę tak, jak po prostu filtrowanie sygnału analogowego. Możesz użyć prostej sieci RC, jak omówiono w poprzedniej sekcji:
zasymuluj ten obwód
Ponieważ skoki szumów są równe lub mniejsze niż 1us, nie mogą one dokonać bardzo znaczącej zmiany napięcia na kondensatorze, ponieważ jego czas RC wynosi 5us. Oznacza to, że energia w kolcach jest spłaszczona do średniej. Ponieważ widzisz wysokie szczyty i niskie spadki na szczytach, możliwe jest nawet, że średnie będą bardzo zbliżone do 0 V i 5 V, ale można to powiedzieć tylko z lepszymi zdjęciami lub po prostu eksperymentem. Ponieważ podajesz go do pinu uC, czas RC prawdopodobnie wystarczy, aby zobaczyć go jako wysoki lub niski. Daje to niewielkie zniekształcenie z powodu wolniejszego ładowania niż rozładowania, spowodowanego przez rezystor podciągający. Pewna poprawka wartości może spowodować, że będzie to znikome.
Jeśli to nie wystarczy, możesz dodać więcej komponentów, ale bardzo szybko przesadzasz, gdy dominujący hałas jest co najmniej 10 razy „szybszy” niż twój sygnał.
Możesz dodać cewkę indukcyjną 4,7 uH szeregowo z rezystorem, aby wygładzić kilka boków o wysokiej częstotliwości, może nawet 10 uH.
Ale szczerze mówiąc, w przypadku „karmienia go uC” jedynym powodem eksperymentowania z L w sygnale twojego rodzaju jest znalezienie równowagi, w której R jest duże, C jest małe, a L po prostu pomaga wygładzić niektóre flanki, aby R2 / R1 były wystarczająco małe, aby zignorować różnicę czasu narastania i opadania. takie jak R1 wynoszący 33k, C wynoszący 150pF i L w szeregu z R1 równy 56uH. A może koralik ferrytowy zamiast cewki indukcyjnej zależy nieco od ostrości twoich kolców.
Ale już to przesadzam, powiedziałbym.
źródło
Hałas taki jak tacho wentylatora jest powszechny, ponieważ zespół obwodów (który zwykle zawiera czujnik Halla) w wentylatorze, który generuje sygnał wyjściowy tacho, jest wyłączany / wyłączany na częstotliwości PWM (gdy wyjście PWM jest na cokolwiek innego niż 100% -On), nie tylko zasilanie samego silnika. Pewnie będą mieli pewną pojemność, aby wygładzić zasilanie tego obwodu, ale biorąc pod uwagę, powiedzmy, zasilacz wentylatora 12 V, o ile pojemność jest wystarczająca do utrzymania kilku woltów między minimalnymi okresami wyłączenia PWM, to wystarczy, aby oba napędzały Halę Czujnik efektu i podciągnij wyjście tacho (jeśli wentylator ma własne podciągnięcie na wyjściu tacho), aby zapewnić możliwy do odzyskania sygnał wyjściowy. Tak, fani są niechlujni, kiedy PWM ich zapasy. Niektóre wentylatory oferują wejście prędkości PWM, które jest oddzielne od ich zasilania + 12V.
Twój PWM wydaje się mieć około 27 kHz. Tak więc dobrą rzeczą w tej konkretnej sytuacji jest to, że wyjście tacho @ 100% wydaje się wynosić około 800 Hz, co stanowi mniej niż 1/30 częstotliwości PWM, więc filtrowanie tego wyjścia tacho w celu pozbycia się większości szumów PWM jest łatwe i warte zrobienia. Tutaj jest późno, więc CBF pracowałbym nad cielętami, ale ponieważ jest otwarty-odpływ i to twoje napięcie zasilające (w wentylatorze) jest molestowane przez PWM, ograniczenie między tacho i szyną + 12V (nie PWM wyjście z obwodu napędu wentylatora) będzie prawdopodobnie lepszą opcją niż ograniczenie tacho do ziemi. Spróbuj obu i zobacz. Zacznij od ceramicznej nasadki 100n o odpowiednim napięciu i zobacz, jak to wygląda.
Dzięki wejściu Schmiggera na PIC możesz nawet uciec bez filtrowania tego wyjścia tachografu przed umieszczeniem go w swoim PIC, ale masz różnicę częstotliwości, która z łatwością pozwoli ci przejść długą drogę do czyszczenia w górę.
Jeden możliwy problem z obsługą sygnału tacho z wentylatora: jeśli wentylator wyciąga go do +12 za pomocą 10k wewnętrznie (niektórzy robią, inni nie), a ty również przyciągasz sygnał tacho do swojego Szyna + 5 V, wtedy ją ściągasz! Istnieją różne konfiguracje obwodów, aby sobie z tym poradzić, w zależności od napięcia zasilania wentylatora, siły podciągania itp. Spróbuj zmierzyć to za pomocą multimetru i daj nam znać.
źródło
Możliwym źródłem szumu na sygnale TACH może być to, że IRF150 FET nie jest wystarczająco niskiej impedancji ON. Może to być spowodowane tym, że FET RdsON jest dość wysoki lub FET nie jest w pełni WŁĄCZONY przy podanym napięciu napędu bramki.
Gdy prąd FAN włącza się i wyłącza wraz z sygnałem PWM, nastąpi spadek rezystancji FET, co powoduje wzrost wartości odniesienia „GND” wentylatora w górę i w dół, co przekłada się na szum widoczny na sygnale TACH.
Możesz to sprawdzić, aby sprawdzić, czy efekt, który opisuję, jest taki, umieszczając przewód GND zakresu na odpływie FET, a następnie spójrz na sygnał TACH. Sygnał wyglądałby znacznie wyraźniej.
Rozwiązaniem byłoby wybrać FET ze znacznie niższym RdsON, gdy jest dostarczany z napędem bramkowym zapewnianym przez twój system.
Innym możliwym pomysłem jest użycie P-FET do przełączenia przewodu + 12V wentylatora zamiast przewodu GND.
Należy pamiętać, że stosowane ustawienie rezystora bramy powoduje utratę części potencjalnego napędu bramy. Przenieś rezystor 1K na drugą stronę 100 omów.
źródło
To brzmi jak praca dla filtra dolnoprzepustowego. Musisz utrzymać użyteczny sygnał dla f 1 około 1 kHz i usunąć obrażający sygnał dla f 2 blisko 25 kHz. Częstotliwość odcięcia można wybrać jako średnią geometryczną f 1 i f 2 (suboptymalna, ale prosta):
f c = sqrt (1 * 25) = 5 kHz.
Zakładając, że wystarczy prosty filtr RC, a masz już rezystancję w obwodzie TACH (R 3 = 10 kOhm), odpowiednią wartość kondensatora należy obliczyć, aby pasowała do kosztu czasowego 5 kHz :
C = 1 / (2 * pi * fc * R) = 1 / (6,28 * 5000 * 10000) = 3,2 * 10-9 F.
Wystarczy więc wlutować kondensator 3nF między linią TACH a ziemią. Zmniejszy to szum o wysokiej częstotliwości o współczynnik 20 lub więcej, co powinno wystarczyć do zastosowania.
źródło