www.mikrocontroller.net

Forum: PC-Programmierung Visual Basic Daten im us Bereich lesen


Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Axel Jäger (axeljaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde mal erwarten, dass sowas mit normalen 
Desktop-Betriebssystemen, egal welche Programmiersprache, eher schwierig 
wird.

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

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Martin Kunz (fahljse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Axel Jäger (axeljaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du denn eigentlich mit dem 1us-Timer vor? Vielleicht finden wir 
einen anderen Lösungsweg?

Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich möchte mit FT232 Daten von FPGA auslesen.

Autor: Axel Jäger (axeljaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und der FPGA hat dann eine serielle Schnittstelle oder soll der 
Bit-Bang-Modus benutzt werden?

Autor: Johnny B. (johnnyb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich möchte der Bit-Bang-Modus verwenden.

Autor: Axel Jäger (axeljaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

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

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
Bit Bang hat eigentlich mit 1ms funktioniert.Kann ich die Daten in 1us 
aus der USB auslesen.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...
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."

Autor: Potter S. (potter68)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sabine Mühller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

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

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: mkeller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sabine Mühller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sabine Mühller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
ich möchte die serielle Schnittstelle von der FT232 testen. Hat jemand 
Erfahrung damit?
Kann mir jemand sagen, wie das gesteuert wir?

Sabine

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.