-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Unterschiede zwischen FT232BM und FT245 USB-Chips

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216

    Unterschiede zwischen FT232BM und FT245 USB-Chips

    Anzeige

    Hallo zusammen,
    habe mir vor kurzem ein kleines USB-Interface gebaut, es läuft auch ohne Probleme. Allerdings ist der einkommene Datenstrom kaum zu bewältigen, da erst valide Daten ausgefiltert werden müssen. Zum Verständnis ein Beispiel:
    Ich mache mit einem ATMega nichts weiter, als eine schnelle AD-Wandlung eines einzigen Pins (mit etwa 10kHz) und schicke das Messergebnis über das Interface zum PC. Jetzt ist das leider beim FT232BM so, dass die Eingänge sehr schnell gesampelt werden, sodass ich eine Menge nicht nutzbarer Messdaten bekomme - es kommt also wesentlich mehr raus, als man reinsteckt. Der Messwert ist in 2 einzelne Bytes aufgeteilt, ich nutze aber nur jeweils 6 bits davon. Das 6.Bit nutze ich, um das erste bzw. zweite Byte zu kennzeichnen. Auf dem PC kommt aber nicht immer abwechselnd Byte1, Byte2, Byte1, Byte2, usw an, sondern 100mal byte1, dann etwa 100mal Byte2 und so weiter an, eben wegen dem hohen Sampling. Ich muss also auf dem PC immer erst filtern, um nur die beiden Bytes zu bekommen.
    Hat jemand eine bessere Idee, das Problem in den Griff zu kriegen oder Erfahrungen mit dem FT245 Parallel-Umsetzer? Ich möchte, dass auf dem Rechner nur die Bytes ankommen, die auch gesendet wurden und nicht ein paar mal das gleiche. Ist ein wenig schlecht erklärt, hoffe ihr könnt mir trotzdem helfen.

    Danke, Ruppi

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Hast du kein Strobe genutzt ?
    Gruß
    Ratber

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Wie jetzt Strobe?! Kann Dir nicht ganz folgen...

    Ruppi

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Na du fragst offensichtlich ständig den Port ab obwohl sich nix ändert.
    Is schon klar das du x-mal das gleiche bekommst.

    Normalerweise werden Zwei Leitungen als Handshake genommen.

    Der Sender zieht seine von 0 auf 1
    Der Empfänger weiß das Gültige Daten da sind und liest sie ein.
    Danach setzt er seine leitung auch auf 1
    Der Sender weiß das die Daten angekommen sind und setzt seine wieder auf 0
    Der Empfänger sieht damit das der Sender fertig ist und senkt seine ebenfalls auf 0
    Damit weiß der Sender das der Empfänger Sendebereit ist.

    So geht keine Übertragung verloren.
    So läuft es normalerweise am Printerport.
    Die leitungen heissen dann Strobe und Busy und werden noch etwas anders betrieben aber im Grunde ähnlich.

    Ob man noch Prüfbits mitsenden will um die Datenintegrität zu prüfen ist Optional.
    Damit wäre die Übertragung recht sicher.


    Da du mit 10Khz einlesen möchtest wäre zumindest dien Steuerleitung vom Sender nötig.
    Also 0->1 und der Empfänger liest einmal.
    Erst wenn das Signal wieder 1->0 geht ist man wieder bereit.

    So liest du nicht dauernd das gleiche.
    Gruß
    Ratber

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Moin,
    diese Vorgehensweise ist mir bekannt, jedoch habe ich leider nur acht IO's zur Verfügung und diese hätte ich gerne für eine quasi parallele Übertragung verwendet. Klar kann man's so machen wie Du es beschreibst, dann aber seriell. Trotzdem aber vielen Dank für Deine Bemühungen!

    MfG, Ruppi

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    diese Vorgehensweise ist mir bekannt, jedoch habe ich leider nur acht IO's zur Verfügung .........
    Ich interpretiere deinen ersten Post ganz oben so das du momentan den 232 einsetzt.
    Da gibt es Neben den Datenleitungen TXD und RXD auch noch die Steuerleitungen RTS , CTS , DTR , DSR usw. die ja den Datenfluss Steuern sollen.
    Haste die nicht genutzt ?


    Oder nutzt du doch schon den 245er ?

    In dem Falle gibt es neben den Datenleitungen eben noch RD / WR / TXE und RXF die für die Flussteuerung vorgesehen sind.


    Da wirst du kaum um die bereitstellung weiterer Portpinne herumkommen wenn du das in den Griff bekommen willst.

    Nur mit 8 Datenleitungen ist das nicht zu bewerkstelligen denn woher soll der Chip denn wissen wan die Daten neu sind und wan nicht ?


    so wie ich es Oben verstanden habe ist die Datenübertragung total freilaufend und damit unabhängig von der Messung.

    Überleg nochmal.
    Gruß
    Ratber

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Oh, sorry! Ich hatte nicht gewusst, dass Du den Chip wirklich kennst. Also es ist so, dass ich den sog. Bit Bang Mode nutze, da kann man die Datenleitungen einzeln als Ein- bzw. Ausgang konfigurieren. Ich verwende das Ganze mit einem ATMega8, um Messwerte eines schnellen AD-Wandlers auf den PC zu übertragen. Dazu wollte ich zwecks Geschwindigkeit aber nicht die Rx/Tx Leitungen des ATMega verwenden, sondern die Datenleitungen an einen ganzen Port anschließen. Ich wußte nicht, dass der FT245 mehr IO's hat, dann wäre er wohl die bessere Wahl.
    Sorry, dass ich am Anfang zu wenige Info's darüber gegeben habe, jetzt ist es sicher klar geworden.

    Gruß, Ruppi

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Oh, sorry! Ich hatte nicht gewusst, dass Du den Chip wirklich kennst.
    Ja meinste ich rede nur so aus Jux drüber ?

    Sicher kenn ich die USB-Chips von FTDI.
    Die sind ja für jeden Bastler schon fast ein Quasistandard.



    Also es ist so, dass ich den sog. Bit Bang Mode nutze, da kann man die Datenleitungen einzeln als Ein- bzw. Ausgang konfigurieren. Ich verwende das Ganze mit einem ATMega8, um Messwerte eines schnellen AD-Wandlers auf den PC zu übertragen. Dazu wollte ich zwecks Geschwindigkeit aber nicht die Rx/Tx Leitungen des ATMega verwenden, sondern die Datenleitungen an einen ganzen Port anschließen. Ich wußte nicht, dass der FT245 mehr IO's hat, dann wäre er wohl die bessere Wahl.
    Ja der 232er is eben wie der Name schon vermuten läst nen RS232-USB Umsetzer und der 245er das Gegenstück für ne Centronix.
    Alle Daten- und Steuerleitungen sind existent.



    Sicher,freilaufend ist es sehr einfach aber den Nachteil spürst du ja gerade.
    Du bekommst unmengen an unbrauchbaren Daten.
    Wenn du Synchrone Daten bekommen willst (Genau ein Datensatz pro Sample) dann wist ru ein Handshake einfügen müssen (Steht alles in den Datenblättern und Beispielene im Web).
    Das kostet dich natürlich auf dem Controller etwas Rechenzeit was die Samplerate drückt.
    Ich sage iimmer "Lieber wenige verlässliche Daten als Tonnenweise Gerüchte"

    Darf man fragen was eines solchen Datenstromes bedarf ?
    Gruß
    Ratber

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Moin!
    ich benötige das, um Messdaten von einem sehr schnellen AD-Wandler (> 1 MSamples) zu übertragen. Diese Daten sind nicht komprimiert, pro Messwert müssen dann 12bit übertragen werden.
    Sorry übrigens, dass ich Dein Wissen in Frage gestellt habe. War nicht böse gemeint. Nochmal Danke für Deine Hilfe.

    Gruß, Ruppi

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Sorry übrigens, dass ich Dein Wissen in Frage gestellt habe. War nicht böse gemeint. Nochmal Danke für Deine Hilfe.

    Hab ich nicht so empfunden.
    Kein Problem.



    Zur Sache.

    ich benötige das, um Messdaten von einem sehr schnellen AD-Wandler (> 1 MSamples) zu übertragen. Diese Daten sind nicht komprimiert, pro Messwert müssen dann 12bit übertragen werden.

    Öha,jetzt gleich 1 MSample.
    Das ist gegenüber den 10k von oben ne andere Dimension.


    Hmmm.
    Las mal eben Rechnen.:


    Also bei einfacher Teilung auf 2 Bytes sind das 2 Mio Übertragungen/Sek. Also ca. 1.9Megabytes die Sekunde.

    USB macht aber bei 12Mbits zu.
    Selbst wenn ich nur Nutzdaten übertragen könnte wären das maximale und rein Theoretische 1.43 MB/s

    Der FT232 ist da mit seinen 3 Mbaud schon lange aussem Rennen.

    Wenn ich die 12bit aufteile (Also 3 Byte für 2 Messungen) dann komme ich genau auf meine 1.43 Megabyte pro sekunde die das Theoretische Limmit für USB1 darstellen.

    Abgesehen davon das man diese Rate nicht erreichen wird weils Protokoll ja auch irgendwo hin muß ist der FT245 auch aussem Rennen denn der macht schon bei 1MB/s dicht.


    Wenn du wirklich 1 Mio 12 bittige Samples pro sekunde (Hab ich jetzt so verstanden) in den Rechner schaufeln willst dann mußte dir was einfallen lassen.

    Bei USB1 kannste da nur noch komprimieren oder vieleicht über Zwei Ports parallel gehen.(Ob das Praktikabel ist lasse ich im Raum stehen)
    Die Alternative ist entweder auf USB2 aufzurüsten oder ne andere Schnittstelle zu nehmen.(Erw.Parport,Firewire,PCI also Karte....etc.usw.).



    Wie gesagt,mit den alten 10Ksamples wäre das kein Akt gewesen aber so mußte etwas umdisponieren.
    Gruß
    Ratber

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •