Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

phanick 21 Sep 2017 02:47 11328 17
Computer Controls
  • Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    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.
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    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.
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    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)
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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:
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)


    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:
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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.
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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)
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    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)
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    (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):
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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).
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)

    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
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie) Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)
    Tester zasilaczy na Atmega8 + USB (aktywne obciążenie)




    Cool? Ranking DIY
    About Author
    phanick
    Level 28  
    Offline 
    Has specialization in: energetyk najwyższych napięć
    phanick wrote 2609 posts with rating 2599, helped 61 times. Live in city Warszawa. Been with us since 2007 year.
  • Computer Controls
  • #2
    kowal011
    Level 21  
    Odnośnie rozwiazania z mosfetem warto zastosować tranzystor logic level (np z płyty głównej komputera PC). Stosuję to rozwiazanie od kilku lat i sprawuje się świetnie, mimo pojedyńczego napięcia zasilania. Samo urządzenie bardzo fajne. Zminiaturyzowałbym je wciskając na siłę smd, gdzie się da. Zmień podstawkę rezonatora. Pozdrawiam.
  • Computer Controls
  • #3
    rjmp
    Level 6  
    "12V 4A za 6 zł" - można prosić o szczegóły?
  • #4
    Urgon
    Level 38  
    AVE...

    Średnio mi się widzi rozwiązanie z drabinką R-2R. Nie dość, że jej dokładność zależy od precyzji rezystorów i temperatury, to wpływ na nią ma też napięcie zasilania układu, a to może się zmieniać w trakcie pracy urządzenia. Do tego to tylko 8 bitów i 8 pinów zużytych. Nie lepiej by było użyć czegoś w rodzaju MCP4821 i zyskać 12 bitów z wyższą precyzją?
  • #5
    Janusz_kk
    Level 36  
    Urgon wrote:
    AVE...

    Średnio mi się widzi rozwiązanie z drabinką R-2R. Nie dość, że jej dokładność zależy od precyzji rezystorów i temperatury, to wpływ na nią ma też napięcie zasilania układu, a to może się zmieniać w trakcie pracy urządzenia. Do tego to tylko 8 bitów i 8 pinów zużytych. Nie lepiej by było użyć czegoś w rodzaju MCP4821 i zyskać 12 bitów z wyższą precyzją?


    Dokładnie, albo użyłbym PWM-a z timera 1 co daje 16 bitową rozdzielczość, drabinka do pomiaru napięcia też jest skopana, zrobić normalny dzielnik napięcia na ADC0 a oporniki od masy przełączać nogami procka, wtedy każde we i wyj nie przekroczy Vcc.
  • #6
    jarux
    Level 12  
    Witam

    Mam pytanie może trochę głupie ale ponoć kto pyta to nie błądzi :) O co chodzi z przetwornikiem DC-AC przy napięciu referencyjnym?
  • #7
    Anonymous
    Anonymous  
  • #8
    Menuet
    Level 18  
    Witam,

    A ja mam pytanie odnośnie dzielnika do pomiaru napięcia. Kilka stopni podziałów to ok, można zastosować i jest ok. Ale w przypadku testowania zasilacza o napięciu 200V (co jak Autor wspomina jest możliwe w jego układzie), na rezystorze R7 (10k) odłoży się napięcie około 195V (zabezpieczenie procka) i nie dość, że wydzieli się na nim stosunkowo duża moc to i pomiar prądu testowanego zasilacza będzie obarczony błędem ok. 20mA o samym zabezpieczeniu procka już nie wspomnę. Czy Autor w jakiś sposób testował swój układ przy takim napięciu, czy może wprowadził jakieś zmiany do gotowego projektu?
    Podobny problem wystąpi z kolejnymi stopniami dzielnika - ograniczanie napięcia do VCC+0,6V na każdym stopniu przez diody w procku.

    EDIT:

    Sorki, nie doczytałem ostatniego zdania opisu.
    Jednakże poprawka programowa chyba nie rozwiąże całkowicie problemu?

    Pozdrawiam,
    Menuet
  • #9
    rekinisko
    Level 22  
    Robiłem na podobnej zasadzie obciążenie do 350W ale na opornikach mocy. Wykorzysałem PWM, dodałem procka który monitował prąd i napięcia.
  • #10
    Jawi_P
    Level 35  
    Włożyłeś dużo pracy, układ fajny. Ale nie komplikując bardziej układu, można było dać choćby bliźniaczą XMegę z przetwornikiem DA.
    Podoba mi się zaprzęgnięcie do analizy LabView, Używałem go lata temu też na studiach, ale dziś już niewiele pamiętam, właściwie nic :(
    Drabinka jako przetwornik mi się źle kojarzy z uzyskiwaniem dźwięku w pierwszych PCetach :)
  • #11
    Szaryszereg
    Level 9  
    fajny projekt :) jakieś kody oprogramowania udostępnisz ??
  • #13
    Anonymous
    Level 1  
  • #14
    eurotips
    Level 39  
    phanick wrote:
    -Dla niektórych zasilaczy (impulsowych) tester się wzbudza;


    Jak ładnie to napisałeś. Nie ma przy tym ryzyka uszkodzenia sprawnego zasilacza przy testowaniu ?
    Fajna sprawa jeśli ktoś projektuje zasilacze, przekombinowane i średnio przydatne przy naprawach ale wielki plus za wkład pracy.
  • #15
    Smołki
    Level 13  
    R-MIK wrote:
    Czym obawiał sie owo nienadążanie? Jakiego wzmacniacza operacyjnego użyłeś? Mogę się domyśleć, że LM324, bo dalej o nim mowa w układzie pomiarowym.

    Podłączam się do pytania, ponieważ już jakiś czas temu, sam wykonałem układ bez tranzystorów bibolarnych. Oparty na 4x Lm358 i irfp260N i działa bardzo dobrze.
    phanick wrote:
    -Dla niektórych zasilaczy (impulsowych) tester się wzbudza;

    Też miałem podobny problem, pomogło dołożenie kondensatorów 10uF i 100nF między masę a dren każdego z tranzystorów (najbliżej jak się da).
  • #16
    jupi23
    Level 16  
    zgierzman wrote:
    Puszczając energię w obwodzie zamkniętym (np. przetwornica step-up 400V zasilająca kondensatory na wejściu zasilacza) nie mamy kontroli nad jej przepływem. Ale jak "zmusić" zasilacz aby pompował energię "w kółko"? No i wymagałoby to przeróbek w testowanym obwodzie, co jest zaprzeczeniem idei testowania gotowego układu.


    Kontrola jest na diodach wejściowych. Jest to prymitywny sposób ale działający. Masz jakby połączone równolegle dwa zasilacze na wejściu poprzez diody zasilające testowany zasilacz (głowne zasilanie i te od wyjścia testowanego zasilacza). Jak nieznacznie podniesiesz napięcie na jednej diodzie to popłynie większy prąd przez nią. Są specjalne układy dla równoległej pracy zasilaczy ale one dzielą prąd równomiernie na każdy zasilacz, a tutaj przydałoby się urządzenie dzielące je w zależności od potrzeb.

    Myślałem o zwróceniu do sieci ale to jest przerost formy nad treścią dla małej mocy zasilaczy. W przypadku zasilacza AC-DC myślałęm o wpięciu się w kondensatory za mostkiem prostowniczym w celu ominięcia budowy falownika. Jedynie tu jest ingerencja w zasilacz. Ale to może minąć się z celem bo nieprzestestujemy ani układów PFC ani diód, no ale nie będzie potrzebny falownik do zwrotu energii.

    Mam nadzieję, że autor wątku nie ma za złe, że powstał trochę wątek poboczny w jego temacie.
  • #17
    Anonymous
    Anonymous  
  • #18
    zgierzman
    Level 31  
    [quote="R-MIK"]
    acctr wrote:
    zgierzman wrote:
    jupi23 wrote:
    Miałem kiedyś na biurku zasilacz, który zachowywał się w następujący sposób:
    Nie działał w obwodzie w którym był zainstalowany. W warsztacie obciążony układem aktywnym działał jak należy. Nieważne, czy najpierw włączałem zasilacz potem obciążenie, czy miał wystartować z obciążeniem, czy brałem z niego moc nominalną czy jej ułamek.
    Ale kiedy podałem mu staromodne obciążenie rezystancyjne, z przełączanymi rezystorami mocy, odmówił współpracy. Dopiero kiedy brałem z niego mniej niż 1/4 mocy znamionowej jakoś działał.
    Ktoś ma teorię na temat tego fenomenu?


    Pewnie zadziałało zabezpieczenie przeciwzwarciowe/foldback. Pytanie jaką charakterystykę miało obciążenie aktywne, czy to było źródło prądowe czy sztuczny opornik?

    Opisane powyżej zachowanie zasilacza jest typowe gdy obciążeniem jest żarówka.


    Sztuczne obciążenie jakie stosowałem to popularny układ na mosfecie sterowanym z op-ampa, pomiar prądu na szeregowym rezystorze pomiarowym. Zasilacz działał.
    Obciążenie w postaci rezystora (nie żarówka, zimne włókno ma inne parametry niż gorące) - zasilacz nie działał.
    Obciążenie w układzie: automatyka, czyli zasilanie elektroniki, styczniki, przekaźniki i tego rodzaju rzeczy - zasilacz nie działał.