Wie werden die elektronischen Produkte zum Leben erweckt, die Teil unseres beruflichen und privaten Alltags sind? Diesen beeinflussen, begleiten und erleichtern. Um Smartphones, automatische Belüftungssysteme oder elektrische Fahrzeuge zum Laufen zu bringen, werden sie mit programmierbaren Bausteinen wie Flash, Flash-Speicher basierten intelligenten Halbleitern oder Mikrocontrollern ausgestattet, auf denen die jeweiligen Anweisungen, Daten oder Ein- und Ausgabekommandos zu deren Funktionsweise gespeichert sind.
Für die Firmware- und Datenprogrammierung dieser Halbleiter stehen Elektronikherstellern (OEMs) während der Fertigung zwei Programmiermethoden für die Massenfertigung zur Verfügung: das Pre-Programming und das In-System-Programming (ISP).
Unterschiede zwischen Pre-Programming und In-System-Programming (ISP)
Beim Pre-Programming, einer Programmiermethode, die unabhängig vom Herstellungsprozess des Endproduktes erfolgt, wird die Software innerhalb eines Programmiersystems auf den unbeschriebenen Baustein übertragen. Offline-Programmiersysteme sind eigenständige Systeme zur Halbleiterprogrammierung, die Bausteine programmieren und sicher verschlüsseln, aber auch durch Punkt- oder Lasermarkierung speziell kennzeichnen können. Nach der Programmierung werden die Bausteine auf einer Rolle oder einem Tableau für die Montage in der Linie verpackt. Offline-Programmiersysteme sind sehr flexibel und schnell umzurüsten, da sie nicht auf einzelne Bausteintypen und Gehäuseformen festgelegt sind, sondern mittels Programmieradapter im Programmiersystem auf diese angepasst werden können. Dahingegen werden bei der ISP-Methode programmierbare Bausteine direkt in der Fertigungslinie nach der Platzierung auf der Platine programmiert. Die dafür verwendete Nadelkontaktierung ist typischerweise für ein spezielles Endprodukt gefertigt.
Besondere Merkmale des Pre-Programming und der Programmierung in der Linie
Pre-Programming: Offline-IC-Programmierung, unabhängig von der Fertigung:
- Wo: Das Pre-Programming findet in einem Programmierzentrum, bei einem Auftragsfertiger oder beim OEM direkt statt
- Wann: Die offline Vor-Programmierung erfolgt, bevor die ICs auf einer Leiterplatte bestückt werden.
- Wie: Jeder einzelne IC wird in einem bauteilspezifischen Sockel in einem Programmiersystem programmiert.
- Methode: Das Pre-Programming wird durch die Aktivierung der IC-Pins über ein vom IC unterstütztes Kommunikationsprotokoll (z. B. JTAG, UART, I2C, SPI usw.) gestartet.
In-System-Programming (ISP): Innerhalb der Produktionslinie:
- Wo: Die Programmierung erfolgt bei einem Auftragsfertiger.
- Wann: Die Programmierung erfolgt, nachdem die ICs auf einer Leiterplatte bestückt wurden.
- Wie: Der Programmierprozess ist häufig in die Phase der Funktionsprüfung und des Tests des Produktes nach der Leiterplattenbestückung integriert.
- Methode: Die Programmierung erfolgt über Pads auf der Leiterplatte, die die IC-Pins über ein vom IC unterstütztes Kommunikationsprotokoll aktivieren (z. B. JTAG, UART, I2C, SPI usw.)
Wann sollten OEMs Pre-Programming einsetzen?
Beim ISP werden zu programmierende Bausteine im eingebauten Zustand, also auf bestückten Baugruppen, in der Fertigungslinie programmiert. Die leeren Bausteine werden direkt im elektronischen Zielprodukt programmiert. Zwischenschritte sind nicht erforderlich. Große Datenmengen und komplexe Programmierbausteine neigen allerdings dazu, durch die Peripherie des Endprodukts, die das zu programmierende Bauteil umgibt, die gesamte Produktionslinie zu verlangsamen. Der Pre-Programmingprozess trennt die Programmierung von der Produktion und kann Elektronikhersteller so besser unterstützen, die Produktionseffizienz und die Skalierbarkeit zu steigern und die Betriebskosten stabil zu halten.
- Ein automatisches Programmiersystem kann das Pre-Programming von Bauteilen für gleich mehrere SMT-Linien unterstützen.
- Innerhalb automatischer Programmiersysteme werden die Bausteine mithilfe von Programmieradaptern programmiert, um maximale Programmiergeschwindigkeiten zu erzielen. Für eine Optimierung und Skalierung der Produktion kann die Sockelkapazität durch das Hinzufügen zusätzlicher Programmer in ein bestehendes Programmiersystem erhöht werden. Das Programmiersystem PSV7000 von Data I/O kann beispielsweise von 4 Sockel auf bis zu 112 Sockel aufgerüstet werden.
- Die Qualitätskontrolle der Bausteine erfolgt während des Pre-Programming-Prozesses außerhalb der Fertigungslinie, so dass fehlerhafte Bausteine bereits vor der Weiterverarbeitung aussortiert werden.
Welche Kosten lassen sich durch Pre-Programming reduzieren?
Um per ISP zu programmieren, muss der OEM die Programmierung während der Designphase des Bauteils bzw. der Leiterplatte einplanen, denn das die Programmierung in der Linie ist nur möglich, wenn Programmierkontakte auf der Leiterplatte platziert werden. Dieser Schritt erhöht die Komplexität, den Zeitaufwand und die Kosten des PCB-Designprozesses. Jeder Fehler im Designprozess kann sich stark auf die Massenproduktion des Endproduktes auswirken und Korrekturen sind mit sehr hohen Kosten und Verzögerungen verbunden (Neudesign oder Neulayout der Baugruppe). Im Gegensatz dazu erfolgt die Vorprogrammierung über die Pins des IC-Gehäuses, wobei das Gehäuse und die Pinbelegung während der IC-Herstellung festgelegt werden.
Die Pre-Programming Methode hat keine Auswirkungen auf den Designprozess des Elektronikherstellers und verursacht keine zusätzlichen Entwicklungskosten. Das Pre-Programming erfolgt asynchron zur Leiterplattenbestückung, so dass keine Abhängigkeiten oder Einschränkungen bei der Bestückung entstehen. Die Methode des Pre-Programming ist im Allgemeinen flexibler und wirtschaftlicher als die Programmierung in der Linie. Die Vor-Programmierung gilt als kostengünstiger, weil die einmaligen Investitionskosten für Hardware und Firmware auf verschiedene Endprodukte mit gleichem Programmierbauteil verteilt werden können. Im Gegensatz dazu ist die einmalige Investition bei ISP-Lösungen fest mit einem Endprodukt verknüpft.