cze 2, 2013 - Zasilanie    Komentowanie nie jest możliwe

Filtrowanie zasilania

filtracja_01[1]

Tym razem piszę artykuł jako uzupełnienie do poprzedniego mojego artykułu na temat prawidłowego zasilania mikrokontrolera. Pomimo moich wysiłków okazuje się, że niektórzy ludzie a szczególnie niektórzy początkujący którzy tam wchodzą – w zasadzie nie czytają całości „bo im się chyba nie chce” i przechodzą ew do ostatnich dwóch schematów strzelając na ślepo, tzn wybierając przypadkowo któryś z nich bez zrozumienia niestety. Nie mówię tu o wszystkich – no ale obiecałem sobie, że po tych dwóch artykułach, jeśli jeszcze mnie ktoś zapyta jak to jest z tym filtrowaniem na maila czy na Skype, to sorki ale nie odpowiadam, bo szkoda strzępić języka jeśli komuś nie chce się przeczytać i docenić chociaż troszkę pracy którą w to wszystko wkładam. Reasumując – tym razem jeszcze mniej tekstu a więcej obrazków (z oscyloskopu i zdjęć układu testowego) – może to jakoś przemówi do części osób.

Bierzemy więc pod uwagę NAJPROSTSZY z możliwych układów testowych. Potrzebne będą nam:

1. procesor ATmega8
2. napięcie zasilania +12V
3. stabilizator 78L05
4. jedna dioda LED (będzie ona naszym obciążeniem na porcie)
5. rezystor i kilka kondensatorów (3x100nF, 1×2,2uF)
6. program do procesora jak niżej:

_PROGRAM[1]

Sam układ po zmontowaniu na zwykłej płytce stykowej wygląda tak:

zd_001[1]

Jak widać w takim układzie bez podłączonego ANI JEDNEGO kondensatora i bez obciążenia w postaci diody LED na oscylogramie poniżej (wyłączona składowa stała) widać tylko i wyłącznie tętnienia/szumy na samym stabilizatorze liniowym 78L05, jak widać są one na poziomie ok 40 mV (w lewym dolnym rogu widać że na jedną działkę przypada 20 mV). Przy czym przedstawiam zasilanie nawet bez podłączonego procesora.

zd_001a[1]

No dobrze w takim razie do roboty – zobaczymy teraz MUR CHIŃSKI, albo ścianę średniowiecznego zamku  …. UWAGA! podłączamy teraz do procesora diodę LED ale bez żadnego rezystora (MASKARA – NIGDY TAK NIE RÓB na własnym procku bo go zniszczysz – ja jeden poświęcam dla nauki)  W takim razie dioda LED będzie nam co 20 ms zżerać maksymalną ilość prądu jaki procesor może z siebie wydusić na pinie którym ją steruje. Może go to nawet uszkodzić. Ale przecież niektórzy bez przemyślenia i bez sensu tak podłączają diody LED do procesorów bez żadnego rezystora! …. Nawet pewna książka i to rzekomo także do nauki języków programowania krzewi taką wiedzę z afrykańskiego buszu  ….

zd_002[1]

I od razu podłączamy sondę oscyloskopu do pinu VCC procesora – proszę zobaczyć co się dzieje i co WAŻNE! nie są to ŻADNE zakłócenia z zewnątrz – jak to niektórzy myślą albo co gorsze piszą. To są zakłócenia na zasilaniu generowane przez sam mikrokontroler.

zd_002a[1]

Spójrz w lewy dolny róg jaka skala! – 500 mV na jedną działkę – czyli tętnienia wzrosły prawie do 1V ! wyobrażasz to sobie – a mamy podłączoną w ten sposób TYLKO jedną diodę LED. Błędnie podłączoną, a przecież ludzie potrafią wiele diod LED w ten sposób podłączyć. I wydaje im się dodatkowo, że jeśli będą zasilać całość z baterii czy akumulatora to nie przedostaną się żadne zakłócenia! BZDURA – widzisz teraz ??? te zakłócenia nie są z zewnątrz i dlatego trzeba FILTROWAĆ !!!! to dlatego przy nogach procesora potrzebna jest także para kondensatorów. Co więcej sam kondensator 100nF nie wystarczy – in filtruje zakłócenia i szpilki innej częstotliwości niż kondensator elektrolityczny. Ale proszę bardzo udowodnię to. A także udowodnię to dlaczego muszą być pary kondensatorów filtrujących zarówno przy stabilizatorze jak i przy procesorze! Więc podłączmy do układu na początek TYLKO jeden kondensator 100nF na razie przy nogach zasilania wyjściowego stabilizatora.

zd_003[1]

I zobaczmy czy ten jeden kondensator pomógł cokolwiek jeśli chodzi o stan napięcia na oddalonym bądź co bądź pinie VCC procesora.

zd_003a[1]

Proszę bardzo – no coś drgnęło w lepszą stronę, w porównaniu do oscylogramu wyżej tętnienia nieco się poprawiły. Tętnienia spadły może do ok 600 mV, to nadal bardzo źle. Ale ile ??? kilkadziesiąt mV ??? co to jest ???? W takim razie dołóżmy teraz kondensator 100nF ale bezpośrednio przy nogach VCC i GND procesora:

