Forum: FPGA, VHDL & Co. FPGA über serielle Schnittstelle programmieren


von chewabob (Gast)


Lesenswert?

Hallo,
während ich (hoffentlich noch) recht fit in VHDL bin, sieht es für mich 
von der Hardwareseitenoch recht mau aus. Um jedoch meine Fähigkeiten, 
was FPGAs angeht nicht vollkommen den Bach runtergehen zu lassen, möchte 
ich gerne mal wieder ein paar Zeilen schreiben. Mein Plan, einen oder 
zwei Spartan3 zu bestellen und diese mit einem netten Progrämmchen zu 
bespielen. Was brauche ich also?

Nen FPGA -> Spartan 3 nehme ich mal
nen Oszillator
nen 3.3V spannungswandler
und ein paar Widerstände und elkos.

Das wars auch schon. Gut das Programm muss immer wieder neu 
draufgespielt werden nach nem reset, aber damit kann ich vorerst leben. 
So weit so gut. Mein Problem ist vielmehr, wie bekomme ich das Programm 
drauf? So weit ich weiss, dürfte ein serielle Kabel genügen, aber wie 
verdrahten? Da hapert es bei mir. Und im Internet habe ich bislang auch 
noch nichts gefunden, welchen Pol ich mit welchem Pin des FPGA verbinden 
muss. Bislang habe ich nur rausgefuden, wie man das per jtag macht. das 
hilft mir aber nicht.

Kann mir da jemand helfen?

von Menno (Gast)


Lesenswert?

du brauchst noch ein sog. Configuration-(flash)rom, da der Spartan nach 
Abschalten alles vergisst.

von blinky (Gast)


Lesenswert?

nimm nen bus pirate

Scriptable from Perl, Python, etc.   falls du das kannst

http://www.seeedstudio.com/depot/bus-pirate-v3-assembled-p-609.html?cPath=61_68


der fpga kann wohl ueber jtag belebt werden
oder so.

mach doch ne seite zu deinen vortschritten. ich haette da zb ein 
bisschen verilog fuer vga erzeugung abzugeben oder aehnliches

von Frank K. (fchk)


Lesenswert?

chewabob schrieb:

> Nen FPGA -> Spartan 3 nehme ich mal
> nen Oszillator
> nen 3.3V spannungswandler
> und ein paar Widerstände und elkos.
>
> Das wars auch schon. Gut das Programm muss immer wieder neu
> draufgespielt werden nach nem reset, aber damit kann ich vorerst leben.
> So weit so gut. Mein Problem ist vielmehr, wie bekomme ich das Programm
> drauf? So weit ich weiss, dürfte ein serielle Kabel genügen, aber wie
> verdrahten? Da hapert es bei mir. Und im Internet habe ich bislang auch
> noch nichts gefunden, welchen Pol ich mit welchem Pin des FPGA verbinden
> muss. Bislang habe ich nur rausgefuden, wie man das per jtag macht. das
> hilft mir aber nicht.
>
> Kann mir da jemand helfen?

Auf ébay gibts USB Download Cable in genügender Anzahl, z.B. ébay 
#270627772572. Sowas kaufst Du, und das funktioniert dann einfach so, 
und preislich ist das auch noch im Rahmen.

Ich empfehle Dir aber, KEIN Spartan 3, sondern einen 3A zu verwenden. 
Beim 3A bauchst Du nämlich eine Versorgungsspannung weniger, und Du 
kannst billige SPI EEproms nehmen und brauchst nicht die teuren Platform 
Flashes.

Die USB Download Cables können sowohl JTAG als auch Serial Config als 
auch SPI (für SPI EEProms).

Ich vermute aus Deinem Posting, dass Du geglaubt hattest, eine RS232 für 
den Download des Bitstreams zu verwenden. Das geht nicht, jedenfalls 
nicht ohne einen Microcontroller, der aus dem asynchronen RS232 die 
passenden Signale für das Serial Configuration Interface macht, oder das 
geht nur per Bitbanging, was dann wieder eine echte serielle 
Schnittstelle ohne USB dazwischen erfordert. Vergiss den Unsinn einfach 
wieder und hole Dir das USB Download Cable. Es lohnt den Aufwand nicht.

fchk

von chewabob (Gast)


Lesenswert?

Danke für die schnellen Antworten

@manno: Das der alles vergisst ist mir vorerst egal. Statt des 
konfigurations roms würde ich wahrscheinlich später nen mikrocontroller 
verwenden. Damit kann man nen FPGA auch programmieren und der kann nach 
dem Programmieren weitere Aufgaben übernehmen.

@blinky: der Buspirate sieht gut aus, jedoch wollte ich zunächst schaun 
ob das Programmieren nicht auch durch direkten Anschluss an ein 
serielles Kabel geht. Weiss aber halt nicht wie. Muss ich da durch nen 
max232 noch ne Pegelwandlung machen oder sonstiges?

