Prototyp urządzenia może z sukcesem przejść wszystkie testy funkcjonalne na biurku konstruktora, a mimo to wykazywać zbyt silną emisję lub podatność na zakłócenia EMI. Przyczyna nie zawsze leży w pojedynczej pomyłce w projekcie płytki drukowanej bądź niewłaściwie dobranym komponencie. Znacznie częściej bowiem problemy dające o sobie znać w laboratorium EMC wynikają z koincydencji dwóch lub więcej czynników: fundamentalnych błędów w layoucie PCB, braku właściwych komponentów zabezpieczających, a nawet… z niewłaściwej konfiguracji niektórych rejestrów mikrokontrolera.
W ramach niniejszego poradnika przejdziemy wspólnie przez decyzje projektowe najważniejsze z punktu widzenia kompatybilności elektromagnetycznej urządzeń zbudowanych w oparciu o mikrokontrolery. O ile część aspektów opisanych w artykule jest uniwersalna dla (prawie) wszystkich urządzeń elektronicznych, to pozostałe są specyficzne stricte dla rodziny mikrokontrolerów STM32. Zwrócimy przy tym uwagę na aspekty leżące na trzech poziomach każdego projektu systemu wbudowanego: na schemacie, w layoucie PCB oraz w warstwie programowej.
O kompromisie na styku domen czasu i częstotliwości
Zacznijmy od krótkiego przypomnienia fundamentalnego faktu: każdy przebieg okresowy może być utworzony z odpowiedniej kombinacji składowej o częstotliwości podstawowej (f0) oraz wyższych harmonicznych o częstotliwościach: 2f0, 3f0, 4f0 itp. W przypadku idealnego przebiegu prostokątnego o amplitudzie Vp i współczynniku wypełnienia 50%, sygnał v(t) można zapisać jako sumę nieparzystych harmonicznych o amplitudach malejących asymptotycznie wraz ze wzrostem rzędu harmonicznej:

Jeżeli zatem w systemie mikroprocesorowym mamy linię zegara o częstotliwości 1 MHz, to przebieg ten nie zawiera wyłącznie składowej 1 MHz, ale także 3-krotnie słabszą składową 3 MHz, 5-krotnie słabszą harmoniczną 5 MHz itd. Teoretycznie widmo maleje w nieskończoność, choć w rzeczywistości w grę wchodzą ograniczenia aparatury pomiarowej, wynikające z jej zakresu dynamiki i poziomu szumów własnych – poniżej pewnego progu resztkowa energia na skraju mierzalnego przedziału częstotliwości będzie po prostu „ginęła” w podłodze szumowej analizatora.
Tak czy inaczej, na energię prostokątnego przebiegu składają się harmoniczne leżące daleko powyżej częstotliwości przełączania, a im bardziej strome są zbocza, tym dalej sięga mierzalny zakres widma. Widać to doskonale na powyższej animacji – w miarę dodawania kolejnych harmonicznych zbocza sygnału zbliżają się coraz bardziej do pionowego ideału. Przyjmuje się, że przybliżona częstotliwość „kolana” widma (czyli umowny próg, powyżej którego dalsze dokładanie wyższych harmonicznych nie wnosi znaczących różnic w kształcie sygnału) wynosi:
Dla czasu narastania 1 ns otrzymujemy częstotliwość rzędu 500 MHz, a dla 7 ns około 70 MHz. Trzeba jednak wyraźnie podkreślić, że patrzymy tutaj wyłącznie z punktu widzenia wierności odwzorowania sygnału w domenie czasu. W praktyce pasmo rzeczywistego sygnału prostokątnego, które może wpłynąć na końcowe wyniki badań EMC, będzie z pewnych względów jeszcze szersze – a do tego, co gorsza, bardzo trudne do oszacowania na drodze obliczeń czy symulacji, bowiem wartości limitów w normach EMC są określone w sposób bezwzględny i dotyczą ściśle określonych warunków pomiaru. Wartości obliczone za pomocą popularnych wzorów nie wyznaczają zatem ostrej granicy widma, ale dobrze tłumaczą, dlaczego dwa piny przełączane z tą samą częstotliwością mogą dawać zupełnie inny wynik pomiaru emisji. Na szczęście w przypadku mikrokontrolerów STM32 można w dość szerokim zakresie kontrolować stromość zboczy za pomocą rejestrów GPIOx->OSPEEDR.
Zbocza sygnałów pod kontrolą
Znaczenie rejestrów OSPEEDR bywa przez początkujących błędnie interpretowane jako wybór częstotliwości przełączania pinu. Zawartość bitów OSPEEDR[1:0] w żaden sposób nie wpływa jednak na częstotliwość kluczowania wyjścia (tę determinuje wszak sam program, np. na drodze ustawień timera sprzętowego bądź taktowania interfejsu SPI), ale ustala orientacyjne wartości czasu narastania/opadania sygnału. Ten zaś, jak już wykazaliśmy, wpływa na mierzalne pasmo zaburzeń powstających w wyniku przełączania tranzystorów wyjściowych GPIO.
Pomiary opisane w artykule STM32 OSPEEDR — praktyczne pomiary dynamiki GPIO zostały wykonane na płytce STM32 NUCLEO z mikrokontrolerem STM32F411RE. Pin PC9 był przełączany z częstotliwością około 690 kHz, sterując różnymi obciążeniami pojemnościowymi. Bez dołączonego kondensatora (tj. przy obciążeniu samą sondą pasywną 10:1) czas narastania wynosił około 7,3 ns w trybie Low speed i około 1,3 ns w trybie Very high speed.

