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
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.
@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
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.
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 ... ?!
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.
@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.