Hallo zusammen,
ich muss sagen, mein Versuch, mich in die Welt von CPLDs einzuarbeiten
ist ziemlich am Anfang stecken geblieben.
Als erstes habe ich nach tutorials gegoogelt und dabei schon einige
Interessante gefunden, die allerdings alle unvollständig waren.
also der aktuelle Stand der Dinge:
- Ich weiß, was CPLDs sind, was sie können, was sie nicht können,...
- Ich werde ein 5V ISP CPLD von xilinx benutzen
(http://www.reichelt.de/?ACTION=3;ARTICLE=40154;PROVID=2402)
- Ich habe das Xilinx Webpack (5GB Programmierspam) heruntergeladen
Dafür würde ich jetzt gerne ein Programmier-Experimentierboard mit
Schnittstelle zum PC bauen, um die ersten Versuche mit Taster und LEDs
zu starten und die Datenübertragung zu testen.
Nur leider habe ich keine Ahnung, wie die ISP Verbindung zum PC
hergestellt wird und was ich dazu brauche. Ich möchte mir ehrlich gesagt
kein fertiges Board für 200 EUR vom großen C kaufen, sondern lieber
selbst etwas basteln.
Erkennt das Programm den Chip dann selbst? Das WebPack ist irgendwie für
Einsteiger schonmal deutlich zu komplex :-/
Die Tutorials von xilinx beschränken sich darauf, mir zu erzählen, wie
ich die 100 verschiedenen Möglichkeiten der Software nutze, so ein Ding
zu programmieren. Das entspricht nicht so ganz meinen aktuellen
Anforderungen...
Was ich bisher gefunden habe:
http://www.holger-klabunde.de/projects/Xilinx.htm
Das scheint ein JTAG adapter zu sein (also kein ISP). Den Unterschied
kenne ich nicht wirklich. Nur ISP soll toller sein. Keine Ahnung, ob ich
mich an dieser Schaltung orientieren kann.
http://www.unmuth.de/pdf/CPLD_tut_hardware.pdf
hier jetzt ISP - dafür aber für den 9536 und unvollständig. So fehlt
z.B. die Teileliste. Ansonsten gefällt mir das schon recht gut. Meint
ihr, damit kann man wirklich mit dem Webpack arbeiten? Sollte ich
vielleicht für den Anfang auf den 9536er umsteigen, um nicht so viel
ändern zu müssen?
Wie man mit so einer Platine dann das "Brennen" durchführt, lassen die
Autoren außen vor.
Mir fehlt halt einfach ein "Baue diese Platine und klicke auf jenen
Programmbutton"-Tutorial, das mich mal zu dem Punkt führt, wo die erste
LED blinkt. Kennt da jemand was für diese Hardware und diese Software?
Hi, ich habe auch mit dem CPLD angefangen, habe mir damal einen
Parallelport Programmer nachgebaut.
Ich glaube der war von ulrich Radig.
http://www.ulrichradig.de/home/index.php/cpld/basekit_xilinx_cplds
Dann stand ich vor genau dem gleichen problem wie du, so viele Knöpfe
und so viel was zu beachten gilt. Dann habe ich mir ein Tutorial
runtergeladen, das war von einer hochschule was sehr detailiert war.
Finde es auf anhieb nicht, aber das hier schaut auch nicht schlecht aus:
http://www.eng.ucy.ac.cy/theocharides/Courses/ECE408/hw1.pdf
Hoffe ich konnte dir helfen :-)
@ Armin (Gast)
>- Ich weiß, was CPLDs sind, was sie können, was sie nicht können,...
Wirklich?
>- Ich werde ein 5V ISP CPLD von xilinx benutzen>(http://www.reichelt.de/?ACTION=3;ARTICLE=40154;PROVID=2402)
Kann man machen, wenn gleich die 3,3V Typen deutlich billiger sind.
>- Ich habe das Xilinx Webpack (5GB Programmierspam) heruntergeladen
Selber Schuld. Hättest dir die genügsamen Version 6.3 runterladen
sollen.
http://www.mikrocontroller.net/articles/Programmierbare_Logik>Nur leider habe ich keine Ahnung, wie die ISP Verbindung zum PC>hergestellt wird
Über den Parallelport.
> und was ich dazu brauche.
Ein einfaches Kabel ala
http://www.geocities.com/jacquesmartini/digital/schematic/Parallel_Cable_III.png>Ich möchte mir ehrlich gesagt>kein fertiges Board für 200 EUR vom großen C kaufen, sondern lieber>selbst etwas basteln.
Was aber mal fix zu vielen (Anfänger)problemen führen kann.
>Erkennt das Programm den Chip dann selbst?
Wenn die Hardware OK ist, dann ja.
> Das WebPack ist irgendwie für>Einsteiger schonmal deutlich zu komplex :-/
Naja, geht so. Zumindest die alten Versionen.
>Das scheint ein JTAG adapter zu sein (also kein ISP).
Bei den CPLDs gibt es nur JTAG, damit gilt JTAG = ISP.
>http://www.unmuth.de/pdf/CPLD_tut_hardware.pdf
Das ist die Schaltung des origonalen Parallel-Cable-III von Xilinx.
Würde ich aber nicht empfehlen, das Ding hat bekannte Macken. Lieber dem
Link oben folgen.
>vielleicht für den Anfang auf den 9536er umsteigen, um nicht so viel>ändern zu müssen?
Wozu? Die gibt es im identischen Gehäuse.
>Wie man mit so einer Platine dann das "Brennen" durchführt, lassen die>Autoren außen vor.
Kabel anstecken, Strom einschalten, Programm starten, paar mal clicken,
fertig.
>Mir fehlt halt einfach ein "Baue diese Platine und klicke auf jenen>Programmbutton"-Tutorial, das mich mal zu dem Punkt führt, wo die erste>LED blinkt.
Also idiotensicher. Naja . . . .
MFG
Falk
Falk Brunner schrieb:
> Selber Schuld. Hättest dir die genügsamen Version 6.3 runterladen> sollen.
Nützt einem aber nichts, wenn man kein Windows hat. Läuft das Ding
eigentlich unter Wine?
Zu Beginn gleich alles selbst bauen kann ich nur empfehlen wenn du schon
Erfahrung in anderen Bereichen hast(z.b. µC board etc)
Ansonsten hat das eine nicht viel mit dem anderen zu tun.
Wenn du vhdl lernen willst bzw allgemein eine Schaltung beschreiben
willst, dann brauchst du dafür genau 0 Kenntnisse was den Boardentwurf
angeht.
Es hilft dir auch nichts, das du das board selbst entworfen hast, wenn
es nachher um die Implementierung der Logik im Chip geht.
Deswegen würde ich mir wirklich 3 mal überlegen gleich komplett bei 0 zu
beginnen.
Einfache boards gibts für sehr wenig Geld(siehe pollin beispiel),
möglicherweise kostet einen der Selbstentwurf sogar tw mehr.
> Das scheint ein JTAG adapter zu sein (also kein ISP). Den Unterschied> kenne ich nicht wirklich.
ISP heisst ja erst mal nur so viel wie "Im System Programmierbar" und
der Begriff wird meistens bei Mikrocontrollern etc. verwendet. Über das
"wie" dieser Programmiermöglichkeit macht der Begriff "ISP" überhaupt
keine Aussage.
Bei den AVRs wird meistens über MOSI, MISO und SCK seriell programmiert,
in einigen (seltenen) Fällen aber auch parallel. Bei anderen
Mikrocontrollern irgendwie anders, ich meine bei Texas z.B. über nur
einen Pin etc.
JTAG hingegen meint eine bestimmte, genormte Schnittstelle. JTAG ist
eine spezielle, serielle Schnittstelle bei der mehrere Bausteine
unterschiedlicher Hersteller in einer Kette hintereinander geschaltet
werden können. Ursprünglich (vor Jahrzehnten) war JTAG nicht zum
Programmieren gedacht, sondern nur zum Testen von Bauteilen. Aber recht
bald konnt man über JTAG auch bestimmte Bauteile programmieren, z.B.
CPLDs etc.
Wenn Du ein CPLD im System programmierst (ISP), machst Du das praktisch
immer über die JTAG-Schnittstelle.
Es gibt übrigens auch AVRs mit JTAG-Schnittstelle. Die können dann auch
über die JTAG-Schnittstelle programmiert werden, zusätzlich zur
seriellen Möglichkeit (MOSI, MISO, SCK) und parallelen Möglichkeit.
Also:
JTAG ist eine genormte Schnittstelle, und ISP bedeutet "Im System
programmierbar".
Hallo Armin,
ich diesen Parallelport-Programmer (-> Anhang) gebaut, der passt als SMD
ohne Probleme in da Gehäuse des LPT-Steckers. Aus der Schaltung gespeist
kann er mit 5V oder 3,3V laufen.
Wie schon von anderen empfohlen, solltest du gleich die XL-Serie mit
3,3V verwenden. Die ist deutlich preiswerter, und hat 5V-tolerante
Eingänge.
Für die ersten Schritte habe ich mir eine kleine Testplatine entworfen.
Da sind außer dem XC9536XL (bzw. XC9572XL im gleichen Gehäuse) nur noch
ein Spannungsregler für 3,3V sowie ein Quarzoszillator mit 32,768 kHz
drauf, und alle Pins werden auf Stiftleisten geführt, um sie mit meinen
Testmodulen verbinden zu können.
Damit, und mit dem Webpack habe ich meine ersten "Gehversuche" mit CPLD
unternommen. Probiere für den Anfang erst mal was ganz einfaches, wie
mit 2-3 Eingänge logisch verknüpfen (wie z.B. and, or, xor) und das dann
auf ein paar Ausgängen ausgeben.
Hallo zusammen,
ich würde gerne diese Thread-Leiche wieder auferstehen lassen, mit
folgender Frage: Kennt ihr einen preiswerten USB<->LPT Adapter, den man
mit der Schaltung, die oben von Michael L. genannt wurde, zum
Programmieren von CPLDs enutzen kann? Funktioniert ein einfacher
USB<->"Druckerport"-Adapter?
Danke und Gruß
Thomas
ok, danke für den tipp.
ich habe noch eine frage zu meinem projekt: was ich realisieren möchte,
ist relativ simpel: ein drehencoder soll durch einen GAL oder CPLD
bestimmte "werte" am ausgang ausgeben. wir reden hier von max 10
einstellungsmöglichkeiten, die einen AD-wandler steuern sollen
(sampleraten einstellung). ich bin mir nicht sicher, ob ich mich jetzt
voll in die materie der CPLD via VHDL programmierung stürzen soll, nur
um diesen kleinen baustein zu programmieren. gibt es da eine andere
möglichkeit? eine einfachere? aus einzelelementen würd ich die logik
sehr ungern bauen...
danke nochmal
@Thomas P. (thomas47058)
>möglichkeit? eine einfachere? aus einzelelementen würd ich die logik>sehr ungern bauen...
Nimm einen kleinen Mikrocontroller, selbst der langweilt sich dabei zu
Tode. Ein CPLD erst recht.
MFG
Falk
hallo lothar,
der Digilent Programmers liest sich gut. allerdings geht die
beschreibung immer ziemlich restriktiv anmutend auf "Digilent
programmable logic boards" und "Digilent embedded control boards" ein.
kann ich denn damit auch generell alle AVRs und CPLDs programmieren?
etwas hoffnung macht da der punkt "Can program devices that have a JTAG
voltage of 1.8V or greater".
die variante aus der bucht kostet schon 70 euro inkl. versand. lohnt
sich für meine vorhaben nicht...
danke&gruß!
Thomas P. schrieb:> kann ich denn damit auch generell alle AVRs und CPLDs programmieren?
Nein. Es steht zwar überall JTAG drauf, aber es ist so wie auf Autos
zwar "Auto" steht, aber trotzdem jedes spezielle Felgen und Reifen
braucht...
Das ginge nur, wenn du entsprechende JTAG-Testvektoren erstellen
könntest und die dann mit einem passenden Player abspielen würdest...
Bastel-Tips: Für CPLD's
http://www.youtube.com/watch?v=lYMaUudZQsc&feature=related
@Armin
http://www.miniprobe.com/pld/3p_inv/3p_invA/3PINVA.HTML
Referenz-Design mit “trick“ 2 Clocks {1..1/2} als PWM 3 Pasen-Motor
########################################################################
##
Frage:@Forum
Hast einer mal versucht den AVR als JTAG-Iterface einzusetzen, und damit
den
XC9536 direkt zu proggen. (via “*.JED“ File) ???
In der C’t Zeitschrift war mal sone APP drin, via SD CARD wurde das
Design in den CPLD
mit Hilfe des Atmega 32 geladen.
Kennt einer das Projekt noch.?
/"\
\ /
X
/ \
Gruss Holger
@Armin
Hier ist was für dein XC9536 Project.
1) JTAG .Infos
2) XC9536 oder XC9572 mini Platine (Home-Brew)
Beitrag "JTAG INTERFACE APP MCU"
Gruss Holger.
@Armin
Der Prof. hat einen Design Award gewonnen, in JAPAN.
Hier prüfe ich noch die Pinne nach.
Nicht einfach alles nehmen, immer nachprüfen.
Da darf kein Fehler drin sein.
Hier sind genug Threads, bei denen das Ding heiss geworden ist.
Und da ist es dann exitus mit dem Homebrew CPLD.
#################################################################
Man kann da noch den VCC I/0 Pin 32 modulieren.
So eine art DAC.
Interesant sind auch die 3 R-C Kopplungen (analog-Trigger)da drin.
Hier die Beschaltung, der Dedizierten Pinne.
2 Clock-Domains + Power UP (Boot-Up)Resistor Nets.
Clock:[5][6][]
General-Set/Reset...
General Tristate Pins..
/"\
\ /
X
/ \
Gruss Holger