Logo Cinitec Datasystems  
 
 
 
 

 
  OVERVIEW
     
       
 
 
  Mythen und Fakten
Oft gestellte Fragen über Programmiergeräte


Was ist ein Programmiergerät?

Ein Programmiergerät, auch Device-Programmer oder EPROM-Brenner genannt, ist ein Gerät zum Transferieren von Daten in programmierbare Bausteine, wie etwa ROMs, EPROMs, EEPROMs, Flash-Speicher, GALs, PALs, PLDs, CPLDs, FPGAs, und Microcontroller. Es gibt vier grundsätzliche Einsatzbereiche von Programmiergeräten:

  • Gang-Programmiergeräte - für Massenproduktion.
  • Universal-Programmiergeräte - für Labor und Kleinserienproduktion.
  • Portable Programmiergeräte - für Labor und Aussendienst.
  • Spezial-Programmiergeräte - nur für bestimmte Bausteintypen.

Frühere Programmiergeräte hatten die Maße eines Schuhkartons und mehrere Kilogramm Gewicht; moderne Programmiergeräte wiegen nur einige 100 Gramm und passen in die Jackentasche. Das ideale Programmiergerät kombiniert die Vorteile von eines Universal-Programmiergeräts mit der Möglichkeit, mehrere Geräte am gleichen PC zu kaskadieren. Hier ein Programmiergeräte-Vergleich mit den Durchschnittspreisen und den Features einiger verbreiteter Geräte:

 
Chip
Prog+
Galep
4
Leaper
48
Galep
5
All-
100
Bee
Prog+
Superpro
3000
Galep
5D
Preis (EUR)
265
299
469
499
667
736
800
899
Pintreiber
40
40
48
48
68
48
48..100
60..240
Pintreiber-IC
Nein
Ja
Nein
Ja
Nein
Nein
Nein
Ja
Modulsystem
Nein
Nein
Nein
Nein
Ja
Nein
Ja
Ja
PC-Anschluss
LPT
LPT
USB1
USB2
USB2
LPT,USB2
USB1
USB2,LAN
Kaskadierbar
Nein
Nein
Nein
Ja
Ja
Ja
Ja
Ja
Stand Alone
Nein
Nein
Nein
Nein
Nein
Nein
Ja
Ja
Ext. Speicher
Nein
Nein
Nein
Nein
Nein
Nein
CF
SD
JTAG Debugger
Nein
Nein
Nein
Ja
Nein
Nein
Nein
Ja
Fernsteuerbar
Nein
Ja
Nein
Ja
Nein
Ja
Nein
Ja
Low Voltage
1.8V
1.3V
2.5V
1.3V
1.8V
1.8V
1.5V
1.3V
High Speed
Nein
Nein
Ja
Ja
Ja
Ja
Ja
Ja
Netzunabhängig
Nein
Ja(Akku)
Nein
Ja(USB)
Nein
Nein
Nein
Nein
Zertifiziert
CE
CE,RoHS,
UL,9001
CE
CE,RoHS,
UL,9001
CE
CE
CE,RoHS
CE,RoHS,
UL,9001
Gehäuse
Plastik
Plastik
Plastik
Plastik
Alu
Blech
Alu
Blech
Plastik
Alu
gefräst
Größe (cm)
9x16x3
8x11x3
11x16x4
8x11x3
15x26x9
14x19x5
15x24x6
12x17x2
Gewicht
280g
180g
420g
185g
4000g
1100g
855g
750g
Herkunftsland
USA
Germany
Taiwan
Germany
Taiwan
Slovakei
China
Germany

Preisangaben (Durchschnittspreise) und Daten basieren auf den Spezifikationen auf der Website des Herstellers oder Distributors - für die Richtigkeit wird keine Gewähr übernommen. Wenn Sie einen Fehler finden, oder wenn Sie ein bestimmtes Programmiergerät in den Vergleich mit aufgenommen haben wollen, oder wenn Sie Hersteller sind und nicht möchten, dass Ihr Produkt hier verglichen wird, kontaktieren Sie bitte webmaster (at) conitec.net.
Wie viele Bausteine werden unterstützt?