Druga część eksperymentu, opisana w artykule GPIO kontra EMC, została wykonana przy użyciu analizatora widma i komory TEM. Przy tej samej częstotliwości przełączania tryb najniższej szybkości wyjść GPIO dawał istotne harmoniczne w okolicy 100–120 MHz, a tryb medium rozszerzał widmo do okolic 240–300 MHz. W trybie high speed granice mierzalnego spektrum docierały do około 500 MHz, zaś przy najwyższym ustawieniu (OSPEEDR[1:0] = 0b11) – jeszcze dalej, do około 600 MHz.

Podane częstotliwości nie są oczywiście granicami gwarantowanymi w jakikolwiek sposób przez ST, a to z bardzo prostej przyczyny: wynik tych konkretnych pomiarów zależał od szeregu czynników, w tym konkretnego modelu mikrokontrolera, długości przewodu podłączonego do GPIO (zastosowano 30-centymetrowy przewód z wykami BLS), a także samej aparatury (czułości analizatora, charakterystyki komory TEM, etc.). Celem przeprowadzonego eksperymentu było pokazanie, jak istotne jest znaczenie prawidłowego doboru ustawień OSPEEDR do danego zastosowania. Dobra praktyka zakłada zastosowanie najmniejszej dynamiki wyjść mikrokontrolera, przy której nie ucierpi jeszcze integralność sygnałowa danego interfejsu. Trzeba także mieć na uwadze, że w niektórych przypadkach konieczne będzie nadmiarowe ustawienie prędkości GPIO z uwagi na specyficzne zachowania niektórych serii mikrokontrolerów – przykładowo w rodzinie STM32F4 interfejs SPI może generować błędne dane, jeżeli prędkość będzie ustawiona na wartość zbyt niską (niezależnie od rzeczywistej częstotliwości sygnału zegarowego).
Komórki kompensacyjne jako remedium na tolerancje produkcyjne i wpływ warunków pracy
Parametry tranzystorów bufora wyjściowego GPIO zmieniają się wraz z rozrzutem procesu produkcyjnego, napięciem zasilania i temperaturą, czyli PVT (Process, Voltage, Temperature). Jednakowe ustawienie OSPEEDR może więc dać inne szybkości zboczy na dwóch egzemplarzach MCU albo w skrajnych temperaturach.
Komórka kompensacyjna (I/O compensation cell) koryguje charakterystyki buforów I/O, ograniczając ich zmienność wynikającą z procesu, napięcia i temperatury. Funkcja ta ma znaczenie zwłaszcza dla szybkich interfejsów takich jak FMC/FSMC, QSPI/OSPI/XSPI, SDIO/SDMMC itp. Warto przy tym podkreślić, że rejestr OSPEEDR wybiera zgrubną klasę dynamiki, a blok compensation cell ogranicza jedynie jej wahania. Użycie komórki kompensacyjnej różni się przy tym nie tylko w zależności od implementacji w danej rodzinie mikrokontrolerów, ale także w poszczególnych zakresach napięcia zasilania – każdorazowo trzeba zatem zweryfikować zalecenia producenta, odnosząc się do zapisów z noty katalogowej oraz dokumentu Reference manual danej serii STM32.
Obwody zasilania STM32
Podczas przełączania logiki prąd pobierany przez rdzeń i bufory I/O zmienia się w czasie liczonym w nanosekundach. Stabilizator oddalony na płytce o kilka centymetrów od mikrokontrolera nie jest w stanie efektywnie dostarczyć takiego impulsu bezpośrednio. Lokalny kondensator odsprzęgający zamyka krótką pętlę prądową, tworzoną przez obwody mikrokontrolera i linie zasilania. Im bliżej układu znajduje się element, tym mniejszą powierzchnię ma pętla prądowa. Mniejsza powierzchnia to z kolei zredukowana indukcyjność pasożytnicza, mniejsze wahania napięcia na liniach zasilania i słabsza emisja zaburzeń RFI.
Najczęściej spotykany układ obejmuje po jednym kondensatorze 100 nF dla każdej pary pinów VDD–VSS oraz jeden „wspólny” kondensator 4,7–10 µF umieszczony niedaleko mikrokontrolera. Przykładowo aktualna nota aplikacyjna STM32C5 zaleca zastosowanie zestawu kondensatorów: n × 100 nF + 1 × 4,7 µF. Nie jest to jednak uniwersalna recepta dla każdego STM32. Domena VDDA/VREF, wyjścia wewnętrznego regulatora VCAP czy zasilanie interfejsu USB mogą wymagać innych pojemności, parametrów ESR lub topologii. W pierwszej kolejności obowiązuje karta katalogowa i nota sprzętowa wybranej rodziny oraz obudowy.

