Forum: FPGA, VHDL & Co. SPI Schnittstelle


von Sebastian J. (Gast)


Lesenswert?

Hallo,

ich habe soeben für mein derzeitiges Projekt (Leiterplattenentwicklung;
zentrale Steuereinheit: FPGA APA075 von Actel) die Anforderung bekommen,
hardwaremäßig eine Standardschnittstelle für eventuelles Monitoring,
Dateneingaben oder vieles mehr, was man momentan noch nicht absehen
kann, am FPGA vorzusehen. Das heißt, ich brauche, wenn ich z.B. eine
SPI Schnittstelle wähle, doch nur die 4 Signalleitung (also 2x Daten
und 2xSteuerleitung) als Eingänge in den FPGA führen?

Was gibt es noch zu beachten?

Ist es überhaupt wirklich sinnvoll? - ist ja doch noch einmal ein ganz
schöner Programmieraufwand im Nachhinein (denn das VHDL Design steht
und funktioniert)

Hm, ich würd mich freuen, wenn sich ein paar Leute finden, die damit
schon Erfahrungen haben, also SPI in Zusammenhang mit nem FPGA und mir
da ein paar allgemeine Hinweise geben können.

Wenn meine kurzen Erläuterungen Fragen aufwerfen bevor man überhaupt
etwas dazu sagen kann, einfach stellen :o)

Vielen Dank schon vorab!

Gruß Sebastian

von Feadi (Gast)


Lesenswert?

Also mein FPGA(XC2S30) hat eine solche Schnittstelle, die wird JTAG
genannt.

Feadi

von fpgaküchle (Gast)


Lesenswert?

Also mein FPGA(XC2S30) hat eine solche Schnittstelle, die wird JTAG
genannt.

JTAG und SPI sind schon was anderes oder?
Und kann man JTAG im Design zur Steuerzwecken verwenden?

SPI cores (also fertiges VHDL, das funzt) gibts bestimmt für lau im
Netz, z.B. www.opencores.org . Überlicherweise verwendet man einen UART
im FPGA. Muss zwar auch erst in VHDL geschrieben werden, (gibbets aber
auch im Netz) und kann mit jeder seriellen schnittstelle kommunizieren.

von Sebastian J. (Gast)


Lesenswert?

@Feadi: ...mein FPGA hat auch eine solche schnittstelle namens JTAG. Ist
nicht aber der Vorteil einer SPI Schnittstelle, dass ich keine
programmierumgebung benötige. ich möchte ja nicht das eigentliche
programm über die SPI Schnittstelle laden sondern kommunizieren, d.h.
monitoring oder senden/empfangen ...

@FPGAKüchle:wegen der software werd ich mal schauen, was mich noch
interessiert hat, benötige ich wirklich nur diese 4Leitungen (CS, SCKL,
SDI, SDO) ?

Gruß Sebastian

von alex (Gast)


Lesenswert?

>was mich noch
>interessiert hat, benötige ich wirklich nur diese 4Leitungen (CS,
SCKL,
>SDI, SDO) ?

Ja.

von Sebastian J. (Gast)


Lesenswert?

Danke!

von André K. (freakazoid)


Lesenswert?

Ich würde fpgaküchle's Rat befolgen. Mit einem UART bist Du besser
bedient. Notfalls kannst Du mit jedem x-beliebigen Computer mit
serieller Schnittstelle debuggen. Zudem solltest Du beachten, daß bei
SPI jedes 'Endgerät' ein CS bekommen sollte. Bei nur 4 genutzten
Leitungen des FPGA (Clock, Select, DIN, DOUT) hast Du keine
Erweiterungsmöglichkeit.

von Ines (Gast)


Lesenswert?

Wobei SPI aber mit einem (deutlich) geringeren Hardware-Aufwand
verbunden ist.

von Sebastian J. (Gast)


Lesenswert?

Mein Problem ist, dass ich den gesamten Stromlaufplan der Leiterplatte
bereits fertig habe. Da ich das Projekt "nur" übernommen habe, gab es
gewisse Vorgaben, z.b. Package TQFP 100... an dem FPGA sind gerade noch
5 I/O's frei. Da auch ein gewisser Zeitdruck besteht möchte natürlich
niemand etwas von Umbau, sprich 144 oder 208 Pins, hören, was ich als
sehr nachteilig empfinde. Also versuche ich irgendwie mit meinen
5freien Pins hin zu kommen, da bietet sich SPI schon an ... ?!

von FPGAküchle (Gast)


Lesenswert?

OK ich hab mal nachgezählt wieviel Strippen zwischen FPGA und ser.
Schnittstelle liegen: eins, zwei, DREI. Drei Strippen reichen aus.
beachten solltest Du die allerdings die unterschiedlichen Pegel
zw. FPGA und PC (ser. Schnittstelle), die einen Transceiver Chip
erfordern.z.B. LT1785. Denn bekommt man bequem in den Stecker rein der
das ser. Kabel mit der FPGA Platiene verbindet.

Software und Beschreibung gibts für den Dinosaurier ser. Schnittstelle
wie Sand am Meer.

von André K. (freakazoid)


Lesenswert?

@Ines:
Wieso 'deutlich' geringerer Hardwareaufwand bei SPI? Seriell bedeutet
nicht unbedingt +12V/-12V, sondern kann auch auf TTL-Level geschehen.
Wie FPGAküchle schon sagt, muß man nur die Verbindung zum PC mit
Pegelwandlern bestücken. Ich sehe da keinen Mehraufwand.

von André K. (freakazoid)


Lesenswert?

@FPGAküchle:
RXD und TXD sollten doch reichen. Wieso 3? GND oder Hardwarehandshake?

von Ines (Gast)


Lesenswert?

@ André:
Das mit den Hardwareaufwand war auf die FPGA-Resourcen bezogen.

von FPGAküchle (Gast)


Lesenswert?

<@FPGAküchle:
<RXD und TXD sollten doch reichen. Wieso 3? GND oder
<Hardwarehandshake?

GND,RXD,TXD, kein HW-shaking(Buadrate: 115200 reicht).

von Sebastian J. (Gast)


Lesenswert?

ja super, dann werd ich mal los legen ...

DANKE :o)

von high_speed (Gast)


Lesenswert?

Hallo Sebastian

Lege dann aber alle 5 freien Leitungen auf den Stecker.
Man weiß ja nie, wofür man die noch gebrauchen kann.

MfG
Holger

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.