Forum: FPGA, VHDL & Co. SPI zu RS232 Converter


von Fabjus (Gast)


Lesenswert?

Hallo zusammen,

ich befinde mich gerade vor folgendem Problem.
Ich will mit meinem FPGA über SPI eine SD-Karte ansprechen.
Um die Antworten der SD-Karte, welche sie beim Initialisierungs-Prozess 
sendet, lesen und analysieren zu können hätte ich sie gerne irgendwo 
dargestellt.
Meine Idee war jetzt, den FPGA über eine RS232 Schnittstelle mit dem PC 
zu verbinden und die Daten dort mit HTerm zu lesen.
Der Aufbau ist also wie folgt:
Der FPGA Sendet die Befehle zur Initialisierung per SPI an die SD-Karte 
und empfängt auch wieder über SPI die Antworten der gleichen.
Diese soll er dann über RS232 weiter an den PC senden.

Unabhängig voneinander funktionieren sowohl SPI, als auch RS232 
Übertragungen (nach Vorbild von Lothar Miller)

Gibt es schon so eine Art SPI-RS232 Schnittstelle in VHDL-Form? oder 
zumindest etwas in der Richtung?

Vielen Dank vorab!

Fabjus

von A. S. (Gast)


Lesenswert?

Mmh, RS232 rauspusten ist doch das denkbar einfachste. Wenn Du einen 
Takt hast, der z.B. alle 1/115200s oder 1/µs ein enable-Signal für einen 
clockzyklus generiert, dann rassel 12 States runter bei jedem 
rising-clock wenn enable:

0 (startbit)
8*[0/1] (Datenbits[0..7] )
[0/1] Parity (falls gewünscht)
1 (stopbit)
1 (stopbit)

und mit jedem zu sendenen Datum wird die Statemachine neu gestartet.

Wenn Du SPI bidirektional hinbekommst, ist RS232 raus ein Kinderspiel.

Wenn Du Dir den Inverter sparen willst, und Dein FPGA 3V 10mA treiben 
kann, dann drehe die Logik einfach um, also 1 als startbit etc.

von Klaus I. (klauspi)


Lesenswert?

Und warum das SPI-Signal nicht direkt mit einem Logik Analyzer für < 10 
EUR anzapfen?

von Christian G (Gast)


Lesenswert?

Hi, also bisher hab ich nur mit der IDE von Altera/Intel (Quartus Prime 
lite) rumgepfuscht, aber selbst die lite Version hat ein tool inne 
(SignalTap) das man für dise Zwecke nutzen könnte, evtl. hat die von dir 
genutze IDE ja auch so etwas... falls nicht, eines meiner ersten mir 
selbst auferlegten "Lernprojekte" war so eine Art SD Karten Zugriff via 
RS232 : Beitrag "SD card controller Test Projekt" ...nutzt zwar nicht 
SPI sonder 4 bit transfer mode aber der UART Teil mit den Puffern etc. 
könnten evtl. ein Denkanstoss für dich sein. Zugegeben die Umzetzung ist 
alles andere als schön, aber jeder fängt mal klein an und es 
funktionierte.

von Markus F. (mfro)


Lesenswert?

Fabjus schrieb:
> Unabhängig voneinander funktionieren sowohl SPI, als auch RS232
> Übertragungen (nach Vorbild von Lothar Miller)
>
> Gibt es schon so eine Art SPI-RS232 Schnittstelle in VHDL-Form? oder
> zumindest etwas in der Richtung?

wenn das eine tut und das andere auch, dann pack' doch einfach noch 
einen dicken FIFO-Puffer dazwischen. So verhindertst Du, dass der UART 
"überfahren" wird und musst dir keine grossen Gedanken über die 
Synchronisation machen.

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


Lesenswert?

Markus F. schrieb:
> pack' doch einfach noch einen dicken FIFO-Puffer dazwischen. So
> verhindertst Du, dass der UART "überfahren" wird und musst dir keine
> grossen Gedanken über die Synchronisation machen.
Ich würde im ersten Schritt einfach die jeweils nächste SPI-Übertragung 
so lange verzögern, bis der UART wieder frei ist.

von A. S. (Gast)


Lesenswert?

Lothar M. schrieb:
> Ich würde im ersten Schritt einfach die jeweils nächste SPI-Übertragung
> so lange verzögern, bis der UART wieder frei ist.

Oder halt noch einfacher, 2MBaud Uart (oder 3, was der PC halt nativ 
kann) und die SPI (zu Debug-Zwecken) entsprechend nur die Hälfte.

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.