Schemat schematem… ale liczy się layout
Powszechnie znana zasada głosi, że kondensatory odsprzęgające powinny znajdować się jak najbliżej pinów zasilania. Takie sformułowanie jest użyteczne, ale zdecydowanie niepełne. Kondensator oddalony od pinu o zaledwie 2 mm, ale połączony cienką ścieżką i przelotką po przeciwnej stronie obudowy mikrokontrolera, będzie odseparowany znacznie większą indukcyjnością pasożytniczą niż element oddalony o 4 mm, ale podłączony szerokimi ścieżkami do płaszczyzn.
W praktyce warto dążyć do następującej topologii:
- Każdy kondensator przypisujemy do konkretnej pary VDD–VSS.
- Pad zasilający łączymy z pinem VDD możliwie krótką i szeroką ścieżką.
- Przelotkę zasilania oraz przelotkę masy umieszczamy bezpośrednio przy padach kondensatora. Połączenia nie powinny tworzyć długich „szyjek”. Zdublowanie przelotek umożliwia dalsze zmniejszenie wypadkowej indukcyjności pasożytniczej.
- Bezpośrednio pod mikrokontrolerem powinna znajdować się ciągła płaszczyzna masy, odseparowana możliwie cienką warstwą laminatu od warstwy sygnałowej.
- Nie łączymy kilku kondensatorów wspólną, wąską ścieżką ani jedną odległą przelotką. Wspólna indukcyjność osłabia ich działanie szczególnie wtedy, gdy prądy impulsowe mają największą amplitudę.
Indukcyjność montażowa obejmuje składowe indukcyjności pasożytniczej wyprowadzenia elementu, padu, ścieżki i przelotki (przelotek). Nota aplikacyjna XAPP623 pokazuje skalę zjawiska: zależnie od położenia przelotek połączenie kondensatora 0402 może wnosić od około 0,4 nH przy dwóch przelotkach obok padów nawet do 4 nH przy wąskich doprowadzeniach skierowanych równolegle do długiej osi kondensatora. Dokładne liczby zależą oczywiście od stosu warstw i geometrii, lecz zasada jest uniwersalna dla wszystkich rzeczywistych układów.
Indukcyjności pasożytnicze w sieci zasilania stanowią problem z dwóch głównych powodów. Po pierwsze – wraz z pojemnością komponentów biorą udział w tworzeniu obwodów rezonansowych, które wprowadzają do układu dodatkowe zaburzenia. Po drugie na indukcyjności połączeń występują dynamiczne spadki napięcia proporcjonalne do szybkości zmian prądu. Dla przykładu: załóżmy, że wartość natężenia prądu zmienia się o 10 mA w czasie 1 ns, zaś ścieżka (wraz z ewentualnymi przelotkami) ma indukcyjność 2 nH. W takim wypadku na owym połączeniu wystąpi dynamiczny spadek napięcia równy:
Choć wynik może się wydawać niewielki, to w rzeczywistości przy niezliczonych źródłach takich spadków napięcia w całym układzie (zarówno wokół samego mikrokontrolera, jak i w innych obszarach PCB) indukcyjności pasożytnicze stanowią spore zagrożenie tak dla integralności sygnałowej (signal integrity), jak i integralności zasilania (power integrity).
Ciągła masa zamiast automatycznego podziału AGND i DGND
W systemach cyfrowych oraz analogowo-cyfrowych fundamentalną zasadą pozwalającą zapanować nad emisją RFI, integralnością sygnałową i optymalnymi warunkami zasilania jest zastosowanie pełnej, ciągłej płaszczyzny masy. Szybkie linie sygnałowe nie powinny przecinać szczelin, krawędzi wysp miedzi (polygonów) etc. – optymalna droga prądu powrotnego przebiega bezpośrednio pod ścieżką sygnałową, co pozwala zminimalizować obszar objęty pętlą prądową, a to redukuje zarówno emisję zakłóceń, jak i przesłuchy pomiędzy sąsiadującymi obwodami.
Separację funkcjonalną części analogowej osiągamy przede wszystkim przez rozmieszczenie elementów i kontrolę tras prądowych: przetwornica, obwody sterujące obciążeniami (np. silnikami) czy szybka pamięć zewnętrzna powinny pozostawać z dala od źródła napięcia odniesienia, wejść przetwornika ADC oraz ich zewnętrznych obwodów kondycjonowania (filtrów, wzmacniaczy etc.). Te same zalecenia dotyczą także wewnętrznych wzmacniaczy operacyjnych i komparatorów, jeżeli dany mikrokontroler jest w nie wyposażony i są one używane w projekcie.
Co ważne, filtrację RC lub LC (za pomocą dławika ferrytowego) należy realizować wyłącznie po stronie dodatniej szyny zasilania, to jest pomiędzy VDD a VDDA – błędnym pomysłem będzie oddzielanie masy analogowej od cyfrowej np. za pomocą dławika. Oprócz problemów z integralnością sygnałową, która mogłaby być łatwo zdegradowana przez zwiększoną impedancję połączenia AVSS z masą układu, warto zwrócić uwagę także na dopuszczalną różnicę pomiędzy potencjałami linii VSS i VSSA, która może w przypadku STM32 wynosić co najwyżej 50 mV. Wszelkie rodzaje filtrów włączone szeregowo pomiędzy te piny mogą potencjalnie doprowadzić do przekroczenia wspomnianej wartości, zwłaszcza jeżeli weźmiemy pod uwagę zarówno składową stałą (), jak i składową zmienną ().
Szczególnej uwagi wymagają obwody:
- VCAP — wyjście wewnętrznego regulatora, przeznaczone tylko do podłączenia wskazanego w dokumentacji kondensatora. Nie należy zasilać z tego punktu innych obwodów;
- VDDA/VREF — obszar domeny analogowej, wrażliwy zwłaszcza na spadki napięcia i prądy powrotne I/O; bazowe wartości filtrów warto sprawdzić w dokumentacji danej rodziny mikrokontrolerów i ewentualnie zmodyfikować je odpowiednio do potrzeb danej aplikacji;
- Obwody SMPS — część rodzin STM32 zawiera wersje układów wyposażone we wbudowany kontroler DC/DC (SMPS). W takich przypadkach należy rygorystycznie stosować się do wszystkich zasad dobrej praktyki przy projektowaniu przetwornic impulsowych, w tym przede wszystkim zminimalizować obszar pętli prądowej obwodu kluczującego (VLXSMPS -> dławik -> kondensatory wyjściowe -> VSSSMPS) oraz impedancje połączeń (krótkie, szerokie ścieżki), a także użyć odpowiedniej liczby przelotek łączących wyprowadzenie VSSSMPS i kondensatory wyjściowe z płaszczyzną masy.
- VSS — wszystkie piny masy powinny mieć krótkie i możliwie szerokie połączenie z płaszczyzną masy. Dodatkowo w stosie warstw warto zadbać o to, by płaszczyzna GND była możliwie blisko warstwy sygnałowej (zwykle top layer) – preferowane jest użycie stosu przynajmniej 4-warstwowego, choć rzecz jasna nie zawsze będzie to możliwe ze względów ekonomicznych.

