4-kanałowy zasilacz programowalny z STM32F429I-DISC1

4-kanałowy zasilacz programowalny z STM32F429I-DISC1
Pobierz PDF Download icon
Opis projektu uniwersalnego zasilacza z 4 niezależnymi kanałami wyjściowymi, z cyfrowo zadawanym napięciem i pomiarem prądu wyjściowego. Sterownik zasilacza zintegrowano z dotykowym HMI w popularnym zestawie STM32F429I-DISC1.

Zgodnie z założeniami, zasilacz miał mieć 4 kanały wyjściowe o niezależnie regulowanym napięciu, pamięć ostatnich nastaw, pomiar prądu wyjściowego, a całość miała być obsługiwana za pomocą panelu dotykowego na wyświetlaczu TFT. Ze względu na niską cenę i wygodę realizacji aplikacji zdecydowano się na użycie gotowego zestawu z mikrokontrolerem STM32F429 – STM32F429I-DISC1. Program dla mikrokontrolera napisano w sposób umożliwiający obsługę wyświetlacza LCD będącego wyposażeniem tej płytki oraz wykorzystanie różnych modułów funkcjonalnych mikrokontrolera, takich jak przetworniki A/C lub timery. Środowisko programistyczne, z którego korzystano przy pisaniu programu, jest dostępne bezpłatnie (System Workbench for STM32). Przydał się także program konfigurujący mikrokontrolery STM32 – CubeMX. Ułatwia on napisanie części kodu odpowiedzialnej za inicjalizację niezbędnych rejestrów.

Schemat blokowy zasilacza pokazano na rysunku 1.

Obwód wejściowy

Schemat elektryczny obwodu wejściowego pokazano na rysunku 2. Elementy oznaczone P0 oraz J1 to dwa złącza wejściowe, połączone równolegle. Złącze P0 to typowa, dwutorowa listwa zaciskowa, natomiast J1 to złącze zasilania DC, dodane w celu poprawy wygody użytkowania urządzenia. Element D3 to dioda Schottky zabezpieczająca cały układ przed błędną polaryzacją napięcia zasilającego. Kondensatory C18 oraz C20 filtrują napięcie zasilające.

Dalsza część, składająca się z rezystora R17, układu U8 oraz kondensatora C23, odpowiada za pomiar prądu w kanale wejściowym. Płynący prąd powoduje spadek napięcia na rezystorze o małej rezystancji wynoszącej 10 mV. Spadek napięcia jest wartością niewielką (rzędu mV), dlatego jest wzmacniany 100× wzmacniaczem prądowym U8. Wyjście wzmacniacza jest filtrowane kondensatorem C23, zgodnie z zaleceniem noty katalogowej. Etykietę IN_C dołączono do multipleksera, który zostanie opisany dalej. Rezystory R15 i R16 tworzą dzielnik napięcia, który formuje napięcie na wejściu A/C mikrokontrolera w dopuszczalnym zakresie wartości.

Obwody wyjściowe

Schemat elektryczny obwodu wyjściowego (jednego z czterech identycznych) pokazano na rysunku 3. Najistotniejszym elementem kanału wyjściowego jest przetwornica impulsowa ADP2302. Jej zasilanie zrealizowano poprzez doprowadzenie napięcia zasilania (etykieta VCC) do pinu VIN poprzez kondensator filtrujący C6 oraz połączenie pinu GND z potencjałem masy. Etykieta EN3 oznacza port wyjściowy mikrokontrolera – jest on połączony z wyprowadzeniem EN. Pozwala to na sterowanie włączaniem i wyłączaniem przetwornicy przez mikrokontroler, dzięki czemu może mieć on wpływ na wartość napięcia wyjściowego (poprzez sterowanie PWM).

Wyprowadzenie FB (feedback) układu ADP2302 spełnia rolę wejścia komparatora napięcia, który odpowiada za stabilizację wartości napięcia wyjściowego przetwornicy. Standardowa konfiguracja tego układu przewiduje dołączenie pinu do rezystancyjnego dzielnika napięcia wyjściowego. Domyślna konfiguracja umożliwia uzyskanie tylko jednej, ustalonej „na sztywno” wartości napięcia wyjściowego. Regulacja napięcia wymaga zastosowania potencjometru w miejsce jednego z rezystorów, ale w projekcie założyliśmy regulację cyfrową realizowana na drodze elektronicznej.

Rozwiązanie tej kwestii przedstawiono na rysunku 3. Pin FB przetwornicy dołączono do dzielnika rezystancyjnego napięcia wyjściowego, złożonego z rezystorów R7 i R4. Do węzła FB przyłączono generowany mikrokontrolerem sygnał PWM (opisany na schemacie etykietą TIM3_CH1(PWM)). Ten sygnał przepuszczono przez filtr złożony z elementów rezystorów R5 i R6 oraz kondensatora C7 w celu wygładzenia go, i wytworzenia napięcia quasi stałego.

