Forum: FPGA, VHDL & Co. Lattice ispLEVER - günstiger JTAG-Adapter


von Stephan S. (plonk)


Lesenswert?

Hallo,

nachdem ich letztens eine Versuchsreihe für Schüler (zum Thema 
Digitalelektronik) etwas modernisiert habe, ist mir in den Sinn 
gekommen, dass es neben dem bisherigen Steckbrett-"Gebastel" mit 
74er-ICs möglicherweise recht attraktiv sein könnte, das Ganze um eine 
Computer-Komponente zu erweitern. Sprich: die Schüler sollen ein CPLD 
programmieren.

Da ich bisher keine praktische Erfahrung damit habe, mir aber auch gerne 
neue Themen anschaue, habe ich mich etwas umgesehen und bin bei Lattice 
gelandet. Das ispLEVER Classic gibt es umsonst und die CPLDs sind recht 
günstig. Ich habe schon ein wenig "Trockenübungen" gemacht und bin 
positiv überrascht, wie einfach es geht, zumindest simple Designs zu 
erstellen und zu simulieren. Das würde ich auch den Schülern mit etwas 
Betreuung zumuten.

Jetzt geht es aber darum, das Design auf das CPLD zu bringen.
Ausgewählt habe ich für die Versuche den Lattice LC4032V, der ist 
günstig und scheint noch gut erhältlich. Über den JTAG-Adapter mache ich 
mir aber noch etwas Sorgen.

Es gibt das Original vom ispDownload-Adaper, das wäre mir für den Zweck 
aber schon fast zu teuer. Diverse Clones aus China rangieren da schon 
deutlich günstiger und scheinen volle Funktionalität zu gewähren: 
http://www.ebay.de/itm/USB-ISP-Download-Cable-Jtag-SPI-Programmer-for-LATTICE-FPGA-CPLD-/281641339929?hash=item419321. 
Dauert aber mal wieder mit dem Versand.
Dann gibt es aber auch die Möglichkeit, mit OpenOCD einen Altera USB 
Blaster zu betreiben. Der ist als Clone ja wirklich unschlagbar billig, 
aber funktioniert der auch mit den in ispLEVER Classic erstellten 
Dateien?

Man sieht: ich habe noch kaum Ahnung von dieser Thematik. Hat von euch 
jemand diesen Weg schon durchschritten und kann mir dahingehend etwas 
Unterstützung bei der Auswahl eines JTAG-Adapters geben?


MfG,
Stephan

von Sigi (Gast)


Lesenswert?

Die JTAG-Programmer aller Hersteller sind idR sehr
teuer, alternativen sind nur die China-Clone. Von
denen ist aber nur der für Altera wirklich billig
(4-5 Euro, die anderen: ca. 20-25 Euro).

Bei allen CPLDs gilt: sie sind alle EEPROM-basiert,
d.h. nicht beliebig oft reprogramierbar. Bei Xilinx'
XL9500er sind es 10000 Zyklen, bei Altera MAXen nur
100 und bei "Deinen" Lattice CPLDs glaube 1000 Zyklen.
Hört sich erstmal (bis auf Alteras CPLDs) viel an,
für Unterricht/Hobby imho zu wenig.

Alternative: nimm ein kleines FPGA von Altera (z.B.
EP2C5), die gibt's ab 20 Euro, sind mit Programmer
ca. 25 Euro. Billiger geht's kaum.

Von Lattice gibt's auch sehr billige FPGA-Boards inkl.
Onboard-Programmer, schreib doch einfacch mal Lattice
an.

von hp-freund (Gast)


Lesenswert?

Ich spiele auch mit dem Gedanken mir Lattice anzusehen.
Dieses Board:

http://de.rs-online.com/web/p/entwicklungskits-programmierbare-logik/7434788/

scheint mir ein guter Einstieg zu sein.
Wenn ich das richtig verstehe ist es auch möglich den Onboard Programmer 
für seine eigenen Chips anzuzapfen.

von Stephan S. (plonk)


Lesenswert?

Hallo,

