Programmiergerät
# Programmiergerät

Programmiergeräte dienen dem Einschreiben von Daten in programmierbare IC-Bausteine in der Elektronik.

## Funktionsprinzip

Hat man ein Programm für einen programmierbaren Baustein, zum Beispiel PROM, EPROM, EEPROM, Flash, PAL, PLD, CPLD oder FPGA, fertig entwickelt, muss der Code noch in den Baustein eingebracht werden. Dazu wird zunächst der Baustein in den Nullkraftsockel des Programmiergerätes gesteckt. Danach werden die dazu passenden Anschlüsse des Bausteins auf die gewünschten Potenziale gebracht und zyklisch mittels eines sogenannten „Schreibstromes“ die Daten im Baustein „eingebrannt“, also dauerhaft festgelegt.

Je nach Anwendung gibt es verschiedene binäre Dateiformate, die direkt auf die Bausteine übertragen werden. Die gängigsten sind Intel HEX, Motorola-S (S-Record/S19/SREC), Jedec oder der einfache Binärcode. Die Umwandlung des Quellcodes (Kompilierung) erfolgt zuvor per Software.

## Aufbau

Da jeder zu programmierende Bausteintyp eine unterschiedliche Beschaltung des Sockels erfordert, muss dieser sich per Software flexibel umkonfigurieren lassen. Ein Programmiergerät besteht daher intern aus einem steuerbaren Ein/Ausgabebaustein, der über sogenannte Pintreiber mit dem Sockel verbunden ist. Komplexe Programmiergeräte enthalten einen eigenen Prozessor, der die Pintreiber steuert. Ein Pintreiber ist ein Schaltkreis, der einen einzelnen Anschluss des Sockels je nach Anforderung mit Logikpegeln, Programmierspannungen, Versorgungsspannungen, Pullup/Pulldown-Widerständen, Ground und Takt versorgt. Der Pintreiber ist daher ein ausschlaggebender Faktor für die Vielseitigkeit und Leistungsfähigkeit eines Programmiergeräts.

Realisiert wird ein Pintreiber entweder mit einem integrierten Schaltkreis (bei neuen Programmiergeräten) oder aus einzelnen Komponenten wie Transistoren und Widerstandsnetzwerken. Die Verwendung eines integrierten Schaltkreises als Pintreiber reduziert die Ausgangskapazität und gestattet dadurch höhere Taktraten und bessere Signalformen. Zudem erlaubt hohe Integration das Design kleiner, leichter, netzunabhängiger Programmiergeräte.

## Programmiergeräte-Typen

Programmiergeräte gab es in der Vergangenheit als PC-Einsteckplatinen; heute sind fast ausschließlich externe Geräte gebräuchlich. Die Verbindung zum PC erfolgt über die parallele Druckerschnittstelle, über die USB-Schnittstelle oder über eine LAN- beziehungsweise WLAN-Verbindung. Man unterscheidet zwischen Gang-Programmiergeräten für die Massenproduktion, Entwicklungs-Programmiergeräten zum Einsatz in Labor und Kleinserienproduktion, transportablen, netzunabhängigen Programmiergeräten für Labor und Außendienst, In-System Programmiergeräten für die Programmierung eines Bausteines im Einsatzsystem sowie Spezial-Programmiergeräten, die nur für bestimmte Bausteintypen ausgelegt sind.

Ein Programmiergerät wird umgangssprachlich auch „Eprommer“, „Prommer“ oder „Brenner“ genannt. Die Bezeichnung „Brenner“ wird heutzutage allerdings fast ausschließlich für CD-/DVD-Schreibgeräte verwendet. Außerdem wird auch im deutschen Sprachraum häufig der englische Begriff "Programmer" verwendet.

