Programowanie układów scalonych podczas przetwarzania PCBA

Programowanie układów scalonych podczas przetwarzania PCBA

Rysunek 1. Programowanie układów scalonych podczas przetwarzania PCBA

Ostatnia aktualizacja: maj 2026 r. · Przewodnik produkcyjny dla inżynierów systemów wbudowanych i zespołów zajmujących się zaopatrzeniem w sprzęt

Istnieją dwa praktyczne sposoby wgrywania oprogramowania układowego do układów scalonych na płytce PCBA: wstępne programowanie układów przed ich montażem (poza płytką, na grupie programatorów lub w automatycznym programatorze) lub programowanie ich w układzie po montażu za pomocą interfejsu debugowania, takiego jak JTAG, SWD, ISP lub szeregowy bootloader. Wstępne programowanie jest szybkie i odpowiednie dla dużych ilości i stabilnego oprogramowania układowego; programowanie w układzie pozwala na wczytanie najnowszego obrazu, kalibrację i serializację każdego urządzenia, ale wymaga zaprojektowania na płytce dostępnych pinów programistycznych. Większość współczesnych zespołów wykorzystuje programowanie w układzie na stanowisku testowym, ponieważ łączy ono oprogramowanie układowe, kalibrację i identyfikowalność na gotowej płytce.

Dwa podejścia w skrócie:
Wstępne programowanie poza pokładem — układy scalone zaprogramowane w gnieździe/systemie automatycznym zanim SMT. Szybki cykl, brak konieczności dostępu do urządzenia, ale elementy są przypisane do jednej wersji oprogramowania sprzętowego.
Programowanie w układzie/systemie (ICSP/ISP) — zaprogramowane chipy po Montaż poprzez JTAG/SWD/SPI/UART na płytce. Elastyczny, obsługuje dane jednostkowe, ale wymaga dostępu programistycznego w układzie.

Dlaczego programowanie układów scalonych jest częścią przetwarzania PCBA

Większość produkowanych obecnie płytek zawiera co najmniej jedno programowalne urządzenie — mikrokontroler, mikrokontroler ze zintegrowanym radiem, pamięć flash, układ konfiguracyjny FPGA lub inteligentny układ zasilania/czujnika. Zmontowana płytka nie jest jeszcze działającym produktem, dopóki na krzemie nie zostanie zainstalowany odpowiedni firmware. Umieszczenie programowania w płytce PCBA — zamiast wysyłania pustych płytek do flashowania przez klienta — oszczędza czas, pozwala fabryce zweryfikować działanie urządzenia podczas testów funkcjonalnych i umożliwia zapisanie unikalnych danych w każdym module. Pytanie nie brzmi, czy programować podczas montażu, ale która metoda jest odpowiednia dla danego produktu.

Metoda 1: Wstępne programowanie układu scalonego poza płytą główną

W przypadku programowania wstępnego poza płytą, urządzenia są ładowane oprogramowaniem układowym przed umieszczeniem ich na płytce. Odbywa się to za pomocą programatora urządzeń oraz w trybie masowym w zautomatyzowanym systemie programowania , który pobiera części z taśmy i szpuli, programuje je (często wiele naraz – programowanie „grupowe”), weryfikuje i ponownie nawija na szpule lub układa na tackach dla maszyny pick-and-place.

  • Moce: bardzo szybki na linii SMT (brak etapu programowania podczas montażu), brak konieczności dostępu do programowania na pokładzie, duża przepustowość zapewniająca stabilność oprogramowania sprzętowego.
  • Kompromisy: części są przypisane do jednej wersji oprogramowania sprzętowego, więc późniejsza zmiana kodu oznacza konieczność ponownego programowania lub złomowania zapasów; obsługa dodaje jeden krok; a danych na jednostkę (numery seryjne, kalibracja) zazwyczaj nie można zapisać w ten sposób, ponieważ każda część jest identyczna.

Wstępne programowanie sprawdza się w przypadku produktów o dużej liczbie produktów, których oprogramowanie sprzętowe jest zamrożone, a także w przypadku urządzeń, których programowanie w układzie jest utrudnione.

Metoda 2: Programowanie w układzie/systemie (ICSP/ISP)

