Brownout jest chwilowym lub długim spadkiem napięcia poniżej poziomu, przy którym układ zachowuje gwarantowaną pracę. Może zresetować MCU, zawiesić sensor, uszkodzić zapis flash albo stworzyć częściowo zasilany stan bez pełnego resetu. W UAV źródłem bywają impulsy radia, rozruch serwa, przeciążenie BEC-u, rezystancja złącza, przełączenie źródeł i zakłócenia napędu. Skuteczna diagnostyka łączy pomiar oscyloskopem, progi BOR/PVD, reset reason i test całego power tree.
Spis treści#
- Brownout a zwykłe niskie napięcie
- Skąd bierze się zapad
- Model impedancji źródła
- Kształt i skala czasu
- POR, PDR i BOR
- PVD jako wczesne ostrzeżenie
- Dobór progów
- Histereza i reset chatter
- Kondensator hold-up
- ESR, ESL i DC bias
- Brownout peryferiów
- Flash i pamięć nieulotna
- Reset reason
- Bezpieczna reakcja
- Pomiar oscyloskopem
- Trigger i rejestracja rzadkiego zdarzenia
- Testy kontrolowane
- Typowe błędne diagnozy
- Lista diagnostyczna
- Powiązane tematy
- Przypisy
Brownout a zwykłe niskie napięcie#
Low-battery failsafe opiera się zwykle na napięciu i energii głównej baterii mierzonych w skali setek milisekund lub sekund. Brownout MCU może trwać mikrosekundy i wystąpić przy wysokim wskazaniu baterii, jeśli lokalna szyna 5 V/3,3 V ma słabą odpowiedź przejściową.
Undervoltage lockout regulatora, BOR mikrokontrolera i próg failsafe baterii to różne mechanizmy. Każdy ma inne miejsce pomiaru, czas reakcji i histerezę.
Brownout nie zawsze kończy się resetem. Napięcie może spaść poniżej minimum sensora, ale pozostać powyżej progu BOR MCU. FC działa dalej z zawieszonym IMU. Albo flash traci gwarancję programowania wcześniej niż CPU.
Dlatego zdarzenie definiuje się per domena: napięcie, czas oraz funkcja, która traci gwarancję.
Skąd bierze się zapad#
Typowe przyczyny:
- serwo pobierające stall current z tej samej szyny;
- radio przechodzące w burst TX;
- GNSS/modem startujący po resecie;
- karta SD wykonująca wewnętrzną operację;
- BEC w current limit lub thermal limit;
- wejście bucka zbliżające się do dropout;
- utrata kontaktu złącza pod wibracją;
- przełączenie Power MUX z martwym czasem;
- rozładowany/zimny akumulator i duży
R_internal; - impuls ESC sprzężony przez wspólną masę;
- zbyt mały lub zdegradowany kondensator;
- oscylacja regulatora z niewłaściwym L/C/ESR;
- reverse current podczas częściowego zasilania USB.
Przyczyna często jest kombinacją. Pojedynczy burst jest poprawny, lecz pokrywa się ze zmianą źródła albo minimalnym napięciem baterii.
Model impedancji źródła#
Prosty model:
V_load(t) = V_source(t) - I(t)·R_path - L_path·dI/dt - ΔV_regulator(t)
R_path obejmuje baterię, złącza, przewody, shunt, MOSFET i ścieżki. Indukcyjność dominuje przy szybkim zboczu. Regulator ma skończoną pętlę regulacji i limit prądu.
Spadek DC można zmierzyć pod dwoma obciążeniami:
R_effective ≈ (V_1 - V_2) / (I_2 - I_1)
Nie opisuje to jednak szybkiego transientu. Potrzebny jest load-step i oscyloskop.
Złącze o rosnącej rezystancji może działać na stole, a nagrzewać się i powodować zapad w locie. Pomiar Kelvin/thermal oraz test wibracji uzupełniają analizę.
Kształt i skala czasu#
Zapad może mieć:
- impuls ns–µs od EMI/ESD;
- dziesiątki µs od skoku obciążenia i kondensatora;
- ms od inrush, serwa lub przełączenia źródła;
- setki ms od current-limit hiccup;
- wolną rampę od baterii/regulatora termicznego;
- okresowe oscylacje od niestabilnej pętli.
Multimetr uśrednia i może pokazać 5,02 V przy zapadzie do 2,8 V przez 20 µs. Logger FC może zresetować się zanim zapisze próbkę.
Kształt względem progu ma znaczenie. Bardzo wolna rampa może utrzymywać układ długo w obszarze niegwarantowanym, jeśli BOR jest wyłączony. Szybki impuls może przejść przez lokalne odsprzęganie albo wzbudzić reset pin.
POR, PDR i BOR#
Power-on reset utrzymuje układ w resecie podczas narastania zasilania. Power-down reset reaguje przy opadaniu. Brownout reset ma wyższy, często wybierany próg i utrzymuje statyczny reset, gdy napięcie jest niewystarczające.
ST opisuje BOR jako mechanizm zapewniający, że MCU jest albo w gwarantowanym obszarze pracy, albo w resecie. Dostępne progi i zachowanie zależą od konkretnej rodziny i option bytes.
BOR powinien być włączony przed lotem i zweryfikowany po programowaniu option bytes. Domyślne ustawienie programatora/bootloadera nie jest wymaganiem projektu.
Reset MCU niekoniecznie resetuje zewnętrzne sensory. NRST może być wyprowadzony do innych układów albo nie. Domeny bez wspólnego resetu wymagają własnego recovery po brownout.
PVD jako wczesne ostrzeżenie#
Programmable Voltage Detector porównuje VDD z wybranym progiem i może wygenerować flagę/interrupt przed BOR. PVD nie zastępuje BOR: software może nie zdążyć, przerwania mogą być wyłączone, a napięcie może opaść bardzo szybko.
ISR PVD wykonuje minimalną, bounded pracę:
- ustawia hardware-safe output, jeśli możliwe;
- zatrzymuje rozpoczynanie nowych zapisów;
- kopiuje mały rekord do backup SRAM/registers;
- zaznacza power-fail generation;
- pozwala BOR utrzymać reset.
Nie zapisuje pełnego logu do flash ani SD. Energia może nie wystarczyć, a taka operacja zwiększa pobór.
Próg PVD powinien być powyżej BOR o margines uwzględniający tolerancje i wymagany czas reakcji. Histereza zapobiega lawinie przerwań przy granicy.
Dobór progów#
Próg wynika z najwyższego minimalnego napięcia krytycznych funkcji przy danej częstotliwości i temperaturze. Trzeba sprawdzić:
- minimum VDD CPU dla wybranego clock/voltage scale;
- flash read/program/erase range;
- SRAM retention;
- transceivery i poziomy GPIO;
- regulator core i analog VDDA;
- sensor minimum i reset threshold;
- tolerancję BOR/PVD, nie wartość typową.
Jeśli MCU działa nominalnie od 1,8 V, ale system 3,3 V ma sensor wymagający 2,7 V, BOR MCU ustawiony nisko nie ochroni sensora. Systemowy supervisor może monitorować główną szynę wyższym progiem.
Zbyt wysoki BOR zmniejsza dostępny hold-up i może resetować przy dopuszczalnym ripple. Zbyt niski pozwala wejść w niegwarantowany obszar. Progi weryfikuje się rampą i impulsami na rzeczywistym urządzeniu.
Histereza i reset chatter#
Układ resetowany przy opadaniu zmniejsza pobór, napięcie odbija powyżej progu, reset puszcza, MCU zaczyna boot i ponownie obciąża szynę. Powstaje boot chatter.
POR/BOR mają wbudowaną histerezę i opóźnienie, ale słabe źródło może nadal oscylować. Zewnętrzny supervisor może dodać większą histerezę i reset delay.
Boot firmware nie powinien natychmiast włączać wszystkich domen. Stopniowy start ogranicza inrush, a PGOOD potwierdza stabilność. Przy kolejnym BOR licznik boot-loop prowadzi do safe boot o małym poborze.
Power MUX validity również potrzebuje hysteresis/deglitch. Inaczej wybór źródła oscyluje niezależnie od resetu MCU.
Kondensator hold-up#
Dla stałego prądu i dopuszczalnego spadku:
C_min = I_load · t_hold / (V_start - V_min)
Przykład: 0,5 A przez 2 ms przy spadku 5,0→4,5 V daje idealnie 2000 µF. To pokazuje, że duży load i mały headroom szybko wymagają znacznej pojemności.
Rzeczywisty projekt uwzględnia ESR, tolerancję, temperaturę, DC bias i zmianę poboru z napięciem. Regulator downstream może pobierać prawie stałą moc, więc prąd wejściowy rośnie, gdy napięcie maleje.
Hold-up można umieścić przed lub po regulatorze. Położenie zmienia wymagane napięcie, izolację od źródła i reverse current. Bez diody/ideal diode kondensator podtrzymujący rozładuje się z powrotem do uszkodzonego źródła.
Pojemność nie naprawia trwałego przeciążenia. Wydłuża czas do resetu i zwiększa energię zwarcia/inrush.
ESR, ESL i DC bias#
Natychmiastowy skok od ESR:
ΔV_ESR = ΔI · ESR
Indukcyjność połączenia daje L·di/dt. Duży elektrolit daleko od MCU pokrywa ms, ale nie szybki front. Lokalne ceramiczne kondensatory dostarczają wysokie częstotliwości.
MLCC traci pojemność pod napięciem DC, szczególnie małe obudowy o dużej wartości. Nominalne 22 µF może być znacznie mniejsze w punkcie pracy. Korzysta się z wykresów producenta.
Elektrolity i polimery mają zależność ESR od temperatury i starzenia. Niska temperatura może zwiększyć zapad.
Równoległe C o bardzo niskim ESR mogą zmienić stabilność regulatora. Datasheet określa dopuszczalny zakres output capacitance/ESR.
Brownout peryferiów#
Sensor może mieć własny POR threshold i zachowanie niezgodne z MCU. Po krótkim zapadzie może:
- wykonać pełny reset i wrócić do default registers;
- stracić część konfiguracji;
- zawiesić interfejs bez resetu;
- trzymać SDA/MISO;
- wygenerować fałszywy data-ready;
- kontynuować z nieciągłym timestampem.
Driver po systemowym power fault nie zakłada ciągłości. Odczytuje ID/reset status, sprawdza critical registers, czyści FIFO i tworzy nową generację.
Częściowe zasilanie przez piny może uniemożliwić prawidłowy reset. Test odcina domenę z sygnałami w różnych stanach i mierzy prąd.
Radio/peripheral na tej samej 5 V może brownoutować bez MCU. Heartbeat i PGOOD/load-switch fault pozwalają odróżnić brak komunikacji od błędu protokołu.
Flash i pamięć nieulotna#
Programowanie i erase flash wymagają gwarantowanego napięcia przez cały czas operacji. Brownout w trakcie może pozostawić częściowo zapisane słowo/sektor. BOR powinien działać powyżej granicy, ale system nie powinien rozpoczynać zapisu po PVD warning.
Konfiguracja używa formatu odpornego na przerwanie:
- dwie kopie/sloty;
- generation counter;
- magic/version/length;
- CRC;
- zapis payloadu przed markerem commit;
- wybór ostatniej kompletnej generacji po boot.
Nie nadpisuje się jedynej poprawnej kopii przed potwierdzeniem nowej. Wear leveling ogranicza zużycie.
Karta SD może stracić więcej danych przez wewnętrzne bufory. Logger traktuje system plików jako niekrytyczny i naprawialny; sterowanie nie zależy od zakończenia flush.
Reset reason#
Pierwszy kod po reset odczytuje flagi RCC/power/reset controller i kopiuje je zanim je skasuje. Wraz z rekordem PVD i monitora pozwala rozróżnić BOR, watchdog, software reset, pin i power-on.
Reset reason może zawierać kilka flag, szczególnie gdy nie zostały wyczyszczone lub domena backup przetrwała. Interpretacja jest specyficzna dla MCU.
Rekord:
boot_counter, reset_flags, last_PVD_edge
min_5V, min_3V3, selected_source
armed_state, last_task, CRC
Minima z ADC mogą nie obejmować szybkiego impulsu, ale korelacja pomaga. Zewnętrzny supervisor/Power MUX status warto latchować sprzętowo do odczytu po boot.
Po brownout system zgłasza przyczynę przed ponownym uzbrojeniem. Bez tego usterka zasilania wygląda jak losowy reboot firmware.
Bezpieczna reakcja#
PVD warning ma krótki, niegwarantowany czas. Priorytety:
- nie generować niebezpiecznych wyjść;
- przerwać zapisy nieulotne w dozwolonym punkcie;
- zapisać minimalny rekord w bezpiecznej domenie;
- nie próbować kosztownego recovery przy malejącym napięciu;
- pozwolić BOR utrzymać reset.
Aktuator ma własny timeout poleceń. Reset FC nie może pozostawić ostatniej komendy bezterminowo.
Po powrocie zasilania start jest od zera. Nie przywraca się automatycznie arm tylko dlatego, że reset trwał krótko. Decyzja o kontynuacji wymaga osobnej architektury bezpieczeństwa.
Jeśli drugie źródło przejęło bez resetu, software rejestruje power failover, ocenia pozostałą redundancję i może ograniczyć payload/radio.
Pomiar oscyloskopem#
Mierzy się równocześnie:
- wejście BEC/power module;
- 5V_SYS;
- 3V3_MCU możliwie blisko pinów;
- NRST lub PGOOD/PVD output;
- opcjonalnie prąd przez current probe/shunt.
Sonda z długim przewodem masy tworzy pętlę i fałszywe szpilki. Używa się ground spring, coax/pigtail i właściwego punktu referencji. Sonda różnicowa jest potrzebna, gdy masa oscyloskopu nie może być bezpiecznie połączona.
Bandwidth limit 20 MHz pomaga ocenić rail ripple, ale osobny capture full-band pokazuje ringing. Oba wyniki odpowiadają na inne pytania.
Miejsce ma znaczenie: 3,3 V przy regulatorze może być poprawne, a przy MCU zapadać przez via/ścieżkę. Pomiar na testpoincie powinien odpowiadać chronionej domenie.
Trigger i rejestracja rzadkiego zdarzenia#
Ustawia się single-shot trigger na opadające zbocze 3V3 nieco powyżej BOR, z pre-trigger 50–80%. Segmentowana pamięć pozwala zebrać serię zdarzeń.
Alternatywy:
- trigger na NRST/PVD/PGOOD z rail jako drugi kanał;
- min/max peak detector;
- komparator z latch resetowany po odczycie;
- logic analyzer korelujący reset i obciążenia;
- GPIO markers dla radio TX, SD write i servo command.
Sampling musi być dostatecznie szybki dla podejrzanej skali. Długi capture o niskim rate może przegapić µs dip. Envelope/peak detect w oscyloskopie pomaga szukać rzadkich impulsów.
Zdarzenie koreluje się z logiem przez marker GPIO albo wspólny trigger. Dwa niezależne zegary wymagają dopasowania.
Testy kontrolowane#
Stanowisko bez śmigieł i z ograniczeniem energii wykonuje:
- wolną rampę wejścia w dół i w górę;
- krótkie impulsy undervoltage o zmiennym czasie/amplitudzie;
- load-step na każdej domenie;
- stall serwa na osobnym ograniczonym torze;
- radio TX + SD write + sensor peak równocześnie;
- odłączenie PWR1 i PWR2 przy pełnym load;
- powolny contact resistance przez kontrolowany rezystor;
- niską temperaturę źródła/kondensatorów;
- zwarcie peryferium za load switchem;
- reset podczas zapisu każdej fazy konfiguracji.
Sweep zapadu tworzy mapę: bez efektu, fault sensora, PVD, BOR, nieokreślony stan. Oczekiwany obszar nieokreślony powinien być wyeliminowany przez właściwe progi.
Po każdym reboocie automat odczytuje reset reason, integralność konfiguracji, stan sensorów i czas powrotu. Test nie kończy się na obserwacji LED.
Typowe błędne diagnozy#
„Napięcie baterii było 15 V” — nie mówi nic o lokalnym 3V3 w µs.
„Dodałem 1000 µF i pomogło” — wskazuje problem energetyczny, ale może ukryć złącze, przeciążenie lub niestabilny regulator. Trzeba znaleźć root cause.
„To watchdog” — watchdog reset może być wtórny: zapad zawiesił peryferium, software utknął, a IWDG zadziałał później. Potrzebna jest sekwencja zdarzeń.
„Dwa BEC-y dają redundancję” — bez reverse blocking jeden uszkodzony może obciążyć drugi. Wspólna bateria/złącze pozostaje pojedynczym punktem.
„BOR jest domyślnie włączony” — option bytes i próg muszą być odczytane na produkcyjnej płytce.
„ADC nie pokazał spadku” — sample rate, filtr RC i reset mogły go ukryć.
„USB działa, więc płytka jest dobra” — USB omija część operacyjnego power path i ma inne źródło/impedancję.
Lista diagnostyczna#
- Zidentyfikuj dokładną domenę, która utraciła gwarancję.
- Odczytaj reset flags przed ich skasowaniem.
- Sprawdź option bytes BOR i rzeczywisty próg.
- Zmierz 5V/3V3 przy odbiorniku, nie tylko baterię.
- Użyj single trigger z pre-trigger i krótką masą sondy.
- Koreluj zapad z PGOOD/PVD/NRST oraz obciążeniem.
- Policz path resistance i wykonaj load-step.
- Sprawdź current limit, dropout i thermal mode regulatora.
- Uwzględnij realną pojemność po DC bias/temperaturze.
- Wyklucz back-power i reverse current.
- Po power fault rekwalifikuj sensory i konfigurację.
- Testuj integralność flash przy przerwaniu każdej fazy zapisu.
- Zweryfikuj bezpieczne wyjścia podczas resetu i boot.
- Powtórz test po uruchomieniu silników/radia oraz w temperaturze.
Powiązane tematy#
- Architektura zasilania flight controllera
- Watchdog i recovery flight controllera
- BEC i przetwornice w UAV
- PDB i dystrybucja mocy
- Redundancja sensorów w FC
Przypisy#
- STMicroelectronics, Basics of power supply design for MCU — POR/PDR, BOR, PVD, reset flags i wymagania domen zasilania.
- STMicroelectronics, AN5307: STM32H7A3/7B3 hardware development — progi BOR/PVD oraz konfiguracja supervisora dla przykładowej rodziny STM32H7.
- STMicroelectronics, STM32H743/753 documentation — datasheet/reference manual do wiążącego doboru progów konkretnego MCU.
- Texas Instruments, Basics of Power MUX — zachowanie przełączania źródeł i wpływ na ciągłość wyjścia.
- PX4, Power Modules and Power Distribution Boards — pomiar energii i zasilanie FC przez power module.
Utworzono: 15 sierpnia 2026. Ostatnia aktualizacja: 15 sierpnia 2026. Źródła zweryfikowano: 15 sierpnia 2026.
Źródła z centralnego rejestru
- STMicroelectronics: Basics of power supply design for MCU [dokumentacja producenta]
- ST AN5307: STM32H7A3/7B3 hardware development [nota aplikacyjna producenta]
- STMicroelectronics: STM32H743/753 documentation [producent]
- Texas Instruments: Basics of Power MUX [nota aplikacyjna producenta]
- PX4: Power Modules and Power Distribution Boards [dokumentacja projektu]