Theoretisch kann ein Universalprogrammiergerät mit perfekten Pintreibern und Adaptern für alle Gehäuseformen sämtliche existierenden Bausteine programmieren. In der Praxis hängt dies von der Anzahl und Vielseitigkeit der Pintreiber, von der Zahl der in der Software bereits implementierten Bauteile sowie davon ab, wie Bauteile gezählt werden.

Es existieren heute etwa 5000 verschiedene programmierbare Bausteine. Dennoch gibt es für einige Programmiergeräte Listen mit 10.000, 30.000 oder gar über 40.000 unterstützten Bausteinen - wie ist das möglich? Die Antwort ist einfach: die gleichen Bausteine werden mehrfach in der Liste aufgeführt. Z.B. taucht der GAL 16V8 von Lattice bis zu 400(!) mal in den Bauteil-Listen einiger Programmiergeräte auf. Aus diesem Grund hat die bloße Anzahl der Bausteine wenig Aussagekraft für den Vergleich von Programmiergeräten. Zur Auswahl eines Programmiergeräts sollten Sie prüfen, wie viele verschiedene Bausteine tatsächlich unterstützt und wie schnell neue Bauteile implementiert werden.

Was ist ein Pintreiber?

Ein Pintreiber ist der Schaltkreis, der jeden Anschluss des Programmiersockels steuert. Er versorgt den Anschluss mit Logikpegeln, Programmierspannungen, Versorgungsspannungen, Pullup/Pulldown-Widerständen, Ground, Takt, und Logikeingängen mit einstellbarem Schwellwert. Der Pintreiber ist der wichtigste Faktor für die Zuverlässigkeit, Vielseitigkeit und Geschwindigkeit eines Programmiergeräts.

Wichtig ist die Unterstützung logischer Pegel mit möglichst geringer Spannung. Je geringer die kleinstmögliche Spannung, desto mehr Low-Voltage Schaltkreise können zuverlässig programmiert werden. Dies wird besonders wichtig mit der Produktion neuer Low-Power Schaltkreise verschiedener Hersteller, die Logikpegel im Bereich von 1.3V erfordern.

Intern besteht ein Pintreiber entweder aus einem speziell entwickelten integrierten Schaltkreis (wie in der GALEP Programmiergeräteserie), oder er ist aus einzelnen Komponenten wie Transistoren und Widerstandsnetzwerken aufgebaut. Ein spezielles Treiber-IC hat viele Vorteile, wie minimale Ausgangskapazität, geringes SSO-Rauschen, höhere Taktraten und bessere Signalformen. Zudem erlaubt hohe Integration das Design sehr kleiner, leichter, USB- oder Akku-betriebener portabler Programmiergeräte.

Was ist JTAG?

JTAG (benannt nach der Joint Test Access Group) ist eine nach IEEE 1149.1 genormtes Programmier- und Testschnittstelle für digitale Bausteine. Ursprünglich für programmierbare Logik entwickelt, wird der JTAG-Standard häufig auch für Mikrocontroller eingesetzt. Der Zugriff auf den Baustein erfolgt über vier serielle Leitungen (TMS, TCK, TDI, TDO), über die Ports, Speicher, Lockbits, Register usw. in hoher Geschwindigkeit gelesen und beschrieben werden können.

JTAG standardisiert das Chip-Programmieren. Einige Programmiergeräte, z.B. die GALEP-Serie, können JTAG-kompatible Bauteile auch dann programmieren, wenn sie noch nicht in der Bauteil-Liste stehen. Dazu muss der Bauteil-Compiler ein SVF Skript generieren, das dann vom Programmiergerät interpretiert und zum Programmieren des Bauteils benutzt wird.

Neben dem Programmieren erlaubt das JTAG-Interface auch das Testen und Debuggen von Mikrocontrollern und ihrer Peripherieports. Mit einem JTAG-Debugger läßt sich Software auf der Original-CPU in der Original-Schaltung entwickeln. Hierbei können Hardware- und Software-Breakpoints ausgelöst und das Programm unterbrochen und im Single Step Modus ausgeführt werden… ganz ohne Emulator und ohne Zusatz-Hardware.