Konfigurację sygnału PWM oraz filtru można porównać działaniem do przetwornika C/A. Poprzez zmianę współczynnika wypełnienia sygnału PWM jest zmieniane napięcie. Zmieniając napięcie na niższe, przetwornica jest „zmuszona” wygenerować na wyjściu napięcie wyższe, aby utrzymać w węźle FB wartość 0,8 V. Odwrotnie, zmieniając napięcie w węźle na wyższe, przetwornica na wyjściu generuje napięcie niższe. W taki sposób zrealizowano sterowanie napięciem wyjściowym przetwornicy. Konieczne było dobranie odpowiednich wartości rezystorów R4, R5, R6, R7 do zakresu napięciowego sygnału PWM, aby na wyjściu otrzymać zakres napięcia wymagany w projekcie (3…9 V).

Wzór określający zależność napięcia wyjściowego od napięcia PWM i wartości rezystorów ma postać:

gdzie:
  VFB – napięcie w węźle FB wynoszące 0,8 V.
  VOUT – napięcie wyjściowe przetwornicy.
  VPWM – napięcie wynikające z sygnału PWM.
  R4, R7 – wartości rezystorów ze schematu (rys. 3).
  R56 – suma wartości rezystorów R5 + R6.

W celu ustalenia wartości rezystorów posłużono się symulacją uproszczonej wersji układu w programie LTSpice. Rezystancje R1, R2, R3 dobierano metodą prób i błędów. Zadowalające okazały się wartości, odpowiednio: 10 kV, 1 kV, 2 kV. Takie rezystory zastosowano w urządzeniu, a na rysunku 4 pokazano wyniki symulacji. Stosując wybrane rezystancje uzyskano możliwość otrzymania napięcia wyjściowego z zakresu 3…9 V w zakresie napięcia sterującego od 0,7…2,6 V.

Zestaw STM32F429I-DISC1 wymaga napięcia zasilającego o wartości 5 V. Aby uzyskać takie napięcie zastosowano stabilizator liniowy. Dla zapewnienia stabilnej pracy dołączono kondensatory C16 oraz C17, zgodnie z zaleceniem noty katalogowej układu. Wyjście stabilizatora (pin OUT) połączono z etykietą „+5”, którą w dalszej części schematu dołączono do pinu zasilającego płytkę STM32F429I-DISC1.

Podczas realizacji projektu zauważono, że napięcie referencyjne przetwornika A/C dostępne na płytce STM32F429I-DISC1 jest niestabilne. Mogłoby to skutkować błędnymi wynikami pomiarów, a w efekcie błędnym działaniem całego zasilacza. Producent płytki nie przewidział możliwości zastosowania zewnętrznego napięcia referencyjnego. Problem rozwiązano dokonując pomiaru precyzyjnego napięcia o wartości 2,5 V wytworzonego za pomocą układu będącego źródłem napięcia odniesienia (złożonego z elementów R32 oraz U12 – rysunek 5). Dokonując pomiaru tak stabilnego napięcia przetwornikiem A/C jest możliwe bieżące obliczanie aktualnego napięcia referencyjnego przetwornika według wzoru:

gdzie:
  VREF – aktualne napięcie referencyjne.
  VSTAB – stabilne napięcie odniesienia (w tym wypadku 2,5 V).
  ADCRESOLUTION – rozdzielczość przetwornika A/C (w tym wypadku 4096).
  ADCRESULT – aktualny wynik pomiaru napięcia odniesienia.

Wartości napięć z dzielników rezystancyjnych linii wyjściowych, napięcia z wyjść wzmacniaczy pomiaru prądów wyjściowych, napięcie zasilania stabilizatorów, sygnały PWM i napięcia pomocnicze są monitorowane przez mikrokontroler dzięki analogowemu multiplekserowi wielokanałowemu, którego wyprowadzenia z etykietami nazw sygnałów pokazano na rysunku 6. Wyjście multipleksera połączono z wejściem przetwornika A/C (etykieta ADC1_IN0). Do pinów wejściowych multipleksera podłączono sygnały pomiaru prądów, pomiaru napięć oraz pomiaru napięcia odniesienia (etykiety IN_V, IN_C, OUT1_V, OUT1_C, OUT2_V, OUT2_C, OUT3_V, OUT3_C, OUT4_V, OUT4_C, VREF).

Dla urządzenia zaprojektowano dwustronną płytkę drukowaną (rysunek 7), na której są umieszczone wszystkie elementy zasilacza, łącznie z zestawem STM32F429I-DISC1. Wejście zasilacza układu umieszczono z lewej strony obwodu, w centralnej części PCB umiejscowiono dwa gniazda stykowe żeńskie (dwurzędowe), w których jest montowany zestaw STM32F429I-DISC1. Obwody wyjściowe umieszczono z prawej strony PCB.

Oprogramowanie

