| |
| |
| |
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 |
|
|
|
667 |
|
|
|
| Pintreiber |
|
|
|
|
68 |
|
|
|
| Pintreiber-IC |
|
|
|
|
Nein |
|
|
|
| Modulsystem |
|
|
|
|
Ja |
|
|
|
| PC-Anschluss |
|
|
|
|
USB2 |
|
|
|
| Kaskadierbar |
|
|
|
|
Ja |
|
|
|
| Stand Alone |
|
|
|
|
Nein |
|
|
|
| Ext. Speicher |
|
|
|
|
Nein |
|
|
SD |
| JTAG Debugger |
|
|
|
|
Nein |
|
|
|
| Fernsteuerbar |
|
|
|
|
Nein |
|
|
|
| Low Voltage |
|
|
|
|
1.8V |
|
|
|
| High Speed |
|
|
|
|
Ja |
|
|
|
| Netzunabhängig |
|
|
|
|
Nein |
|
|
|
| Zertifiziert |
|
|
|
|
CE |
|
|
|
| Gehäuse |
Plastik |
Plastik |
Plastik |
Plastik |
Alu
Blech |
Alu
Blech |
Plastik |
Alu
gefräst |
| Größe (cm) |
|
|
|
|
15x26x9 |
|
|
|
| Gewicht |
|
|
|
|
4000g |
|
|
|
| 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.
|
| |
|
|
|
|
 |