mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FT2232H Maximale Geschwindigkeit FTCSPI DLL


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich experimentiere gerade mit der FTCSPI DLL um einen USB-SPI Konverter 
zu bauen.
Mich interessiert jedoch die maximal erzielbare Geschwindigkeit. Es gibt 
einen Modus, wo man 64K Bytes auf einmal übertragen oder lesen kann. 
Dann erreicht er auch tatsächlich eine sehr hohe Geschwindigkeit (30MHz 
SCLK- Takt)
Problematisch wird es, wenn man einzelne Übertragungen machen will, d.h. 
den CS-Pin dazwischen mal wieder umschalten. Dann legt das Ding Pausen 
im ms-Bereich zwischen den einzelnen Übertragungen ein und die 
Übertragungsrate ist sehr gering. Gibt es irgend eine Einstellung die 
ich übersehen habe?
Ich möchte einen 16Bit ADC mit >1MSPS anschließen, aber ich habe leider 
keinen gefunden, der die Ergebnisse kontinuierlich ausgibt, solange CS 
low ist und ein Takt anliegt. Dann würde es im schnellen Modus 
funktionieren...

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe weiterexperimentiert: die Pause zwischen den einzelnen 
Übertragungen bekomme ich nicht unter 5ms. Schlecht.
Darüberhinaus ist mir aufgefallen, dass bei einer Mehrfachübertragung 
die Pause zwischen dem letzten und dem vorletzten Byte ca. 4x so lange 
ist wie die Pause zwischen den anderen Bytes.
Langsam bezweifle ich, dass dieser Baustein für was anderes als 
SPI-Flash lesen wie im Datenblatt tauglich ist...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:
> Ich habe weiterexperimentiert: die Pause zwischen den einzelnen
> Übertragungen bekomme ich nicht unter 5ms.

Das kann auch an Windows selber liegen. Reduziere mal die Granularität 
des Schedulers mit der Win32-API-Funktion timeBeginPeriod, der Du 1 
übergibst.

http://msdn.microsoft.com/en-us/library/ms713413%2...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für sowas ist weder USB noch Linux/Windows ausgelegt. Ungepuffert geht 
das garantiert schief. Du musst die Daten in Hardware irgendwie puffern. 
Mit FPGA oder µC und dann blockweise abholen.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder schalt nen µC deiner Wahl als Puffer dazwischen (Bei AVRs kann man 
die UART zum SPI umfunktionieren damit sind schon kleine AVR geeignet 
und wenns nid langt nimmt man halt nen Xmega oder gleich nen anderen 
(ARM?))

Autor: Karl M. (movex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stand vor dem ähnlichen Problem, Daten von mehreren ADCs per SPI zu 
holen. Mittels uC, der eine DMA Engine hat geht das super. Also ein 
XMEGA oder v.a. ein ARM würd sich da schon anbieten.

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]
  • [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.