zd_004[1]

I od razu patrzymy na oscyloskop czy tętnienia zmaleją:zd_004a[1]

Widzisz teraz ?  …. no znaczna poprawa – tętnienia spadły ponad połowę – teraz są na poziomie ok 200-250 mV !!! Zobacz co daje już jeden kondensator 100 nF. Ale idziemy za ciosem i sprawdźmy czy sprawę poprawi dodatkowy kondensator elektrolityczny o pojemności powiedzmy 2,2uF bo taki mam pod ręką:

zd_005[1]

oscylogram:

zd_005a[1]

Proszę BARDZO ! jeszcze lepiej  Pomimo tak tragicznie podłączonej diody LED – pomimo tak wielkich zakłóceń generowanych przez sam mikrokontroler !!!! udało nam się tak mocno je zniwelować. No niech ktoś mi po tym powie jeszcze raz że niepotrzebne są kondensatory filtrujące albo że wystarczy sam kondensator 100 nF!!! Proszę bardzo dla lepszego porównania dwa wykresy na jednym obrazku ilustrujące poziom tętnień tylko z jednym kondensatorem filtrującym 100 nF po lewej oraz z dwoma kondensatorami po prawej:

zd_005b[1]

Specjalnie zmniejszyłem podziałkę do 100 mV na jedną działkę oscyloskopu aby lepiej było widać – dwie poziome czerwone linie pokazują różnicę. Weź też pod uwagę fakt, że to TYLKO jedna dioda i to bez rezystora robi taki koszmar na zasilaniu, na nogach VCC procka.

OK w takim razie zróbmy jak się należy, czyli dodajmy rezystor do diody LED aby nie chłeptała za dużo prądu i sprawdzimy czy poprawi nam to sytuację na pinach zasilania:

zd_006[1]

Oscylogram do tego:

zd_006a[1]

Widzisz TERAZ?  znacznie się zmieniło prawda – zniknęły te prostokątne wyraźne tętnienia od zapalania i gaszenia diody a tak na prawdę od sporych prądów jakie co chwile przepływały TYLKO przez jeden pin portu w mikrokontrolerze. Oczywiście nie jest to jeszcze nadal idealnie odfiltrowane zasilanie – ale to też tylko prosty test na zwykłej płytce stykowej a nie docelowym PCB, gdzie można prawidłowo poprowadzić ścieżki zasilania i co najważniejsze masę (GND) , wylać POLYGON itd ….

zatem DWA WNIOSKI na koniec!

1. ZAWSZE STOSUJ DWA KONDENSATORY FILTRUJĄCE (para elektrolit i ceramik)
2. NIGDY NIE PODŁĄCZAJ DIOD LED BEZ REZYSTORÓW!

…. i jeszcze jedna uwaga, nie wpadnij przypadkiem na pomysł, że zastosowanie wielkiego kondensatora np 470uF albo jeszcze większego (o zgrozo) 1000uF jak to niektórzy próbują robić – polepszy sprawę – bo na pewno nie polepszy – POGORSZY !!! kondensator elektrolityczny maksymalnie 100 uF nie więcej przy procesorze i to jak chcesz żeby było jak najlepiej – to daj ten kondesnator typu LOW ESR o niskiej impedancji wewnętrznej – zamiast próbować zwiększać jego pojemność.

KONIEC – więcej nie tłumaczę już nikomu od nowa na maila czy na Skype – co to jest filtracja zasilania oraz skąd się biorą zakłócenia – i że wcale nie tylko z sieci energetycznej albo z KOSMOSU!


 

Mikrokontroler – PRAWIDŁOWE ZASILANIE

 

UZUPEŁNIENIE !

Na prośbę kilku kolegów z naszego forum, przeprowadziłem i zademonstruję teraz jeszcze dwa doświadczenia. Celem tego doświadczenia jest pokazanie dobitnie co niektórym kolegom początkującym, którzy próbują upatrywać nadzwyczajnego i CUDOWNEGO działania ogromnych pojemności. Tacy  koledzy pewnie nawet po przeczytaniu powyższego artykułu powiedzieliby że to bzdury i że wystarczy zamiast tych par kondensatorów dodać jeden ogromny kondensator elektrolityczny i jak to oni mówią czasem na forach „MUSI POMÓC” ….. tymczasem nawet nie wiedzą jaki to wielki ZONK i jaka to BZDURA  ….. W układach z mikrokontrolerami wręcz nie wolno dodawać zbyt dużych pojemności, przed tym także wciąż ostrzegam i mówię – ale też mało to dociera. Piszę bowiem np w poradniku o poprawnym zasilaniu mikrokontrolera żeby maksymalnie dawać przy procesorze 100uF i co z tego ????? jak co jakiś czas wpada do mnie na maila, na skypa czy na forum taki początkujący i po przeczytaniu (rzekomym) mojego poradnika – zwraca się do mnie z pytaniem – czy on może dać u siebie 470 uF albo 1000 uF albo nawet 2200 uF bo akurat taki ma pod ręką – natomiast nie ma 100uF albo mniejszego  …. eeeeh no nie wytrzymam….. to już szaleństwo  … zaraz pokażę na oscylogramach BEZSENS stosowania tak wielkich pojemności, które rzekomo lepiej będą filtrować zasilanie przy procku. Ale dodam jeszcze jedną ważną rzecz. ZASTANÓW SIĘ …. jeśli dasz kondensator np 1000 uF, a procesor do poprawnej pracy potrzebuje zaledwie kilku mA albo w uśpieniu nawe uA, – to teraz taki najprostszy przypadek – chcesz wyłączyć na chwilę zasilanie żeby się procesor zresetował – prawda ??? tymczasem ta ogromna pojemność działa jak mały akumulatorek podtrzymujący zasilanie …. i potem za chwilę taki początkujący znowu wpada na jakieś forum z pytaniem i płaczem:

