
Jak mówi słynny dowcip - każde urządzenie elektryczne po włączeniu do prądu działa lepiej. Zasilacz (lub bateria czy panel słoneczny) jest integralnym elementem każdego sprzętu. Kiedyś zasilacze projektowało i konstruowało się razem z urządzeniem. Dziś, w dobie tanich zasilaczy impulsowych 12V 4A za 6 zł, raczej wybiera się z półki gotowy egzemplarz. No chyba, że wymagamy specjalnych parametrów.
Nowoprojektowany (lub naprawiany) zasilacz należy jednak przetestować. Początkujący elektronik zakończy na pomiarze napięcia multimetrem nieobciążonego zasilacza. Elektronik lepszego sortu obciąży czymś zasilacz i także dokona pomiaru napięcia, a mistrz swojego fachu zbada przebieg napięcia na oscyloskopie w całym zakresie dopuszczalnych prądów obciążenia.
Czynność zbadania charakterystyki wyjściowej zasilacza jest jednak czasochłonna i wymaga posiadania aktywnego obciążenia z regulowanym prądem. Zwykle jest ono sterowane ręcznie. Serwisując konsole, wielokrotnie spotkałem się z sytuacją, że urządzenie nie działało poprawnie z winy źle dobranego zasilacza. Bo o ile np. mając impulsowy zasilacz 1A 9V spodziewamy się, że przy poborze 1A napięcie faktycznie na wyjściu będzie wynosić 9 V z małymi może wahaniami, to z zasilaczami transformatorowymi sprawa nie wygląda już tak jednoznacznie. Ja postanowiłem wykonać cyfrowy miernik zasilaczy.
Chciałem, aby tester komunikował się z PC po USB i mierzył zarówno typowe zasilacze (powiedzmy od 3V do kilkudziesięciu 12V przy poborze do 4A), ale też zasilacze (przetwornice) wysokonapięciowe do zasilania lamp nixie (np. 200V) z krokiem zdejmowanej charakterystyki 1 mA.
Źródło prądowe
Najprostszym sposobem obciążenia zasilacza zadanym prądem jest wykorzystanie źródła prądowego na tranzystorze BJT NPN.

Wzmacniacz pilnuję, aby napięcie na rezystorze pomiarowym R było takie same jak napięcie referencyjne. Ustalając odpowiednio rezystor, ustalamy stały prąd emitera, który jest w przybliżeniu równy prądowi kolektora, czyli temu obciążającego testowany zasilacz. Zmieniając napięcie Vref możemy wymuszać różny prąd.
Zalety:
+ prosta budowa, wymaga jednego elementu aktywnego (tranzystor NPN) i wzmacniacza OP,
+ wzm. op., nawet jeśli nie jest rail-to-rail może być zasilany jednobiegunowo nawet z 5V (np. z USB),
Wady:
-maksymalny prąd ograniczony iloczynem B tranzystora (która nie jest duża dla tranzystorów mocy) i prądu wyjściowego wzmacniacza operacyjnego,
-dla dużych prądów Ie nie jest równe Iq (Ib nie jest już pomijalny)
O ile pierwszą wadę można wyeliminować stosując układ Darlingtona, to jednak druga wada nie jest już do pominięcia i dlatego lepszym pomysłem zamiast tranzystora NPN jest tranzystor typu MOSFET.

Niestety tranzystor MOSFet wymaga napięcia od 6 do nawet 10V na bramce aby w pełni otworzyć kanał dren-źródło, zatem napięcie zasilania wzm. op. musi być jeszcze wyższe - chcąc zasilać `tester` z USB będzie potrzeba dodania przetwornicy napięcia dodatniego. Napięcie ujemne także może się przydać aby skuteczniej zatykać kanał - przetwornice napięcia +15V i -15V zbudowałem na MC33063.
Po zbudowaniu rzeczywistego układu okazało się, że wzmacniacz operacyjny `nie nadąża` otwierać i zamykać tranzystora MOSFET - konieczne było dodanie wtórnika komplementarnego z tranzystorów NPN i PNP (jeden wtórnik skutecznie wciąga prąd, a drugi wyciąga)

Sterowalne napięcie referencyjne
Sterowanie powyższym źródłem prądowym dokonuje się za pomocą napięcia. Niestety Atmega8 nie posiada przetwornika DC-AC, stąd konieczność zaimprowizowania prostego przetwornika na drabince R-2R. Przeznaczając 8 końcówek mikrokontrolera można otrzymać 8 bitowy przetwornik:

Pomiar prądu obciążającego
To, że sterowane źródło prądowe wymusza prąd X nie oznacza, że taki prąd faktycznie przez zasilacz płynie - wszakże może dojść do sytuacji, że np. przekraczamy wydajność prądową zasilacza. Pomiar faktycznego prądu obciążającego wykonuje się jako pomiar napięcia odkładanego na rezystorze pomiarowym (1R). Zbyt duży rezystor pomiarowy będzie powodował nadmierny spadek napięcia i niepotrzebne wydzielanie mocy, z kolei zbyt mały - małe spadki napięcia dla małych prądów i słabą dokładność nastaw i odczytu dla małych prądów. Stąd napięcie odłożone na tym rezystorze należy wzmocnić - należy rozważyć zastosowanie kilku (N) różnych wartości wzmocnień.
Można oczywiście wykorzystać N wzmacniaczy operacyjnych (w konfiguracji nieodwracającej) z różnymi współczynnikami wzmocnienia i podać to na N kanałów ADC atmegi, jednak jest to marnotrawstwo i lepiej zrobić jeden wzmacniacz o sterowanym wzmocnieniu. Jak to zrobić sprytnie i tanio?
Np. tak:

