Hallo, mein System: Pc mit c# programm <-> ft245r <-> cpld ich verwende den ftd2xx treiber und betreibe den ft245r im normalen fifo-mode, also nicht bit-bang. das cpld macht nichts anderes, als immer, wenn txe# vom ft245r low ist, das wr signal kurz H zu pulsen, um den internen buffer des ft245r zu beschreiben. alle timings sind eingehalten. soweit so gut, nur wenn ich mit meinem c# programm den buffer des treibers zyklisch abfrage, sind dort immer nur ca. 2kbyte daten pro sekunde drinnen. also ist mein bottleneck der transfer vom ft245r zum pc. schaue ich mir wr und txe# mit dem logic-analyser an, so werden nach dem start rasch ca. 250 byte in den ft245r reingeschrieben, aber dann nur so ca. 2 byte pro 1 ms (usb - time-slot???) - und txe# ist meistens H, was ja bedeutet, dass die übertragung vom internen buffer des ft245r zum pc hin ein bottleneck ist. Komischerweise habe ich in die andere richtung (pc --> ft245r --> cpld) keine probleme und erreiche, bei entsprechender einstellung des driver-buffers bis zu 1Mbyte/s. Wer hat eine Idee?
Ohne den relevanten Code Ausschnitt wird dir keiner helfen können. Normalerweise sendet der FT245 sofort an den PC weiter wenn WR high ist. PS: USB hat von Hause aus Latenz Zeiten von ich glaub 30 ms.
> Normalerweise sendet der FT245 sofort an den PC weiter wenn WR high ist. Richtig, aber: > wenn ich mit meinem c# programm den buffer des treibers zyklisch abfrage Ich denke, du musst Ereignisbasierend arbeiten. Ralf
Ralf schrieb: > >> wenn ich mit meinem c# programm den buffer des treibers zyklisch abfrage > Ich denke, du musst Ereignisbasierend arbeiten. > > Ralf Hallo Ralf, bitte was meinst du mit Ereignisbasierend? ich polle den buffer des treibers alle 1sec. und dann sind dort nur 2000 byte drinnen, die ich dann rauslese; polle ich alle 100ms, so bekomme ich 200 byte... (bei 64kb max. buffergrösse also kein problem) lg yum
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.