SPI am Parallel-Port simulieren

Gast #878688
Hallo,
ich habe ein Gerät, mit dem ich mit dem PC mittels SPI kommunizieren 
möchte.
Nun bin ich soweit, dass ich gelesen habe, dass es scheinbar unmöglich 
ist, über die Gerätetreiber eine saubere und relativ hohe Frequenz 
(bspw. für das CLK-Signal) hinzubekommen. Stichwörter: Betriebssystem, 
Prozesse, Microsekunden-Delay.
Nun gibt es doch aber Parallel-Programmer, ich erinnere mich da für den 
MSP (von Olimex: http://elmicro.com/de/msp430jtag.html). Dieser wird 
auch an den Parallel-Port angeschlossen.
Laut Schaltplan sind dort nur Pegelwandler drin. Also muss die 
SPI-Freqeunz irgendwie von der Entwicklungsumgebung erzeugt werden.
Gibt es für sowas nicht schon fertige Treiber?
Bei SPI (Master!) ist das Timing unkritisch, das kann man gut per 
Software machen.
Auch wenn mal ein CLK-Puls zehnmal so lang wie der vorhergehende ist, 
das Empfangs-Schieberegister stört das nicht.

Fertige Treiber findest du unter "SPI-Bitbanging-Adaptors" in der 
Kernel-Config.
Gast
RTLinux + kernelmodul
damit bekommt man schon ziemlich enge zeit-toleranzen, allerdings wird 
im rt-modus JEDER "normale" prozess vom rt-prozess unterbrochen
Gast
Erstmal Danke für eure Antworten.

 -Ich benutze jedoch kein Linux, sondern muss es unter Windows 
realisieren.

@ernst
Das habe ich vergessen zu erwähnen:
 -Es handelt sich leider um einen Slave, sonst hättest du natürlich 
recht.

@df311
 -Realtime ist doof. Der SPI-Traffic muss nebenläufig ablaufen.

Gibt es denn noch andere Möglichkeiten?
Moderator Persönliche Seite
Selbst ein µC hat es übrigens schwer, SPI-Slave zu spielen.  SPI ist
von der Natur her ein Schieberegister und ist optimal dafür, in
purer Hardware realisiert zu werden.  Es gibt (anders als bspw. bei
I²C) keine Möglichkeit für den Slave, dem Master zuzurufen: ,,Halt
mal, ich bin noch gar nicht so weit!''  Wenn der Master seine erste
Taktflanke raustaktet, muss der Slave das erste Datenbit bereit
gestellt haben, ohne wenn und aber.
Gast
Mit anderen Worten kann ich es vergessen unter den gegebenen Umständen 
einen Slave zu realisieren?

wie sieht es aus mit USB. hab mal gelesen, dass es damit besser aussehen 
könnte. einen FTxxx-Chip, der über RS232-Treiber läuft?
Gast
> Das habe ich vergessen zu erwähnen:
>  -Es handelt sich leider um einen Slave, sonst hättest du natürlich
> recht.

Heißt das nicht, dass das Gerät, welches Du besitzt, ein Slave ist?!?
Damit ist doch alles in Butter, denn das Gegenstück sollte dann ein 
Master sein.
Wenn das Timing wirklich kritisch wird, könntest Du auch parallel zum µC 
und von dort per SPI weiter...
Gast
Das ginge auch mit den klassischen USB-UART ICs von FTDI, FT232R.
Kannst damit selber die 4 Pins CB0 bis CB3 verwenden (als normale 
I/O-Pins) Stichwort "CBUS Bit Bang Mode" und den SPI Handling selber 
erzeugen. Diese Pins lassen sich einzeln setzen und abfragen, können 
alle als Eingang und Ausgang verwendet werden.

http://www.ftdichip.com/Products/FT232R.htm
http://www.ftdichip.com/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf
http://www.ftdichip.com/Projects/CodeExamples/VC++/vc_CBUS_bitbang.zip

Es gibt dazu bei FTDI weitere Dokumente.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.