Podczas pisania oprogramowania korzystano z dwóch środowisk programistycznych. Pierwsze z nich to System Workbench for STM32 – darmowe środowisko programistyczne oparte o Eclipse. Środowisko to obsługuje wszystkie mikrokontrolery z rodziny STM32 i powiązane z nimi płytki.

Drugim używanym oprogramowaniem jest STM32CubeMX – konfigurator graficzny, pozwalający na generowanie części inicjalizacyjnej kodu dla mikrokontrolera w C. Generowany kod zawiera odwołania do bibliotek, główną funkcję programu oraz funkcje zawierające rejestry peryferiów mikrokontrolera (wcześniej wybranych). Proces ten znacznie oszczędza czas i pracę programisty. Typowe podejście z czytaniem noty katalogowej układu zabierałoby wiele godzin żmudnej pracy.

Pisząc oprogramowanie korzystano z biblioteki HAL. Biblioteka ta zawiera kompletny zestaw gotowych do użycia interfejsów programistycznych (API), które uproszczają inicjalizację i konfigurację peryferiów.

W projekcie użyto następujące peryferia mikrokontrolera:

- DMA2D (Direct Memory Acces 2D) – umożliwia korzystanie z grafiki 2D jako interfejsu użytkownika, jednocześnie ograniczając implikacje w zakresie podstawowej wydajności procesora.
- LTDC (LCD-TFT Controller).
- TIM (timery 1, 2, 3, 5, 9) – używane do generowania sygnału PWM oraz obsługi przerwań.
- ADC1 – 12-bitowy przetwornik, używany do dokonywania pomiarów napięć oraz prądów.
- FMC, I2C, SPI.
- DMA.
- GPIO (General Purpose Input Output).
- NVIC (Nested Vectored Interrupt Controller).
- RCC (Reset and Clock Control).

Pomiary za pomocą A/C dokonują się z częstotliwością wynikająca z przerwań (4,5 kHz). Przetwornik na swoim wejściu otrzymuje wartości analogowe napięcia z układu zasilacza i zamienia je na wartości cyfrowe, na których dokonywane są obliczenia matematyczne. Wyliczone, aktualne wartości napięć i prądów są na bieżąco wyświetlane na LCD. Odświeżanie wyświetlacza dokonuje się w takt podzielonej częstotliwości przerwań. Następnie porównywane są wartości napięcia zmierzonego oraz wybranego przez użytkownika (zapisanego w pamięci). W zależności od tego czy wartości są jednakowe, czy się różnią jest generowany odpowiedni sygnał korygujący (PWM). Jeżeli napięcie wybrane przez użytkownika zgadza się z aktualnym (generowanym przez zasilacz), wtedy sygnał PWM pozostaje bez zmian. Jeżeli jest inaczej, to PWM odpowiednio zmienia się do momentu, w którym porównywane napięcia wyrównają się.

Testy urządzenia

Przeprowadzając test sprawności działania przetwornic DC/DC dokonywano pomiarów mocy wejściowej i wyjściowej zmieniając obciążenie. Pomiarów dokonywano tylko na jednym z kanałów wyjściowych ponieważ kolejne są identyczne. Sprawność liczono zgodnie z wzorem:

gdzie:
  h – sprawność przetwornicy.
  PO – moc wyjściowa.
  PI – moc wejściowa.
  IO – prąd wyjściowy.
  VO – napięcie wyjściowy.
  PON – moc wejściowa pobierana przez zasilacz, przy braku obciążenia kanału wyjściowego.
  POFF – moc wejściowa pobierana przez zasilacz, przy występowaniu obciążenia na kanale wyjściowym.

Licząc moc wejściową zgodnie z powyższymi wzorami liczono różnicę mocy pobieranej przy dołączonym obciążeniu i bez niego – wyniki pomiarów pokazano na rysunku 8. Podczas testowania napięcie zasilające wynosiło 12 V, a prąd pobierany przez zasilacz bez obciążenia wynosił 0,2 A. Wynika z tego, że moc pobierana przez zasilacz bez dołączonego obciążenia wynosi 2,4 W.

Obliczanie sprawności zasilacza, czyli sprawności całego urządzenia przebiegało w identyczny sposób, jak obliczanie sprawności samych przetwornic. Różnica polegała na tym, że przy liczeniu mocy wejściowej nie uwzględniano mocy pobieranej przez zasilacz przy braku obciążenia (przyjęto parametr POFF=0 W). Wyniki pomiarów przedstawiono na rysunku 9.

Zbadano także tętnienia napięcia wyjściowego. Do jednego z kanałów wyjściowych podłączono oscyloskop (Agilent MSO7104B Mixed Signal Oscilloscope). Generowano napięcie 5 V przy prądzie 0,5 A. Badane tętnienia wynosiły 143,75 mV (2,5% napięcia wyjściowego). Rezultaty widoczne na oscyloskopie przedstawiono na rysunku 10.

Paweł Sławiński

Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2017
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów