FTDI Probleme! bzw. Komisch!

Gast #901322
Lesenswert?
• ▲
▼
Hallo!
Folgendes habe einen Atmega 16 mit einem 4 MGz Quarz, von diesem Atmega 
benutze ich nur die 8 analog digital Wandler-Eingänge. Am Atmega ist ein 
MAX232 angeschlossen und mit einem 9pol D-Sub Verbunden sprich eine 
RS232 Schnittstelle um mit einem LabVIEW Programm meine angelegten 
Spannungen Digital am Computer darzustellen. Alles funktioniert 
wunderbar.
Jetzt kommen wir zum Problem:
Nun habe ich auch einen FTDI-Chip an den Atmega angeschlossen weil ich 
mir gedacht hab USB ist doch wunderbar und die RS232 Schnittstelle ist 
am aussterben (Notebook). Nun ist das Problem das alles anscheinend noch 
läuft nur die Darstellung aufeinmal in LabVIEW zähflüssiger läuft, die 
Daten kommen anscheinend verzögert an, oder etc.
Hat jemand eine Lösung?
MfG
Johannes
Gast #901325
Lesenswert?
• ▲
▼
Soweit ich weiss, ist beim FTDI Treiber ein 16ms Timeout für das Abholen 
der Daten eingestellt. Ich könnte mir vorstellen, dass es daran liegt. 
Du könntest probieren, dieses Timeout auf 1ms zu reduzieren. Das geht in 
den erweiterten Treiber-Einstellungen im Gerätemanager.

Ralf
#901458
Lesenswert?
• ▲
▼
Wie schickst du denn die Daten? Immer ein Byte? Bei USB gibts nur 
paket-orientierten Transfer, d.h. für immer ein Byte wird ein ganzes 
Paket verschwendet, das nächste erst wieder nach einer Millisekunde. Du 
musst, wenn du die Geschwindigkeit haben willst, immer gleich viele 
Bytes auf ein Mal senden, dann kann der FTDI die in ein Paket, und wenn 
möglich gleich noch mehrere Pakete in einen MicroFrame packen.
#901571
Lesenswert?
• ▲
▼
Programmieren musst du erst mal nix.

Fehlendes HW-handshake merkst du, wenn Daten verloren gehen.

Es liegt definitiv an der USB-Paket-Geschichte. Wenn deine Daten bloß 
langsam reinkleckern, wirds sehr langsam, die Latenzzeit ist viel viel 
höher als bei einer normalen RS232. Also puffere die Daten und übertrage 
dann meinetwegen 512 Byte in einem Rutsch. Ich hab auch mehrere der FTDI 
im Einsatz, meist mit 460.800 oder 921.600 Baud, und mit entsprechend 
großen Paketen geht das sau-schnell.
Gast #901713
Lesenswert?
• ▲
▼
Das ist ja für mich alles Neuland. Und ich war schon froh das des 
einigermaßen alles funktioniert hat. Und jetzt macht mir das USB so 
Probleme. Aber verstehe ich das richtig ich müsste nur mein Programm auf 
dem Atmega anpassen und dann natürlich noch mein LabVIEW Programm 
mitteilen dass jetzt die Pakete anders ankommen.
#901797
Lesenswert?
• ▲
▼
Über die USART immer nur Byteweise. Alles was innerhalb 1ms rausgeht 
wird automatisch zu einem Paket.
Auf der PC Seite muss man aber Pakete machen: Wenn man die 
Sendefuntktion für jedes Byte einzeln aufruft, wird jedes Byte einzeln 
gesendet. Daher muss man hier immer Pakete übergeben.

Antwort schreiben

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.

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.