Programowanie w układzie – zwane również programowaniem w systemie (ISP) lub programowaniem szeregowym w układzie (ICSP) – polega na załadowaniu oprogramowania układowego po przylutowaniu urządzenia do płytki, za pośrednictwem małego interfejsu programistycznego widocznego na obudowie. Programista podłącza się do złącza lub zestawu padów testowych, płytka jest zasilana, a oprogramowanie układowe jest zapisywane i weryfikowane na miejscu.

  • Moce: zawsze ładuje aktualny obraz oprogramowania sprzętowego; obsługuje kalibrację i dane na jednostkę; umożliwia weryfikację funkcjonalną zaraz po programowaniu; aktualizacje oprogramowania sprzętowego nie wymagają przerabiania części.
  • Kompromisy: układ musi umożliwiać dostęp do programowania; wydłuża to czas pracy na stanowisku programowania/testowania; a współdzielenie pinów lub brak podciągnięć może być przyczyną awarii, jeśli nie zostaną starannie zaprojektowane.

Jest to rozwiązanie domyślne dla większości współczesnych projektów, ponieważ ujednolica programowanie, kalibrację i możliwość śledzenia na gotowej płytce — a ponadto oprogramowanie sprzętowe niemal zawsze ulega rozwojowi.

Typowe interfejsy programowania układów scalonych (JTAG, SWD, SPI)

Interfejs Typowe urządzenia Komentarz
SWD (2-wire) Mikrokontrolery ARM Cortex-M Kompaktowy (SWDIO/SWCLK + zasilanie/GND); także debugowanie
JTAG Mikrokontrolery, układy FPGA, układy CPLD, łańcuchy skanowania granic Możliwość programowania pamięci flash i testowania połączeń
SPI / Dostawca usług internetowych AVR, flash SPI, konfiguracja urządzeń Oglądaj dzielenie się autobusem podczas programowania
ICSP Rodzina mikroprocesorów PIC Mało pinów; rezerwowy dostęp MCLR/PGC/PGD
Bootloader UART/USB Wiele mikrokontrolerów z wbudowanym bootloaderem Programy przez istniejące linie szeregowe/USB
I²C Pamięci EEPROM, inteligentne czujniki Dla danych konfiguracyjnych/kalibracyjnych więcej niż kodu

Programowanie wstępne a programowanie w układzie: co wybrać

Wynagrodzenie Preferencje dotyczące wstępnego programowania Preferencje w obwodzie (ICSP)
objętość Wysoka, stała głośność Prototyp do produkcji średniej wielkości; wersje mieszane
Stabilność oprogramowania układowego Zamrożone, rzadko się zmienia Obrazy ewoluujące lub obrazy tworzone na podstawie kompilacji
Dane na jednostkę Niepotrzebne (identyczne części) Numery seryjne, MAC, wymagana kalibracja
Dostęp do tablicy Nagłówek programowania nie jest wymagany Dostępne pady/nagłówki programujące
Weryfikacja podczas testu Zrobione osobno Połączone z FCT w jednej stacji

Wiele programów wykorzystuje rozwiązanie hybrydowe: dużą pamięć zewnętrzną wstępnie zaprogramowaną poza płytką, podczas gdy mikrokontroler jest flashowany w obwodzie, co umożliwia zapisywanie najnowszych aplikacji i danych na jednostkę na linii.

Jak zaprojektować płytkę do programowania w układzie

Programowanie w układzie przebiega sprawnie tylko wtedy, gdy układ to obsługuje. Zaplanuj to przed udostępnieniem plików:

  • Odsłoń piny programujące — mały nagłówek lub, aby zaoszczędzić miejsce, pady testowe o wymiarach odpowiednich dla pinów pogo. Trzymaj je z jednej strony, z dala od wysokich elementów.
  • Zarezerwuj odpowiednie sygnały — np. SWDIO/SWCLK, lub MCLR/PGC/PGD, lub JTAG TCK/TMS/TDI/TDO/TRST, plus czujnik mocy docelowej i masa.
  • Chroń współdzielone autobusy — dodaj rezystory szeregowe lub izolację, aby programista nie miał problemów z innymi urządzeniami na tych samych liniach podczas programowania.
  • Podciąganie/opuszczanie i resetowanie — zapewniają prawidłowe stany pasywne i dostępny reset, tak aby urządzenie niezawodnie przeszło w tryb programowania.
  • Moc i sekwencjonowanie — upewnij się, że urządzenie można zasilić w celu programowania (zasilanie docelowe lub programatora) bez dostarczania sygnału do reszty płytki.
  • Zaplanuj bezpieczeństwo z wyprzedzeniem — jeśli zamierzasz ustawić bity ochrony odczytu/blokady, sprawdź, czy sekwencja nadal pozwala na weryfikację przed zablokowaniem części.

Są to dokładnie te elementy, które sprawdza się podczas przeglądu „projektuj pod kątem testów” , ponieważ dostęp do programowania i dostęp do testów zazwyczaj współdzielą te same urządzenia.