der Tip war gut, für die 4000er-Reihe gibt es das 
http://de.rs-online.com/web/p/entwicklungskits-programmierbare-logik/7434797 
LC4256ZE-B-EVN Dev-Kit.
Da ich hier aber auch nicht sicher bin, wie sich das Board nachher mit 
der Entwicklungsumgebung und meinem CPLD verträgt, habe ich Lattice eine 
Anfrage gestellt. Die wissen das bestimmt ;-) Aber für 30€ wäre das 
jedenfalls ein gutes Angebot.

Die relativ geringen Schreibzyklen sind mir bekannt, aber ich habe mal 
nachgerechnet:
wir bekommen zu dieser Versuchsreihe wenn es hochkommt etwa 10-15 
Besuche im Jahr. Das heißt, inklusive Spielereien, denen ich mal ein 
paar zusätzliche Programmierungen gebe, haben wir nicht mehr als 50 
Zyklen im Jahr pro CPLD. Das sollte einige Zeit reichen, selbst bei den 
geringen 1000 bei diesem Typ ;-) Mit ein wenig Lagerhaltung sehe ich da 
kein Problem, zumal die knapp 2€ für das IC auch nicht wehtun.

Dankeschön euch beiden!

MfG

: Bearbeitet durch User
von Mike (Gast)


Lesenswert?

Wenn es nicht unbedingt ein CPLD sein muss wäre eventuell ein ähnliches 
Board mit FPGA besser geeignet.

Von Lattice gibt es da eins mit MachXO3 (LCMXO3LF-6900C-S-EVN). Hätte 
den großen Vorteil das da neben ein paar LEDs noch Schalter drauf sind. 
Etwas preiswerter ist es auch noch.

von Stephan S. (plonk)


Lesenswert?

Es muss nicht zwangsweise ein CPLD sein, immerhin kommt nachher maximal 
ein Dutzend Logikgatter da rein, das letztlich quasistatisch betrieben 
wird. Da mir aber das ganze Drumherum der LC4000-Familie gefällt (und 
das alles gut bei RS verfügbar ist), würde ich das erstmal mit denen 
versuchen.
Zumal sich für kombinatorische Schaltungen ein CPLD doch anbietet, oder 
nicht?

MfG

: Bearbeitet durch User
von Sigi (Gast)


Lesenswert?

hp-freund schrieb:
> Wenn ich das richtig verstehe ist es auch möglich den Onboard Programmer
> für seine eigenen Chips anzuzapfen.

Nein, bei vielen Lattice-Boards sind Onboard-Programmer
drauf, die lassen sich aber idR nicht zum Programmieren
fremder Chips verwenden (es sei denn, die JTAG DI/DO
Leitungen werden von Hand getrennt und geeignet
verschaltet).

Die rausgeführten JTAG-Pins dienen nur für ext. Programmer,
dazu müssen aber Onboard einige Widerstände entfernt werden.

von Michael B. (laberkopp)


Lesenswert?

Stephan S. schrieb:
> Über den JTAG-Adapter mache ich mir aber noch etwas Sorgen.

Richtig.

Früher konnte man das direkt, ohne weitere ICs (höchstens für Angsthasen 
die dachten sich ohne Treiber den PC kaputtzumachen) vom LPT 
Parallelport des Rechners aus machen.

Heute können Computer angeblich 1000 x mal mehr, aber nicht mal mehr 
das.

Also braucht man etwas mit USB Interface. Die Frage ist dann nicht so 
sehr, welcher Chip dranpasst, es passt dank JTAG jeder, sondern eher, 
welche Software nötig ist.

Denn je nach Software klappt das entweder aus der Lattice 
Programmierumgebung heraus, oder man muss den Prozess unterbrechen und 
auf ein externes Tool wechseln.

Ähnlich ist es mit der Programmierung von Atmel AVRs aus dem Studio 
heraus ja auch.

Gegen tun also auch die chinesischen, bequem sind nur die, die mit der 
Lattice Software kompatibel sind.

Da du auch noch eine alte Programmierumgebung verwendest, muss man bei 
der Beschreibung ganz genau aufpassen.

von hp-freund (Gast)


Lesenswert?

Sigi schrieb:
> Nein, bei vielen Lattice-Boards sind Onboard-Programmer
> drauf, die lassen sich aber idR nicht zum Programmieren
> fremder Chips verwenden (es sei denn, die JTAG DI/DO
> Leitungen werden von Hand getrennt und geeignet
> verschaltet).

