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:

  1. osłonić tworzywa i elektrolity w pobliżu;
  2. zastosować topnik i podgrzać większy obszar laminatu;
  3. obserwować rozpłynięcie wszystkich połączeń;
  4. podnieść element pionowo bez przesuwania wyprowadzeń po padach;
  5. nie podważać układu, gdy choć jedna nóżka jest jeszcze związana;
  6. oczyścić wyprowadzenia plecionką przy możliwie małej liczbie cykli cieplnych;
  7. obejrzeć obudowę i nóżki pod powiększeniem;
  8. 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:

  1. identyfikacja urządzenia przez programator;
  2. odczyt device ID i konfiguracji, jeżeli rodzina to umożliwia;
  3. decyzja, czy zachowujemy oryginalny firmware;
  4. chip erase, jeśli jest konieczny do zdjęcia ochrony;
  5. zapis małego obrazu testowego i verify;
  6. GPIO przełączane z dokładnie zmierzoną częstotliwością;
  7. watchdog wymuszający reset po celowym zakleszczeniu;
  8. brown-out sprawdzany powolnym obniżaniem VDD;
  9. UART z licznikiem resetów;
  10. SPI loopback, później odczyt WHO_AM_I sensora;
  11. 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:

  1. wybierz bezpiecznego dawcę niskonapięciowego;
  2. zidentyfikuj dokładny układ i pobierz komplet dokumentacji;
  3. potwierdź Flash oraz obsługiwany interfejs programowania;
  4. zachowaj i opisz płytę;
  5. spróbuj połączenia in-circuit;
  6. skasuj układ tylko po świadomej decyzji o utracie firmware;
  7. wykonaj testy pamięci, zegara, resetu i peryferiów;
  8. dopiero wtedy zdecyduj o demontażu lub wykorzystaniu całego modułu;
  9. uruchom wspólny firmware laboratoryjny;
  10. 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#

Przypisy#

  1. STMicroelectronics, AN2639: Soldering recommendations and package information for lead-free ECOPACK MCUs and MPUs — wilgoć, MSL, profile cieplne i ryzyko uszkodzeń obudowy.
  2. Microchip, PIC16C76 — oficjalny przykład historycznego mikrokontrolera OTP.
  3. STMicroelectronics, STM8S105x4/6 Data Sheet oraz UM0470 STM8 SWIM — pamięć, ROP i programowanie jednoprzewodowe.
  4. Microchip, PIC16(L)F18855/75 Data Sheet oraz PICkit 5 User’s Guide — Flash, code protection i ICSP.
  5. Renesas, RL78/G14 User’s Manual: Hardware — pamięć Flash, TOOL0, debug oraz peryferia.
  6. Nuvoton, N76E003 Data Sheet — APROM, LDROM, ICP/ISP/IAP i zabezpieczenie kodu.
  7. Infineon, CY95F69xK F²MC-8FX Data Sheet oraz F²MC-8FX Programming Specifications — zasoby i programowanie historycznej rodziny.

Źródła z centralnego rejestru

  1. STMicroelectronics AN2639: Soldering recommendations and package information [nota aplikacyjna producenta; profile cieplne, wilgoć, MSL i ryzyko uszkodzenia obudów podczas lutowania]
  2. Microchip PIC16C76 [oficjalna dokumentacja historycznego mikrokontrolera OTP; przykład układu nieprzydatnego do ponownego programowania]
  3. Microchip PIC16(L)F18855/75 Data Sheet [datasheet producenta; Enhanced Mid-Range PIC16, pamięć, peryferia, PPS i zabezpieczenia Flash]
  4. Microchip MPLAB PICkit 5 In-Circuit Debugger User’s Guide [instrukcja producenta; połączenia ICSP, zasilanie celu, programowanie i debugowanie]
  5. Renesas RL78/G14 User’s Manual: Hardware [oficjalny podręcznik sprzętowy; mapa pamięci, zegary, TAU, Timer RD, ADC, TOOL0, Flash i debug]
  6. STMicroelectronics STM8S105x4/6 Data Sheet [datasheet producenta; pinout, charakterystyki elektryczne, pamięć, ROP i option bytes]
  7. STMicroelectronics UM0470: STM8 SWIM communication protocol and debug module [oficjalny opis jednoprzewodowego interfejsu programowania i debugowania SWIM]
  8. Nuvoton N76E003 Data Sheet [datasheet producenta; APROM, LDROM, ISP/IAP/ICP, peryferia i konfiguracja pamięci]
  9. Infineon CY95F69xK F²MC-8FX [oficjalna karta historycznej rodziny 8-bitowej dla AGD; Flash, timery, ADC, UART i I²C]
  10. Infineon CY95F694K/696K/698K Data Sheet [datasheet producenta; rdzeń F²MC-8FX, waveform sequencer, ADC i interfejsy]
  11. Infineon F²MC-8FX Programming Specifications [oficjalna specyfikacja programowania Flash rodziny F²MC-8FX]