Przy doborze kondensatorów MLCC należy uwzględnić spadek pojemności pod napięciem stałym (efekt zwany DC bias). Element opisany np. jako 4,7 µF może w rzeczywistych warunkach pracy oferować nawet kilkukrotnie mniejszą pojemność. Dlatego warto stosować kondensatory typu X5R lub X7R, wykazujące słabszą zależność pojemności od napięcia stałego w porównaniu np. do Y5V. Ponadto wybór elementów o dopuszczalnym napięciu roboczym dobranym z możliwie sporym zapasem przeważnie ogranicza wpływ efektu DC bias, a to z uwagi na nieco mniejszą gęstość pola elektrycznego w dielektryku.
Obwód HSE
Obwód rezonatora kwarcowego jest zarazem jednym z ważniejszych źródeł emisji zakłóceń, jak i miejscem szczególnie wrażliwym na zewnętrzne zaburzenia. Poprawny układ strefy w pobliżu linii OSC_IN i OSC_OUT opiera się na kilku podstawowych zasadach:
- kwarc i kondensatory obciążające umieszczamy jak najbliżej pinów OSC_IN/OSC_OUT mikrokontrolera;
- prowadzimy krótkie ścieżki, ułożone możliwie symetrycznie i pozbawione odgałęzień (np. punktów testowych umieszczonych obok połączeń rezonator-MCU);
- minimalizujemy impedancję połączeń kondensatorów z masą, najlepiej z użyciem kilku przelotek;
- wokół połączeń można utworzyć dodatkowo pierścień ochronny z przelotek połączonych z ciągłą płaszczyzną masy;
- pod kwarcem i jego ścieżkami, a także w bezpośrednim ich otoczeniu, nie prowadzimy linii zegarowych, magistral ani innych sygnałów generujących zakłócenia;
- nie przecinamy strefy oscylatora przelotkami innych sieci i nie dodajemy punktów testowych do aktywnych węzłów.
Gdy od projektu nie wymagamy wysokiej dokładności i stabilności czasowej, warto zastosować taktowanie za pomocą wewnętrznego generatora HSI, co pozwala usunąć z płytki zewnętrzny obwód rezonatora kwarcowego.
SSCG: niższy pik widma, ale nie mniejsza energia
Generator PLL w rodzinach STM32F2, STM32F4 i STM32F7 może pracować z funkcją tzw. rozpraszania widma, czyli SSCG (Spread-Spectrum Clock Generation). Specjalny blok peryferyjny powoli moduluje częstotliwość PLL, przez co zamiast jednego wąskiego piku oraz jego harmonicznych otrzymujemy energię rozłożoną na szerszy przedział widma. Ceną za obniżenie szczytowej emisji w punkcie widma równym częstotliwości wyjściowej PLL są (celowo wprowadzone) wahania okresu i fazy zegara, czyli jitter.


