Mikrokontrolery XMC4000 w aplikacjach DSP: cyfrowe sterowniki silników elektrycznych, zasilacze, konwertery energii
Coraz większe zaawansowanie zasad działania współczesnych zasilaczy, konwerterów napięcia i innych źródeł zasilania jest napędzany potrzebą podnoszenia ich sprawności energetycznej i obniżania kosztów wykonania. Nowoczesne zasilacze i przetwornice dużej mocy, budowane według dotychczasowych koncepcji układowych, składały się zazwyczaj z co najmniej dwóch układów scalonych: procesora sygnałowego i układu FPGA. Dzięki wbudowanym układom liczącym i programowalnym generatorom PWM wysokiej rozdzielczości, mikrokontrolery z rodziny XMC4000 mogą w większości wypadków zastąpić wszystkie elementy tworzące dotychczas „inteligencję” i zespół sterujący w takich rozwiązaniach.
Żeby nadążyć za postępem technologii i zarazem zapewnić dobre parametry i niezawodność, źródła zasilania muszą posiadać inteligencję układów cyfrowych. Rozwiązania standardowe, np. zasilacze do komputerów osobistych, które pracują we względnie stałych warunkach, mogą wykorzystywać produkowane niskim kosztem i na masową skalę, dedykowane układy scalone. Rzecz ma się jednak inaczej np. w przypadku przetwornic dla paneli słonecznych. Dostępne rozwiązania, takie jak przetwornice podwyższające i obniżające napięcie SEPIC, zasilacze impulsowe dwutaktowe z rdzeniem gromadzącym energię (flyback), półmostki, pełne mostki, zasilacze LLC, itp. wymagają nie tylko różnych układów PWM i strategii sterowania, ale również, m.in. z powodów patentowych, łączone są w bardzo dziwnych konfiguracjach (np. przetwornica podwyższająca z zasilaczem LLC i przetwornikiem DC/AC). Każde takie połączenie może wymagać innego rodzaju sygnału PWM i innych algorytmów jego generowania. Co więcej, pożądana jest praca z możliwie najkrótszymi czasami przełączania elementów cyfrowych, żeby można było użyć możliwie najmniejszych elementów biernych (cewek i kondensatorów).
Jeśli więc chcemy zastąpić połączenie procesora sygnałowego (kontrola) i układu FPGA (generacja szybkich przebiegów PWM) jednym mikrokontrolerem, np. ze względu na oszczędności (producenci paneli słonecznych, którzy zrezygnują z FPGA, mają przewagę cenową nad konkurencją), to docelowy układ musi posiadać elastyczne, konfigurowalne układy peryferyjne. Prawie wszystkie mikrokontrolery pozwalają na generację symetrycznych sygnałów PWM, co zupełnie wystarcza do sterowania typowymi silnikami. Trudniejsze do uzyskania są niesymetryczne impulsy okresowe. Według naszych szacunków jedynie około 50% wszystkich mikrokontrolerów ma takie możliwości. Generacja impulsów niesymetrycznych, nieokresowych i w dodatku pojedynczych lub pojawiających się w małych grupach jest szczególnie skomplikowana.
W tym celu stworzone zostały bloki peryferyjne o nazwach CCU4 i CCU8 dla mikrokontrolerów XMC4000. Projektanci przełączanych źródeł napięcia mają więc do dyspozycji standardowy mikrokontroler z rdzeniem ARM Cortex-M i nie muszą już uciekać się do używania procesorów sygnałowych.
Zaawansowane sposoby generacji impulsów znajdują zastosowanie np. w przełączanych źródłach napięcia, podczas przejścia z trybu pracy ciągłej (w którym prąd płynący przez dławik zwykłej przetwornicy lub transformator przetwornicy flyback nigdy nie spada do 0 podczas normalnej, nieprzerywanej pracy) do trybu pracy nieciągłej (w którym prąd w dławiku lub transformatorze może spadać do zera i znów się podnosić w ciągu jednego cyklu przełączenia), albo podczas wyłączania przetwornicy w przypadku wykrycia zbyt dużego prądu – ale o tym później.
Najpierw kilka słów o falownikach 3-poziomowych. Ich zalety (użycie tranzystorów IGBT o większej mocy i „łagodniejsza” sinusoida na wyjściu) są niekwestionowane, ale żeby zbudować jeden pół-mostek z czterema tranzystorami, potrzeba 3 x 4 = 12 sygnałów PWM. Większość mikrokontrolerów w tym momencie zawiodłaby, ale można to zrobić za pomocą modułu CCU8.
Rys. 1. Przy wyłączaniu 3-poziomowego falownika, należy zaplanować opóźnienia
Na rysunku 1 przedstawiono problem bezpiecznego wyłączania 3-poziomowego falownika. Górny przebieg czasowy pokazuje, że tranzystor przełączający może ulec zniszczeniu z powodu dwukrotnie za wysokiego napięcia. Aby temu zapobiec, przełączenie tranzystora S2 musi zostać opóźnione, jak to pokazano na dolnym przebiegu.
Rys. 2. Przy pomocy modułów CCU4, CCU8 i ERU1 możliwe jest zaplanowanie generacji pulsów do bezpiecznego wyłączenia falownika
Na rysunku 2 przedstawione rozwiązanie tego problemu w sposób schematyczny, jako połączenie programowalnego modułu ERU1 (Event Request Unit) z układami liczników. W module ERU1 możliwe jest połączenie zewnętrznych i wewnętrznych sygnałów bramkami logicznymi i generacja przerwań na ich podstawie.
Wysoka precyzja to wysoka rozdzielczość PWM
Istnieją zastosowania wymagające dokładności napięcia wyjściowego rzędu 1% lub lepszej, np. zasilanie pomocnicze 1,8 V czy mikrofalownik. Przemysłowe źródła zasilania, takie jak Siemens Sitop PSA100E, zapewniają 3% dokładności w całym zakresie napięć wejściowych. Jednak w przypadku pracy statycznej (bez skoków obciążenia i fluktuacji napięcia wejściowego) maksymalna odchyłka napięcia 24 V określona jest jako 150 mV, czyli 0,625%. Inne produkty, takie jak seria Traco TDR2 czy Phoenix Quint PS, również dopuszczają maksymalne odchyłki napięcia wielkości 1%.
Rys. 3. Pętla dopuszczająca maksymalnie 1% odchyłki napięcia wyjściowego od wartości nominalnej
Jeśli przyjrzymy się diagramowi działania pętli regulacji (rysunek 3), pojawi się kilka wymagań. Z powodu błędu kwantyzacji w kontroli cyfrowej, odchylenia przetwornika A/C muszą być mniejsze niż połowa tolerancji, czyli 0,5% co odpowiada 200 różnym wartościom cyfrowym. Aby skompensować błąd pomiaru, dokładność PWM musi być co najmniej dwukrotnie większa, a więc wyniesie 0,25%, czyli 400 wartości cyfrowych.
Przy kontroli silników częstotliwości przełączania PWM są rzędu 20 kHz. Wymaganie częstotliwości sygnału PWM rzędu 20 kHz x 400 = 8 MHz od zwykłego mikrokontrolera taktowanego sygnałem o częstotliwości 80 MHz można uznać za śmiesznie proste do spełnienia.
Nawet jeśli częstotliwość będzie dziesięciokrotnie wyższa, tj. 200 kHz x 400 = 80 MHz, to można wygenerować odpowiedni sygnał PWM, chyba że używany mikrokontroler jest jednym z tych, które pozwalają na pracę PWM z maksymalną częstotliwością f/2 lub f/4 (gdzie f to częstotliwość taktowania rdzenia). Rynek obfituje w mikrokontrolery spełniające takie wymagania. Stają się one jednak problematyczne, gdy potrzebna częstotliwość przełączania wynosi 500 kHz, 1 MHz albo jeszcze więcej. Przy 1,5 MHz, szybkość sygnału PWM wymagana do zapewnienia odpowiedniej precyzji, wynosi już 1500 kHz x 400 = 600 MHz, a nawet rdzeń procesora nie osiąga takich częstotliwości.
Rozpatrzmy przypadek ekstremalny. Załóżmy, że obciążenie na wyjściu stanowi jedynie 10% obciążenia maksymalnego. Wówczas regulacja miała by miejsce jedynie w zakresie od 0 do 10% całego zakresu, co powoduje że liczba wartości cyfrowych musi być dziesięciokrotnie wyższa. Przetwornik A/C musiałby więc dysponować 2000 wartości, a nie 200 (co oznacza 11 bitów rozdzielczości), a moduł PWM musiałby być wstanie wygenerować aż 4000 wartości. W takim przypadku już nawet częstotliwość przełączania wynosząca 200 kHz wymagałaby sygnału PWM o wysokiej rozdzielczości (200 kHz x 4000 = 800 MHz). Przy 1,5 MHz otrzymamy 1500 kHz x 4000 = 6 GHz, czyli długość trwania impulsu zmniejsza się do 167 ps. W przypadku XMC4000 można zejść aż do 150 ps, co w tym przykładzie (10% obciążenia, maksymalne odchylenie napięcia wyjściowego 1% od zadanej wartości) oznacza maksymalną częstotliwość przełączania 6,67 GHz/4000 = 1,667 kHz.
Blok generujący sygnał PWM o wysokiej rozdzielczości umieszczony jest za układami liczącymi CCU4 lub CCU8 i dzieli każdy cykl na około 55 mniejszych jednostek (przy taktowaniu procesora częstotliwością 120 MHz, jeden cykl zegara trwa 8,33 ns) o długości 150 ps. Można więc powiedzieć, że sygnał PWM z układów CCU zostaje „doszlifowany”.
Regulacja szczytowego prądu z kompensacją rampową
W mikrokontrolerach XMC4000 istnieje dodatkowy blok w module generującym sygnał PWM o wysokiej rozdzielczości – oprócz generującego sygnał PWM o okresie 150 ps – o nazwie CSG. Jest on wyposażony w komparator i kompensację rampową, które mogą być wykorzystywane całkowicie niezależnie od kanału dla częstotliwości 150 ps. Ale dlaczego jest to takie ważne?
Z zasady, można wybierać między kontrolą napięcia i kontrolą prądu. Decyzja zależy od tego, czy istotniejsza jest szybka reakcja systemu na zmianę obciążenia czy fluktuacje napięcia wejściowego. Kontrola prądowa jest oczywiście szybsza (ponieważ wykrywana jest przyczyna – zmiana prądu, a nie efekt – zmiana napięcia), ale sygnał ma małą amplitudę i musi zostać wzmocniony.
Jeśli zmiana napięcia wejściowego spowodowana jest błędem, np. szumami, efektami pasożytniczymi, fluktuacją napięcia zasilania itd., to problem nie jest poważny, póki stopień wypełnienia sygnału PWM pozostaje mniejszy niż 50% – wówczas błąd zmniejsza się z upływem czasu (rysunek 4, górny wykres).
Rys. 4. Kompensacja rampowa zapobiega wahaniom systemu w przypadku nieprawidłowości
Kiedy stopień wypełnienia jest większy niż 50%, problem jest poważny. W tym przypadku, błąd zwiększa się, a nawet może prowadzić do wzbudzenia (rysunek 4, po środku). Aby temu zapobiec, można użyć przetwornika C/A (o rozdzielczości 10 bitów i szybkości 30 MS/s) do wytworzenia sygnału kompensującego (nazywanego kompensacją wznoszącą), który nakłada się na sygnał wejściowy i stabilizuje pętlę (rysunek 4, dolny wykres).