Odzyskany mikrokontroler może być pełnowartościowym elementem stanowiska HIL, rejestratora, modułu telemetrycznego albo prostego kontrolera nieuzbrojonego UAV. Nie wynika to jednak z samego napisu PIC, STM8 czy Renesas na obudowie. Użyteczność trzeba udowodnić dla konkretnego numeru części i konkretnego egzemplarza: zidentyfikować pamięć programu, odnaleźć interfejs programowania, sprawdzić blokady, odtworzyć zasilanie, przetestować peryferia i dopiero potem oddzielić układ od płyty dawcy.
Najcenniejszym znaleziskiem często nie jest luźny scalak. Jest nim działający fragment oryginalnej płyty z mikrokontrolerem, rezonatorem, resetem, odsprzęganiem, transceiverem i wyprowadzonym złączem serwisowym. Zachowanie tego otoczenia zmniejsza liczbę niewiadomych i pozwala najpierw sprawdzić programowalność, zanim demontaż termiczny doda własne uszkodzenia.
Co właściwie chcemy odzyskać#
W klasycznym komputerze Z80 lub 6502 procesor jest tylko jednym z wielu elementów. Do pracy potrzebuje zewnętrznej pamięci programu, RAM-u, dekodera adresów, timerów oraz układów wejścia/wyjścia. Mikrokontroler integruje większość tych bloków. Dlatego 8-bitowy STM8, PIC18, RL78 albo szybki 8051 bywa praktyczniejszy niż znacznie bardziej rozpoznawalny procesor z komputera domowego.
Dla niewielkiego systemu sterowania interesują nas co najmniej:
- pamięć Flash, którą można skasować i ponownie zaprogramować;
- kilka kilobajtów RAM-u, jeżeli mają działać bufory sensorów i telemetrii;
- deterministyczny timer wyznaczający okres pętli;
- capture/compare lub PWM do pomiaru wejść i sterowania serwami;
- SPI albo I²C do sensora inercyjnego;
- UART do diagnostyki i stanowiska HIL;
- watchdog i brown-out reset;
- udokumentowane napięcie zasilania oraz poziomy logiczne;
- dostępny programator, kompilator i pełny podręcznik peryferiów.
Brak jednego elementu nie zawsze dyskwalifikuje układ. SPI można zrealizować programowo, a sygnał serwa wygenerować timerem ogólnym. Brak reprogramowalnej pamięci, nieznany pinout lub niedostępne narzędzie programujące zwykle kończą projekt jeszcze przed pierwszą próbką IMU.
Mapa wartościowych dawców#
| Dawca | Co zwykle warto obejrzeć | Typowe przeszkody |
|---|---|---|
| pralka, zmywarka, klimatyzator | MCU główny, osobny MCU falownika, EEPROM, transceivery, sensory prądu | część pierwotna sieci, lakier ochronny, nietypowy numer klienta |
| elektronarzędzie i odkurzacz BLDC | MCU motor-control, drivery bramek, shunt, komparatory | bardzo mała płytka, zalanie żywicą, duże impulsy prądowe w historii pracy |
| drukarka i skaner | MCU, sterowniki krokowe, enkodery, transoptory, czujniki szczelinowe | główny SoC może wymagać SDRAM-u i zamkniętego bootloadera |
| napęd CD/DVD | małe MCU, drivery silników, sensory położenia, mechanika | układy ASIC o funkcji związanej wyłącznie z napędem optycznym |
| UPS i falownik | DSP/MCU, izolatory, pomiar napięcia i prądu, drivery | niebezpieczne napięcia i energia kondensatorów, możliwe uszkodzenia cieplne |
| amplituner, wieża, panel audio | 8051, Renesas, EEPROM, enkoder i wyświetlacz | mask-ROM w kontrolerze panelu, oznaczenie zamawiającego |
| telewizor i dekoder | pamięci SPI Flash, regulatory, czasem pomocniczy MCU | duży SoC zwykle potrzebuje DDR, PMIC i podpisanego firmware |
| sterownik przemysłowy | MCU, izolowane RS-485/CAN, watchdog, precyzyjne referencje | conformal coating, nieznana historia przepięć, zabezpieczenia programu |
Telewizor jest dobrym dawcą przetwornic i pamięci, ale często słabym źródłem prostego kontrolera. Główny układ MediaTek, MStar, Realtek lub Novatek może integrować dekoder wideo, kontroler DDR i scaler, lecz bez dokumentacji, sekwencji zasilania oraz oryginalnego boot chainu jest mniej użyteczny niż niewielki PIC lub STM8.
Najpierw dokumentacja, potem lutownica#
Pełne oznaczenie należy odczytać przy świetle padającym pod małym kątem, sfotografować i przepisać znak po znaku. Napis R5F10..., PIC16F... albo STM8S... identyfikuje dopiero rodzinę. Końcowe znaki mogą kodować pojemność Flash, liczbę pinów, obudowę, zakres temperatury i wariant napięciowy.
Minimalna karta identyfikacyjna znaleziska powinna zawierać:
| Pole | Przykład | Dlaczego jest potrzebne |
|---|---|---|
| pełny top-mark | STM8S105K6T6C |
odróżnia wariant pamięci i obudowy |
| obudowa i liczba wyprowadzeń | LQFP-32 | pozwala dobrać pinout i adapter |
| logo producenta | ST | ogranicza liczbę podobnych oznaczeń |
| kod płyty i urządzenia | moduł silnika pralki | pomaga rozpoznać funkcję pinów |
| zdjęcie obu stron PCB | plik źródłowy | zachowuje połączenia przed demontażem |
| napięcie zmierzone w działającym urządzeniu | 5,02 V | weryfikuje domenę zasilania |
| znalezione pady testowe | GND, VDD, RESET, DATA | podstawa programowania in circuit |
| stan ochrony pamięci | nieznany / aktywna / wyłączona | rozdziela odczyt starego kodu od kasowania i ponownego użycia |
Nie należy dobierać datasheetu na podstawie podobnego prefiksu. Dwie pochodne tej samej rodziny mogą mieć różne piny zasilania, interfejs programujący albo mapowanie timera. Przed podaniem napięcia trzeba potwierdzić rysunek obudowy, orientację pinu 1 i tabelę absolute maximum ratings.
Flash, OTP, mask-ROM i pamięć zewnętrzna#
Najważniejsza selekcja odbywa się na poziomie technologii pamięci programu.
| Typ | Co zastajemy w używanym urządzeniu | Możliwość ponownego użycia |
|---|---|---|
| Flash | zapisany program klienta, czasem aktywna ochrona | zwykle można wykonać chip erase i zapisać własny kod |
| EEPROM programu | rzadsza w MCU, kasowalna elektrycznie | dobra, jeśli istnieje programator i nie ma trwałej blokady |
| EPROM z oknem | kod kasowany UV | możliwa, lecz kłopotliwa mechanicznie i narzędziowo |
| OTP | pamięć programowana jeden raz | używany egzemplarz praktycznie nie przyjmie nowego programu |
| mask-ROM | kod ustalony przy produkcji układu | nie da się zastąpić bez zewnętrznej pamięci, jeśli rdzeń ją obsługuje |
| ROM-less CPU | nie ma programu wewnętrznego | wymaga zewnętrznego Flash/EPROM i magistrali |
Litera F w wielu oznaczeniach PIC wskazuje wersję Flash, podczas gdy historyczne PIC16C76 jest przez producenta opisane jako OTP. Nie wolno jednak tworzyć uniwersalnej reguły z pojedynczej litery: znaczenie oznaczenia zawsze potwierdza karta konkretnego produktu.
Ochrona odczytu nie musi oznaczać, że układ jest bezużyteczny. W wielu rodzinach usunięcie ochrony wykonuje pełne kasowanie pamięci. Traci się oryginalny firmware, ale odzyskuje pusty mikrokontroler. Najpierw trzeba jednak ustalić, czy procedura nie wymaga hasła, klucza producenta albo trybu wysokiego napięcia, którego nie obsługuje posiadany programator.
Czy zachować całą płytę#
Próba in-circuit jest pierwszym wyborem, jeśli płyta nie jest zwęglona, zalana i nie ma niebezpiecznej domeny sieciowej. Oryginalny laminat zapewnia:
- właściwe kondensatory przy pinach zasilania;
- działający reset i rezonator;
- znane połączenia wszystkich pinów zasilających;
- pady fabrycznego testera;
- często stabilizator oraz transceiver komunikacyjny;
- mechanicznie bezpieczną obudowę drobnego QFN lub LQFP.
Najpierw omomierzem odnajduje się masę, następnie śledzi stabilizator i kondensatory odsprzęgające do pinów VDD. Pady serwisowe można rozpoznać przez ciągłość ścieżek z pinami MCLR/PGC/PGD, SWIM/NRST, TOOL0/RESET, ICPDA/ICPCK albo SWDIO/SWCLK. Ich kolejności nie należy zgadywać.
Płyta dawcy może jednak blokować programator. Silny pull-down, transceiver, kondensator albo drugi układ na linii danych zmienia zbocza. Rozsądnym rozwiązaniem jest odlutowanie rezystora szeregowego lub podniesienie tylko jednego pinu, zamiast natychmiastowego demontażu całego MCU.
Bezpieczna praca z dawcą sieciowym#
Płyta z pralki, UPS-a albo falownika nie staje się bezpieczna po wyjęciu wtyczki. Kondensator szyny DC może utrzymywać energię, a część logiczna może nie być galwanicznie oddzielona od sieci. Przed pracą trzeba zidentyfikować barierę izolacyjną, sprawdzić napięcie odpowiednim miernikiem i postępować według procedury właściwej dla urządzeń sieciowych.
Do pierwszych eksperymentów lepsza jest płyta niskonapięciowa: drukarka, napęd optyczny, panel sterujący odłączony od modułu mocy albo elektronika zasilana z baterii. Zasilacz laboratoryjny powinien mieć ograniczenie prądu. Pierwsze podanie napięcia zaczyna się od wartości niższej niż nominalna i obserwacji prądu, nie od podłączenia pakietu napędowego.
Dokumentowanie płyty przed demontażem#
Warto wykonać zestaw zdjęć prostopadłych z linijką, makrofotografie napisów i zdjęcia pod światło, jeśli laminat ma dwie warstwy. Następnie powstaje uproszczony netlist:
MCU pin 1 -> 10 kΩ -> VLOGIC
MCU pin 4 -> pad TP7 -> złącze serwisowe
MCU pin 7 -> 100 nF -> GND
MCU pin 12 -> driver silnika IN1
MCU pin 13 -> driver silnika IN2
MCU pin 18 -> EEPROM SDA
Nie trzeba odtwarzać całego schematu urządzenia. W pierwszej kolejności mapuje się wszystkie VDD/VSS, reset, zegar, programowanie i interesujące porty. Zdjęcie bez opisu nie wystarcza, ponieważ po zdjęciu układu przelotka może odejść razem z polem lutowniczym.
Demontaż bez tworzenia nowej usterki#
DIP wyjmuje się najłatwiej, ale element może mieć utlenione nóżki. SOIC i TSSOP można zdjąć gorącym powietrzem albo stopem niskotopliwym. LQFP wymaga równomiernego ogrzania wszystkich boków. QFN i BGA mają połączenia pod obudową; bez kontroli profilu cieplnego oraz późniejszego przygotowania pól odzysk jest mniej opłacalny.
Nota ST AN2639 przypomina, że wilgoć zaabsorbowana przez tworzywo może podczas ogrzewania spowodować pękanie typu popcorn. Element po latach poza suchym opakowaniem należy traktować jak nieznany poziom wilgotności. Nie oznacza to automatycznie pieczenia każdego scalaka według jednej recepty: temperaturę i czas dobiera się do obudowy, materiału oraz danych producenta, a nie do internetowej tabeli pozbawionej kontekstu.
Praktyczna procedura:
- osłonić tworzywa i elektrolity w pobliżu;
- zastosować topnik i podgrzać większy obszar laminatu;
- obserwować rozpłynięcie wszystkich połączeń;
- podnieść element pionowo bez przesuwania wyprowadzeń po padach;
- nie podważać układu, gdy choć jedna nóżka jest jeszcze związana;
- oczyścić wyprowadzenia plecionką przy możliwie małej liczbie cykli cieplnych;
- obejrzeć obudowę i nóżki pod powiększeniem;
- zapisać przebieg procesu w karcie egzemplarza.
Układ odzyskany nie ma już znanej historii kwalifikowanej produkcyjnie. Nawet jeśli przechodzi programowanie, mógł doznać mikropęknięcia bond wire albo degradacji obudowy. Dlatego nie otrzymuje automatycznie statusu części lotnej.
Adapter kwalifikacyjny#
Zamiast od razu projektować flight controller, warto przygotować uniwersalny nośnik lub płytkę dla danej obudowy. Musi ona zapewnić:
- kondensator 100 nF przy każdej parze zasilania;
- 1–4,7 µF pojemności lokalnej;
- złącze programujące właściwe dla rodziny;
- rezystor resetu zgodny z datasheetem;
- możliwość odłączenia wszystkich obciążeń zworami;
- LED przez bufor albo duży rezystor, nie bezpośrednio na krytycznej linii;
- UART przez konwerter o odpowiednim napięciu;
- punkty pomiarowe VDD, resetu, zegara i wyjścia timera;
- zabezpieczenie przed odwrotnym zasilaniem z programatora i zasilacza jednocześnie.
Nie wszystkie programatory dostarczają zasilanie do celu, a część tylko mierzy napięcie referencyjne. Ta różnica jest częstym źródłem nieudanych prób. Trzeba sprawdzić instrukcję konkretnego narzędzia i wspólnie połączyć masy.
Pierwsza sekwencja uruchomienia#
Pierwszy program nie powinien obsługiwać IMU. Kolejność testów ma izolować problemy:
- identyfikacja urządzenia przez programator;
- odczyt device ID i konfiguracji, jeżeli rodzina to umożliwia;
- decyzja, czy zachowujemy oryginalny firmware;
- chip erase, jeśli jest konieczny do zdjęcia ochrony;
- zapis małego obrazu testowego i verify;
- GPIO przełączane z dokładnie zmierzoną częstotliwością;
- watchdog wymuszający reset po celowym zakleszczeniu;
- brown-out sprawdzany powolnym obniżaniem VDD;
- UART z licznikiem resetów;
- SPI loopback, później odczyt WHO_AM_I sensora;
- timer capture/compare i dopiero na końcu wyjście serwa.
Program testowy zapisuje wzorzec w całej dostępnej Flash i, jeśli to możliwe, wykonuje CRC po restarcie. Samo verify OK programatora nie wykrywa błędów pojawiających się dopiero po nagrzaniu albo przy spadku napięcia.
Kwalifikacja elektryczna#
Przydatność egzemplarza ocenia się pomiarami, nie wrażeniem, że „blink działa”.
| Test | Metoda | Kryterium |
|---|---|---|
| prąd statyczny | zasilacz z pomiarem po resecie i w aktywności | powtarzalny, bez wzrostu cieplnego i zgodny rzędem wielkości z datasheetem |
| reset | seria 100–1000 cykli zasilania | zawsze startuje w tym samym stanie, wyjścia wykonawcze pozostają nieaktywne |
| Flash | erase/program/verify różnymi wzorcami | brak błędów i stabilne CRC |
| RAM | walking ones/zeros i wzorce pseudolosowe | zero różnic |
| zegar | pin clock-out albo wyjście timera mierzone analizatorem | błąd i jitter mieszczą się w budżecie aplikacji |
| ADC | kilka znanych napięć z referencji | monotoniczność i błąd akceptowalne dla zadania |
| SPI/I²C/UART | test przy docelowej prędkości i temperaturze | brak błędów ramek w długiej serii |
| PWM/capture | pomiar czasu impulsów | brak glitchy przy przerwaniach i zmianie kanałów |
| watchdog/BOR | sztuczne zawieszenie i sweep VDD | kontrolowany reset, bez przypadkowych impulsów na wyjściach |
Do prototypu można przyjąć wynik binarny pass/fail. Do większej serii odzyskanych części potrzebna jest identyfikowalność: numer egzemplarza, dawca, data demontażu, operator, profil cieplny, wersja testu i wynik każdego kanału.
Ocena zasobów pod kontroler lotu#
Minimalny regulator fixed-wing może działać z pętlą rzędu setek herców, jednym IMU, dwoma wyjściami serw i prostą arytmetyką stałoprzecinkową. Multirotor wymaga bardziej rygorystycznego timingu, szybszego odczytu żyroskopu i co najmniej czterech zsynchronizowanych wyjść. Nie należy przenosić sukcesu demonstratora stałopłata na zapewnienie, że ten sam układ bezpiecznie ustabilizuje quadrocopter.
Arkusz zasobów powinien powstać przed kodem:
timer A: tick pętli 1 kHz
timer B: 4 kanały wyjściowe
timer C: pomiar wejścia RC
SPI 0: IMU, 4 MHz
UART 0: diagnostyka, 115200 bit/s
ADC 0: napięcie baterii
ADC 1: prąd
GPIO: arm, shutter, status
RAM: bufory 480 B + stos 256 B + margines 40%
Flash: kod 12 KB + boot/config 2 KB
Jeżeli timer PWM jest współdzielony z wejściem capture albo baud rate UART-u zależy od tego samego preskalera, konflikt trzeba ujawnić tutaj. Dopiero potem projektuje się scheduler.
Ranking rodzin — ale warunkowy#
| Rodzina | Mocne strony odzysku | Główna przeszkoda | Najrozsądniejsza rola |
|---|---|---|---|
| STM32F0/F1/F3/G0/G4 | SWD, bogate timery, DMA, duża społeczność | drobne obudowy, RDP, złożone zasilanie niektórych wariantów | pełny eksperymentalny FC lub mostek sensorowy |
| AVR ATmega/ATtiny | prosty ISP, dobre narzędzia, dużo przykładów | mały RAM i ograniczona wydajność starszych modeli | fixed-wing, I/O, HIL |
| STM8S/STM8L | SWIM, Flash, dobre timery i ADC | starsze narzędzia, ochrona ROP, mały RAM | prosty regulator i koncentrator I/O |
| PIC16F/PIC18F | ICSP, szeroki zakres 5 V, duży wybór wariantów | bankowanie w starszych PIC16, wiele różniących się generacji | fixed-wing, moduł wykonawczy, rejestrator |
| RL78/G13/G14/G1F | dużo Flash/RAM, timery motor-control, 1,6–5,5 V w wielu wersjach | TOOL0 i ekosystem mniej znany hobbystom | pełny eksperymentalny regulator |
| Nuvoton N76E/ML51 | szybki rdzeń 1T-8051, ICP/ISP, PWM i ADC | narzędzia zależne od dokładnej serii | prosty FC i laboratorium 8051 |
| Infineon XC800 | 8051 z peryferiami motor-control | status legacy i stare DAVE/kompilatory | stanowisko retro, sterowanie pomocnicze |
| F²MC-8FX | Flash, timer, ADC, UART/I²C | rozdrobnione legacy tooling i numery klienta | projekt badawczy po potwierdzeniu programowania |
Ten ranking nie zastępuje identyfikacji. Odblokowany STM8S105 z zachowaną płytą jest lepszym znaleziskiem niż nowocześniejszy STM32 z zeszlifowanym oznaczeniem i nieznanym zasilaniem.
Kiedy nie odzyskiwać MCU#
Scalak odkłada się do kolekcji, zamiast inwestować w adapter, gdy:
- nie istnieje wiarygodny datasheet dokładnego wariantu;
- jest to mask-ROM albo zapisany OTP;
- top-mark jest kodem klienta i nie da się ustalić pinoutu;
- jedyne narzędzie działa na niedostępnym interfejsie sprzętowym;
- obudowa ma pęknięcie, korozję lub wyrwane wyprowadzenie zbyt blisko korpusu;
- koszt adaptera i czasu przekracza wartość edukacyjną;
- oryginalna płyta pracowała w strefie przepięć lub widocznego przegrzania;
- potrzebne peryferia są trwale zajęte przez pin resetu/programowania albo nie istnieją;
- układ ma zbyt mało RAM-u na zaprojektowaną architekturę.
Odzysk jest sensowny, kiedy zmniejsza koszt, uczy konkretnej architektury lub zabezpiecza dostępność. Nie trzeba udowadniać, że każdy znaleziony układ da się wykorzystać.
F²MC-8FX: wartościowe, lecz jeszcze nie osobna ścieżka#
Rodzina CY95F69xK/MB95690K ma rdzeń F²MC-8FX do około 16,25 MHz, Flash, przetwornik 8/10-bitowy, waveform sequencer oraz UART/I²C. Dokumentacja programowania Flash jest publiczna, a Infineon nadal udostępnia archiwalne narzędzia. Technicznie pozwala więc zbudować prosty regulator.
Problemem nie jest brak peryferiów, lecz koszt wejścia: kilka generacji oznaczeń Fujitsu/Cypress/Infineon, narzędzia ukierunkowane na stare systemy operacyjne oraz mniejsza baza współczesnych kompilatorów i programatorów. Na tym etapie wiedza źródłowa wystarcza do kwalifikacji znaleziska, ale osobny artykuł wykonawczy miałby za dużo instrukcji zależnych od konkretnego numeru. Gdy w katalogu pojawi się rzeczywisty egzemplarz dawcy, warto opracować go jako studium przypadku od top-marku do pierwszego programu.
Projekt płytki uniwersalnej#
Jedna „płytka do wszystkich odzyskanych MCU” jest zwykle fałszywą oszczędnością. Lepszy jest system dwóch warstw:
[adapter obudowy i konkretnego MCU]
VDD / GND / RESET / PROGRAM / UART / SPI / TIMER
|
v
[wspólna płyta laboratoryjna]
zasilanie, ograniczenie prądu, USB-UART, IMU, servo emulator,
obciążenia logiczne, analizator, wyjście migawki
Adapter ma tylko niezbędne odsprzęganie, reset, złącze programatora i opis pinów. Płyta bazowa zapewnia sensory oraz bezpieczne obciążenia. Dzięki temu ten sam scenariusz testowy można uruchomić na PIC18, STM8 i RL78, a wyniki porównywać zamiast za każdym razem zmieniać całe stanowisko.
Minimalny kontrakt firmware#
Wspólne laboratorium wymaga prostego kontraktu niezależnego od architektury:
tick: 1000 Hz
publikacja stanu: 50 Hz przez UART
IMU: SPI, stała ramka testowa lub sensor
wyjścia: 4 wartości znormalizowane -1000..1000
watchdog: reset, jeśli tick nie zostanie obsłużony
shutter: impuls 120 ms po komendzie laboratoryjnej
stan po resecie: wszystkie wyjścia wykonawcze nieaktywne
Port sprzętowy implementuje timery i rejestry, a kod regulatora używa tej samej arytmetyki stałoprzecinkowej. To oddziela ocenę odzyskanego MCU od różnic algorytmu.
Test bez śmigieł i bez pełnego płatowca#
Pierwszą platformą jest emulator, nie statek powietrzny. Wyjście PWM trafia do analizatora lub mikrokontrolera pełniącego rolę emulatora serwa/ESC. Wejście IMU pochodzi ze stołu przechyłowego albo ramek HIL. Sprawdza się deadline, jitter, saturację, reset, przerwę SPI, błędną sumę kontrolną i zanik zasilania.
Następny etap to stanowisko z prawdziwym sensorem oraz serwem bez powierzchni aerodynamicznej. Dopiero po zmierzeniu stanów resetu, watchdogu i reakcji na utratę sensora można rozważyć lekki, odzyskiwalny demonstrator. Odzyskany komponent zwiększa potrzebę testów; nie uzasadnia pomijania ich.
Jak prowadzić magazyn odzyskanych części#
Każdy element dostaje identyfikator, na przykład SALV-MCU-2026-0042, oraz rekord:
id: SALV-MCU-2026-0042
marking: R5F104LEAFB
family: RL78/G14
donor: panel klimatyzatora
package: LFQFP-64
removed: false
programming_pads: TP3=TOOL0, TP4=RESET, TP5=VDD, TP6=GND
protection_before_erase: unknown
erase_result: pass
flash_crc_test: pass
ram_test: pass
adc_test: pass
timer_test: pass
allowed_role: laboratory/HIL
notes: original board retained
Warto osobno zapisywać stan „zidentyfikowany”, „programowalny”, „przetestowany” i „zakwalifikowany do roli”. Są to różne poziomy pewności.
Decyzja końcowa#
Najlepsza kolejność pracy wygląda następująco:
- wybierz bezpiecznego dawcę niskonapięciowego;
- zidentyfikuj dokładny układ i pobierz komplet dokumentacji;
- potwierdź Flash oraz obsługiwany interfejs programowania;
- zachowaj i opisz płytę;
- spróbuj połączenia in-circuit;
- skasuj układ tylko po świadomej decyzji o utracie firmware;
- wykonaj testy pamięci, zegara, resetu i peryferiów;
- dopiero wtedy zdecyduj o demontażu lub wykorzystaniu całego modułu;
- uruchom wspólny firmware laboratoryjny;
- przypisz egzemplarzowi dozwoloną rolę na podstawie wyników.
Ta procedura zmienia „elektronikę ze śmieci” w identyfikowalny zasób inżynierski. Najwięcej wartości przynosi nie sam fakt odzyskania części, lecz zachowanie dowodów pozwalających powiedzieć, czym ona jest, jak została potraktowana i co rzeczywiście przetestowano.
Repozytoria laboratoryjne#
W katalogu git/ znajdują się osobne laboratoria fc-lab-pic16-pic18, fc-lab-rl78, fc-lab-stm8, fc-lab-n76e003 i fc-lab-xc800. Wszystkie używają wspólnego kontraktu wejścia/wyjścia, ale zachowują własny port sprzętowy i checklistę kwalifikacji.
Polecenie make check kompiluje rdzeń na komputerze, uruchamia test jednostkowy, przetwarza scenariusz HIL i sprawdza wynik skryptem. Scenariusz wymusza brak zezwolenia, nieświeżą próbkę, awarię sensora i deadline miss. W każdym z tych stanów wszystkie wyjścia muszą być zerowe, migawka wyłączona, a odświeżenie watchdogu zabronione.
Porty targetów są świadomie szkieletami. Nie deklarują niezweryfikowanego pinoutu ani działającego builda cross-kompilatora. Plik target/PORTING.md w każdym repozytorium określa dowody potrzebne do przejścia od hostowego testu do rzeczywistego układu.
Powiązane tematy#
- PIC16 i PIC18 jako kontroler lotu
- Renesas RL78 jako kontroler lotu
- STM8 jako kontroler lotu
- Nowoczesne 8051 z odzysku
- Flight controller na klasycznym 8051
- Kontroler lotu na starej elektronice 8-bitowej
- STM32 w flight controllerach
- Własny flight controller: Arduino i STM32
- Proces uruchomienia nowego UAV
Przypisy#
- STMicroelectronics, AN2639: Soldering recommendations and package information for lead-free ECOPACK MCUs and MPUs — wilgoć, MSL, profile cieplne i ryzyko uszkodzeń obudowy.
- Microchip, PIC16C76 — oficjalny przykład historycznego mikrokontrolera OTP.
- STMicroelectronics, STM8S105x4/6 Data Sheet oraz UM0470 STM8 SWIM — pamięć, ROP i programowanie jednoprzewodowe.
- Microchip, PIC16(L)F18855/75 Data Sheet oraz PICkit 5 User’s Guide — Flash, code protection i ICSP.
- Renesas, RL78/G14 User’s Manual: Hardware — pamięć Flash, TOOL0, debug oraz peryferia.
- Nuvoton, N76E003 Data Sheet — APROM, LDROM, ICP/ISP/IAP i zabezpieczenie kodu.
- Infineon, CY95F69xK F²MC-8FX Data Sheet oraz F²MC-8FX Programming Specifications — zasoby i programowanie historycznej rodziny.
Źródła z centralnego rejestru
- STMicroelectronics AN2639: Soldering recommendations and package information [nota aplikacyjna producenta; profile cieplne, wilgoć, MSL i ryzyko uszkodzenia obudów podczas lutowania]
- Microchip PIC16C76 [oficjalna dokumentacja historycznego mikrokontrolera OTP; przykład układu nieprzydatnego do ponownego programowania]
- Microchip PIC16(L)F18855/75 Data Sheet [datasheet producenta; Enhanced Mid-Range PIC16, pamięć, peryferia, PPS i zabezpieczenia Flash]
- Microchip MPLAB PICkit 5 In-Circuit Debugger User’s Guide [instrukcja producenta; połączenia ICSP, zasilanie celu, programowanie i debugowanie]
- Renesas RL78/G14 User’s Manual: Hardware [oficjalny podręcznik sprzętowy; mapa pamięci, zegary, TAU, Timer RD, ADC, TOOL0, Flash i debug]
- STMicroelectronics STM8S105x4/6 Data Sheet [datasheet producenta; pinout, charakterystyki elektryczne, pamięć, ROP i option bytes]
- STMicroelectronics UM0470: STM8 SWIM communication protocol and debug module [oficjalny opis jednoprzewodowego interfejsu programowania i debugowania SWIM]
- Nuvoton N76E003 Data Sheet [datasheet producenta; APROM, LDROM, ISP/IAP/ICP, peryferia i konfiguracja pamięci]
- Infineon CY95F69xK F²MC-8FX [oficjalna karta historycznej rodziny 8-bitowej dla AGD; Flash, timery, ADC, UART i I²C]
- Infineon CY95F694K/696K/698K Data Sheet [datasheet producenta; rdzeń F²MC-8FX, waveform sequencer, ADC i interfejsy]
- Infineon F²MC-8FX Programming Specifications [oficjalna specyfikacja programowania Flash rodziny F²MC-8FX]