Przybliżoną teoretyczną redukcję piku można opisać zależnością podaną w dokumencie AN4850:
gdzie md jest połową głębokością modulacji międzyszczytowej, f0 — nominalną częstotliwością wyjściową PLL, a RBW — szerokością pasma filtru rozdzielczego analizatora.
Warto dodać, że w przypadku serii STM32H7 wprawdzie nie ma wbudowanego bloku modulatora SSCG, ale funkcję rozpraszania widma można skutecznie emulować. Dokonuje się tego (w układach obsługujących taką konfigurację) za pomocą okresowej aktualizacji ułamkowego dzielnika PLL przez kontroler DMA wyzwalany timerem. Szczegółowy opis takiego rozwiązania można znaleźć na stronie: https://t.ly/vijUD

Decydując się na użycie rozpraszania widma należy pamiętać, że celowy jitter wprowadzony do sygnału zegarowego może pogorszyć stosunek sygnału do szumu ADC, dokładność timerów, czy wreszcie jakość zewnętrznego sygnału na wyjściu MCO, oczywiście o ile dany blok jest faktycznie taktowany za pomocą danego bloku PLL. Zastosowanie SSCG (lub alternatywnej metody opartej na timerze pętli PLL) można zatem rozważyć tylko w wypadkach, w których redukcja poziomu zakłóceń nie pogorszy jednocześnie parametrów funkcjonalnych urządzenia.
Ochrona ESD
Odporność układu scalonego, podawana w notach katalogowych jako wartości napięć w odniesieniu do modeli HBM (Human Body Model) lub CDM (Charged Device Model), dotyczy kwalifikacji układu scalonego w kontrolowanym środowisku produkcyjnym. Dla konstruktorów znacznie większe znaczenie ma standard IEC 61000-4-2 opisujący wyładowanie do kompletnego urządzenia poprzez złącze, obudowę, powierzchnię ekranu czy też przycisk bądź inny element obsługowy. Impuls testowy ma bardzo strome zbocze narastające, dlatego fundamentalne znaczenie ma nie tylko użycie właściwego ochronnika, ale także jego poprawny routing na PCB.
W doborze diod TVS sprawdzamy co najmniej:
- VRWM — maksymalne napięcie robocze, przy którym zabezpieczenie ma pozostać wyłączone;
- VBR — napięcie przebicia przy określonym prądzie testowym;
- VCL — napięcie ograniczenia przy danym impulsie i prądzie, zawsze wyższe od VBR;
- rezystancję dynamiczną — określaną przez zwiększanie napięcia wraz ze wzrostem prądu;
- pojemność pasożytniczą — krytyczną zwłaszcza w przypadku USB, SDIO, szybkich obwodów ADC czy przycisków pojemnościowych;
- prąd upływu — istotny w przypadku wejść analogowych o wysokiej impedancji, a także w urządzeniach o ultraniskim poborze mocy;
- kierunkowość — element jednokierunkowy należy stosować tylko w przypadku sygnałów unipolarnych, zaś dwukierunkowy na liniach bipolarnych.
Layout diody TVS to część zabezpieczenia
Napięcie na chronionym węźle obejmuje nie tylko charakterystykę diody, ale również wspomniany już wcześniej wielokrotnie składnik indukcyjny:
Przykładowo: indukcyjność ścieżki równa 6 nH, przy narastaniu prądu z szybkością 24 A/ns, może spowodować odłożenie się na ścieżce napięcia około 144 V. Nawet bardzo dobra dioda zamontowana w niewłaściwym miejscu (np. kilka centymetrów od złącza) może więc nie spełnić swojego zadania w krytycznym momencie.
Z opisanych powyżej względów tor sygnałowy zawsze układamy w kolejności: złącze → TVS → impedancja szeregowa (np. rezystor) lub filtr → linia GPIO. Połączenie drugiego wyprowadzenia ochronnika z płaszczyzną masy powinno być krótkie, szerokie i wyposażone w przelotki bezpośrednio przy padzie. Chroniona ścieżka powinna przechodzić przez pady TVS w topologii przelotowej – nigdy nie prowadzimy najpierw sygnału do linii MCU, a dopiero potem odgałęzienia do TVS umieszczonego gdzieś z boku.
Przykłady zabezpieczeń dla czterech rodzajów linii
| Rodzaj linii | Przykładowe zabezpieczenie | Istotne parametry |
|---|---|---|
| USB 2.0 High Speed | USBLC6-2SC6 | do 3,5 pF na linię, bardzo dobre dopasowanie obu kanałów, IEC 61000-4-2 poziom 4 |
| wolne wejścia cyfrowe, przyciski, sygnały statyczne | ESDA6V1-5SC6 | pięć linii, typowo około 50 pF, VBR co najmniej 6,1 V, upływ do 1 µA |
| wejścia analogowe ADC (0…3,3 V) | ESDAXLC5-1U2 | typowo 0,55 pF i 4 nA, maksymalny upływ należy sprawdzić dla napięcia i temperatury |
| wejścia analogowe bipolarne | ESDZV5-1BF4 | element dwukierunkowy, typowo około 6 pF, upływ do 100 nA |
Dobierając diody TVS trzeba zwrócić uwagę na obowiązującą w danym przypadku normę. Nie zawsze bowiem będziemy odnosić się bezpośrednio do jednego z czterech poziomów zdefiniowanych w normie IEC 61000-4-2 (przykładowo poziom 4 oznacza w tym kontekście wyładowanie kontaktowe ±8 kV i powietrzne ±15 kV) bądź właściwej dla danego wyrobu normie produktowej. Dobrą ilustracją mogą być tutaj wyroby medyczne – wymagania czwartej edycji normy 60601-1-2 pod wględem napięć probierczych są tożsame właśnie z 4. poziomem 61000-4-2, choć w obowiązującej do niedawna edycji 3. był to poziom trzeci).
Środki programowe domykają projekt EMC
Na koniec należałoby wymienić podstawowe techniki na poziomie firmware-u urządzenia, które warto wdrożyć do projektu niezależnie od prac nad jakością PCB. Są to między innymi:
- użycie watchdoga z wiarygodnym źródłem czasu i kontrolą postępu programu;
- sprawdzanie przyczyny resetu i zapisywanie danych diagnostycznych;
- filtrowanie czasowe wejść oraz porównywanie wyników ADC z zakresem fizycznie możliwym od osiągnięcia w danym układzie;
- okresowa kontrola kluczowych rejestrów konfiguracji;
- redundantne przechowywanie danych krytycznych, stosowanie sum kontrolnych i bezpiecznego zapisu pamięci nieulotnej;
- definicja stanów wyjść podczas startu, resetu czy błędu zegara.
Podsumowanie
Na pozytywny wynik testów EMC trzeba sobie zapracować – i to znacznie wcześniej, niż w momencie umieszczenia egzemplarza próbnego w komorze bezechowej. W rzeczywistości sukces rodzi się na dużo wcześniejszych etapach projektu – na schemacie ideowym, we właściwie dobranym stosie warstw czy podczas konfiguracji tak podstawowych peryferiów, jak porty GPIO czy bloki taktowania. Dopiero synergiczne działanie wszystkich poziomów zabezpieczeń, filtracji czy rutynowych testów wewnętrznych pozwala osiągnąć upragniony sukces. Dlatego też warto znać możliwości redukcji emisji zaburzeń i podatności na RFI, które są specyficzne dla mikrokontrolerów STM32 – i świadomie stosować je w swoich projektach.
Autor: Przemysław Musz – Hardware Designer
Źródła
- STMicroelectronics, AN1709 — EMC design guide for STM8, STM32 and legacy MCUs.
- STMicroelectronics, AN1015 — Software techniques for improving microcontrollers’ EMC performance.
- STMicroelectronics, AN2867 — Guidelines for oscillator design on STM8 and STM32 MCUs/MPUs.
- STMicroelectronics, AN3353 — IEC 61000-4-2 standard testing.
- STMicroelectronics, AN3960 — Guidelines for ESD for touch sensing applications on STM32 MCUs.
- STMicroelectronics, AN4850 — STM32 MCUs spread-spectrum clock generation.
- STMicroelectronics, AN5612 — ESD protection of STM32 MCUs and MPUs.
- STMicroelectronics, AN6274 — Getting started with STM32C5 MCU hardware development.
- Hardware Designer, STM32 OSPEEDR — praktyczne pomiary dynamiki GPIO.
- Hardware Designer, STM32 OSPEEDR — GPIO kontra EMC.
- Hardware Designer, STM32 OSPEEDR — obwody kompensacji buforów wyjściowych.
- STMicroelectronics, AN6274 — Getting started with STM32C5 MCU hardware development.
- STMicroelectronics, USBLC6-2SC6 — low-capacitance ESD protection for USB.
- STMicroelectronics, ESDA6V1-5SC6 — five-line ESD protection array.
- STMicroelectronics, ESDAXLC5-1U2 — ultra-low-capacitance ESD protection.
- STMicroelectronics, ESDZV5-1BF4 — bidirectional ESD protection.
- AMD/Xilinx, XAPP623 — Power Distribution System Design: Using Bypass/Decoupling Capacitors — materiał archiwalny użyty do omówienia indukcyjności montażu.