Programowanie na jednostkę: serializacja, kalibracja, bezpieczeństwo

Jednym z najważniejszych powodów programowania wewnątrzukładowego jest to, że każda płytka może odbierać własne dane:

  • Numery seryjne i unikalne identyfikatory w celu zapewnienia identyfikowalności i gwarancji.
  • Adresy MAC / klucze sieciowe dla produktów podłączonych.
  • Stałe kalibracyjne zmierzone podczas testu funkcjonalnego i zapisane z powrotem w urządzeniu, aby każde urządzenie spełniało specyfikację.
  • Konfiguracja regionu/funkcji dla wariantów produktu zbudowanych w oparciu o jeden projekt sprzętu.
  • Blokada bezpieczeństwa — po zaprogramowaniu i weryfikacji, bity ochrony odczytu lub blokady są ustawiane w celu ochrony IP oprogramowania sprzętowego. Ponieważ blokowanie jest często nieodwracalne, jest to ostatni krok i jest starannie weryfikowane.

Gdzie programowanie układów scalonych odbywa się na linii PCBA

W typowym procesie programowania, programowanie w układzie jest wykonywane na dedykowanej stacji programowania lub, częściej, w połączeniu z testem funkcjonalnym : płytka jest umieszczana w urządzeniu, wgrywane jest oprogramowanie układowe, przeprowadzana jest kalibracja, urządzenie jest weryfikowane, zapisywane są dane i zabezpieczenia dla każdego urządzenia, a następnie rejestrowany jest wynik pozytywny/negatywny oraz rekord dla danego numeru seryjnego. Połączenie programowania z FCT oznacza, że ​​urządzenie jest uznawane za dobre dopiero po zaprogramowaniu i sprawdzeniu jego działania.

Tutaj również następuje zapewnienie identyfikowalności — powiązanie wersji oprogramowania sprzętowego, wartości kalibracji i wyników testów z każdym urządzeniem — a to właśnie jest rodzaj dowodów, jakich zagraniczni nabywcy powinni żądać od producenta kontraktowego.

Typowe błędy w programowaniu układów scalonych, których należy unikać

  • Brak dostępu do programowania w układzie — odkrycie na produkcji, że nie ma gdzie podłączyć programisty.
  • Konflikt autobusowy — współdzielą linie programowe z innymi aktywnymi urządzeniami i nie zapewniają izolacji, co powoduje okresowe awarie.
  • Blokowanie zbyt wczesne — ustawianie bitów bezpieczeństwa przed weryfikacją, dzięki czemu nie można zdiagnozować awarii.
  • Przekazanie wstępnie zaprogramowanego zapasu do wkrótce zmienionego oprogramowania sprzętowego — złomowanie lub ponowne przetwarzanie części po aktualizacji kodu.
  • Niejasne przekazanie — nie określono, jaką wersję oprogramowania sprzętowego, jakie dane na jednostkę i jaki stan zabezpieczeń powinien zastosować producent.

Usługi programowania układów scalonych w Highleap Electronics

Highleap Electronics to chiński producent płytek PCB i PCBA, który integruje programowanie urządzeń z montażem pod klucz dla klientów wysyłających je do Stanów Zjednoczonych, Europy i regionu Azji i Pacyfiku. Celem jest dostarczenie płytki zaprogramowanej, skalibrowanej, zweryfikowanej i identyfikowalnej – a nie pustej.

  • Programowanie układów scalonych poprzez JTAG, SWD, ISP/ICSP i szeregowe programy ładujące, wbudowane w układ lub wstępnie zaprogramowane, zależnie od wymagań projektu.
  • Testy funkcjonalności połączone z programowaniem i kalibracją na jednym stanowisku, z zapisami dla każdej jednostki.
  • Przegląd projektu pod kątem testu dostępu do programowania, izolacji i sekwencji zabezpieczeń przed zamrożeniem plików.
  • Gotowy PCBA obejmujące zaopatrzenie, SMT, programowanie, testowanie i serializację od początku do końca.
Szczegóły programowania układów scalonych podczas przetwarzania PCBA

Rysunek 2. Programowanie układów scalonych podczas przetwarzania PCBA – szczegóły

Programowanie układów scalonych podczas PCBA – FAQ

Co oznacza programowanie wewnątrzukładowe (ICSP)?

Polega ona na wgraniu oprogramowania układowego do urządzenia po jego przylutowaniu do płytki, za pośrednictwem interfejsu programistycznego (takiego jak SWD, JTAG, ISP lub ICSP) widocznego na montażu. Płytka jest podłączana do programatora, zasilana, a oprogramowanie układowe jest zapisywane i weryfikowane na miejscu.

