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; manche davon werden immer noch gefertigt und finden ihre Käufer. 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 PC zu einem Gang-Programmiergerät zu kombinieren. Auf dieser Website finden Sie eine Vergleichstabelle mit den Durchschnittspreisen und Features einiger populäter Universal-Programmiergeräte.

Wie viele Bauteile werden unterstützt?

Etwa 6500 verschiedene programmierbare Bauteile existieren heutzutage. Da manche Bausteine von mehreren Herstellern produziert werden, gibt es um die 10.000 verschiedene Bauteilnamen. Dennoch werben Programmiergeräte-Hersteller mit 40.000, 50.000 oder gar mehr als 60.000 unterstützten Bauteilen - wie ist das möglich?

Die Antwort ist einfach: die selben Bauteile werden mehrmals gezählt. Z.B. taucht der gleiche GAL16V8 von Lattice bis zu 400(!)mal in den Bauteil-Listen eines osteuropäischen Herstellers auf. Oft werden auch nichtexistierende Bauteilvarianten aufgelistet, z.B. DIL-Versionen von ICs, die gar nicht im DIL-Gehäuse gefertigt werden.

Aus diesen Gründen hat die angegebene Anzahl der unterstützten Bauteile wenig Aussagekraft für den Vergleich von Programmiergeräten. Um den Listen mehr Transparenz zu geben, unterscheidet Conitec in der GALEP Bauteilliste zwischen mehreren Bauteilzahlen:

  • By Name - die tatsächliche Anzahl der unterstützten Bauteil-Algorithmen.
  • By Package - einschließlich der unterstützten Gehäuseformen.
  • By Variants - einschließlich der Bauteilvarianten mit dem gleichen Algorithmus.

Beispiel: CAT93C46S, CAT93C46J, und CAT93C46K sind nur Varianten von CAT93C46 (gleicher Programmier-Algorithmus), aber CAT93C46-1.8 ist ein unterschiedliches Bauteil (anderer Algorithmus für niedrige Spannung).

Die angegebene Bauteilzahl der meisten Hersteller entspricht der "By Variants"-Zählung, während die tatsächliche Zahl der Algorithmen nicht veröffentlicht wird. Alle behaupten gleichwohl auf ihren Websites, die einzige ehrliche Bauteilzahl anzugeben, und attackieren die Zählmethoden ihrer Mitbewerber. Es ist also nicht leicht herauszufinden, wie viele Bauteile tatsächlich unterstützt werden. Bei Stichproben einzelner Bauteile fanden wir die Zählung eines in China ansässigen Herstellers um den Faktor 10 überhöht, während ein Hersteller aus Osteuropa seine Bauteilzahlen gar um das bis zu 40fache mit den obigen Methoden vergrößert. Solange Hersteller ihre tatsächliche Algorithmen-Zahl nicht veröffentlichen, können Sie zum Vergleich nur die Bauteillisten direkt auf die Bauteile überprüfen, die Sie benötigen.

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 aktuelle 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. Das SVF-Datenformat wird von vielen Compilern unterstützt; Programme zur Erzeugung von SVF-Dateien erhalten Sie in der Regel auch vom Hersteller des betreffenden Bauteils.

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 Produktions-Programmiergerätes fatal. Auch in der Entwicklung möchte man sich ungern mit der Möglichkeit auseinandersetzen, dass eine Fehlfunktion nur auf ein falsch 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 gleichen Geräten eines gewissen Herstellers das eine ein bestimmtes Bauteil programmieren kann und das andere nicht...

Welcher Support wird geboten?

Das ist ein wesentliches Kriterium beim Kauf eines Programmiergeräts, das immerhin kein Billigprodukt ist und bis zu 20 Jahre seinen Dienst tun kann. Am wichtigsten ist die Frage, wie lange neue Programmieralgorithmen für das Gerät entwickelt und als Software-Update zur Verfügung gestellt werden.

Manche Hersteller lassen ihr Programmiergerät sofort nach Auslauf der Produktion fallen wie eine heiße Kartoffel. Conitec dagegen stellt regelmäßige Software-Updates nicht nur während der Produktionsdauer einer Gerätegeneration, sondern auch noch bis zu 12 Jahre nach Produktionsende zur Verfügung. Zur Zeit bietet Conitec regelmäßige Software-Updates für die Geräte GALEP-3 (nicht mehr in Produktion seit 2000), GALEP-4, GALEP-5, und GALEP-5D.

Für alle Programmiergeräte bietet Conitec zusätzlich einen Wartungsservice (PM - Preventive Maintenance) an. Dieser beinhaltet gegen einen Pauschalbetrag einen kompletten Gerätetest, ggf. Austausch defekter Teile, Neukalibrierung nach PTB-Norm, Firmware- und Softwareupdate, sowie eine Garantieverlängerung um 12 Monate. Wir empfehlen unseren Kunden, einen Wartungsservice erstmals zwei Jahre nach dem Kauf des Geräts und danach jährlich durchzuführen, um stets die perfekte Funktion des Geräts zu gewährleisten.

Die Software für GALEP-5/5D wird ungefähr ein- bis zweiwöchentlich aktualisiert, die Software für GALEP-3 und GALEP-4 ungefähr monatlich. Updates stehen auf der Download-Seite für unbegrenzte Zeit kostenlos zur Verfügung.

 

 


 
 

 

Conitec GmbH · Dieselstr. 11c · 64807 Dieburg