Hi, ich versuche mit Visual Basic 2008 Daten von FT232 auszulesen, das klappt mit der Timer mit 1 ms ganz gut. Die Frage, gibt es die Möglichkeit die Daten schneller auszulesen, ich meine in us Bereich. Mit der Timer geht nicht , da der minimale Intervall 1 ms ist. Vielen Dank
Ich würde mal erwarten, dass sowas mit normalen Desktop-Betriebssystemen, egal welche Programmiersprache, eher schwierig wird.
Nein, das ist prinzipbedingt unmöglich; der USB wird schließlich auch nur im 1-msec-Takt gepollt, also kann mit einer USB-RS232-Bridge nicht häufiger als im 1-msec-Takt ausgelesen werden. Hinzu kommen die von Axel erwähnten Einschränkungen von Desktop-Betriebssystemen.
Sabine Mühller schrieb: > Hi, > ich versuche mit Visual Basic 2008 Daten von FT232 auszulesen, das > klappt mit der Timer mit 1 ms ganz gut. > Die Frage, gibt es die Möglichkeit die Daten schneller auszulesen, ich > meine in us Bereich. Mit der Timer geht nicht , da der minimale > Intervall 1 ms ist. Wozu zum teufel brauchst du da einen timer? im einfachsten fall ruft man das blockierende read() in einer schleife auf. Wenn du daneben noch was zu tun hast mach das in einem eigenen thread oder benutz die async read funktionen.
Was hast du denn eigentlich mit dem 1us-Timer vor? Vielleicht finden wir einen anderen Lösungsweg?
Auf dem PC arbeitet man normalerweise mit Ereignissen (Events) und nicht per Polling. Du richtest also alles so ein, dass Du vom Betriebssystem benachritigt wirst, sobald sich Daten im Eingangspuffer befinden und Du sie abholen kannst. Wenn Du die normalen .NET Komponenten für die serielle Schnittstelle verwendest, ist dies alles schon fertig drin.
Das wird nicht funktionieren. Sowohl USB, als auch ein Standard-PC sind nicht hinreichend echtzeitfähig, als dass dir da nicht Daten verloren gehen. Wenn du aber ohnehin einen FPGA hast, dürfte es ja kein Problem sein, mit dem eine ordentliche Schnittstelle bereit zu stellen (USB, richtige serielle Schnittstelle, Ethernet).
Eine Möglichkeit, Bitbang per USB hinzubekommen, bietet die MPSSE des FT2232. FTDI bietet dafür ein paar DLLs, um spezielle Protokolle zu implementieren: http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm
Danke, Bit Bang hat eigentlich mit 1ms funktioniert.Kann ich die Daten in 1us aus der USB auslesen.
Sabine Mühller schrieb: > Danke, > Bit Bang hat eigentlich mit 1ms funktioniert.Kann ich die Daten in 1us > aus der USB auslesen. Wie oben schon gesagt: Nein! Der Rest ergibt sich aus http://www.ftdichip.com/Support/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf bzw. aus dem USB-Standard. "The maximum Baud rate is 3MBaud, but to allow time for the data to be setup and held around the WR# strobe the Baud rate should be less than 1MBaud" "Data can be written to the device in Asynchronous Bit Bang mode using the FT_Write command. If multiple bytes are written to the device the values on the pins will change at the rate set by FT_SetBaudRate."
Hallo Sabine Müller, sag uns doch mal etwas mehr zu Deinen Daten. - Wieviele Bytes sind es denn in der Sekunde? - Müssen die Daten in bestimmten Zeit-Intervallen übertragen werden? - Wie groß sind die Intervalle? - Muss das zwingend Bitbang sein? Eigentlich kann USB so ziemlich alles übertragen. Wie man das dann macht, hängt eben von Deinem Vorhaben ab. Gruß Ralf
Hi, Mit ein FPGA lese ich die ADC Daten und verarbeite ich sie dann speichere ich die im FIFO, die Daten müssen jede 2 us aus den FPGA geholt werden. Für mich ist leichte die 8 Bit über Parallel Port von FPGA auszugeben, d.h. die Parrallel Schnittstelle von der USB Chip (Bit Bang) zu verwenden. ich habe mir überlegt, dass ich als erste eine 8 Bit Befehl zum FPGA sende. Dann sendet der FPGA die Messung zurück, in diesem Fall kann ich alles ohne Timer machen. Aber ich muss wissen wie lange dauert das Befehlbearbeitung in Visual Basic.
Sabine Mühller schrieb: > Für mich ist leichte die 8 Bit über Parallel Port von > FPGA auszugeben, Dann nimm einfach einen FT245 - der ist dafür gedacht und kann ganz ohne Bitbanging angesteuert werden.
Rufus t. Firefly schrieb: > Dann nimm einfach einen FT245 - der ist dafür gedacht und kann ganz ohne > Bitbanging angesteuert werden. Oder den FT2232 wenns schnell gehen soll.
warum muss du denn alle 1µs abfragen? Das geht wie oben schon gesagt nicht. Wenn es rein um die Datenmenge geht musst du halt puffern und dann mit höherer Baudrate übertragen oder einen Full-Speed USB µController nehmen.
The rate of data transfer can be controlled by using the FT_SetBaudRate command. The maximum Baud rate is 3MBaud, but to allow time for the data to be setup and held around the WR# strobe the Baud rate should be less than 1MBaud. The clock for the Asynchronous Bit Bang mode is actually 16 times the Baud rate. A value of 9600 Baud would transfer the data at (9600x16) = 153600 bytes per second, or 1 every 6.5 mS. Hi, von Datenblatt habe ich Folgende verstanden, ich kann maximal 1MBaud einstellen. wenn ich das im Byte umrechnen will , dann muss ich die Baudrate mit 16 multiplizieren. das ergibt 16000000 Byte pro Sekunde, d.h. 16 Byte pro us. habe ich das richtig verstanden? Danke
hi, ich möchte die serielle Schnittstelle von der FT232 testen. Hat jemand Erfahrung damit? Kann mir jemand sagen, wie das gesteuert wir? Sabine
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.