von Frank K. (fchk)


Lesenswert?

chewabob schrieb:

> Nen FPGA -> Spartan 3 nehme ich mal
> nen Oszillator
> nen 3.3V spannungswandler
> und ein paar Widerstände und elkos.

Ein Spartan 3 will 1.2V, 2.5V und 3.3V als Versorgungsspannungen haben, 
bei einem Spartan 3A kannst Du auf die 2.5V Versorgung verzichten. Die 
1.2V brauchst Du auf jeden Fall - immer schöne, großflächige Ground- und 
Versorgungsspannungslagen und Abblockkondensatoren an jeden 
Spannungsversorgungspin. Elendige Routerei, ich weiß. Da lernt man 0402 
SMD Kondensatoren zu schätzen.

Oszillator: Drauf achten, dass es sich um eine 3.3V Version handelt. 
Sowas z.B. funktioniert:
http://www.reichelt.de/Oszillatoren-SMD-Keramikgehaeuse/XO53-50-00000/index.html?ACTION=3&GROUPID=4004&ARTICLE=85039&SHOW=1&START=0&OFFSET=500&;PROVID=2402

SPI Konfigurationsflash: M25P20 oder größer

fchk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sei mir nicht böse, dass ich da jetzt dastehe wie eine Spassbremse, aber 
ich würde mir einfach ein fertiges EVAL-Board für 100 € kaufen. Denn 1. 
baust du das selber (wenn du ehrlich bist) garantiert nicht billiger und 
ist 2. der Lernfaktor beim Verdrahten eines FPGAs recht gering. Da 
kannst du eigentlich nichts Neues lernen, was nicht schon in App-Notes 
drinn steht...

Ich würde wie gesagt ein EVAL-Board kaufen, dann weiß ich schon mal: 
DIESE Hardware funktioniert. Und dann meine eigene Hardware dranbasten: 
Interfaces, Display, Sensoren und Aktoren. Dabei lernst du einiges 
mehr...

chewabob schrieb:
> wollte ich zunächst schaun ob das Programmieren nicht auch durch direkten
> Anschluss an ein serielles Kabel geht.
Geht nicht!
> Muss ich da durch nen max232 noch ne Pegelwandlung machen oder sonstiges?
Das Thema ist viel komplizierter bzw. ganz einfach ANDERS. Lies dir mal 
den Teil des Datenblatts zum Thema "FPGA Configuration" durch. Oder auch 
die passenden App-Notes. Da taucht nirgends eine serielle Schnittstelle 
auf... :-/
Such mal hier im Forum nach dem Thema und du findest sowas wie den
Beitrag "Xilinx USB schematic jetzt verfügbar"

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Hol dir doch ein XuLA 200 von XESS.
Die Teile werden über USB an den PC angeschlossen und programmiert.
Auf dem Boad ist ein Spartan 3A mit etwa 20000 Gates, ein 8-MB SDRAM und 
ein PIC18Firgendwas, der sich um den Programmdownload und den Takt 
kümmert.

Damit hab ich auch angefangen!
Die Kontakte sind auf normale Steckerleisten rausgeführt, sodass man da 
auch leicht mit wenigen Verbindern eine ganze Platine  druntersetzen 
kann.

Die Software ist recht einfach zu bedienen und du kannst einfach ISE 
benutzen + die kostenlosen XESS Downloadtools.

Die einzigen Probleme, an die ich bisher gestoßen bin sind die Größe 
(WILL MEHR LUTS) und der geringe Referenztakt von 12Mhz, den man erst 
mal vervielfältigen sollte.

Kostenpunkt: 69$ + Versand.

Link: http://www.xess.com/prods/prod048.php

Mit freundlichen Grüßen,
Valentin Buck

von Dimi S. (ilovespeccy)


Lesenswert?

Hallo chewabob,

hier ist mein letztes Projekt mit Spartan 3 XC3S400TQ144.
http://speccyland.net/index.php?option=com_content&view=article&id=4:aeon-20-&catid=2:avr-a-pic&Itemid=19
Da kannst du Schaltpläne, Sources u.s.w. runterladen.
In meinem Fall wird Spartan über USB bzw. SD-Karte konfiguriert.
Falls du Fragen hast, kann ich dir gerne helfen.
Für FPGA-Programmierung über USB reicht es vollkommen
einen PIC18F2550 aus. UART ist zu langsam, wird dauern.

MfG aus Westerwald

von Christian R. (supachris)


Lesenswert?

Über Serial Port geht nicht, aber über Parallelport: 
http://www.xilinx.com/itp/xilinx4/data/docs/pac/appendixb.html ist aber 
echt mühsam und extrem langsam. Und wie gesagt, nimm einen S3A, das 
spart eine Spannung.
Billigste Programmier-Kabel Variante ist ein FTDI FT2232(H) und dann 
über XC3SProg oder das Boundary Scan Tool: 
http://wesche.we.ohost.de/Homepage/Version_3/index.php?section=PC_Delphi_FT2232_JTAG.html 
funktioniert bei uns klasse über die XSVF Files. Und so ein FTDI kannst 
du direkt auf deine Platine integrieren oder als extra Board dran 
machen.

