www.mikrocontroller.net

Forum: FPGA, VHDL & Co. SPI Schnittstelle zwischen uC und FPGA Virtex 4


Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ihr lieben und hilfsbereiten Menschen hier!

Folgende Situtaion:

Ich möchte eine SPI Schnittstelle zwischen einen uC und einem FPGA 
herstellen. Das FPGA (Virtex 4, Ev.-Board ML402,) soll von einem uC 
Daten über SPI erhalten.
Programmiert werden soll dies über die Simulink Xilinx Blocksets.
So jetzt habe ich mir die Grundlagen für die SPI angelesen und wollte 
nur noch mal nachfrage, ob ich es soweit richtig verstanden habe.

Mein uC ist Master, mein FPGA= Slave.
Es werden 4 Datenleitungen benötigt.
1. MOSI =Daten vom uC zum FPGA
2. MIS0 = Daten aus FPGA zum uC (brauch ich den überhaupt, wenn das FPGA 
eh nur Daten empfangen soll??)

3. SCK = Die Clock zur synchronisierung der Datenleitungnen usw.
4. SS oder CS = Chip Select. WEnn SS = --|___ (fallende Flanke) Begin 
der Datenübertragung.


So, jetzt muss ich doch eigentlich immer den Takt vom SCK übernehmen, 
die DAten lesen, ablegen... und dass alles wenn bei SS/CS eine fallende 
Flanke ankommt!? Korrekt!

Mehr muss ich doch eigentlich nicht beachten!? Die Snchronistation 
erfolgt durch SCK und das war es doch?!


DANKE

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell, wie oft und wie viele Daten möchtest Du denn übertragen?

zu 2.: Nein, brauchst Du nicht.

Ansonsten fast richtig:

> So, jetzt muss ich doch eigentlich immer den Takt vom SCK übernehmen,
Ja, aber am besten Einsynchronisieren und auf die Flanke detektieren 
(VHDL Flankenerkennung).

> die DAten lesen, ablegen... und dass alles wenn bei SS/CS eine fallende
> Flanke ankommt!? Korrekt!
Was meinst Du? Bit oder Byte?

> Mehr muss ich doch eigentlich nicht beachten!? Die Snchronistation
> erfolgt durch SCK und das war es doch?!
Achtung. SS/CS nicht SCK ist Deine Synchronisation. Damit weiß der FPGA 
wann das erste Datum kommt. Wenn Du es komplizierter machen willst, 
kannst Du auch auf ein entsprechendes Syncwort im Datenstrom 
detektieren.

Rick

Autor: you2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, dann habe ich es ja soweit.
Wie schnell ich die Datenübertragen möchte? Gute Frage?
Ein Datenpaket beinhlatet eine 17Bit Adresse + 6Bit Data. Es soll ein 
320x240 RGB-Bild übertragen werden. Die Farbwerte für R:G:B sind auf 6 
Bit (2:2:2) begrenzt worden. eventuell wird das noch erweitert.

Wie errechne ich denn die möglich SPI-Geschwindigkeit???
Der uC hat einen System Clock von 40MHz. Ich habe gelesen, dass es auch 
möglich ist, nicht nur 8 Bit sondern bis zu 32 Bit aufeinmal zu 
übertragen! Wie wirkt sich das denn auf die BAudrate aus?????


DANKE

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
you2 wrote:
> Ein Datenpaket beinhlatet eine 17Bit Adresse + 6Bit Data. Es soll ein
> 320x240 RGB-Bild übertragen werden. Die Farbwerte für R:G:B sind auf 6
> Bit (2:2:2) begrenzt worden. eventuell wird das noch erweitert.

Du koenntest, falls die Daten mehrheitlich linear uebertragen werden, 
ein auto-increment einfuehren und so entweder an Geschwindigkeit oder 
Farben gewinnen.

Cheers, Roger

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.