Czy lepiej jest programować układy scalone wstępnie czy programować je na płytce?

Zależy to od wolumenu, stabilności oprogramowania układowego oraz tego, czy każde urządzenie potrzebuje unikalnych danych. Wstępne programowanie jest najszybsze w przypadku dużej ilości zamrożonego oprogramowania układowego. Programowanie w układzie jest lepsze w przypadku zmian oprogramowania układowego, gdy wymagana jest kalibracja lub serializacja, lub gdy chcesz zweryfikować urządzenie podczas testu funkcjonalnego. Powszechne są podejścia hybrydowe.

Co muszę zapewnić w celu programowania układów scalonych podczas montażu?

Obraz i wersja oprogramowania sprzętowego, urządzenie docelowe i interfejs, punkty programowania/podłączeń na płycie, wszelkie dane jednostkowe (numery seryjne, MAC, procedura kalibracji) oraz pożądany stan zabezpieczeń/blokady. Następnie programowanie jest uruchamiane na dedykowanej stacji lub równolegle z testem funkcjonalnym.

Czy każda płyta może otrzymać unikalny numer seryjny lub kalibrację?

Tak — to kluczowa zaleta programowania w układzie. Unikalne identyfikatory, adresy MAC i stałe kalibracji zmierzone podczas testu można zapisać w każdym urządzeniu, a wartości te rejestrować w celu zapewnienia identyfikowalności.

Jak mogę zabezpieczyć moje oprogramowanie sprzętowe przed odczytaniem?

Większość mikrokontrolerów obsługuje bity zabezpieczające przed odczytem lub blokujące, które uniemożliwiają zewnętrzny odczyt po zaprogramowaniu. Są one ustawiane na końcu, po weryfikacji urządzenia, ponieważ zablokowanie jest często nieodwracalne. Omów z producentem dokładny stan zabezpieczeń, jaki chcesz uzyskać.

Czy dodanie nagłówka programistycznego zajmuje dużo miejsca na płytce?

Niekoniecznie. Można użyć kompaktowego interfejsu dwu- lub czteroprzewodowego (takiego jak SWD) lub zastąpić złącze małymi padami testowymi, do których stykają się piny pogo urządzenia testowego, co minimalizuje zajmowaną powierzchnię produkcyjną.

Czy producent z siedzibą w Chinach może bezpiecznie programować oprogramowanie sprzętowe?

Tak, gdy producent kontroluje wersje oprogramowania sprzętowego, programuje i weryfikuje je na udokumentowanej stacji, stosuje uzgodnione blokady bezpieczeństwa i udostępnia rejestry dla poszczególnych jednostek. Należy określić wersję oprogramowania sprzętowego, dane i politykę bezpieczeństwa na piśmie, aby nie było wątpliwości co do tego, co jest ładowane.

uzyskaj-natychmiastową-wycenę

Polecamy Wiadomości

Jak uzyskać wycenę płytek PCB

Przeprowadzimy analizę DFM/DFA dla Ciebie i wrócimy do Ciebie z raportem. Możesz bezpiecznie przesłać swoje pliki za pośrednictwem naszej witryny. Wymagamy następujących informacji, aby przedstawić Ci wycenę:

    • Gerber, ODB++ lub .pcb, specyfikacja.
    • Lista BOM, jeśli wymagany jest montaż
    • Ilość
    • Czas na zmianę
Oprócz produkcji PCB oferujemy kompleksowy zakres usług elektronicznych, w tym projektowanie PCB, PCBA i rozwiązania pod klucz. Niezależnie od tego, czy potrzebujesz pomocy w prototypowaniu, weryfikacji projektu, pozyskiwaniu komponentów czy masowej produkcji, zapewniamy kompleksowe wsparcie, aby zagwarantować sukces Twojego projektu.

W przypadku usług PCBA prosimy o dostarczenie BOM (listy materiałów) i wszelkich szczegółowych instrukcji montażu. Oferujemy również analizę DFM/DFA w celu optymalizacji projektów pod kątem możliwości produkcji i montażu, zapewniając płynny proces produkcji.






    Krótka notatka: Nasz zespół wyśle ​​Ci wiadomość e-mail wkrótce po przesłaniu. Aby mieć pewność, że otrzymasz naszą odpowiedź, uprzejmie prosimy o kontakt. sprawdzanie folderu SPAM/ŚMIECI jeśli nie widzisz naszej wiadomości w swojej skrzynce odbiorczej.