Atmega, włączając jeden z trzech różnych rezystorów ustala odpowiednie wzmocnienie (włączanie rezystora czyli zwarcie jego do masy odbywa się poprzez ustawienie odpowiedniego wyjścia atmegi na 0, wyjścia podłączone do pozostałych rezystorów - w stan wysokiej impedancji).
Pomiar napięcia zasilacza
Tester miał w zamyśle służyć do badania zasilaczy w szerokim zakresie napięć - od 3V do nawet 200V. Podanie wprost napięcia z zasilacza na kanał przetwornika AVR spowodowałoby przesycenie wartości pomiaru dla napięć powyżej 5V (stosując w szeregu rezystor, clamp-diody w atmedze zabezpieczają pin przed uszkodzeniem przy podaniu napięć wyższych od zasilania). Z kolei podanie na kanał przetwornika napięcia podzielonego np. przez 40 spowodowałoby, że dla niskich napięć dokładność odczytu byłaby tragiczna - stąd konieczność podziału napięcia w różnych proporcjach (i podania na różne kanały przetworników atmegi). Pomiar odbywa się poprzez odczyt kolejno kanałów ADC1, ADC2, itd aż do napotkania pierwszego kanału, na którym nie nastąpiło już przesycenie.

Komunikacja z PC, oprogramowanie sterujące
Jak już zostało nadmienione wcześniej - komunikacja z PC odbywa się po USB (za pomocą biblioteki V-USB). Atmega obsługuje kilka żądań generowanych z komputera:
-wymuszenie określonego prądu,
-ustawienie szybkości próbkowania przetwornika (przydatne przy obserwowaniu zasilaczy transformatorowych 50 Hz lub np. impulsowych z przetwornicami kHz),
-odczyt faktycznego prądu (z określonym współczynnikiem wzmocnienia),
-odczyt napięcia zasilacza (z określego kanału)
Dwa ostatnie rozkazy dzielą to tak naprawdę na:
- rozkaz rozpoczęcia próbkowania,
- sprawdzanie, czy nastąpiło zakończenie operacji,
- odczyt zapisanych w pamięci atmegi próbek.
Oprogramowanie po stronie PC - C#
Oprogramowanie po stronie PC zostało napisane jako prosty klient w języku C#. Do testów wzięto przykładowy zasilacz transformatorowy oznacozny jako: 9V 850MA

Aplikacja dostarcza takich funkcjonalności jak:
- ustalenie określonego prądu obciążającego zasilacz i obserwacja przebiegu napięcia na zasilaczu (na zrzutach poniżej kolejno: 0mA, 100mA, 200mA, 400mA, 800mA)





Zgodnie z oczekiwaniem, wraz ze wzrostem poboru prądu obniża się średnie napięcie oraz zwiększa się zakres wahań (bo to tylko mostek prostowniczy + kondensator).
- ustalenie zakresu prądów i pomiar charakterystyki U(I) zasilacza (zmierzmy powyższy zasilacz w zakresie 0-2000 mA)

(wykreślane jest Usrednie(I), Umin(I), Uwahan(I) - widac.
Teraz wydało się, że deklarowana na etykietce zasilacza wartość 9V 850mA to chyba wartość z kosmosu - średnia wartość napięcia 9V jest osiągana już przy 300mA (dla wyższych prądów jest już tylko mniej), a z kolei wartość minimalna dla 300mA to 8V - gdybyśmy chcieli obciążyć taki zasilacz np. stabilizatorem 7805 to przy pobieraniu większego prądu niż 300mA, napięcie byłoby poniżej dopuszczalnej wartości stabilizacji i na wyjściu stabilizatora nie otrzymalibyśmy 5V tylko mniej!
Poniżej dla porównania podobny test, ale dla zasilacza impulsowego 9V 850mA - po obciązeniu znamionowym prądem napięcie "siadło" tylko do ok 8V (a z zasilacza można pobierac nawet i powyżej 1A):


Oprogramowanie po stronie PC - LabView
Projekt spodobał mi się na tyle, że postanowiłem go też wykorzystać na uczelni do zrealizowania przedmiotu PSYL (Programowanie w LabView) - aplikacja sterująca po stronie PC została napisana od zera w LabView (jest to metodyka polegająca na programowaniu graficznym). Po stronie sprzętu nie była konieczna ŻADNA zmiana (jedynie wygenerowanie nowego sterownika dla LabView z nowymi numerami USB VID/PID).


Problemy
-Odłączanie i podłączanie zasilacza często powoduje, ze komunikacja USB jest zrywana i należy odłączyć i podłączyć urządzenie ponownie (być może skoki napięcia powodują restart mikrokontrolera i wystarczy dołożenie kondensatora na linii RESET?);
-Długotrwałe obciążanie zasilacza dużym prądem powoduje wydzielanie mocy (i ciepła) na tranzystorze-źródle prądowym - konieczne było zastosowanie radiatorka z wentylatorkiem (nie rozwiązuje to problemu, że sam rezystor pomiarowy też grzeje się dość mocno - kiedyś podczas oglądania sygnału na oscyloskopie stopiła mi się końcówka sond pomiarowych);
-Dla niektórych zasilaczy (impulsowych) tester się wzbudza;
-W dzielnikach napięcia z zasilacza, podających je na na różne kanały atmegi nie uwzględniłem faktu, że wewnętrzne diody zabezpieczające (obecne wewnątrz atmegi) w wyniku przesycenia będą powodowały zmianę wartości na kanałach, na których przesycenie nie wystąpiło i tym samym zaburzenie pomiaru (obniżenie wskazywanej wartości - można to poprawić programowo dodając odpowiednie współczynniki korekcyjne, bo poprawki sprzętowej póki co nie wymyśliłem).
Eagle




Cool? Ranking DIY