von Mr Hale (Gast)


Lesenswert?

Für 15,- gibt es einen Chinablaster bei EBUCHT. Der soll sogar 
spannungsfester gegen Verpolung sein, als das Original.

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Dimi S. schrieb:

> hier ist mein letztes Projekt mit Spartan 3 XC3S400TQ144.
> 
http://speccyland.net/index.php?option=com_content&view=article&id=4:aeon-20-&catid=2:avr-a-pic&Itemid=19

Hast du ein Blockschaltbild von deinem speccy?

Mein Russisch ist leider etwas lückenhaft.

von Dimi (Gast)


Angehängte Dateien:

Lesenswert?

René D. schrieb:
> Hast du ein Blockschaltbild von deinem speccy?

Habe ich eben schnell erstellt.

MfG

von Ralf (Gast)


Lesenswert?

Da ist aber jetzt nicht so wirklich viel mehr drauf, als auf 'nem Xilinx 
eval board, oder?

von NopNop (Gast)


Lesenswert?

Mal ne andere Frage, hat jemand von euch schon mal so ein Download Cable 
aus Fernost bestellt?
Ist das Ding original oder funktioniert es zumindest gut?
Wie sieht es da mit Zoll aus?

Frank K. schrieb:
> Auf ébay gibts USB Download Cable in genügender Anzahl, z.B. ébay
> #270627772572.


Danke für ein evtl. Feedback.

Grüße
Ralf

von Frank K. (fchk)


Lesenswert?

NopNop schrieb:
> Mal ne andere Frage, hat jemand von euch schon mal so ein Download Cable
> aus Fernost bestellt?
> Ist das Ding original oder funktioniert es zumindest gut?

Alles, was ich an Download-Kabeln bisher geebayt habe, sah zumindest wie 
echt aus und machte keine Probleme.

> Wie sieht es da mit Zoll aus?

Bei mir waren die Chinesen immer freundlich gewesen.

fchk

von NopNop (Gast)


Lesenswert?

Frank K. schrieb:
> Alles, was ich an Download-Kabeln bisher geebayt habe, sah zumindest wie
> echt aus und machte keine Probleme.
Ok, aber so ein Xilinx Download-Kabel wie im Link zu sehen hattest Du 
noch keins, oder?

Frank K. schrieb:
>> Wie sieht es da mit Zoll aus?
>
> Bei mir waren die Chinesen immer freundlich gewesen.
Liegt ja nicht an den Chinesen mit dem Zoll :-D

Danke für die Info.

Grüße

von Frank K. (fchk)


Lesenswert?

NopNop schrieb:
> Frank K. schrieb:
>> Alles, was ich an Download-Kabeln bisher geebayt habe, sah zumindest wie
>> echt aus und machte keine Probleme.
> Ok, aber so ein Xilinx Download-Kabel wie im Link zu sehen hattest Du
> noch keins, oder?

Doch, auch. Ob es der gleiche Chinese war, weiss ich nicht.

fchk

von NopNop (Gast)


Lesenswert?

Frank K. schrieb:
> NopNop schrieb:
>> Frank K. schrieb:
>>> Alles, was ich an Download-Kabeln bisher geebayt habe, sah zumindest wie
>>> echt aus und machte keine Probleme.
>> Ok, aber so ein Xilinx Download-Kabel wie im Link zu sehen hattest Du
>> noch keins, oder?
>
> Doch, auch. Ob es der gleiche Chinese war, weiss ich nicht.

Ok, danke...dann muss ich mir glatt mal überlegen eins anzuschaffen.

Schönes WE noch.
Grüße

von Ralf (Gast)


Lesenswert?

Ich habe ein Original Altera Blaster für 28,00 aus China. Kein Zoll, 
keine UST kein garnichts.

von Dimi (Gast)


Lesenswert?

Ralf schrieb:
> Da ist aber jetzt nicht so wirklich viel mehr drauf, als auf 'nem Xilinx
> eval board, oder?

Nein, natürlicht nicht. Aber!

1. Es ist aber ein fertiges Gerät, im Gehäuse.
2. Es ist einfach Selbstbau. Bringt viel Spass und Erfahrung

Ralf schrieb:
> Ich habe ein Original Altera Blaster für 28,00 aus China. Kein Zoll,
> keine UST kein garnichts.

Ja, bei dem Preis lohnt ein Selbstbaublaster nicht mehr. Obwohl ich mir
einen Altera USB Blaster-Nachbau selber gebastelt habe.
Es ist wirklich nicht viel drin. FT245RL + XC9572XL.
Sehr einfache schaltung und es klappt tadellos!

MfG

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.