„procesor nie chce mi się zresetować nawet po wyłączeniu całkowicie zasilania z płytki PCB  ”

No i dobrze ci tak – ja – odpowiadam  – a po co dawałeś taki wielki elektrolit – teraz może w końcu zapamiętasz że tak się nie robi hmmm?

ale dobra przejdźmy do oscylogramu. Do procesora naszego testowego dodajemy krowę – 1000 uF plus oczywiście jeden ceramik 100 nF żeby zejść z tętnieniami do skali chociaż 50 mV na działkę. Bez ceramika nie udałoby się to z samym TAK DUŻYM elektrolitem uwierzcie mi – już nie będę wstawiał oscylogramu jak z początku tego artykułu – prezentującego MUR CHIŃSKI  ….. ale ok spójrzmy co nam daje dołożenie takiego 1000 uF.

OLYMPUS DIGITAL CAMERA

Zaglądamy jednocześnie na oscyloskop:

zd_008a[1]

Widzimy 50 mV na działkę – czyli tętnienia w sumie na poziomie dużym 200 mV widać tylko pewną drobną zmianę w kształcie tych kwadratowych impulsów, które teraz mają bardziej łagodne zbocza z jednej strony prawda ??? Więc jeśli chodzi o filtrowanie zasilania dodanie dużej pojemności można powiedzieć, że NIC NAM NIE DAŁO  …. spójrz wyżej na oscylogram z kondensatorem 2,2 uF …. tętnienia są dużo mniejsze bo na poziomie ok 100 mV !!! …. A te złagodzone zbocza ? cóż to za korzyść ???? żadna. Oczywiście trzeba tu jeszcze wziąć pod uwagę przeróżne częstotliwości z jakimi występują przełączenia prądów na pinach portów. Przecież tu dla przykładu pokazuję tylko JEDEN PIN obciążony i zwiększyłem nieco częstotliwość bo dałem odstęp między impulsami 5ms, wyżej było 20ms. Ale wyobraź sobie że w rzeczywistym układzie takich wyjść i przebiegów może być wiele i o różnej częstotliwości – więc w zależności od sytuacji tak na prawdę – czasem może się przydać różna pojemność i jak już – to warto wręcz wziąć oscyloskop i nawet ręcznie do danego egzemplarza urządzenia dobierać pojemność aby uzyskać jak najlepsze przebiegi na VCC.  Za to jeśli nie mamy oscyloskopu to ….

no właśnie ??? to skoro nie dodawać tak dużych pojemności to jak można sobie pomóc tak w ciemno ??? Chyba najważniejszym celem naszym będzie próba maksymalnego zmniejszania amplitudy tych tętnień nawet kosztem tego że będą prostokątne prawda ?   No to proszę – jest na to CUDOWNY ŚRODEK ale na pewno nie duża pojemność. Chcesz wiedzieć jaki ????

proszę bardzo – zobacz – do pary kondensatorów o jakiej mówię – zamiast dużego elektrolita dołóż jeszcze kolejne kondensatory 100 nF (ceramiczne) … spójrz ja dołożyłem teraz trzy – czyli łącznie mam 4 kondensatory ceramiczne i do tego jeden elektrolit mały 2,2uF

zd_007[1]

No i proszę – ze zdziwieniem patrzymy na oscyloskop, przecierając oczy ze zdziwienia  … szok! nie dodaliśmy wielkiego kondensatora elektrolitycznego – tylko 3 dodatkowe oddzielne ceramiki 100 nF na linii zasilania VCC w pobliżu nóżek VCC procesora i CUD – spójrz sam – porównanie tego co wyżej z tym co teraz na oscylu:

zd_007b[1]

Spójrz sam ! … po lewej widać oscylogram z góry z kondkiem 1000 uF a po PRAWEJ efekt dodatkowych 3 kondesnatorów ceramicznych – WIDAĆ RÓŻNICĘ ??????

No i niech mi teraz ktoś zechce dodawać duże pojemności do procesorów – to mu ręce poucinam elektroniczną maczetą

Życzę więc wszystkim przyjemnej filtracji we własnym zaciszu domowym, niech każdy filtruje jak potrzebuje.

LINKI:   01

Comments are closed.