W materiale sprawdzimy możliwości zasilacza warsztatowego 75W CN0508 Analog Devices. W innym artykule znajdziecie dokładny opis i tłumaczenie noty katalogowej. Urządzenie możemy zasilać napięciem do 40V, natomiast napięcie wyjściowe ustawimy w zakresie 0-27,5V, wydajność prądowa 3A. Parametry zasilacza są monitorowane przez Raspberry Pi Zero, a z wykorzystaniem aplikacji IIO Oscilloscope możliwe jest regulowanie napięcia wyjściowego poprzez DAC AD5683R. Na płytce zasilacza ADC AD7124-4 wykorzystywany jest do monitorowania napięć, prądu i temperatury. Niskie straty mocy zapewnia synchroniczna przetwornica obniżająca LT8612. Umieszczone na jej wyjściu liniowe stabilizatory LT3081 obniżają poziom szumów w napięciu wyjściowym oraz polepszają odpowiedź na skokowe zmiany prądu na wyjściu.
Przygotowanie karty micro SD dla Raspberry Pi Zero jest bardzo proste. Postępujemy zgodnie z instrukcją:
-pobieramy obraz dystrybucji ADI Kuiper 06 May 2020 release;
-z wykorzystaniem np. narzędzia win32 Disk Imager przygotowujemy kartę SD (minimum 16GB);
-na końcu pliku config.txt na karcie SD dopisujemy linijki:
-obserwujemy start RPi0 na podłączonym monitorze, z wykorzystaniem huba USB podłączamy klawiaturę i mysz, konfigurujemy połączenie WiFi;
-na komputerze podłączonym do tej samej sieci co RPi0 uruchamiamy aplikację IIO Oscilloscope, zdalnie monitorujemy i kontrolujemy parametry pracy zasilacza.
Więcej informacji znajdziecie w poniższym materiale wideo i materiale tekstowym.
Pamiętajmy o wyłączaniu systemu operacyjnego na RPi0 przyciskiem na płytce zasilacza tak, aby Linux zatrzymał się w kontrolowany sposób. Komentarza wymaga sposób regulacji napięcia wyjściowego zasilacza. Możemy regulować jednocześnie potencjometrem na płytce i aplikacją IIO Oscilloscope, jednak zostanie wybrana niższa ustawiona wartość. Ustawienia oprogramowania mogą służyć jako ogranicznik napięcia wyjściowego regulowanego potencjometrem lub gałka potencjometru może służyć jako ogranicznik regulacji napięcia z poziomu aplikacji. Położenie zworki JP5 w położeniu 1-2 umożliwia równoległą regulację napięcia, przełączenie zworki JP5 w położenie 2-3 wyłącza możliwość regulacji z poziomu DAC pozostawiając regulację potencjometrem.
Poniżej na rysunku schemat blokowy zasilacza, do zasilania RPi0 zastosowana jest osobna przetwornica DC/DC.
Układ utrzymuje niski spadek napięcia na stabilizatorach liniowych, co ogranicza straty mocy. Wyraźnie widać miejsce zainstalowania stabilizatorów liniowych na zdjęciu termowizyjnym.
RPi0 dobrze sprawdza się w tej aplikacji, gdy oprogramowanie IIO Oscilloscope uruchomione jest na osobnym komputerze połączonym po IP z zasilaczem. Próba pracy bezpośrednio na RPi0 po podłączeniu monitora i klawiatury oraz uruchomieniu GUI IIO Oscilloscope na RPi0, wymaga cierpliwości ze względu na niewielką wydajność tego SBC. Poza monitorowaniem i kontrolowaniem pracy zasilacza, pobierane próbki z ADC w aplikacji możemy obserwować w dziedzinie czasu i częstotliwości.
Do zasilacza możemy podłączyć znacznie bardziej wydajny RPi3 poprzez 40 żyłową taśmę. Na RPi3 uruchomiłem także wersję RC Kuiper z 2021, która działała bezproblemowo.
Wyniki obserwacji oscyloskopem napięcia wyjściowego przy pracy jałowej i przy obciążeniu prądem 2.43A znajdziecie poniżej.
Dla porównania poniżej oscylogram napięcia na wyjściu zasilacza impulsowego 5V (popularna "ładowarka" USB).
Kształt napięcia na wyjściu zasilacza CN0508 po załączeniu i wyłączeniu prądu wyjściowego 2.43A, 12V.
Zasilaczem możemy sterować z wykorzystaniem Pythona. Instalujemy komponenty LibIIO i PyADI-IIO zgodnie z instrukcją. Przykład kontroli napięcia wyjściowego oraz odczytu parametrów znajdziemy tutaj: cn508_production_test.py
Na podstawie tego przykładu łatwo jest przygotować swój kod, który kontroluje napięcie wyjściowe oraz odczytuje prąd i napięcie na wyjściu zasilacza. Dodając bibliotekę do rysowania wykresów pyplot wykorzystamy zasilacz do wykreślania charakterystyk prądowo-napięciowych elementów podłączonych do zacisków wyjściowych.
Przykładowy kod charakterografu w Python znajdziecie w załączniku:
Wyniki działania kodu dla podłączenia na wyjściu zasilacza:
Zasilacz warsztatowy CN0508 ma dobre parametry i pracuje stabilnie, a możliwość kontrolowania i monitorowania parametrów zasilacza daje szerokie możliwości. Możemy uruchomić prosty charakterograf lub nawet przeprowadzać testy automatyczne podłączonych odbiorników. Jak zwykle apetyt rośnie w miarę jedzenia i zastanawiałem się, jak wykorzystać zasilacz do pomiaru zewnętrznych napięć i prądów. Takie rozszerzenie można by wykorzystać do automatycznych testów sprawności i stabilności podłączonych odbiorników.
Co myślicie o testowanym zasilaczu z RPi Zero na pokładzie?
Czy system operacyjny w zasilaczu to przesada, czy też pozytywne efekty rozwoju technologicznego?
Początkowo ciężko było mi się przestawić na myślenie o zasilaczu jako urządzeniu połączonym z aplikacją protokołem IP. Pamiętam konstrukcje zasilaczy stabilizowanych z ograniczeniem prądowym zawierających tranzystory czy też LM317. Ilość tranzystorów w RPi0 przekracza o rzędy wielkości ilość półprzewodników używanych w zasilaczach laboratoryjnych sprzed kilkunastu lat. Jednak podczas testów doceniłem wbudowanie w zasilacz możliwości sterowania programowego. Być może wśród czytelników tego materiału znajdą się osoby, które pamiętają swoje zajęcia na pracowniach szkolnych przy wyznaczaniu charakterystyk różnych elementów. To było sporo kręcenia gałkami i odczytywania wskazań przyrządów. Gdyby wtedy ktoś mnie zapytał, czy chcę zrobić to samo przy użyciu kilku linijek kodu - na pewno chciałbym spróbować.
Moduł zasilacza można kupić tutaj:
https://www.arrow.com/en/products/eval-cn0508-rpiz/analog-devices
Przygotowanie karty micro SD dla Raspberry Pi Zero jest bardzo proste. Postępujemy zgodnie z instrukcją:
-pobieramy obraz dystrybucji ADI Kuiper 06 May 2020 release;
-z wykorzystaniem np. narzędzia win32 Disk Imager przygotowujemy kartę SD (minimum 16GB);
-na końcu pliku config.txt na karcie SD dopisujemy linijki:
Spoiler:
dtoverlay=rpi-cn0508,rotate=270,speed=64000000,fps=30
hdmi_cvt=720 480 60 1 0 0 0
dtparam=spi=on
dtparam=i2c1=on
dtparam=i2c_arm=on
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpiopull=up
dtparam=act_led_gpio=13
dtparam=act_led_trigger=heartbeat
hdmi_cvt=720 480 60 1 0 0 0
dtparam=spi=on
dtparam=i2c1=on
dtparam=i2c_arm=on
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpiopull=up
dtparam=act_led_gpio=13
dtparam=act_led_trigger=heartbeat
-obserwujemy start RPi0 na podłączonym monitorze, z wykorzystaniem huba USB podłączamy klawiaturę i mysz, konfigurujemy połączenie WiFi;
-na komputerze podłączonym do tej samej sieci co RPi0 uruchamiamy aplikację IIO Oscilloscope, zdalnie monitorujemy i kontrolujemy parametry pracy zasilacza.
Więcej informacji znajdziecie w poniższym materiale wideo i materiale tekstowym.
Pamiętajmy o wyłączaniu systemu operacyjnego na RPi0 przyciskiem na płytce zasilacza tak, aby Linux zatrzymał się w kontrolowany sposób. Komentarza wymaga sposób regulacji napięcia wyjściowego zasilacza. Możemy regulować jednocześnie potencjometrem na płytce i aplikacją IIO Oscilloscope, jednak zostanie wybrana niższa ustawiona wartość. Ustawienia oprogramowania mogą służyć jako ogranicznik napięcia wyjściowego regulowanego potencjometrem lub gałka potencjometru może służyć jako ogranicznik regulacji napięcia z poziomu aplikacji. Położenie zworki JP5 w położeniu 1-2 umożliwia równoległą regulację napięcia, przełączenie zworki JP5 w położenie 2-3 wyłącza możliwość regulacji z poziomu DAC pozostawiając regulację potencjometrem.
Poniżej na rysunku schemat blokowy zasilacza, do zasilania RPi0 zastosowana jest osobna przetwornica DC/DC.
Układ utrzymuje niski spadek napięcia na stabilizatorach liniowych, co ogranicza straty mocy. Wyraźnie widać miejsce zainstalowania stabilizatorów liniowych na zdjęciu termowizyjnym.
RPi0 dobrze sprawdza się w tej aplikacji, gdy oprogramowanie IIO Oscilloscope uruchomione jest na osobnym komputerze połączonym po IP z zasilaczem. Próba pracy bezpośrednio na RPi0 po podłączeniu monitora i klawiatury oraz uruchomieniu GUI IIO Oscilloscope na RPi0, wymaga cierpliwości ze względu na niewielką wydajność tego SBC. Poza monitorowaniem i kontrolowaniem pracy zasilacza, pobierane próbki z ADC w aplikacji możemy obserwować w dziedzinie czasu i częstotliwości.
Do zasilacza możemy podłączyć znacznie bardziej wydajny RPi3 poprzez 40 żyłową taśmę. Na RPi3 uruchomiłem także wersję RC Kuiper z 2021, która działała bezproblemowo.
Wyniki obserwacji oscyloskopem napięcia wyjściowego przy pracy jałowej i przy obciążeniu prądem 2.43A znajdziecie poniżej.
Dla porównania poniżej oscylogram napięcia na wyjściu zasilacza impulsowego 5V (popularna "ładowarka" USB).
Kształt napięcia na wyjściu zasilacza CN0508 po załączeniu i wyłączeniu prądu wyjściowego 2.43A, 12V.
Zasilaczem możemy sterować z wykorzystaniem Pythona. Instalujemy komponenty LibIIO i PyADI-IIO zgodnie z instrukcją. Przykład kontroli napięcia wyjściowego oraz odczytu parametrów znajdziemy tutaj: cn508_production_test.py
Na podstawie tego przykładu łatwo jest przygotować swój kod, który kontroluje napięcie wyjściowe oraz odczytuje prąd i napięcie na wyjściu zasilacza. Dodając bibliotekę do rysowania wykresów pyplot wykorzystamy zasilacz do wykreślania charakterystyk prądowo-napięciowych elementów podłączonych do zacisków wyjściowych.
Przykładowy kod charakterografu w Python znajdziecie w załączniku:
Wyniki działania kodu dla podłączenia na wyjściu zasilacza:
rezystora
diody prostowniczej
diody Schottky’ego
diody power LED
Zasilacz warsztatowy CN0508 ma dobre parametry i pracuje stabilnie, a możliwość kontrolowania i monitorowania parametrów zasilacza daje szerokie możliwości. Możemy uruchomić prosty charakterograf lub nawet przeprowadzać testy automatyczne podłączonych odbiorników. Jak zwykle apetyt rośnie w miarę jedzenia i zastanawiałem się, jak wykorzystać zasilacz do pomiaru zewnętrznych napięć i prądów. Takie rozszerzenie można by wykorzystać do automatycznych testów sprawności i stabilności podłączonych odbiorników.
Co myślicie o testowanym zasilaczu z RPi Zero na pokładzie?
Czy system operacyjny w zasilaczu to przesada, czy też pozytywne efekty rozwoju technologicznego?
Początkowo ciężko było mi się przestawić na myślenie o zasilaczu jako urządzeniu połączonym z aplikacją protokołem IP. Pamiętam konstrukcje zasilaczy stabilizowanych z ograniczeniem prądowym zawierających tranzystory czy też LM317. Ilość tranzystorów w RPi0 przekracza o rzędy wielkości ilość półprzewodników używanych w zasilaczach laboratoryjnych sprzed kilkunastu lat. Jednak podczas testów doceniłem wbudowanie w zasilacz możliwości sterowania programowego. Być może wśród czytelników tego materiału znajdą się osoby, które pamiętają swoje zajęcia na pracowniach szkolnych przy wyznaczaniu charakterystyk różnych elementów. To było sporo kręcenia gałkami i odczytywania wskazań przyrządów. Gdyby wtedy ktoś mnie zapytał, czy chcę zrobić to samo przy użyciu kilku linijek kodu - na pewno chciałbym spróbować.
Moduł zasilacza można kupić tutaj:
https://www.arrow.com/en/products/eval-cn0508-rpiz/analog-devices
Cool? Ranking DIY