Ausser spezifischen JTAG-Debuggern erlauben auch manche Programmiergeräte, z.B. die GALEP-5 Serie, das Debuggen von JTAG-kompatiblen Mikrocontrollern in der Schaltung oder direkt im Programmiersockel. Die OpenOCD (On Chip Debugger) Software unterstützt zur Zeit ARM7, ARM9, XScale, und Cortex-M3 Prozessoren. Zusätzlich lassen sich damit auf einfache Weise Testalgorithmen zum In-Circuit-Testen von kompletten Schaltungen (Boundary Scan) für die Kleinserienproduktion definieren. Auf diese Weise wird Ihr Programmiergerät zu einem kompletten Entwicklungs-, Test- und Produktionssystem.

Was kostet ein Programmiergerät?

Universelle Programmiergeräte kosten zwischen 250 und 2500 EUR. Dieser Preis ist jedoch allein wenig aussagekräftig, denn hinzu kommt noch der Preis für die Adapter oder Module in den Gehäuseformen, die Sie benötigen (Adapter werden in den DIL-Sockel gesteckt, während auswechselbare Module den Sockel ersetzen). Für programmierbare Bausteine sind etwa 60 verschiedene Gehäuseformen gebräuchlich. Wenn Sie also zusätzlich zum Programmiergerät noch 60 Adapter oder Module erwerben, können Sie sämtliche Bausteine programmieren... oder etwa nicht?

Leider nein. Zumindest nicht mit allen Geräten. Ein Blick in die Bausteinlisten mancher Programmiergeräte-Hersteller zeigt, dass Sie für die aufgelisteten Bausteine bis zu 1000(!) verschiedene Adapter benötigen. Mehrere unterschiedlich beschaltete Adapter für die gleiche Gehäuseform sind dann erforderlich, wenn das Gerät zu wenig Pintreiber besitzt und diese nicht universell genug sind. Dagegen kommen Geräte mit einer hohen Anzahl wirklich universeller Pintreiber - wie z.B. GALEP-5D - mit einer minimalen Anzahl von Adaptern aus und verursachen deutlich geringere Gesamtkosten. Zum Programmiergeräte-Vergleich können Sie aus den Bausteinlisten die Adapterkosten für die von Ihnen benötigen Bausteine ermitteln.

Wie zuverlässig ist ein Programmiergerät?

In der Serienproduktion ist der Ausfall eines Produktionsgerätes fatal. Auch in der Entwicklung möchte man sich ungern mit der Möglichkeit auseinandersetzen, dass eine Fehlfunktion nur auf ein schlecht programmiertes PLD zurückzuführen ist. Daher erwarten Benutzer zu Recht extreme Zuverlässigkeit von einem Programmiergerät. Sorgfältig ausgelegte Hardware, die in einem weiten Bereich von Umgebungs- und Stromversorgungsbedingungen funktioniert, und ausgiebige Produktionstests und Burn-In Zyklen sind für Programmiergeräte wichtig.

Die Pintreiber eines robusten Programmiergeräts sollten ein präzises, definiertes Signal produzieren. Sie sollten gegen Überlastung geschützt und so ausgelegt sein, dass sie alle Arten von Fehlbedienung erkennen und überleben, wie etwa falsch eingesetzte Bausteine. Wenn ein Programmiergerät mit einem eigenen Prozessor ausgestattet ist, sollte es einen separaten Schaltkreis zur Überwachung der Programmierspannungen für den Fall eines Softwarefehlers haben.

Eine traurige Tatsache: viele Programmiergeräte, sogar von großen Herstellern, erfüllen die obigen Qualitätskriterien nicht. Es kommt nicht selten vor, dass von zwei solchen Geräten aus der gleichen Serie das eine ein bestimmtes Bauteil programmieren kann und das andere nicht! Allerdings kann man einem Programmiergerät den Aufbau und die Qualität der Pintreiber nicht von außen ansehen. Einen Hinweis darauf, ob Sie sich auf ein Programmiergerät und auf den Herstellersupport verlassen können, gibt die Feststellung, ob das Gerät CE, UL und RoHS konform ist, und ob sein Hersteller das ISO 9001 Zertifikat besitzt.

 

 


 
 

 

Conitec Datensysteme GmbH   ·   Dieselstr. 11c   ·   D-64807 Dieburg