mikrocontroller.net

Forum: FPGA, VHDL & Co. USB Schnittstelle + Firmware Update?


Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte einen Spartan 3 mit einer USB-Schnittstelle versehen. Die 
Schnittstelle soll beim Aufstarten die Konfiguration in den FPGA 
einspielen und im späteren Betrieb dann als Schnittstelle zur Außenwelt 
dienen.

Wie kann ich meine Aufgabe lösen? Ich lese hier häufiger vom FT2232, mit 
dem es evtl. klappen könnte, aber auch von den Problemen damit. Wenn ich 
es richtig verstehe, dann kann man den einen Port des FT2232 als JTAG 
konfigurieren und damit den FPGA programmieren und später mit dem 
anderen Port während des Betriebes dann Daten austauschen. Ist das so 
richtig?

Grüße
Steffen

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

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Hallo zusammen,
>
> ich möchte einen Spartan 3 mit einer USB-Schnittstelle versehen. Die
> Schnittstelle soll beim Aufstarten die Konfiguration in den FPGA
> einspielen und im späteren Betrieb dann als Schnittstelle zur Außenwelt
> dienen.
>
> Wie kann ich meine Aufgabe lösen? Ich lese hier häufiger vom FT2232, mit
> dem es evtl. klappen könnte, aber auch von den Problemen damit. Wenn ich
> es richtig verstehe, dann kann man den einen Port des FT2232 als JTAG
> konfigurieren und damit den FPGA programmieren und später mit dem
> anderen Port während des Betriebes dann Daten austauschen. Ist das so
> richtig?
>
> Grüße
> Steffen


Es ist so möglich doch nicht ganz von Pappe.

Ich nutze das Programm xc3sprog zum Programmieren öfters. Das kann mit 
USB-Jtag mit dem FTDI-Chip einen Spartan 3 umgehen und den FPGA 
programmieren. Das ist die erste Teilaufgabe deiner Frage.

Über die JTAG Schnittstelle kann man auch im Betrieb kommunizieren. Das 
habe ich selber noch nicht praktiziert. Da müsstest du dir einen Treiber 
selber schreiben und das JTAG Protokoll implementieren.
Einfacher ist eine asynchrone Schnittstelle in VHDL zu schreiben und auf 
dem zweiten Kanal des FTDIs zu legen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfacher wäre eventuell der Slave Serial Modus des Spartan 3, da kannst 
du ebenfalls die MPSSE des FT2232 benutzen und nachher dann im SPI Modus 
mit dem Spartan kommunizieren. Das Konfigurieren des S3 über SPI ist 
auch recht simpel.
Muss denn der Spartan unbedingt über den USB Chip booten? Eventuell tuts 
auch ein SPI Flash, den du im Betriebn ebenfalls aktualisieren kannst, 
da die Pins frei benutzbar sind nach der Konfig. Da startet die Büchse 
auch ohne Host-Programm.

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Eure Antworten!

Ich denke, mein Vorhaben ist nicht deutlich geworden. Ich möchte 
zweierlei Dinge machen:

(1) Den FPGA über USB konfigurieren. Hintergrund ist, dass er genau 
einmal konfiguriert werden soll und anschließend seine Konfiguration 
batteriegepuffert hält (Ausleseschutz).

(2) Die Anwendung des FPGA über USB mit einem PC kommunizieren lassen.

Der FT2232 hat ja zwei Kanäle. Einen würde ich mit dem MPSS als JTAG 
konfigurieren und damit die Konfiguration laden. Den anderen würde ich 
halt als parallele Schnittstelle ("FT245-kompatibel") konfigurieren und 
damit meine Anwendung im Betrieb kommunizieren lassen.


Das xc3sprog ist offensichtlich ein Tool, mit dem man den Spartan 3 über 
JTAG konfigurieren kann. Stimmt das? Ich finde hier 
(http://www.rogerstech.co.uk/xc3sprog/) leider keinerlei Infos, sondern 
nur den Download. Dort sind aber offensichtlich nur die Quellcodedateien 
enthalten?

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Link! Auf sourceforge habe ich gestern auch geschaut, aber 
die Verlinkung zu xc3sprog funktionierte nicht.

Klappt das denn grundsätzlich so, wie ich mir das mit dem FT2232 
vorstelle?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundsätzlich sollte das gehen. Aber hat der Spartan 3 überhaupt su gute 
Stromspar-Eigenschaften, damit dein Plan mit der Batterie klappt? 
Vorgesehen ist das ja nicht....und sooo wenig Strom brauchen die auch 
nicht gerade.
Ausleseschutz würde ich mit einen Spartan 3 AN machen, da ist der Flash 
intern.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Steffen: Was klappt an dem Link
http://sourceforge.net/projects/xc3sprog/develop
nicht?

@Christian:
JTAG Zugriff erlaubt auch direkten Zugriff auf die IO und ist damit 
universeller als Slave Serial.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe Bonnes schrieb:
> @Christian:
> JTAG Zugriff erlaubt auch direkten Zugriff auf die IO und ist damit
> universeller als Slave Serial.

Das ist mir vollkommen klar, ich arbeite fast täglich mit dem Boundary 
Scan System von Göpel hier....

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der FPGA wird in einem Gerät eingesetzt, das praktisch dauerhaft extern 
mit Spannung versorgt wird. Die Pufferung muss daher nur den Frachtweg 
überstehen. Den 3AN hatte ich mir auch angesehen (er ist prädestiniert 
für meine Aufgabe), aber er hat zu wenig Block RAM oder ist nur im BGA 
Gehäuse lieferbar. Deshalb muss ich auf den 3A mit externer 
Confuguration ausweichen. Im Moment baue ich aber eh noch auf meinem 
Starter Board rum und dort sitzt der 3E.

Der Link funktioniert (inzwischen). Am Montagabend habe ich versucht, 
mich über "http://sourceforge.net/projects/xc3sprog/"; auf 
"http://xc3sprog.sourceforge.net/"; weiterleiten zu lassen und das hat 
leider nicht funktioniert.

Vielen Dank für Eure hilfreichen Antworten!!

Steffen

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...und ein Design, was in einen kleinen S3 im TQFP passt, ist so 
ausgebufft und einzigartig, dass so ein Aufwand getrieben werden muss, 
um das Bit-File zu schützen? Was passiert, wenn doch mal der Saft alle 
ist? Elektronik-Schrott?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.