Ganau so dachte ich mir das ;-)

Beim LC4256ZE-B-EVN würde ich einfach R3, R4, R7 und R9 entfernen und 
die 4 Pins vom FT2232H direkt an 4 Pins in der Prototype Area legen.
Dann ein kleines Adapterkabel das zurück auf den zu bestückenden 
JTAG-Header bzw. auf die externe Platine führt.

von Sigi (Gast)


Lesenswert?

hp-freund schrieb:
> Beim LC4256ZE-B-EVN würde ich einfach R3, R4, R7 und R9 entfernen und
> die 4 Pins vom FT2232H direkt an 4 Pins in der Prototype Area legen.
> Dann ein kleines Adapterkabel das zurück auf den zu bestückenden
> JTAG-Header bzw. auf die externe Platine führt.

Genau, erfordert nur ein wenig Lötarbeit.

Bei einigen Boards (hab so eins) ist lieder nur ein
Umschalter zwischen Extern- und Onboard-Programmer.

von Stephan S. (plonk)


Lesenswert?

Passend dazu habe ich ein Foto des LC4256ZE-B-EVN gefunden:
http://1.bp.blogspot.com/-Kl83yAEjhpc/VC7Kq1czcCI/AAAAAAAAAr8/MqBb7Jipo7k/s1600/IMG_20141003_120509.jpg
Das wäre ja kein großes Ding, die Widerstände zu entfernen.

Michael, ich denke, genau da liegt der Punkt, den ich nicht ganz 
nachvollziehen kann. Zumal die meisten doch mit einem FT2232H laufen. 
Verstehe ich richtig: JTAG-Adapter sind nicht unbedingt 1:1 
austauschbar, weil sie unterschiedliche Firmware haben? Ich dachte 
bisher immer, JTAG sei ein standardisiertes Protokoll. OK, es wäre ja zu 
schön, wenn ich den Lattice-CPLD mit meinem aktuellen MSP-FET von TI 
beschreiben könnte ;-)

MfG

: Bearbeitet durch User
von Sigi (Gast)


Lesenswert?

Stephan S. schrieb:
> Ich dachte
> bisher immer, JTAG sei ein standardisiertes Protokoll

Das schon, aber nicht die Ansteuerung per USB und der
PC-seitigen Treiber. Da hat halt jeder Hersteller sein
eigenen Ansatz.

von Nils (Gast)


Lesenswert?

Ich schmeiß mal den Xilinx CoolRunner II CPLD in den Ring.

Vorteil: Xilinx hat einen freien Source-Code, der aus jedem 
Microcontroller mit 4 GPIO-Pins einen Programmer macht. Man muss 
lediglich eine Hand trivialer Funktionen implementieren (setPin, 
readPin, delay). D.h. in zwei Stunden arbeit programmiert jeder billige 
Arduino den CPLD.

Noch billiger geht es via Bitbanging über die Handshake Leitungen eines 
günstigen 3.3V USB/UART Adapters.

Die Xilinx CPLDs haben auch einen Programmiermode, der nicht in das 
interne EEProm, sondern ins interne SRAM schreibt. Damit sind die 
begrenzen Programmiercycles auch kein Problem mehr.

Nachteil: Die Chips sind nicht 5V kompatibel.

DangerousPrototypes hat ein schönes Breakout-Board mit vielen Beispielen 
und Tutorials für den Chip gemacht: 
http://dangerousprototypes.com/docs/CoolRunner-II_CPLD_breakout_board 
Kaufen kann man das auch bei einigen deutschen Distributoren für 16€.

Achja, da es sich an Schüler richtet kann zum Einstieg erzählen, das der 
Coolrunner der Modchip für die XBox 360 ist. Das sollte neugierig 
machen.

von Stephan S. (plonk)


Lesenswert?

Hallo,

Danke auch für diesen Vorschlag, das Board werde ich mir auch auf die 
Liste setzen. Die Programmierumgebung für die Coolrunner II ist aber 
ganz schön riesig :o

MfG

von hp-freund (Gast)


Lesenswert?

Achtung! Nur zu Forschungszwecken:

https://ces.karlsruhe.de/~BUB/logik/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.