Hi, erstmal eine kurze zusammenfassung meiner Anwendung: Ich plane gerade ein Schaltung in dieser u.a. Daten per USB an einen PC gesendet werden sollen und dort einige Auswertungen vorgenommen werden. grobe Schematische Darstellung der Schaltung: Eingangsdaten->AD-Wandler->(Mikrocontroller)->FT245R->USB Insgesamt werden vier 24-Bit AD-Wandler eingesetz. Leider hab ich das Datenblatt von FTDI nicht wirklich verstehen können, ich hoffe ihr könnte mir dabei helfen. Nun zu meinen Fragen: 1)Welche Eingänge muss ich benutzen um die digitalisierten Daten in den FT245R zu bekommen? (D0-D7??) 2)Welche Genauigkeit hat der Chip? Kann es passieren das Genauigkeiten verlohren gehn? 3)Die Ausgänge USBDP und USBDM müssen an einen USB-B Stecker wenn ich diese an eine PC übertragen will, oder liege ich da falsch? 4)Da 128byte sende Puffer vorhanden sind, kann ich jeweils 32byte von jeden der vier digitalisieren Signalen zwischenspeichern und somit per USB übertragen oder liege ich da falsch? Die Aufteilung der "Datenbrocken" (jeweils 32 byte) müssten vorher in einem µC realisiert werden? Ich hoffe ihr versteht meine Fragen und könnt mir helfen diesen Baustein zu verstehen. Danke
1) korrekt 2) Die Frage verstehe ich nicht. 3) korrekt 4) könnte so klappen
1)Ich habe die Eingänge D0-D7. Sind diese Eingänge jeweils nur ein Bit oder was? Wozu hab ich überhaupt 8 Eingänge? Was wäre an an jedem Eingang Daten anliegen und wie würde dazu die Nutzdaten des USB Protokolls aussehen? 2)z.Z. haben meine Daten durch die digitalisierung eine Genauigkeit von 24-Bit. Untersutzt dieser Chip auch die Genauigkeit oder geht diese zum teil verlohren? 3)Die Frage ist ob das die korrekten Ausgänge für den USB-B Stecker sind. (USB-A sind die typischen Stecker am PC) 4)ok
Hallo, zu 1. Die Daten werden parallel als 8 Bit Wert übertragen. d.h. von 0 bis 255. zu 2. Wenn Du ein 8 Bit Signal anlegst, wird es genauso per USB an dein Programm übertragen. Der Chip ist nur ein Konverter zwischen parallel 8 Bit auf USB. Es gibt keine "Genauigkeit" !. zu 3. Geräte mit Hostadapter haben eine Typ A, passive Gerät wie der FTDI haben einen Typ B Jogibär
Ok das bringt mich schon ein bisschen weiter. Ich versuche das nochmal in meinen Worten zu schreiben wie ich es verstanden habe. Ich benutze die Eingänge D0-D7 und übertrage dort jeweils 1 Bit pro Pin(Leitung)->8 Bit. Hab ich das richtig so verstanden? Da nun meine Daten eine länge von 24Bit haben muss ich diese jeweils nacheinander an den FT245R senden bis der "komplette" Wert (24 Bit)übertragen ist. Auf Empfängerseite kann dies im Programm wieder zusammmen gesetzt werden. Kann man dies so machen? Gibt es irgendwelche zeitlichen einschränken wie schnell ich neue Bits an die Datenteilungen legen kann? Ich muss sicherstellen das ich eine kontinuierliche Übertragungsrate von 2MBit/s erreiche. Seht ihr darin Probleme? Werden die USB-Datenpakete erst gesendet wenn der komplette sende Puffer voll ist, oder wie ist das? Danke schonmal für die Hilfe. DkvS
Hallo, schon mal richtig. Wenn Du z.B. einen 16 Bit Wert übertragen willst , überträgst Du z.B. erst das obere byte und dann das untere Byte. Im PC Programm fügst Du diese wieder zusammen und hast wieder deinen 16 Bit Wert. Der FTDI hat Statuseingänge, die Anzeigen, ob Du einen neuen Wert senden kannst oder nicht bzw. ob neue Daten anliegen . 2 Mbit sind schon mal eine Menge.Könnte problematisch werden. Am besten Du versuchst komplette Datenblöcke zu übertragen. USB arbeitet im 1 ms Raster.Lies Dir mal die Doku durch. Ich weiß jetzt gar nicht auf Anhieb, ob der FTDI 1,5 Mbit oder 12 Mbit kann. Schau mal ins Datenblatt. Das müßte man auch an den Widerständen am USB Bus sehen. Damit wird die Datenrate mitgeteilt. 2 Mbit ?? Da muß der Prozessor ganz schön schaufeln. Welchen willst Du denn verwenden ? Ich meine mal gelesen zu haben, das 500kbit schon ein sehr guter Wert sind. Jogibär
Mal ein kleiner Auszug aus dem Datenblatt des FT245R: ---------------------------------------------------------------- Data transfer rate to 1 Megabyte / second - D2XX Direct Drivers. Data transfer rate to 300 kilobyte / second - VCP Drivers. 256 byte receive buffer and 128 byte transmit ---------------------------------------------------------------- Ich denke 2MBit sollten so doch schon möglich sein oder kommt da noch so viel Protokoll-Overhead dazu? Also ich möchte wirklich 2MBit Nutzdaten übertragen + USB Protokoll etc. Kannst du mir den sagen was genau der DsXX Direct Driver ist? Somit hätte ich ja 8MBit/s und damit keine Platzprobleme auf der Datenleitung. Das die Widerständen die Geschwindigkeit angibt ist ja echt ne gute neue Info. Dies werd ich mir mal die Tag durchlesen. Welchen Prozessor ich verwenden will weis ich noch nicht. Ich denke da wird sich schon einer finden. Ich muss bei dem Projekt nicht auf jeden Pfennig achten und denke das ich dann schon was vernünftiges bekommen kann und hatte mich in der richtung noch nicht Informiert. Könnt ihr den spontan einen empfehlen? DkvS
> Das die Widerständen die Geschwindigkeit angibt ist ja echt ne gute > neue Info. Abhängig davon ob mit einem 1,5kOhm Widerstand die D+ oder D- Leitung an VBus gelegt wird erkennt der USB-Hostcontroller ob sich ein 1,5Mbit oder ein 12MBit Device anmelden (enumeration) will. Bei den FTDI Bausteinen mit Suffix "R" - also auch FT245R - ist der Widerstand schon eingebaut. Das Datenblatt sollte mehr dazu wissen.
Im Datenblatt ist vollgendes zu finden: USBDP: USB Data Signal Plus, incorporating internal series resistor and 1.5kΩ pull up resistor to 3.3V USBDM: USB Data Signal Minus, incorporating internal series resistor. Ist das somit nun 1,5MBit oder 12MBit? Wenn es 1,5 sind, kann ich den Chip ja nicht mehr verweden. Hättet ihr eine andere alternative....am besten von FTDI??
Der schafft unter günstigsten bedingungen schon die 8 MBit/s, aber dann darf auf dem USB sonst nix los sein, und das FIFO Schreib-Timing muss so knapp wie möglich gehalten werden.
Am besten wäre wohl wenn ich das im Vorfeld mal teste ob ich diese Ubertragungsgeschwindigkeiten erreichen kann. Aber wenn im Datenblatt steht das es 8MBit/s kann, sollten doch so spontan gesagt keine Probleme bei der Übertragung von 2MBit/s auftreten....oder?
Da wäre ich vorsichtig. Denn das hängt auch ganz stark von der PC-Applikation ab. Wie du die Daten abholst, da musst du mit Threads arbeiten, die Buffergrößen optimal anpassen, dann muss der USB relativ frei sein und und und. Dann gehts weiter beim Timing zwischenµC und FT245, da muss auch alles stimmen, die Flags schnell genug abfragen. Ich würde es vorher mal testen. USB hat da so seine Eigenarten....Windows speziell macht da manchmal sehr interessante Sachen. Vielleicht ist dann ein schnellerer USB Controller besser, z.B. der Cypress 68013, da gibts auch eine schöne preiswerte und einfache API+Firmware von Braintechnology.
Alles in allen hört sich die Übertragung meiner benötigen Nutzdaten mit diesem Baustein etwas problematisch an. Hat einer von euch noch andere Lösungsansätze mit verschiedenen anderen Bausteinen für dieses Problem. Wenn es möglich ist, würde ich aus zeitgründen sehr gern auf die Treiberprogrammierung und USB-Protokoll programmierung verzichten. Gibt es da sinnvoll alternativen? Ich hoffe ihr habt da nochwas für mich :-)
>Gibt es da sinnvoll alternativen?
Hat der PC keine serielle Schnittstelle?
Natürlich hat er die, aber die rs232 schnittstelle ist halt viel zu langsam um alle Daten übertragen zu können.
>Natürlich hat er die, aber die rs232 schnittstelle ist halt viel zu >langsam um alle Daten übertragen zu können. Das würde mich aber mal interessieren, welche Datenmenge da so anfällt.
Dies habe ich in einer der letzten Einträge bereits geschrieben.....es sind 2Mbit/s bzw. vielleicht auch 2,5Mbit/s Nutzdaten. Hinzu kommt noch der ganze Protokoll-Overhead. Ich bin nicht auf die Bausteine von FTDI fixiert. Ich will nur so wenig Aufwand wie möglich haben. Also Daten in den IC und dann soll der Chip am besten das ganze USB Protokoll und die Übertragung selber machen. Gibt es den da noch andere Hersteller die so was in die Richtung machen?
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.